Saturday, 2021-07-24

lkclghostmansd: one of the other important aspects for having all conversations public and recorded is so that patent trolls can have their patents invalidated by demonstrating prior art.08:39
*** ghostmansd|2 is now known as ghostmansd-pc11:46
ghostmansd-pcHi all. Based on discussions in mail list, I thought we might opt to update the documentation to mention the following:11:48
ghostmansd-pc1. There's gdb-related script.11:49
ghostmansd-pc2. rust is a must for softfloat and sfpy.11:49
ghostmansd-pc3. pia simply doesn't work as is, and this should be mentioned.11:50
lkclghostmansd-pc: unless pia is fixed to work with stable build dependencies, it has to be removed from Libre-SOC.11:51
lkclprogrammerjake, ^11:51
lkclit was inappropriate to suggest upgrading to a completely unstable version of pip11:51
lkclapologies for that11:51
ghostmansd-pc4. Documentation mismatches gdb/gcc versions; this is not _that_ important, once one uses the special script, but still this is misleading.11:52
lkclsoftfloat does not have rust as a dependency, at all.11:52
lkclprogrammerjake: if you are recommending rust be utilised as a dependency, it is your responsibility to ensure that it builds in a stable fashion.11:52
lkclthis is a lesson for you that the current (fast, completely unstable) development pace of rust will not teach you, because they themselves haven't learned it11:53
ghostmansd-pc> softfloat does not have rust as a dependency, at all.11:53
ghostmansd-pcI'm not sure which part of 6.5 section needs it, but I certaubly recall some fail due to lack of rust at that point.11:53
lkclgdb / gcc - yes, it doesn't actually matter which version is picked / used at the moment.  gcc-8, gcc-9, it's all the same11:54
ghostmansd-pcI can re-check it, though. Perhaps my mind confused me.11:54
lkclhowever in future, it will matter11:54
lkclthe only version that will "work" will be11:54
lkclthe version that is modified and maintained by us11:54
ghostmansd-pcIt might not matter, but currently the docs mention specific version, which is absent in debian.11:55
lkclwe're not there yet, though.11:55
ghostmansd-pc$(apt-get install gcc-9-powerpc64-linux-gnu) simply fails11:55
lkclyes, because gcc-9 is only in debian/testing.11:55
lkclfor that situation gcc-8 and gdb-8 can be used.11:56
lkclsoftfloat is entirely in c++, the python bindings sfpy are *not* using rust.11:56
lkclprogrammerjake: can i leave it with you to take responsibility for raising the bugreport about fixing pia to build with a stable set of dependencies, and for actioning that?11:57
lkclthe default (fallback) action is to remove pia entirely from Libre-SOC, and to not make the same (extremely serious) mistake again of critically depending on unstable, unbuildable software dependencies11:58
lkclmaturin should not have been picked because it is a "python bindings creater written in rust", where the developers of maturin, like all rust developers, have no experience (no hard lessons) in developing stable mature software.11:59
lkclthe bindings *should* have been created with a stable, portable bindings-creater that is written in *python* that understands rust, not a rust program that ignores the stable python system and tries to fit with it12:00
lkcl(and fails)12:00
lkclghostmansd-pc: pia was developed 18 months ago, and, as you can see, its build dependencies are not stable, and the developers are not experienced enough to create "stable" releases.12:01
lkclso, regarding gcc / gdb, given that both versions 8 and 9 work perfectly well, would you like to update the docs and dev-scripts to 8?12:03
lkcland create a bugreport for it, which will go under the "documentation" milestone...12:03
lkclghostmansd-pc: i'm looking for an appropriate bugreport for you to template...12:06
ghostmansd-pcThe thing is that dev scripts already use version 8. The only problem is that HDL workflow doesn't mention this script, and explicitly asks to install version 9.12:07
lkclah great then that's dead easy to sort out.12:08
ghostmansd-pcscript: apt-get install gcc-8-powerpc64-linux-gnu12:08
ghostmansd-pcHDL: apt-get install gcc-9-powerpc64-linux-gnu12:08
lkclyep, that's a no-brainer to sort out, feel free to edit HDL_workflow.12:09
ghostmansd-pcOK. Do we have some kind of review?12:09
lkclwe trust people12:10
lkcland, it's a one-liner, it's easy to check.12:10
ghostmansd-pcOK, then another question: is there a way I can check the docs before comitting?12:10
lkcli can see the git commit logs12:10
lkclah... yes.... if you install ikiwiki locally, yourself :)12:10
lkclpersonally i don't bother, markdown is so brain-dead-simple12:11
ghostmansd-pcWhat about pia? This will be handled by @programmerjake?12:11
lkclyes, that's programmerjake's responsibility.  he'll need to contact the developers of maturin and get them to fix the instability they caused, or find the specific last-known-good versions of the dependencies that will stably build, and fix the dev-scripts so that they work12:13
lkclghostmansd-pc: you have git access to the ikiwiki, btw.12:14
lkclif you prefer to use that rather than the ikiwiki online front-end12:14
ghostmansd-pcAm I right that I'm supposed to edit libreriscv/HDL_workflow.mdwn?12:15
lkcleither by cloning the git repo or by using the ikiwiki front-end (at, going to the menu, and clicking "edit")12:17
lkclwhichever is easier / works12:18
ghostmansd-pcgit push origin master fails12:37
ghostmansd-pcATAL: W any libreriscv dmitry_3mdeb DENIED by fallthru (or you mis-spelled the reponame)12:38
lkcl1 sec12:38
lkcllet me check the gitolite3 config12:38
lkclyep, your key is added. this is a good thing to check12:39
lkclcan you please run this12:39
lkclssh gitolite3@git.libre-soc.org12:39
ghostmansd-pcfwiw, I checked the result by clicking wiki "edit" button, then inserting the mdwn code, then hitting "preview" button. I guess at that point I would have committed from web page itself, but hey, who looks for an easy way.12:39
lkcland check if " R W    libreriscv12:40
lkcl" is in the list?12:40
ghostmansd-pcI currently only have "W" near testing.12:40
lkclthis is a good test to make sure git commit is ok.12:40
lkclehn?? moo?12:41
ghostmansd-pc R      libreriscv12:41
ghostmansd-pc R W    testing12:41
lkclhmm i wonder if underscores in key names are confusing gitolite3 let me just rename...12:41
lkclyyeaah i definitely haven't added you to testing12:41
ghostmansd-pchello dmitry_3mdeb, this is gitolite3@libre-soc running gitolite3 3.6.6-1 (Debian) on git 2.29.212:42
ghostmansd-pcI'm greeted as dmitry_3mdeb, is that the name that must be added?12:42
lkclok try again12:42
ghostmansd-pcyep, it should work, I got "R W" near libreriscv12:43
lkclright that tells me that there's a bug in gitolite3 involving understocres.12:43
lkcli had added your key as, i won't be doing that again12:43
ghostmansd-pcpushed to master, it seems got these changes12:44
lkclexcellent, yes, it's rebuilt automatically12:46
lkclwelcome to ikiwiki, it's pretty awesome. that's all static files as far as nginx is concerned12:46
lkclexcellent, so we confirmed you have ssh write access.12:46
ghostmansd-pcI only touched toolchain section; I assume pia stuff is to be handled by programmerjake.12:48
lkclbrilliant, looks great.12:49
lkclahh, good idea, an extra section about using the devscripts.12:49
lkclwhen in doubts,  --> "when in doubt"12:49
lkcl"if any doubts"12:50
ghostmansd-pcWe actually have the page regarding dev scripts, but it's buried under a lot of manual cd, make and python invocations12:50
ghostmansd-pc> when in doubts,  --> "when in doubt" Will update in a moment12:51
lkclyes, i only added that... a couple months back (for someone else), and haven't had time to link it in elsewhere12:51
ghostmansd-pcIt's linked, but it's easy to miss this link. Also, only apt-reqs and hdl-repos are mentioned.12:52
ghostmansd-pcPerhaps toolchain script is worth mentioning as well?12:53
lkclyes good idea12:53
ghostmansd-pcHm. Apparently allowing to change page without the comment is a bad idea.12:54
ghostmansd-pcWhen I check $(git log), I see tons of commits without title.12:54
lkcltrue... but via the front-end we ignore that one12:54
lkclyes, i often am awake late at night making multiple one-sentence updates.12:54
lkcli'll add ppc64-gdb-.xxxx to devscripts.mdwn12:55
ghostmansd-pcThank you!12:55
ghostmansd-pcI've pushed fix so that we a no longer in doubt :-)12:56
ghostmansd-pc*we are12:56
lkcllet's see if it merges...12:56
lkclexcellent, no problems.  if you do a "git pull" you should get the change to devscripts.mdwn12:57
ghostmansd(that's me again, this time on the phone; God bless IRC for disallowing the same account to be used in two places simultaneously)13:00
lkclghostmansd: pffh, i don't think anyone either minds or cares :)13:00
ghostmansdRegarding our recent discussion, on parser. This would be great to have some summary in docs as well, reading the IRC logs is a pain. What do you think will be The Right Place (tm) to put it?13:01
lkclexxxcellent, just got a (simple, scalar) unit test for the FP cos calculations i need in DCT13:02
lkclyes, great idea13:02
lkcl1 sec13:02
ghostmansdShould it be in wiki, or it should accompany the sources?13:02
ghostmansdI'm more in favor of second, TBH13:02
ghostmansdAt the same time, wiki is the first thing newcomers see13:02
lkclmmmm... we have sphinx which auto-generates things, from the source code13:03
lkclhowever... yeah13:03
lkclthe w13:03
lkclwiki's where the primary focus is13:04
lkclthere is this page
lkclhowever what you're talking about is more of a tutorial / guide13:04
ghostmansdIt's been a while, and all things were new to me, so I will need some time to recap the stuff.13:04
lkclgood recap idea.  plus we can assign a budget for it13:05
lkclsub-page off of there is a good place13:05
lkclso a page in this repo, knock yourself out;a=tree;f=docs;hb=HEAD13:07
ghostmansdDo you suggest to introduce a new page, something like "Decoder intro"?13:07
lkclwell, if it's specifically the decoder, then that page already exists13:07
ghostmansdBut that one is more of architecture13:07
ghostmansdAnd not an "dive into Pyth^W decoder"13:08
ghostmansdAt the same time, we discussed tests as well, and caller, and specs...13:08
lkclit's... i know: it's not entirely in the right place13:08
ghostmansdOk, I think new page like "First steps" or something similar13:09
lkclgo for it, do what you think works for you, and... yeah good idea.13:09
lkclthen cross-link them.13:09
lkcli need to get up and walk about, apologies13:09
lkclback in 20-30 mins or so13:10
ghostmansdOk, I'll do it. I believe we can then proceed to tasks from bugzilla.13:10
lkclwell this one *is* a task that can be paid.  link to 384.13:10
lkclso feel free to create a bugreport "create first steps tutorial page" and set 384 as its dependency13:11
lkclok *really* have to walk about now13:11
lkclghostmansd-pc, i saw - modified and added a budget of EUR 250 for you14:55
lkclMaciejPijanowski ^14:56
ghostmansd-pclkcl: I've added the very beginning of the documentation (until gory details happen). I took a liberty to somewhat expose our talk, and also mentioned @unittest.skip as a better alternative to our hack where we renamed the test methods (HDL recommends it, and I totally agree).19:37
ghostmansd-pclol, funny miswording :-)19:39
ghostmansd-pcI'll dedicate some time tomorrow as well, and will try to complete this document to the point where we stopped. I need to re-visit the other places so that I could give more information, like I did in the current parts, but this would likely require your participation, especially in part related to specs.19:41
ghostmansd-pcI forgot to mention, I haven't cross-linked it yet. Could you, please, share the right way to cross-link?20:03
lkclthat's ver readable21:43
lkclghostmansd, ok.21:43
lkclbtw we really do need to convert to the case_xxxxx format21:44
lkcllong story21:44
lkcli really like it, you can see easily where it's going.21:45
ghostmansdDo you mean converting the key w/o underscores?21:46
ghostmansdOr do you mean that wiki page must have underscore in name?21:46
lkcli mean: you notice how there's a massive pause in between each sub-test?21:50
lkclthat's because PowerDecoder2 takes a looooong time to load all the CSV files.21:50
lkclwe "fixed" that by loading only the one Program() and re-using it multiple times21:51
lkcladding each suite of tests to a list21:51
lkcleach test created by case_xxxx *not* test_xxxx21:51
ghostmansdAaah, as of now, I checked only test_XXX format. I'm AFK, but IIRC each of them creates program on-the-fly.21:52
ghostmansdwith Program(...), etc.21:53
ghostmansdPerhaps I recall some other place, maybe from another life, please, correct me, if I'm wrong :-)21:53
ghostmansdI haven't checked in details, but isn't Program supposed to load an asm listing? Seems to be correct to have one program per test, or even per asm (not sure if we have tests with multiple asm listings).21:54
lkclno, we haven't gone over anything involving case_xxx because those involve running the HDL vs the simulator21:57
lkclthere are actually three ways to run programs21:57
lkcl1) ISACaller simulator21:57
lkcl2) HDL simulator21:57
lkcl3) qemu21:57
lkcl(qemu via pygdbmi)21:57
ghostmansdAh, OK, I bet we have more worlds to investigate :-)21:57
lkclmore need to be added :)21:57
lkcl4) microwatt21:58
ghostmansd(hic sunt leones)21:58
lkcl5) power-gem521:58
ghostmansdAnd Program corresponds to...?21:58
lkcl6) cavatools (once added with... thingy.... the c stuff)21:58
ghostmansdI mean, it always the same backend?21:59
lkclwait... 1 sec...21:59
lkclno, Program is just a way to turn assembly listings into binaries21:59
lkclso you do "with Program(...)" and you can pass that to the ISACaller single-stepper function22:00
lkcland to the qemu single-stepper22:00
lkcland to the HDL single-stepper function22:00
lkcletc. etc. etc.22:00
lkclwe really need a normalised API for this, to unify all the unit tests22:01
ghostmansdAh, ok, got it22:02
ghostmansdIt seems that in run_tst, we can possibly change the backend which runs the program, right?22:03
lkclthat's the theory - that would be the purpose of having a unified API22:04
lkclso even qemu could be specified as a runtime command-line option, to test_caller.py22:05 --backend=qemu22:05
lkcland it would run to completion, extract memory and regfiles, and do self.assertEqual() against *qemu* registers.22:05
lkclthe infrastructure is all there.22:06
ghostmansdSo using a different backend would be a simple matter of passing custom argv and selecting some other simulator than ISA?22:08
ghostmansdOk, I'll try taking a look at it tomorrow (taking the time zone, I guess it means today, lol). I'll likely also bother you with some questions regarding specs<=>code mapping.22:12

Generated by 2.17.1 by Marius Gedminas - find it at!