freenode/#clasp - IRC Chatlog
Search
11:47:44
drmeister
I received the second dose of the Pfizer vaccine on Sunday - it wiped me out yesterday.
12:07:22
drmeister
Hi Bike, frgo_ - I got embedded snapshots within the executable working on macOS.
12:09:08
drmeister
The key was 'ld64' has a --sectcreate option that lets me attach a large binary file when linking an executable.
12:10:06
drmeister
We can also embed the link command into the executable so users could create standalone executables if they have the object files.
12:10:38
drmeister
There doesn't appear to be any other way to attach a large (300MB) binary file to an executable quickly.
12:12:11
drmeister
Then at startup on macOS I can get the section start/length using 'getsectiondata'
12:15:00
yitzi
Also, glad you recovered from the vaccine. The Moderna one hit my wife hard, but didn't really phase me.
12:20:14
drmeister
Yes - you can test the snapshot stuff soon. It requires the deploy script future branch
12:26:57
drmeister
Bike: I may be breaking backtraces - we were loading a symbol table from ELF files (running nm on macOS) at startup - we shouldn't be doing that - we should be using DWARF.
12:28:05
Bike
are we set up for that? i vaguely remember there being problems with using the lldb dwarf parser stuff
12:32:08
cracauer
The VPN central machine went down yesterday. Maybe Bigmac is on the VPN with the GUI and needs a kick?
13:06:35
drmeister
I'm think I'm running into a problem running a subprocess in python that generates too much output.
15:26:25
drmeister
I noticed a problem in Cando though - I create information on the elements (atomic elements, chemistry) in C++ malloc memory. I need to move that into GC memory.
16:02:04
attila_lendvai
so, clasp has no releases? not even in the form of some git tags that mark a state that is semi ok, e.g. for getting included in nixos?
16:35:48
Bike
we were talking about doing one once the ave load stuff works, but we should also document the C++ interface
19:21:51
drmeister
Snapshot save/load works with embedded snapshots - and the link command line is embedded within the executable so users could (with the object files in place) generate their own stand alone executables.
19:27:15
drmeister
Now that we can generate standalone executables containing everything I think we are a grown up Common Lisp.
19:50:40
Bike
"Closing the *jit-log-stream* because the jit-pit 17594 does not match our pid 17611" hopefully i can ignore this?
19:56:03
drmeister
-rwxr-xr-x 1 meister meister 2218040224 Apr 13 15:48 build/boehmprecise/extensions/cando/cando
20:00:00
Bike
"../../src/core/lisp.cc:442 There are DEBUG_xxxx flags on - check the top of foundation.h !!!!"
20:00:18
Bike
it seems to be finished, except after it wrote out the asdf fasl it's just kind of sitting there
20:00:48
drmeister
But what I would ask you to do is get the backtraces to work again using the DWARF facilities.
20:01:25
Bike
i still have a branch sitting around with variable info in the dwarf but we don't have anything reading it i don't think
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!