freenode/#clasp - IRC Chatlog
Search
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.
1:17:30
drmeister
Bike: We changed the pointer fixing template functions a couple of months ago - didn't we?
1:22:55
drmeister
(eq (core:unbound) (clos::class-valid-initargs (find-class 'concrete-syntax-tree:ordinary-required-parameter-group))) --> NIL