freenode/#clasp - IRC Chatlog
Search
2:30:27
kpoeck
Looking at the flamegraph, I see only c++ frames - no lisp- and there only cc_unwind and __cxa_throw
2:36:06
drmeister
What we want is flamegraphs to work correctly on linux - that we still struggle with.
2:43:17
kpoeck
If you are on a mac, how long does (time (compile-file "sys:kernel;lsp;generated-encodings.lsp")) take?
2:45:31
drmeister
But I just did (time (compile-file "sys:kernel;lsp;generated-encodings.lsp")) on my linux machine and I get...
2:45:50
drmeister
Time real(3.901 secs) run(3.901 secs) consed(445313840 bytes) interps(249) unwinds(69718)
2:51:36
drmeister
kpoeck: cracauer is offline right now - but I'm updating him in a google hangouts chat.
2:55:40
kpoeck
Now I dumped the information in a file. I read that file at run-time and put all info in a variable (with hashtables of hash-tables)
2:56:33
drmeister
Wait - on the buildbot it will be doing compile-file-serial. I'm using compile-file right now.
2:57:23
kpoeck
The variable is than dumped by the compiler with (setq *encoding-cache* #.*encoding-cache*)
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.