freenode/#clasp - IRC Chatlog
Search
20:06:23
attila_lendvai
re building: i have a very good experience with nix. i switched my laptop to nixos a couple of months ago, and while there is a lerning curve, it's much more flexible in handling the dll hell
20:07:01
drmeister
I think the pause is because of a problem getting lots of output from a subprocess in waf.
20:07:04
attila_lendvai
i'll try to build the future branch and see if i can convince it to get me a recent enough llvm build
20:08:04
drmeister
attila_lendvai: Did you get the llvm commit that we use? I think I gave it to you yesterday.
20:11:20
Bike
that's fine i guess. i'm just remembering way back when we had to maintain an llvm patch and it kind of sucked.
20:11:41
attila_lendvai
drmeister, you may close this issue i guess: https://github.com/clasp-developers/clasp/issues/1161
20:12:57
attila_lendvai
Bike, nix can handle patching, too, rather nicely. and if we set up a build cache, then it automatically downloads the built artifacts based on their hash (most of nix is reproducible build)
20:12:57
drmeister
I'm doing something different now with extensions (in general) and cando (specifically)
20:13:35
drmeister
When I recurse into the extensions to evaluate the build(bld) function - I have multiple functions now: build1, build3, build5.
20:14:18
drmeister
I needed to do that to make sure that stage 1 setup happens followed by stage 3, followed by stage 5.
20:14:36
drmeister
And the intermediate stages - but they are currently only used in the main wscript file.
20:16:52
Bike
i only know it because sometimes users come into #lisp to complain that dlopen is screwed up, but i suppose there are probably ways to fix that now
20:22:53
attila_lendvai
drmeister, nix is a functional language based thingy, that is halfway between a package manager and a build tool. it's like a declarative description of how to build stuff (that includes entire iso images, aka NixOS, a linux distribution). and the best of it all her eis that it has a content addressable cache for its reproducible build artifacts.
20:27:43
drmeister
Dammit - I had no hang on macos - then I switched to linux and saw a hang running a subprocess that generates a lot of output and fixed it and then back on macos there is a hang.
20:28:51
attila_lendvai
what it means is that if e.g. you need a patched LLVM, then you modify the default.nix file in the repo, build it somewhere, it gets uploaded to the clasp-developers' own nix cache, and whoever checks out the clasp git branch, and tries to build it, gets the patched LLVM binaries matomagically
20:34:00
attila_lendvai
and nix can be installed on any linux, and it supports macos, too (not sure how well)
20:36:39
attila_lendvai
drmeister, re llvm release: they already have a tag called "llvmorg-12.0.0-rc5"
20:58:08
attila_lendvai
drmeister, i'll build the future branch using nix, and then if you want i can push a couple of new files into the clasp repo. then i can guide you through (which really is just installing nix on your linux, and issuing a nix-build command).
20:58:49
drmeister
It's late for you - I have a question - how can nix help us? We can talk about it later.
20:58:55
attila_lendvai
if we make clasp emit reproducible files, then even clasp's build artifacts can go into a project-local cache, and enormously speed up builds, including cando and stuff
20:59:31
attila_lendvai
i'll fool around with it tomorrow, and report my progress... but i'm off now. gn!
0:09:01
Colleen
karlosz: Bike said 3 hours, 2 minutes ago: in my cleavir branch i have it working with no MTF insertion early on. it's too slow though - have to redo some optimizations the more general way. also, i hit a weird issue with if-if elim
0:10:45
Bike
https://github.com/s-expressionists/Cleavir/blob/demtf/BIR-transformations/meta-evaluate.lisp#L253-L255 hit this assert
2:04:20
Bike
oh and by the way, this doesn't entirely eliminate multiple-output instructions - there are still multiple output jumps produced by inlining
2:04:46
Bike
it might be possible to remove jumps as you've alluded to a few times, but it would be more work to make the translator understand when it needs to preserve values through unwinding, i think