lkcl | i don't honestly know. you'd have to ask the nmigen developers, but exercise extreme caution: the channel contains people whose level of empathy for others is extremely low | 09:42 |
---|---|---|
lkcl | and the developers have a long-standing reputation for being spiteful and for permitting discrimination and intolerance | 09:43 |
lkcl | as long as you "defer" to them in an extremely careful way you should be fine in engaging with them | 09:44 |
lkcl | which is, apparently, exactly what causes - literally - the ability to empathise to shrink! | 09:46 |
lkcl | https://politics.slashdot.org/story/21/10/03/233256/andrew-yang-suggests-power-may-affects-politicians-brain-neurons | 09:46 |
lkcl | " It turns out that power actually gives you brain damage." | 09:46 |
lkcl | (!!!!!) | 09:46 |
mikolajw | you mean Cython developers? | 09:56 |
lkcl | no, nmigen developers | 09:56 |
lkcl | it's rather unfortunate: the history behind the trademark violation by the nmigen developers (nmigen is a registered trademark of m-labs) was not well-known | 09:57 |
lkcl | it turns out that the reason why the trademark violation exists - why m-labs is extremely pissed off - is that the nmigen developers were causing problems with m-lab's customers (due to lack of empathy) | 09:58 |
lkcl | and, rather than listen and fix that (due to lack of empathy) they left m-labs - all of them - leaving m-labs seriously in the shit | 09:58 |
lkcl | with zero ability to support either their end-users or their paying clients | 09:59 |
lkcl | if i had known that at the time it would at least have been "eyes-open" when making the decision to use nmigen | 09:59 |
lkcl | we did a full comprehensive review of HDL languages over two years ago when the project started, and completely missed that the nmigen developers had caused such immense and extremely serious problems for the company that paid for its development (and owns the trademark) | 10:01 |
mikolajw | I'd like to know the reason why Cython isn't used for this | 10:06 |
mikolajw | I would like to stay away from any dramas | 10:07 |
lkcl | mikolajw, i don't honestly know. and yes, really, whilst the trademark violations are being resolved it is probably best to stay away from the nmigen channels | 10:19 |
lkcl | there's a full rename underway, which - hopefully - the nmigen trademark violators will get right. | 10:20 |
mikolajw | then I suggest to investigate Cython viability before rolling out a custom converter | 10:45 |
lkcl | we can't pull in the cython libraries / runtime into the linux kernel | 11:17 |
lkcl | and i belieeeeve that cython requires some runtime libraries, particularly for some of the low-level data types (list, dict) | 11:27 |
lkcl | the c code being compiled has to go into the linux kernel, where things like the entire glibc6 library, POSIX compliance, #include <stdio.h> and so on, are completely out the window | 11:28 |
lkcl | "proper" libraries actually have no dependencies on externally-linked libraries *at all* (!) | 11:28 |
lkcl | this is a practice that is deployed in both the Windows NT kernel *and* the linux kernel: | 11:29 |
lkcl | a pointer-to-a-table-of-functions is passed in *as a parameter* to the library | 11:29 |
lkcl | so if you want "malloc and free", you do not assume that the linker will link to those, you instead pass in a pointer-to-a-function-table where | 11:30 |
lkcl | * the first member of the table is the version number | 11:30 |
lkcl | * the second member is a pointer to a malloc function | 11:30 |
lkcl | * the third member is a pointer to a free function | 11:30 |
lkcl | and the cython runtime will have assumed that POSIX (glibc6) is a fundamental low-level requirement... | 11:31 |
lkcl | this code is what we wish to enhance / replace | 11:32 |
lkcl | https://elixir.bootlin.com/linux/latest/source/arch/powerpc/lib/sstep.c | 11:32 |
lkcl | see line 1273, "analyse_instr()" | 11:33 |
lkcl | that is where paul mackerras (about 15 years ago!) wrote code which manually parses Power ISA instructions | 11:33 |
lkcl | you can see it continues for over 1,500 lines! | 11:34 |
lkcl | the role of sstep.c is, basically, to capture illegal instructions on, say an IBM POWER7 or IBM POWER8 system | 11:34 |
lkcl | and to actually emulate - in software - some of the instructions present in IBM POWER8 or IBM POWER9 | 11:35 |
lkcl | which means you need an actual full-on Power ISA decoder *in software* | 11:35 |
lkcl | that's what we're doing, here, bear in mind that power_decoder.py reads and parses the CSV files | 11:36 |
lkcl | cffi on the other hand, i took a look and it is perfect. | 11:51 |
lkcl | ironically, actually getting Simulation() working here is a secondary task, part of unit testing to make sure that PowerDecoder2 works! | 11:52 |
lkcl | one thing that is not needed is "sync" (clocks) | 11:52 |
lkcl | PowerDecoder2 is entirely combinatorial (this is very deliberate) | 11:52 |
octavius | I'm surprised the case statements in "analyze_instr()" don't use enums, or at least macros instead of hard-coded numbers. Imagine if one the bits changes.... :( | 11:59 |
lkcl | yyeah i don't know if that's a style of Paul's or if it's a style of the linux kernel development | 13:57 |
lkcl | Paul seems to be able to cope well with hexadecimal and bit-numbering :) | 13:58 |
lkcl | most likely because he's worked with the Power ISA for over 25 years (!) | 13:58 |
lkcl | kylel, i'm just doing some RFPs, would you like to put some in as well? | 13:58 |
lkcl | #686 for example | 13:59 |
lkcl | octavius, you too - https://bugs.libre-soc.org/show_bug.cgi?id=714 | 14:19 |
octavius | What do I need to do? I thought all the info was already on the bug? | 14:20 |
octavius | Or should I have confirmed that the payment went through? | 14:20 |
lkcl | ah you sent the RFP already? | 14:23 |
octavius | Yes, I sent on the 31st oct, payment came through on the 17th nov | 14:24 |
lkcl | the TOML field is andrey=350 | 14:24 |
lkcl | ok i will run a (nice, new) program which updates that | 14:24 |
octavius | What is it meant to be? Crossed out? | 14:24 |
lkcl | hang on, refresh the page in 45 seconds, you'll see.... | 14:24 |
lkcl | b-dnk | 14:25 |
octavius | ah ok | 14:25 |
octavius | and there's a way to generate this? | 14:26 |
octavius | using those python scripts | 14:26 |
lkcl | now if you run budget-sync -c configfileblahblah -o mdwn and inspect the file "mdwn/andrey.mdwn" you see it no longer says "not paid" | 14:26 |
lkcl | yeeees... except i'm not publishing its existence because you could do spectacular amounts of damage to the database with it | 14:26 |
lkcl | like, obliterate all the financial records | 14:27 |
octavius | I probably won't even bother then, writing out that template is easier | 14:27 |
octavius | And probably better for my sanity :) | 14:28 |
lkcl | :) | 14:30 |
lkcl | i needed it because i'm doing 20 entries at a time | 14:30 |
octavius | yeah, makes sense | 14:30 |
lkcl | but.. y'know... typing in your password on a command-line, and, y'know... giving a list of bugs which then get auto-modified? | 14:31 |
lkcl | what could possibly go wrong with that? | 14:31 |
octavius | everything | 14:32 |
lkcl | dang, 30+ bugtracker messages from bugzilla... | 14:58 |
tplaten | Just did a git pull, I now continue where I left yesterday | 16:25 |
tplaten | also going to submit my part of <https://bugs.libre-soc.org/show_bug.cgi?id=604> ISACaller RADIX MMU | 16:26 |
tplaten | test_loadstore1.py still runs I will have deeper look at it | 16:32 |
tplaten | oops, I have uncommented some tests, I will undo that | 16:43 |
lkcl | tplaten, i keep doing that, i am used to it, do exactly the same thing, so didn't say anything :) | 19:43 |
lkcl | btw i had the extra yields (and the gtkwave comment) in because it is easier to identify the start of one part of a test from another | 19:44 |
lkcl | perhaps if we instead added a special Signal with a string (an enum?) it would help identify the "phases" of the test? | 19:45 |
tplaten | that would be good idea | 19:46 |
lkcl | let me see if i can work it out | 19:46 |
lkcl | ha! apparently yes! | 19:47 |
lkcl | https://libre-soc.org/docs/gtkwave_tutorial/ | 19:47 |
lkcl | hilariously it is Cesar's tutorial which shows that | 19:48 |
cesar | Indeed. https://git.libre-soc.org/?p=nmutil.git;a=blob;f=src/nmutil/test/example_gtkwave.py;h=1b8c3b9c1b0bb5cde23c6896fc5cbde991790384;hb=HEAD#l262 | 19:49 |
lkcl | cesar, brilliant, i updated gtkwave_tutorial (briefly) with that | 19:53 |
lkcl | and am about to try it out | 19:53 |
cesar | Remember to add the extra signals to write_vcd... https://git.libre-soc.org/?p=nmutil.git;a=blob;f=src/nmutil/test/example_gtkwave.py;h=1b8c3b9c1b0bb5cde23c6896fc5cbde991790384;hb=HEAD#l357 | 19:57 |
lkcl | yes i spotted that | 19:57 |
tplaten | I'll continue tomorrow | 20:08 |
lkcl | tplaten, ok. thx for doing the ifetch-invalid | 20:09 |
lkcl | cesar, fantastic, works perfectly. | 20:14 |
lkcl | lots of moving parts though | 20:15 |
*** tplaten <tplaten!~isengaara@55d49281.access.ecotel.net> has left #libre-soc | 20:15 | |
lkcl | i missed (then messed up, then messed up again) the part about adding to write_vcd, even though you said to look out for it *and* i said "yes yes of course i saw that" :) | 20:16 |
lkcl | doh | 20:16 |
octavius | Your not wrong about vi wc being funny lkcl ;) | 21:12 |
programmerjake | just saw this interesting new OoO 6-wide? issue RISC-V cpu: https://github.com/OpenXiangShan/XiangShan | 21:18 |
programmerjake | https://www.phoronix.com/scan.php?page=news_item&px=RISC-V-Summit-2021 | 21:18 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!