Thursday, 2021-10-14

Veeraprogrammerjake: Luke told me to open a bug report: adapt ALU test cases to include expected results03:44
Veerain which to open03:45
VeeraLibre-SOC's first SoC or Libre-SOC's second ASIC03:45
VeeraAnd Under which component this bug to be opened in Bugzilla03:45
programmerjakeprobably first soc, and under source code, if that's wrong luke can reassign it03:46
programmerjakewhich bugzilla category you pick may not matter all that much03:47
Veeraprogrammerjake: what is the status of kazan work in concern with Libre-SOC03:47
programmerjakekazan is currently stalled because i'm working on other stuff03:48
Veeraneed any help with installation, setup of mesa and related softwares?03:49
programmerjakei'm at a point where most of the design is in my head and it's currently kinda a one person job till I get the basic architecture written03:50
programmerjakenah, I've got building mesa mostly all figured out, thx anyway03:50
Veerahave you put those instructions some where on wiki?03:52
programmerjakefor building mesa? no, i don't need to build it to work on kazan, and I figured out how to build it years before working on libre-soc, so, no, i didn't put mesa build instructions on the wiki03:53
programmerjakekazan is a totally independent vulkan driver, it doesn't use mesa03:54
programmerjakethe libre-soc mesa driver is separate03:55
Veerafor display what it uses?03:55
programmerjakethe standard x11, wayland, and linux kernel drm interfaces03:56
programmerjakethough that is a ways off, i'm going to implement off-screen rendering first03:57
*** henriok_ is now known as henriok06:54
lkclVeera[m], for the it is so low-level you do not need any high-level software such as mesa drivers.09:33
lkclthe alu test cases are literally running one to three instructions09:33
lkclhigh-level software such as mesa is running literally millions to billions of instructions09:34
programmerjakelkcl: afaict he was volunteering to figure out how to build mesa for use with kazan's development, not with alu_test_cases.py09:36
programmerjakelkcl i'll respond to your other SimdSignal messages in the morning11:25
lkclahh ok12:11
lkclyes no problem12:11
lkclprogrammerjake, appreciate you're probably asleep by now :)13:47
lkclsome notes / insights: it's rather unfortunate that what i have put together for SimdSignal is an absolutely massive inter-connected chain of approximately 8 distinct moving inter-related parts13:49
lkclwhere until all of those parts are completed there is nothing that can be provided which actually demonstrates that it will be successful.13:49
lkclthe big part - the king-pin / corner-stone - is an over-ride of ast.Switch (which now redirects to Value.__Switch__ which can be over-ridden)13:50
lkclwhich, if you look closely at dsl.Module, *everything* thunks down through that one function.  m.If/Elif, m.FSM, m.Switch/Case, they all redirect down through ast.Switch (now Value.__Switch__ which we can now override with SimdSignal.__Switch__)13:52
lkclthat one thing was the subject of literally weeks of study to verify and ensure that it would work.13:52
lkclthere was one scary moment a couple weeks ago where i realised that the original design for SimdSignal.__Switch__ was not going to work, but i quickly came up with a solution13:53
lkclnow, when you said "the whole thing hangs on type substitution in python" you were absolutely correct13:53
lkclbut i detected / suspect that you were saying this not in a positive way but in a slightly disparaging one.13:54
lkclthe whole point *is* to use the Liskov Substitution Principle which python is famously well-known for!13:54
lkclnow, it may make people _nervous_ to make such a massive substitution (Value has over 30 functions, each of which has to be implemented in full, providing full dynamic parallelism on absolutely every single one of those 30 AST Type 1 operators)13:56
lkclbut just because people are nervous and/or do not understand it and/or in the nmigen maintainers case wish to dictate and declare that all and any possibility *of* doing such large LSP is "prohibited because we said so"13:58
lkclthese are not good enough justifications for trying (and succeeding)13:58
lkclparticularly when the alternatives are absolutely awful and have consequences that range from "seriously problematic" to "absolutely catastrophic" for both nmigen and libre-soc, long-term13:59 is a *thousand five hundred* lines of extremely complex code.13:59
lkclabsolutely none of which, through deployment of Liskov Substitution Principle at the ast.* level, either needs replacing or significantly modifying.14:00
lkcleven to attempt to do so is itself a massive project14:01
lkcl(for which we do not have time)14:01
lkcli documented the other reasons - and there are several - at the end of this document
lkclsubstitution in python *is* its strength: it's precisely why i picked it.14:04
lkclit's a beautiful and extremely powerful feature / capability14:04
lkclthat i have successfully exploited to the absolute max.14:05
lkcldropping in alternative objects that have the same API without having to rewrite somebody else's python code should not be taken as a "weakness" or "something to be avoided at all costs", it should be celebrated!14:06
lkclso, i apologise: we need to complete SimdSignal.__Switch__ before i can demonstrate and show that this is going to work14:07
lkclbut there are a ton of smaller pieces that are needed before that can even be done14:08
lkclso please: trust me and help me to get this completed14:08
lkclkylel, testapi looks great i did a whitespace cleanup15:26
kylelYeah thanks, markdown sometimes beats me down. :-)15:27
lkclThis API helps to define a standard way to collect and compare the results from different implementations by abstracting away a certain level of complexity.15:28
lkclimplementations of what?15:28
lkclsuggest not including the word "complexity"15:28
lkclcollect and compare the results of different Power ISA systems, in order to allow different teams to cross-verify their implementations against each other15:29
lkclExamples include testing qemu's execution against the execution of the same program on an IBM POWER9 system15:30
lkclsomething like that15:30
kylelgood point15:33
lkclleave it with you?15:37
kyleloh sure, are you done with commits?15:37
lkclthe wiki uses git so there's never a chance of conflict unless you happen to be editing the exact same line15:41
lkcleven then, it's resolvable15:41
lkclbut yes :)15:41
kylelbeing that I'm married, I try to avoid conflicts. :)15:47
Veera[m]<lkcl> "Veera, for the" <- No it isn't related. It was  a separate chat!16:35
lkclVeera[m], ok :)17:23

Generated by 2.17.1 by Marius Gedminas - find it at!