programmerjake | fun...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 |
---|---|---|
lkcl | niice | 21:52 |
lkcl | i have a VM with a very small HDD allocation, it runs out of space every 6 months due to log files overflowing, sigh | 21:53 |
programmerjake | mine 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 space | 21:55 |
programmerjake | cuz 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 lvm | 22:01 |
programmerjake | systemd decided that network stuff has to wait for all mounts to complete | 22:01 |
mikolajw | PySignalState.set(), used in Simulator-generated Python code, adds `self` to a dictionary | 22:08 |
mikolajw | this may be a problem | 22:08 |
mikolajw | because I don't want to deal with dictionaries in C | 22:09 |
programmerjake | hmm, maybe just use c++11 unordered_map for now, to be replaced later with C code if we end up needing it | 22:12 |
mikolajw | oh, 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 |
mikolajw | it's a set that keeps track of signals whose values changed | 22:18 |
programmerjake | you could use a sorted dynamically expanding array... | 22:19 |
programmerjake | though a btree might be better... | 22:19 |
programmerjake | actually, 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 once | 22:22 |
programmerjake | or, check cxxrtl for ideas | 22:22 |
programmerjake | global dynamic array -- basically a std::vector | 22:23 |
mikolajw | I don't know if it's a global, but if it is, then having some global boolean or bitfield array would do the trick | 22:26 |
mikolajw | ok, got CFFI working, the code I generate is compiled successfully and CFFI appears to execute it. Of course the simulation results are wrong | 22:27 |
programmerjake | the dynamic array is so you can quickly visit all pending signals without needing to visit every signal | 22:28 |
programmerjake | cffi -- yay! | 22:28 |
lkcl | ha, fantastic | 22:39 |
lkcl | it's a great start | 22:39 |
lkcl | a (very small!) unit test can be unpacked manually to see what the heck is going on | 22:40 |
lkcl | markos, 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=241 | 23:26 |
lkcl | something 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 |
lkcl | we _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 |
lkcl | and pypowersim goes "eek" and terminates :) | 23:28 |
lkcl | but it means we can execute any kind of bare metal program or standard libc6 / EABI-compliant function | 23:29 |
lkcl | oh look, as if by magic a bugreport appeared https://bugs.libre-soc.org/show_bug.cgi?id=758 | 23:35 |
lkcl | ouch. i just saw this https://github.com/nmigen | 23:45 |
lkcl | it 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 property | 23:46 |
lkcl | they then shut down the entire codebase, giving the impression that they were authorised by M-Labs to terminate nmigen's online presence and reputation | 23:47 |
lkcl | i'm kinda stunned at their total lack of knowledge of Trademark Law | 23:48 |
programmerjake | well... | 23:59 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!