freenode/#clasp - IRC Chatlog
Search
13:24:52
Bike
i can't use my clasp-changes branch in the wscript for some reason... oh well, i guess
13:29:58
drmeister
I had some trouble merging dev into mps last night and a lot of it involved the wscript file.
13:30:00
Bike
also, i think initarg checking for make-instance might be too lenient, should look at that
13:31:08
drmeister
What problems are you seeing with the wscript file? I had a lot of trouble with git yesterday merging the mps and dev branch - changes to wscript kept disappearing - I fear I might have damaged it.
13:32:30
Bike
nothing major. when i changed it to get sicl from my clasp-changes branch instead of from a commit hash it said it couldn't find it.
13:34:28
drmeister
If there's a problem it would be better to fix it sooner rather than let it bite us in the butt later.
15:40:49
Bike
drmeister: you should be able to build dev with cst now. export CLASP_FEATURES="CST". takes 46min here.
15:43:03
beach
Am I understanding this right, that build time with CST-to-AST is now only marginally slower than with Generate-AST? And this is thanks to optimized inlining?
16:26:31
drmeister
Also, have you tried going in with the debugger and use the source tracking to help debug the problem?
16:28:43
drmeister
Bike: link times aren't being factored in here - but I am building with :DEBUG-LLVM-OPTIMIZATION-LEVEL-0 - so that will lead to differences between your build and mine.
16:29:36
drmeister
Interesting differences. I have relatively less time spent in llvm because llvm isn't being asked to optimize anything.
16:49:44
drmeister
fixup.lsp and format.lsp are coming in as the slowest files to compile-file at 1294 and 1624 seconds respectively.
17:02:04
drmeister
Can inlineable functions get enclosed more than once - when I was generating HIR it looked like there was a separate HIR subgraph for every inlined function.
17:55:14
drmeister
When I load compile-file'd code - I don't get debug information. But the code in the image does have debug information. There's probably some work for me to do there.
18:43:30
Bike
well i already have one, because it's while compiling find-subform-with-arglist that it fails
18:43:57
drmeister
Yeah - that's what I've got as well - I'm paring it down - but you have a headstart on me.
19:48:59
Bike
i hit some psycho edge case where dot takes years on the after-inlining file even though it's only twice as big as teh before file that takes a few seconds
19:52:22
Bike
i think i've pared it down about as far as it will go and it's still got a five-clause cond
20:10:27
drmeister
When does inlining make the HIR larger? Do you see the same HIR subgraph inlined in different places?
20:11:04
drmeister
When I was looking at them the last couple of days it looked like the absolute number of instructions remained close to constant before and after inlining.
20:11:28
Bike
in this case there's a local function that can be inlined in multiple places, so i expect it to get bigger
20:22:43
drmeister
My previous build with boehm for the CST branch... I failed to reproduce the time (~1h15m). I just ran it again and it took 39m29s.
20:24:01
drmeister
So MPS and Boehm build CST equally fast and they take about as long as to build the AST branch.
20:45:59
Bike
well, yes. or when i undo my latest optimization, which avoids calling reinitialize-data
20:48:04
Bike
it's possible it's in the code for the probably unusual case of a function with multiple uses. i can do some telemetry there.
20:50:57
drmeister
Do you know the name of the lambda when you are doing the inlining? Define a special variable that contains a list of names and only inline the functions that are in the list.
20:54:51
drmeister
Am I reading the HIR correctly? You are enclosing it in one function and then funcalling it in another?
20:56:45
drmeister
So is grovel-form inlined? I thought for inlining you enclose a function and then funcall in a successor.
21:30:51
Bike
ok, i can see the problematic code in one of the partway inlines. can pick up there tomorrow, figuring out which inline caused it
23:29:54
drmeister
In c++ i was calling a function that expected a SourcePosInfo_sp a different pointer - so it was reading crap out of the object and it failed converting crap into an i32
23:38:01
drmeister
I very often need to pass a derived pointer like SourcePosInfo_sp to a function that expects a T_sp
23:39:01
drmeister
But what's not ok is to call a function that expects smart_ptr<SourcePosInfo_O> and pass it a smart_ptr<T_O> - that's what was happening here.
23:39:44
drmeister
I'm disciplined enough not to do this - but here was a case where I made a mistake.