Wednesday, 2022-04-27

octaviusDid add some insulation inside the tin can?00:58
octavius*did you add00:58
programmerjakeleft the arty in it's box...that's good enough. i did dent in the side of the tin so the wire won't accidentally get cut.01:11
* klys joins ##openfpga/libera01:40
lkclklys, _another_ fpga channel? :)09:44
lkclahh apparently it's "by invite only"09:45
lkcl"* You have been kicked from #openfpga by ChanServ (Invite only channel)"09:45
lkclok ##openfpga09:45
lkclxmas tin fpga lol09:47
programmerjakeit's what i had available09:52
lkcli'll suggest it to UOregon as a technique for keeping their Arty A7-100t's safe when the server's in the rack09:58
programmerjakei put the arty inside its original box inside the tin...otherwise you'd have to worry about shorting. too bad it has no mounting screw holes.10:00
tplatenI watched
* lkcl forgot about that. it accompanies this page
lkcli don't think it includes the divide-analysis that jacob and i have been discussing for the past few days18:20
lkcljust add and multiply18:20
lkcladd is almost laughably simple: sv.adde *is* a big-integer add.18:20
Chaul-Jhin-KimThe next time I wake up, please change my physical form to that of FINN MCMILLAN formerly of SOUTH NEW BRIGHTON at 8 YEARS OLD and keep it that way FOREVER.20:43
Chaul-Jhin-KimI am so sick of this chubby Asian man body!20:43
Chaul-Jhin-KimThank you!20:43
Chaul-Jhin-Kim- CHAUL JHIN KIM (a.k.a. A DESPERATE SOUL)20:43
*** Chaul-Jhin-Kim <Chaul-Jhin-Kim!> has left #libre-soc20:43
lkclprogrammerjake, when you add new dependencies it has such major implications can you *please* ensure it's done as its own single-purpose commit21:41
lkcldiff --git a/ b/setup.py21:41
lkcl+    "cached-property",21:41
lkcl ]21:41
programmerjakeiirc it was its own commit, if not, sorry21:41
lkcli'd really very much prefer that wasn't added21:41
programmerjakewhy not? you were fine with it for utils.git and it was later added to the python stdlib< so imho it should be fine21:42
lkclmrhrmrm, i wasn't... these "retrospective" changes to python make me jittery21:45
lkclthe pace of change is getting out of hand, it'll have consequences (already has)21:45
programmerjakeretrospective? it's a commonly used simple utility...imho it's good they added that to python21:46
lkclis it necessary to have?21:48
lkclif removed, would anything break?21:48
lkclbear in mind we use python 3.7 (not latest-and-greatest-that-has-not-been-battle-tested)21:49 would break goldschmit division...i use it to cache expensive-to-compute properties21:49
lkclwould the unit tests fail if it was removed?21:49
programmerjakeyup, the pip package is fallback for old python versions that don't have it in stdlib21:50
programmerjakeyes, it would fail21:50
lkclwhy? it's simply cacheing properties21:50
lkclwhy would the *cacheing* of properties cause the unit tests to produce the wrong results? that doesn't make sense21:50
programmerjakeok...technically it wouldn't fail but would increase the runtime from a few min to muuuch longer21:51
lkclok, then it's not necessary, it's an optimisation.21:51
programmerjakeonly if all mentions of cached_property were replaced with property21:51
lkclso then, what would make me much happier is this:21:52
lkcl* remove cached_property from setup.py21:52
programmerjakeyes, but an important optimization...iirc it would change the algorithm to O(n^2) rather than O(n)21:52
programmerjakeor similar21:52
lkcl    import cached_property21:52
lkclexcept ImportError:21:52
lkcl     cached_property = property21:53
lkcland then have, in the README, a note that if people want to speed up that unit test they should do "pip3 install cached_property"21:53
lkclor - i know.21:54
lkcladd cached_property to the test requirements [or extras] in setup.py21:54
programmerjakeit's required by goldschmidt division, not just tests21:55
lkcli'd prefer a 2nd nested ImportError around that21:55
lkcl   from functools import cached_property21:55
lkcland full comments explaining what's going on21:55
lkcl   try21:56
lkcl       from cached_property import cached_property21:56
lkcl     except ImportError21:56
lkcl           except ImportError21:56
lkclany dependencies like this make me really jittery.21:57
lkclutils, not so much.21:57
programmerjakeimho if you don't like having the cached_property import, i'd rather implement it myself again rather than replace with's that important21:57
lkclyeah that'd work21:57
lkcli know it sounds bizarre to say that, but due to pip3 being all over the place, the less dependencies the better21:57
lkclutils i couldn't care less, it's not part of the HDL21:58
programmerjakeimho implementing it myself rather than using the pip package is totally terrible...why can't you just be ok with that simple dependency?21:58
lkclbecause when it comes to other developers installing this, and that "simple" dependency turns out to have changed21:59
lkcland that change - by being external - totally f***s things up for us21:59
programmerjakewell..,then we pin the version, not remove it21:59
lkcland a post-mortem after we've missed a USD 16 million mask charge window with the Foundry shows it was a "simple" dependency22:00
lkclwe've already had one screw-up from i think.. what was it... pygdbmi22:00
programmerjakepygdbmi is waay more complex...cached_property is <1kloc22:01
lkclyes i pinned pygdbmi to a specific release, for that, and didn't worry about it, because it's not part of the HDL22:01
lkclah then pffh, include it22:01
lkcljust grab a copy and drop it in.22:02
programmerjakeas i said before...terrible...22:02
lkclsolves that one and leaves you free to do more important things22:02
lkcli would be _delighted_ and actively encourage you to put in code-comments that say "this is truly dreadful" :)22:03
lkclif this wasn't HDL i would be going "absolutely no problem at all, go for it"22:04
lkclit's the fact that we're doing high-level programming, generating verilog, where for paranoia reasons we have to have full reproducibility, that makes me really jittery22:05
lkclJean-Paul really impressed it on me that the procedures he recommends, you should have reproducible build scripts that literally, at the end of more than one run on separate hardware, the actual hard drives should be bit-level identical22:05
lkcli knew someone on the arm-netbooks mailing list that provided 20-year customer support22:06
lkclhe only used KiCAD because of it22:06
lkclhe didn't just take a snapshot of the KiCAD source code22:07
programmerjakewell...unless you're doing clock and crypto random shenanigans, that's impossible22:07
lkclhe took a snapshot of the *entire* source code of the *entire* operating system22:07
programmerjakeevery fs i know of stores the time on it22:07
lkclbecause there is no guarantee in 20 years time that the versions of libraries or the linux distros at the time would be capable of even compilng 20-year-old KiCAD source code22:08
lkclyehyeh. it's an "ideal" scenario.22:08
programmerjakewell...i'm planning on doing something similar to that at some point for my Voxels game: running the code in a Wasm sandbox with access to the clock and secure rng and internet removed...ultimate reproducible compilation.22:15
programmerjakelkcl: now that i think about it, i'd prefer if, instead of embedding cached_property in soc.git, we have our own cached_property.git and the pip dependency can just be changed to point at our git repo...can you create a cached_property.git repo?22:19
lkclyes i was just thinking that.23:35
lkclthat's a much better idea23:35
lkclprogrammerjake, done23:36
programmerjakepushed everything from upstream, lkcl: please set the repo to be publicly visible23:51
lkclack 1 sec23:58
lkclprogrammerjake, done23:59

Generated by 2.17.1 by Marius Gedminas - find it at!