lkcl | ghostmansd: 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-pc | 11:46 | |
ghostmansd-pc | Hi all. Based on discussions in mail list, I thought we might opt to update the documentation to mention the following: | 11:48 |
ghostmansd-pc | 1. There's gdb-related script. | 11:49 |
ghostmansd-pc | 2. rust is a must for softfloat and sfpy. | 11:49 |
ghostmansd-pc | 3. pia simply doesn't work as is, and this should be mentioned. | 11:50 |
lkcl | ghostmansd-pc: unless pia is fixed to work with stable build dependencies, it has to be removed from Libre-SOC. | 11:51 |
lkcl | programmerjake, ^ | 11:51 |
lkcl | it was inappropriate to suggest upgrading to a completely unstable version of pip | 11:51 |
lkcl | apologies for that | 11:51 |
ghostmansd-pc | 4. Documentation mismatches gdb/gcc versions; this is not _that_ important, once one uses the special script, but still this is misleading. | 11:52 |
lkcl | softfloat does not have rust as a dependency, at all. | 11:52 |
lkcl | programmerjake: 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 |
lkcl | this 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 it | 11:53 |
ghostmansd-pc | > softfloat does not have rust as a dependency, at all. | 11:53 |
ghostmansd-pc | I'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 |
lkcl | gdb / gcc - yes, it doesn't actually matter which version is picked / used at the moment. gcc-8, gcc-9, it's all the same | 11:54 |
ghostmansd-pc | I can re-check it, though. Perhaps my mind confused me. | 11:54 |
lkcl | however in future, it will matter | 11:54 |
lkcl | the only version that will "work" will be | 11:54 |
lkcl | the version that is modified and maintained by us | 11:54 |
ghostmansd-pc | It might not matter, but currently the docs mention specific version, which is absent in debian. | 11:55 |
lkcl | we're not there yet, though. | 11:55 |
ghostmansd-pc | $(apt-get install gcc-9-powerpc64-linux-gnu) simply fails | 11:55 |
lkcl | yes, because gcc-9 is only in debian/testing. | 11:55 |
lkcl | for that situation gcc-8 and gdb-8 can be used. | 11:56 |
lkcl | softfloat is entirely in c++, the python bindings sfpy are *not* using rust. | 11:56 |
lkcl | programmerjake: 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 |
lkcl | the 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 dependencies | 11:58 |
lkcl | maturin 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 |
lkcl | the 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 it | 12:00 |
lkcl | (and fails) | 12:00 |
lkcl | ghostmansd-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 |
lkcl | so, 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 |
lkcl | and create a bugreport for it, which will go under the "documentation" milestone... | 12:03 |
lkcl | ghostmansd-pc: i'm looking for an appropriate bugreport for you to template... | 12:06 |
ghostmansd-pc | The 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 |
lkcl | ah great then that's dead easy to sort out. | 12:08 |
ghostmansd-pc | script: apt-get install gcc-8-powerpc64-linux-gnu | 12:08 |
ghostmansd-pc | HDL: apt-get install gcc-9-powerpc64-linux-gnu | 12:08 |
lkcl | yep, that's a no-brainer to sort out, feel free to edit HDL_workflow. | 12:09 |
ghostmansd-pc | OK. Do we have some kind of review? | 12:09 |
lkcl | we trust people | 12:10 |
lkcl | and, it's a one-liner, it's easy to check. | 12:10 |
ghostmansd-pc | OK, then another question: is there a way I can check the docs before comitting? | 12:10 |
lkcl | i can see the git commit logs | 12:10 |
lkcl | ah... yes.... if you install ikiwiki locally, yourself :) | 12:10 |
lkcl | personally i don't bother, markdown is so brain-dead-simple | 12:11 |
ghostmansd-pc | What about pia? This will be handled by @programmerjake? | 12:11 |
lkcl | yes, 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 work | 12:13 |
lkcl | ghostmansd-pc: you have git access to the ikiwiki, btw. | 12:14 |
lkcl | if you prefer to use that rather than the ikiwiki online front-end | 12:14 |
ghostmansd-pc | Am I right that I'm supposed to edit libreriscv/HDL_workflow.mdwn? | 12:15 |
lkcl | yes. | 12:17 |
lkcl | either by cloning the git repo or by using the ikiwiki front-end (at https://libre-soc.org/HDL_workflow, going to the menu, and clicking "edit") | 12:17 |
lkcl | whichever is easier / works | 12:18 |
ghostmansd-pc | git push origin master fails | 12:37 |
ghostmansd-pc | ATAL: W any libreriscv dmitry_3mdeb DENIED by fallthru (or you mis-spelled the reponame) | 12:38 |
lkcl | 1 sec | 12:38 |
lkcl | let me check the gitolite3 config | 12:38 |
lkcl | yep, your key is added. this is a good thing to check | 12:39 |
lkcl | can you please run this | 12:39 |
lkcl | ssh gitolite3@git.libre-soc.org | 12:39 |
ghostmansd-pc | fwiw, 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 |
lkcl | and check if " R W libreriscv | 12:40 |
lkcl | " is in the list? | 12:40 |
lkcl | :) | 12:40 |
ghostmansd-pc | I currently only have "W" near testing. | 12:40 |
lkcl | this is a good test to make sure git commit is ok. | 12:40 |
lkcl | ehn?? moo? | 12:41 |
ghostmansd-pc | R libreriscv | 12:41 |
ghostmansd-pc | R W testing | 12:41 |
lkcl | hmm i wonder if underscores in key names are confusing gitolite3 let me just rename... | 12:41 |
lkcl | yyeaah i definitely haven't added you to testing | 12:41 |
ghostmansd-pc | hello dmitry_3mdeb, this is gitolite3@libre-soc running gitolite3 3.6.6-1 (Debian) on git 2.29.2 | 12:42 |
ghostmansd-pc | I'm greeted as dmitry_3mdeb, is that the name that must be added? | 12:42 |
lkcl | ok try again | 12:42 |
ghostmansd-pc | yep, it should work, I got "R W" near libreriscv | 12:43 |
lkcl | right that tells me that there's a bug in gitolite3 involving understocres. | 12:43 |
lkcl | i had added your key as dmitry_3mdeb.pub, i won't be doing that again | 12:43 |
ghostmansd-pc | pushed to master, it seems https://libre-soc.org/HDL_workflow/ got these changes | 12:44 |
lkcl | excellent, yes, it's rebuilt automatically | 12:46 |
lkcl | welcome to ikiwiki, it's pretty awesome. that's all static files as far as nginx is concerned | 12:46 |
lkcl | excellent, so we confirmed you have ssh write access. | 12:46 |
ghostmansd-pc | I only touched toolchain section; I assume pia stuff is to be handled by programmerjake. | 12:48 |
lkcl | yes. | 12:49 |
lkcl | brilliant, looks great. | 12:49 |
lkcl | ahh, good idea, an extra section about using the devscripts. | 12:49 |
lkcl | when in doubts, --> "when in doubt" | 12:49 |
lkcl | or | 12:50 |
lkcl | "if any doubts" | 12:50 |
ghostmansd-pc | We actually have the page regarding dev scripts, but it's buried under a lot of manual cd, make and python invocations | 12:50 |
ghostmansd-pc | https://libre-soc.org/HDL_workflow/devscripts/ | 12:50 |
ghostmansd-pc | > when in doubts, --> "when in doubt" Will update in a moment | 12:51 |
lkcl | yes, i only added that... a couple months back (for someone else), and haven't had time to link it in elsewhere | 12:51 |
ghostmansd-pc | It's linked, but it's easy to miss this link. Also, only apt-reqs and hdl-repos are mentioned. | 12:52 |
ghostmansd-pc | Perhaps toolchain script is worth mentioning as well? | 12:53 |
lkcl | yes good idea | 12:53 |
ghostmansd-pc | Hm. Apparently allowing to change page without the comment is a bad idea. | 12:54 |
ghostmansd-pc | When I check $(git log), I see tons of commits without title. | 12:54 |
lkcl | true... but via the front-end we ignore that one | 12:54 |
lkcl | yes, i often am awake late at night making multiple one-sentence updates. | 12:54 |
lkcl | i'll add ppc64-gdb-.xxxx to devscripts.mdwn | 12:55 |
ghostmansd-pc | Thank you! | 12:55 |
ghostmansd-pc | I've pushed fix so that we a no longer in doubt :-) | 12:56 |
ghostmansd-pc | *we are | 12:56 |
lkcl | let's see if it merges... | 12:56 |
lkcl | excellent, no problems. if you do a "git pull" you should get the change to devscripts.mdwn | 12: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 |
lkcl | ghostmansd: pffh, i don't think anyone either minds or cares :) | 13:00 |
ghostmansd | Regarding 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 |
lkcl | exxxcellent, just got a (simple, scalar) unit test for the FP cos calculations i need in DCT | 13:02 |
lkcl | yes, great idea | 13:02 |
lkcl | 1 sec | 13:02 |
ghostmansd | Should it be in wiki, or it should accompany the sources? | 13:02 |
ghostmansd | I'm more in favor of second, TBH | 13:02 |
ghostmansd | At the same time, wiki is the first thing newcomers see | 13:02 |
lkcl | mmmm... we have sphinx which auto-generates things, from the source code | 13:03 |
lkcl | however... yeah | 13:03 |
lkcl | the w | 13:03 |
lkcl | wiki's where the primary focus is | 13:04 |
lkcl | there is this page https://libre-soc.org/3d_gpu/architecture/decoder/ | 13:04 |
lkcl | however what you're talking about is more of a tutorial / guide | 13:04 |
ghostmansd | It's been a while, and all things were new to me, so I will need some time to recap the stuff. | 13:04 |
lkcl | good recap idea. plus we can assign a budget for it | 13:05 |
lkcl | https://libre-soc.org/docs/ | 13:05 |
lkcl | sub-page off of there is a good place | 13:05 |
lkcl | so a page in this repo, knock yourself out https://git.libre-soc.org/?p=libreriscv.git;a=tree;f=docs;hb=HEAD | 13:07 |
ghostmansd | Do you suggest to introduce a new page, something like "Decoder intro"? | 13:07 |
lkcl | well, if it's specifically the decoder, then that page already exists | 13:07 |
lkcl | ^ | 13:07 |
lkcl | https://libre-soc.org/3d_gpu/architecture/decoder/ | 13:07 |
ghostmansd | But that one is more of architecture | 13:07 |
ghostmansd | And not an "dive into Pyth^W decoder" | 13:08 |
ghostmansd | At the same time, we discussed tests as well, and caller, and specs... | 13:08 |
lkcl | it's... i know: it's not entirely in the right place | 13:08 |
lkcl | yes. | 13:08 |
ghostmansd | Ok, I think new page like "First steps" or something similar | 13:09 |
lkcl | go for it, do what you think works for you, and... yeah good idea. | 13:09 |
lkcl | then cross-link them. | 13:09 |
lkcl | i need to get up and walk about, apologies | 13:09 |
lkcl | back in 20-30 mins or so | 13:10 |
ghostmansd | Ok, I'll do it. I believe we can then proceed to tasks from bugzilla. | 13:10 |
lkcl | well this one *is* a task that can be paid. link to 384. | 13:10 |
lkcl | https://bugs.libre-soc.org/show_bug.cgi?id=384 | 13:11 |
lkcl | so feel free to create a bugreport "create first steps tutorial page" and set 384 as its dependency | 13:11 |
lkcl | ok *really* have to walk about now | 13:11 |
ghostmansd-pc | https://bugs.libre-soc.org/show_bug.cgi?id=660 | 13:23 |
lkcl | ghostmansd-pc, i saw - modified and added a budget of EUR 250 for you | 14:55 |
lkcl | MaciejPijanowski ^ | 14:56 |
ghostmansd-pc | lkcl: 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-pc | s/expose/expand | 19:38 |
ghostmansd-pc | lol, funny miswording :-) | 19:39 |
ghostmansd-pc | I'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-pc | I forgot to mention, I haven't cross-linked it yet. Could you, please, share the right way to cross-link? | 20:03 |
lkcl | that's ver readable | 21:43 |
lkcl | ghostmansd, ok. | 21:43 |
lkcl | http://libre-soc.org/docs | 21:43 |
lkcl | btw we really do need to convert to the case_xxxxx format | 21:44 |
lkcl | long story | 21:44 |
lkcl | i really like it, you can see easily where it's going. | 21:45 |
ghostmansd | Do you mean converting the key w/o underscores? | 21:46 |
ghostmansd | Or do you mean that wiki page must have underscore in name? | 21:46 |
lkcl | i mean: you notice how there's a massive pause in between each sub-test? | 21:50 |
lkcl | that's because PowerDecoder2 takes a looooong time to load all the CSV files. | 21:50 |
lkcl | we "fixed" that by loading only the one Program() and re-using it multiple times | 21:51 |
lkcl | adding each suite of tests to a list | 21:51 |
lkcl | each test created by case_xxxx *not* test_xxxx | 21:51 |
ghostmansd | Aaah, as of now, I checked only test_XXX format. I'm AFK, but IIRC each of them creates program on-the-fly. | 21:52 |
ghostmansd | with Program(...), etc. | 21:53 |
ghostmansd | Perhaps I recall some other place, maybe from another life, please, correct me, if I'm wrong :-) | 21:53 |
ghostmansd | I 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 |
lkcl | no, we haven't gone over anything involving case_xxx because those involve running the HDL vs the simulator | 21:57 |
lkcl | there are actually three ways to run programs | 21:57 |
lkcl | 1) ISACaller simulator | 21:57 |
lkcl | 2) HDL simulator | 21:57 |
lkcl | 3) qemu | 21:57 |
lkcl | (qemu via pygdbmi) | 21:57 |
ghostmansd | Ah, OK, I bet we have more worlds to investigate :-) | 21:57 |
lkcl | more need to be added :) | 21:57 |
lkcl | 4) microwatt | 21:58 |
ghostmansd | (hic sunt leones) | 21:58 |
lkcl | 5) power-gem5 | 21:58 |
ghostmansd | And Program corresponds to...? | 21:58 |
lkcl | 6) cavatools (once added with... thingy.... the c stuff) | 21:58 |
lkcl | ISACaller | 21:59 |
ghostmansd | I mean, it always the same backend? | 21:59 |
lkcl | wait... 1 sec... | 21:59 |
lkcl | no, Program is just a way to turn assembly listings into binaries | 21:59 |
lkcl | so you do "with Program(...)" and you can pass that to the ISACaller single-stepper function | 22:00 |
lkcl | and to the qemu single-stepper | 22:00 |
lkcl | and to the HDL single-stepper function | 22:00 |
lkcl | etc. etc. etc. | 22:00 |
lkcl | we really need a normalised API for this, to unify all the unit tests | 22:01 |
ghostmansd | Ah, ok, got it | 22:02 |
ghostmansd | It seems that in run_tst, we can possibly change the backend which runs the program, right? | 22:03 |
lkcl | that's the theory - that would be the purpose of having a unified API | 22:04 |
lkcl | so even qemu could be specified as a runtime command-line option, to test_caller.py | 22:05 |
lkcl | test_caller.py --backend=qemu | 22:05 |
lkcl | and it would run to completion, extract memory and regfiles, and do self.assertEqual() against *qemu* registers. | 22:05 |
lkcl | the infrastructure is all there. | 22:06 |
ghostmansd | So using a different backend would be a simple matter of passing custom argv and selecting some other simulator than ISA? | 22:08 |
ghostmansd | Ok, 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 irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!