freenode/#clasp - IRC Chatlog
Search
4:00:39
karlosz
kpoeck: yeah, i asked Bike to merge your change because i was tired of seeing that file take so much time
4:01:26
karlosz
it also started hanging for me - i simply kill the process and rebuild and it seems to go through for some reason
12:41:14
kpoeck
Some exiting progress of Bike and karlosz regarding Cleavir (Version 1). For months I coudn't compile maxima, but now that works again due to improved inlining
12:42:44
kpoeck
It seems to discussions of Bike and karlosz are very productive (although hard to follow)
12:44:14
kpoeck
Regarding performance compiling "generated-encodings.lsp". I redid a flamegraph on macosx, https://kpoeck.github.io/out-37324.svg
12:45:15
kpoeck
Whatever the reason is, I only get helpfull flamegraph if I use "CLASP_BUILD_MODE = 'object'"
12:46:24
kpoeck
drmeister said it should work for CLASP_BUILD_MODE = 'faso', but it doesn't really work for me, svg are generated, but the content is reduced (the lisp part seem to be missing)
12:48:07
kpoeck
I also tried metering with Swank-metering. The results says that most of the compilation time is spent in CLASP-CLEAVIR::SIMPLE-EVAL-CST
12:50:04
Bike
equivalent to saying most compilation time is in cst-eval, aka evaluating things in eval-when, i think
12:53:49
kpoeck
(time (ext::process-encodings-file)) -> Time real(2.997 secs) run(2.997 secs) consed(384374048 bytes) unwinds(69414)
12:59:30
drmeister
kpoeck: There is another option that you need to provide to the build to get symbols in backtraces.
13:00:41
drmeister
That is because the unix 'backtrace(...)' function doesn't have access to any info for JITted frames and interpreted frames.
13:01:31
drmeister
So DEBUG_JIT_LOG_SYMBOLS writes a file to /tmp/perf-<pid>.map and the flame graph tool uses it to fill in missing symbol information.
13:02:00
drmeister
It's an extra file that clasp generates and so only developers will need to turn it on.
13:03:56
drmeister
I ran into a problem building cando - it hangs when it's installing it - I'm trying to figure out why. (sigh)
13:06:05
drmeister
To integrate cando into clasp someone would clone https://github.com/cando-developers/cando.git extensions/cando
13:06:58
yitzi
I know...the clasp stuff used to be on separate RUN lines. I just left the cando line there as a reminder to do it at some point.
13:06:59
drmeister
./waf build_cboehm needs cando installed in the clasp directory hierarchy before you build everything - it will build the extension into clasp automatically.
13:08:29
yitzi
Have you committed your changes? Maybe I can try after I get back from my morning walk if you haven't figured it out yet.
13:10:27
drmeister
This is what I've done so far - I added the lines to install cando. It's hanging on: RUN ./waf install_cboehm
13:11:20
drmeister
I think it's trying to build the quicklisp code for cando but 'waf' - our build system that we all love to hate suppresses the output and so we have no idea where it's hanging. Thanks 'waf'.
13:15:52
yitzi
It could? No idea really. The installed .clasprc references the quicklisp installed by SBCL earlier in the dockerfile
13:16:07
drmeister
Also cando doesn't need any quicklisp local packages at that stage - it supplies it's own quicklisp systems and downloads others from the standard quicklisp repositories.
14:15:42
kpoeck
Bike cleavir-env:cst-eval seems to be called for every top-level form, see https://gist.github.com/kpoeck/c7124d975e99806570262041940b9f9c
14:16:24
Bike
that's not every toplevel form, it's the eval-whens in the toplevel forms in the file you picked
14:19:52
Bike
all of thse hopefully don't even get to the ast interpreter, sincce they're just progn, quote, and function calls
14:20:37
kpoeck
Didn't take implicit eval-when into account, so now I finally understand what you said
14:56:50
drmeister
It looks like we haven't submitted a pull request for bordeaux-threads. I'm going to submit one.
14:59:26
Bike
alright, if i have the ast interpreter check for interpretability ahead of time, the compile time drops from "100s-120s" according to karlosz to like 80
14:59:50
Bike
for asdf. still more than the compiler, so it's still stupid. if i can get the compiler to work on an ast directly that ought to be fixable