freenode/#clasp - IRC Chatlog
Search
15:55:56
Bike
i think my speed improvements are a bit wrong since they don't account for the case of an enclose-instruction having its users in a lower function which is itself removed
16:00:25
drmeister
Are they just regular slots in the instance - they just happen to point to a shared object, shared across all instances of the class?
16:01:59
Bike
i was going to iterate over the raw instance refs but for class slots i'll probably have to do mop stuff so i guess i'll just always do mop stuff
16:14:59
Bike
well the code isn't correct for my latest change. i noticed the enclose thing while looking into it. since i thought the code wouldn't do that, it's not doing what i think it's doing, so it's probably related to the actual correctness problem.
16:18:04
Bike
having functions like that is the unusual case since it only comes up from LABELS that aren't recursive. i'll have to test with that more
17:33:47
Bike
can't really incorporate the instance #n# stuff because of boot problems. i'll fiddle with it more, i guess.
21:17:39
Bike
i actually did write the code to delete unused encloses properly. so something is definitely wrong
2:01:08
drmeister
Bike: Is there any way to verify equivalence of two programs? Before inlining and after inlining?
2:02:13
drmeister
Something to automatically validate the HIR after inlining - it seems like that would be fantastically useful.
2:02:34
drmeister
This debugging broken code is so painful. You are doing a great job keeping at it.
2:04:02
drmeister
It seems to me that there should be some invariants before and after inlining, like tracing every path from entry to return - the same sequence of instructions (except the funcalls and enclose that were inlined).
2:51:08
beach
But, if the inliner does only what is in our paper, then checking that the same instructions are executed before and after is doable.
2:51:58
beach
When you introduce transformations that add or remove instructions, I think all bets are off.
2:52:30
drmeister
Bike may have the current situation in hand - but I remember back to when I was debugging HIR issues and I see his HIR issues. Trying to spot problems in these gnarly HIR graphs is a needle in a haystack problem.
2:53:09
Bike
in this case i don't think a validator would tell me more than i already know, which is that a datum is lacking a proper owner
2:55:01
drmeister
I know - I'm a bit conflicted about it as well. Invest time in fixing the current problem or time into a tool to catch problems in the future.
2:56:38
drmeister
A text based representation of HIR might also be useful. Graphs are nice until they get big.