freenode/#clasp - IRC Chatlog
Search
10:02:14
Colleen
attila_lendvai: drmeister said at 2018.07.05 02:44:52: I'd rather keep it - C++ code size isn't really an issue and faster is better in my eyes.
10:02:14
Colleen
attila_lendvai: frgo said at 2018.07.08 17:28:56: I would like to align with you on how we define a protocol for integrating extensions into the build process automatically.
13:07:15
Colleen
Bike: Kevslinger said 2 hours, 53 minutes ago: this is a reminder for Kevin to ask you a question.
13:07:15
minion
Bike, memo from makomo: the "const-size" version of once-only implemented using the list version: https://plaster.tymoon.eu/view/850#850. no EVAL! i guess the most general way to go about it then is to always write a version which works with an arbitrary number of forms and then derive the const-size version from it.
14:18:23
Bike
turns out we've been masking undefined function style warnings if there are no other warnings
16:03:25
Bike
printing undefined function warnings results in a lot of undefined function warnings, but they're almost entirely spurious
16:14:38
beach
If so, I don't think it takes into account compilation units. It even complains about directly recursive functions.
16:17:58
Bike
there are handlers on the cleavir conditions anyway, because a call to an unknown function being a compile-time error wouldn't really work.
16:25:19
drmeister
I've reached a conclusion - Clasp's compiler is slow because LLVM is slow. Lowering llvm-IR to native code without optimization is expensive - it takes seconds.
16:25:52
drmeister
beach: The rat appears to have escaped by chewing his way out of the wall to the outside world.
16:27:32
drmeister
It's a little difficult to describe - but my dad, when he was in his 80's cut a hole in the side of the house and put a piece of molding on it to cover the hole and allow an electrical wire to pass from inside the house to the outside (not to code!). The cavity in the wall had a hole going into the pantry and this large hole with a piece of molding over it.
16:28:04
drmeister
I had trapped the rat in the cavity in the wall for two days while I waited for it to get hungry and I would trap it when it tried to reenter the pantry.
16:30:33
drmeister
But there was no evidence that it was still in the wall. So I proceeded closing things up.
16:33:39
drmeister
Looking from the outside of the house in to the cavity in the wall through to the hole in the pantry that the rat was using to enter the pantry https://usercontent.irccloud-cdn.com/file/xnjfDumc/1531326730.JPG
16:35:19
beach
Is it that they have some quadratic algorithms and you are compiling bigger chunks that usual.
16:37:21
drmeister
All I know is I turn off all optimizations and I now properly (I think) track all time spent in llvm - and LLVM comes out to 50% to 80% of the time it takes to take a form to a function pointer.
16:38:17
drmeister
I'm going to add these times to the output when clasp compiles files - so that we can see this every time.
16:38:35
frgo
We are calling llvm as a library - we don't start a process always, or do we? (Sorry - might be a very dumb question but ...)
16:39:06
drmeister
We are calling llvm as a library - there are no processes or interprocedural communication going on.
16:39:31
drmeister
This is time spent selecting instructions, assigning registers - all that good stuff.
16:41:51
drmeister
I added a cmp:with-track-llvm-time macro and I wrapped it around every llvm call that takes significant time.
16:43:12
drmeister
Now - this is the bclasp compiler - but the cclasp compiler isn't much different. The cclasp code is a bit better and the cclasp compiler does more work - it kind of balances out.
16:44:24
drmeister
I'm going to print the total compile time and llvm time in the compile-file output - so we can see it everytime we build.
16:55:13
Bike
we do have it compiling individual forms, or something, right? because it seems to have several compilation units per file
17:07:55
Shinmera
Yay, Staple2 is now on Quicklisp so you could test its docbrowser (and Definitions by extension) with clasp now.
17:09:56
Bike
since you asked me that stuff i've cleaned up the source locations a lot, so i'll take a look
18:32:36
Bike
"Could not find single dispatch target symbol[FPMATHTAG]"... don't think i've made hugechanges though
19:28:05
drmeister
The lines that start "Seconds real ..." Those are the real/run/llvm time for the immediately preceding load or compile-file
19:29:08
drmeister
Subtract the llvm time from the real time and you have the time bclasp is spending doing compilation and generating the module.
19:30:03
drmeister
When you run down the entries - it's clear that 50-80% of the time is spent in the llvm library.
19:44:25
Bike
also if i try to look at the result of common-lisp-backtrace-frames in the repl it hangs, so that's something
19:46:00
Bike
swank expects the "print-name"s in the backtrace to be symbols in simple cases, but it's getting strings
19:50:47
Bike
plus sourceinfo from that function is messed up even though other functions in the file are fine