Thursday, 2021-12-09

lkcli 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 low09:42
lkcland the developers have a long-standing reputation for being spiteful and for permitting discrimination and intolerance09:43
lkclas long as you "defer" to them in an extremely careful way you should be fine in engaging with them09:44
lkclwhich is, apparently, exactly what causes - literally - the ability to empathise to shrink!09:46
lkcl" It turns out that power actually gives you brain damage."09:46
mikolajwyou mean Cython developers?09:56
lkclno, nmigen developers09:56
lkclit's rather unfortunate: the history behind the trademark violation by the nmigen developers (nmigen is a registered trademark of m-labs) was not well-known09:57
lkclit 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
lkcland, rather than listen and fix that (due to lack of empathy) they left m-labs - all of them - leaving m-labs seriously in the shit09:58
lkclwith zero ability to support either their end-users or their paying clients09:59
lkclif i had known that at the time it would at least have been "eyes-open" when making the decision to use nmigen09:59
lkclwe 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
mikolajwI'd like to know the reason why Cython isn't used for this10:06
mikolajwI would like to stay away from any dramas10:07
lkclmikolajw, 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 channels10:19
lkclthere's a full rename underway, which - hopefully - the nmigen trademark violators will get right.10:20
mikolajwthen I suggest to investigate Cython viability before rolling out a custom converter10:45
lkclwe can't pull in the cython libraries / runtime into the linux kernel11:17
lkcland i belieeeeve that cython requires some runtime libraries, particularly for some of the low-level data types (list, dict)11:27
lkclthe 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 window11:28
lkcl"proper" libraries actually have no dependencies on externally-linked libraries *at all* (!)11:28
lkclthis is a practice that is deployed in both the Windows NT kernel *and* the linux kernel:11:29
lkcla pointer-to-a-table-of-functions is passed in *as a parameter* to the library11:29
lkclso 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 where11:30
lkcl* the first member of the table is the version number11:30
lkcl* the second member is a pointer to a malloc function11:30
lkcl* the third member is a pointer to a free function11:30
lkcland the cython runtime will have assumed that POSIX (glibc6) is a fundamental low-level requirement...11:31
lkclthis code is what we wish to enhance / replace11:32
lkclsee line 1273, "analyse_instr()"11:33
lkclthat is where paul mackerras (about 15 years ago!) wrote code which manually parses Power ISA instructions11:33
lkclyou can see it continues for over 1,500 lines!11:34
lkclthe role of sstep.c is, basically, to capture illegal instructions on, say an IBM POWER7 or IBM POWER8 system11:34
lkcland to actually emulate - in software - some of the instructions present in IBM POWER8 or IBM POWER911:35
lkclwhich means you need an actual full-on Power ISA decoder *in software*11:35
lkclthat's what we're doing, here, bear in mind that reads and parses the CSV files11:36
lkclcffi on the other hand, i took a look and it is perfect.11:51
lkclironically, actually getting Simulation() working here is a secondary task, part of unit testing to make sure that PowerDecoder2 works!11:52
lkclone thing that is not needed is "sync" (clocks)11:52
lkclPowerDecoder2 is entirely combinatorial (this is very deliberate)11:52
octaviusI'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
lkclyyeah i don't know if that's a style of Paul's or if it's a style of the linux kernel development13:57
lkclPaul seems to be able to cope well with hexadecimal and bit-numbering :)13:58
lkclmost likely because he's worked with the Power ISA for over 25 years (!)13:58
lkclkylel, i'm just doing some RFPs, would you like to put some in as well?13:58
lkcl#686 for example13:59
lkcloctavius, you too -
octaviusWhat do I need to do? I thought all the info was already on the bug?14:20
octaviusOr should I have confirmed that the payment went through?14:20
lkclah you sent the RFP already?14:23
octaviusYes, I sent on the 31st oct, payment came through on the 17th nov14:24
lkclthe TOML field is andrey=35014:24
lkclok i will run a (nice, new) program which updates that14:24
octaviusWhat is it meant to be? Crossed out?14:24
lkclhang on, refresh the page in 45 seconds, you'll see....14:24
octaviusah ok14:25
octaviusand there's a way to generate this?14:26
octaviususing those python scripts14:26
lkclnow 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
lkclyeeees... except i'm not publishing its existence because you could do spectacular amounts of damage to the database with it14:26
lkcllike, obliterate all the financial records14:27
octaviusI probably won't even bother then, writing out that template is easier14:27
octaviusAnd probably better for my sanity :)14:28
lkcli needed it because i'm doing 20 entries at a time14:30
octaviusyeah, makes sense14:30
lkclbut.. 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
lkclwhat could possibly go wrong with that?14:31
lkcldang, 30+ bugtracker messages from bugzilla...14:58
tplatenJust did a git pull, I now continue where I left yesterday16:25
tplatenalso going to submit my part of <> ISACaller RADIX MMU16:26 still runs I will have deeper look at it16:32
tplatenoops, I have uncommented some tests, I will undo that16:43
lkcltplaten, i keep doing that, i am used to it, do exactly the same thing, so didn't say anything :)19:43
lkclbtw 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 another19:44
lkclperhaps if we instead added a special Signal with a string (an enum?) it would help identify the "phases" of the test?19:45
tplatenthat would be good idea19:46
lkcllet me see if i can work it out19:46
lkclha! apparently yes!19:47
lkclhilariously it is Cesar's tutorial which shows that19:48
lkclcesar, brilliant, i updated gtkwave_tutorial (briefly) with that19:53
lkcland am about to try it out19:53
cesarRemember to add the extra signals to write_vcd...;a=blob;f=src/nmutil/test/;h=1b8c3b9c1b0bb5cde23c6896fc5cbde991790384;hb=HEAD#l35719:57
lkclyes i spotted that19:57
tplatenI'll continue tomorrow20:08
lkcltplaten, ok. thx for doing the ifetch-invalid20:09
lkclcesar, fantastic, works perfectly.20:14
lkcllots of moving parts though20:15
*** tplaten <tplaten!> has left #libre-soc20:15
lkcli 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
octaviusYour not wrong about vi wc being funny lkcl ;)21:12
programmerjakejust saw this interesting new OoO 6-wide? issue RISC-V cpu:

Generated by 2.17.1 by Marius Gedminas - find it at!