Friday, 2021-12-17

programmerjakefun...my home file server stopped connecting to the network today cuz it ran out of space in lvm till i deleted some old snapshots...21:49
lkclniice21:52
lkcli have a VM with a very small HDD allocation, it runs out of space every 6 months due to log files overflowing, sigh21:53
programmerjakemine has 2 8TB mirrored disks, I have a third one, but I haven't gotten around to reformatting and copying the data to a new 3-way mirror with 16TB usable space21:55
programmerjakecuz it ran out of space in lvm, the xfs filesystem wouldn't mount, cuz it kept trying to flush the log, requiring writes, which failed due to no space in lvm22:01
programmerjakesystemd decided that network stuff has to wait for all mounts to complete22:01
mikolajwPySignalState.set(), used in Simulator-generated Python code, adds `self` to a dictionary22:08
mikolajwthis may be a problem22:08
mikolajwbecause I don't want to deal with dictionaries in C22:09
programmerjakehmm, maybe just use c++11 unordered_map for now, to be replaced later with C code if we end up needing it22:12
mikolajwoh, no, fortunately I'm not that much unhappy to avoid dictionaries in C to bring in C++22:13
programmerjake@lkcl any ideas?22:13
mikolajwit's a set that keeps track of signals whose values changed22:18
programmerjakeyou could use a sorted dynamically expanding array...22:19
programmerjakethough a btree might be better...22:19
programmerjakeactually, if pending is a set that's global to the whole simulator, you can just add a bool `pending` field to all signals and keep a global dynamic array of the signals that are pending...iirc signals are only removed all at once22:22
programmerjakeor, check cxxrtl for ideas22:22
programmerjakeglobal dynamic array -- basically a std::vector22:23
mikolajwI don't know if it's a global, but if it is, then having some global boolean or bitfield array would do the trick22:26
mikolajwok, got CFFI working, the code I generate is compiled successfully and CFFI appears to execute it. Of course the simulation results are wrong22:27
programmerjakethe dynamic array is so you can quickly visit all pending signals without needing to visit every signal22:28
programmerjakecffi -- yay!22:28
lkclha, fantastic22:39
lkclit's a great start22:39
lkcla (very small!) unit test can be unpacked manually to see what the heck is going on22:40
lkclmarkos, i don't have a problem at all dropping a budget at you for documenting-(oh-and-learning) pysvp64asm and pypowersim usage under https://bugs.libre-soc.org/show_bug.cgi?id=24123:26
lkclsomething that picks apart what Lauri did and does a dead-simple function (one in assembler, one in c), explains how to set up registers etc.23:27
lkclwe _can_ call functions: LR needs to be set to 0xffffffffffffffff and that causes the PC to go out of bounds on the blr (return from function)23:28
lkcland pypowersim goes "eek" and terminates :)23:28
lkclbut it means we can execute any kind of bare metal program or standard libc6 / EABI-compliant function23:29
lkcloh look, as if by magic a bugreport appeared https://bugs.libre-soc.org/show_bug.cgi?id=75823:35
lkclouch. i just saw this https://github.com/nmigen23:45
lkclit gives the very dangerous impression that whitequark, ktemkin and jfng have sought - and obtained - permission from M-Labs that they are legally permitted and authorised to rename M-Lab's Trademarked property23:46
lkclthey then shut down the entire codebase, giving the impression that they were authorised by M-Labs to terminate nmigen's online presence and reputation23:47
lkcli'm kinda stunned at their total lack of knowledge of Trademark Law23:48
programmerjakewell...23:59

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!