freenode/#clasp - IRC Chatlog
Search
2:57:32
drmeister
Bike: The parallel compile-file works. I have a little problem with asdf - it wants to generate object files in some cases. So multiple object files go to what? I'm trying a static archive.
2:58:02
Bike
what does parallel compilation have to do with it? doesn't the parallel compile file look the same from outside?
2:59:24
drmeister
Not quite. compile-file-parallel generates an object file for each top-level form. Then it links them together into a single entity.
3:00:33
drmeister
compile-file-parallel generates AST's for each top-level form in serial and then generates a thread for each AST to take it to either an object file or a bitcode file (currently just object files).
3:01:36
drmeister
Well, compile-file-serial will generate a single object file. I'm not yet sure what to generate from compile-file-parallel.
3:02:31
Bike
it's just a change to the internal operations. it shouldn't change how it looks to users.
3:02:46
drmeister
I would like it to be. I find it a bit disturbing to generate something different in the two cases when :output-type :object
3:03:24
drmeister
post: https://stackoverflow.com/questions/2980102/combine-two-gcc-compiled-o-object-files-into-a-third-o-file
3:04:01
drmeister
I have seen multiple object-files -> static archive that works like an object file.
3:04:27
Bike
uh, wait, how are there multiple object files coming out. i thought it put a bunch in /tmp and then linked them together into one.
3:05:22
drmeister
compile-file-parallel generates multiple .o files as an intermediate step - one for each top level form.
3:08:16
drmeister
But besides that - how does it perform? I can compile-file-parallel asdf.lisp in 120 seconds while compile-file-serial is 195 seconds.
3:08:35
Bike
it produces multiple .o as an INTERMEDIATE step. the final step is still the one object file
3:09:04
drmeister
I've never linked multiple object files into a single object file - have you done that before?
3:10:42
drmeister
Oh - yes - I'm trying some experiments. Mostly I'm waiting for things to build while I trawl the interwebs for ideas.
3:40:36
drmeister
ld -r -o test.o test_0.o test_1.o test_2.o works on macOS and where I found it they said it works on linux.
14:46:01
Buje
wrote out a generic function with a comple complicated methods to see how long it takes to compile - 5-6 ms with the bespoke compiler, 16-17 ms with the bclasp
14:48:16
Bike
calling the function a million times takes 310 to 360 ms with bclasp, 240 to 290 ms with bespoke
14:49:50
Bike
the variance is about the same either way, so it's not relevant, so i won't think too hard about it. that's what i'm going with.
14:50:28
Bike
anyway maybe we can just inline the few functions used in the bclasp version and the speed difference will mostly go away and we won't have to think about how to do horrible things with arguments vaslists