libera/#clasp - IRC Chatlog
Search
18:37:14
drmeister
I'm currently working on speeding up startup. I more or less figured out how to use multiple cores to link at startup.
18:37:41
drmeister
Of course what I need isn't supported by llvm13 - but it will be in llvm13.0.1 (sigh).
18:38:59
drmeister
I'm going to put it aside though for a few days. I need to refactor how we deal with code so that we aren't allocating huge amounts of memory for code.
18:40:55
drmeister
The parallel JIT doesn't let me store anything in thread-local storage. I have to do everything in global variables.
19:12:29
yitzi
How can the API change from 13.0.0 to 13.0.1? Are they not using semantic versioning over there?
19:28:13
phantomics
If anyone can help I'm having some trouble compiling Clasp, is a specific gcc version required? I'm getting a long list of error messages like /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/fs_path.h:380: error: undefined reference to 'std::filesystem::__cxx11::path::has_root_directory() const' when building build/boehm/iclasp-boehm
19:29:30
phantomics
I'm using llvm, have llvm 13, not sure why it's looking in a /usr/lib/gcc folder
19:32:29
drmeister
phantomics: Copy the wscript.config.template to wscript.config and edit this line:
19:33:07
drmeister
It's the path to the llvm-config executable - it tells clasp where everything llvm/clang are
19:33:28
phantomics
Got it, thanks, I tried entering llvm-config in the CLI and it doesn't seem to be present on the system
19:34:18
drmeister
Yeah - they changed a bunch of function calls that impact us. The DIBuilder::createFunction and a few others got an extra argument called "Annotations".
19:34:44
phantomics
Yes, have llvm-13 installed, the compilation of Clasp gets to about file 196/205 before it hits the error
19:40:24
drmeister
phantomics: Once you edit wscript.config you need to rerun ./waf distclean configure
19:40:58
drmeister
::notify kpoeck When I run ./waf build_cboehm and then (ROOM) with the product it hangs. Investigating...
19:55:29
phantomics
Note the part in the output where it says "Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8"
19:56:58
drmeister
If that's the only problem kpoeck is seeing I'll just have (ROOM) print a message when it's not running in boehmprecise.
19:59:29
phantomics
I installed llvm13 using the debian repo at http://apt.llvm.org/buster/, I'm running MX Linux 19.1
20:07:03
Colleen
kpoeck: drmeister said at 2021.11.24 03:34:18: I wasn't able to reproduce the crash with ROOM on macOS. The regression tests work fine. https://www.irccloud.com/pastebin/dtWL1O6R/
20:07:03
Colleen
kpoeck: drmeister said 26 minutes, 5 seconds ago: When I run ./waf build_cboehm and then (ROOM) with the product it hangs. Investigating...
20:10:38
drmeister
Hi kpoeck - I see why ROOM is failing with boehm - I can't walk objects in memory unless I have boehmprecise.
20:11:08
drmeister
If I have ROOM say something to that effect when you run it under boehm - would that fix the regression tests? Are they all due to ROOM going boom?
20:12:13
Bike
though it would probably be better if it could at least give a "this much memory allocated" thing?
20:13:50
kpoeck
I just commented the line with GC_call_with_alloc_lock( walk_garbage_collected_objects_with_alloc_lock, NULL );
20:16:02
kpoeck
it tries to compile https://github.com/sharplispers/ironclad/blob/master/src/macs/gmac.lisp#L294
20:16:08
phantomics
Yeah, it appears to be just something LLVM prints as part of its version description
20:20:38
drmeister
kpoeck: That doesn't sound good. Bike: Can you take a look at compiling ironclad? Is this with a clasp where we turned on automatic compilation of dtrees?
20:22:41
kpoeck
comment says // if calls == COMPILE_TRIGGER then compile the discriminating function.
20:22:45
drmeister
Your build is skipping all of the C++ compilation and jumping straight to linking.
20:24:41
drmeister
https://github.com/clasp-developers/clasp/blob/main/src/core/funcallableInstance.cc#L460
20:25:36
drmeister
It is automatically compiling discriminating functions when calls == COMPILE_TRIGGER - maybe that's a problem that ironclad has uncovered.
20:27:09
kpoeck
can delete the eval::funcall(clos::_sym_compile_discriminating_function, generic_function); and try again
20:27:19
Bike
yeah, first thing i'd try is commenting that out (i.e. L460-462) and seeing if it's still busted
20:28:01
phantomics
I got a similar error, would you like a full paste of the build output after a distclean configure?
20:28:15
Bike
that said, it's not totally out of the realm of possibility that ironclad is big enough that a compiler related generic function could be called two hundred billion times
20:30:43
Bike
oh but also clos is still using the bclasp compiler so there shouldn't be a recursion issue... eck...
20:49:37
drmeister
phantomics: Yes, can you paste the build output after ./waf distclean configure? If it's going straight to linking then something is screwed up with the waf build system because it's bypassing all the C++ compilation.
20:50:17
drmeister
We've never seen anything like this before. It always amazes me how different everyones build experience is.
20:59:30
phantomics
drmeister: here is the full output of the build after distclean. https://dpaste.com/9C3C7HQ59 Thanks for looking into this.
21:07:26
phantomics
Entering the command in that paste gives me no output, I guess confirming that lib is not installed
21:09:16
drmeister
phantomics: I'm not up on finding libraries - do you know how to go looking for libstdc++.so?
21:11:19
phantomics
I find: libstdc++.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (libc6) => /lib/i386-linux-gnu/libstdc++.so.6 libstdc++.so.6 (libc6) => /usr/lib32/libstdc++.so.6
21:11:35
drmeister
At the bottom of that std::filesystem page it says: "Using this library may require additional compiler/linker options. GNU implementation prior to 9.1 requires linking with -lstdc++fs and LLVM implementation prior to LLVM 9.0 requires linking with -lc++fs."
21:20:10
drmeister
It's gotta be libstdc++.so - or like that note said "Using this library may require additional compiler/linker options. GNU implementation prior to 9.1 requires linking with -lstdc++fs and LLVM implementation prior to LLVM 9.0 requires linking with -lc++fs."
21:24:04
phantomics
Yeah I currently have libstdc++-8-dev, I'm going to see if I can get a newer one
23:13:10
Bike
cst-to-bir is beginning to work. i can compile some small functions successfully. i'll have to run metrics to see what the performance improvement is, of course, and there's a bunch more methods to define