freenode/#clasp - IRC Chatlog
Search
17:39:29
karlosz
so we are at least an order of magnitude faster in terms of compiling real world programs
17:41:06
karlosz
if we make a change like reeanble inline declarations and see the compile time go up heavily we'll know what happened
17:44:15
karlosz
i guess we aren't really messing with the asts and cst-to-ast since hir is sharing those at the moment
17:45:12
karlosz
it would be nice to be able to mess with that stuff somewhat soon in the future though
17:57:37
Bike
deleting blocks if they have no predecessors is basically not enough, i wonder if something more sophisticated involving dominance is required
17:59:25
karlosz
and make sure that at the same time we note which blocks were removed from the iblocks slot
17:59:54
karlosz
essentially - find unreachable blocks, instead of GCing the dead code we still try to clean up the unreachable blocks
18:00:18
Bike
oh, yeah, i also changed refresh-local-iblocks so that if it finds unreachable blocks it cleans them up properly
18:01:09
karlosz
but yeah anytime theres a chance you couldve disconnected a portion of the graph you probably need to do a full dfs
18:01:44
karlosz
barring knowing more about the local graph structure around the piece you are disconnecting
18:02:49
karlosz
when you disconnect a portion of the graph, instead of running refresh iblocks immediately
18:03:15
karlosz
and it can be done on demand by the next thing that actually needs the correct reachable iblocks set
18:03:56
karlosz
its a bit of complexity but i think it could be worth it if we end up doing major graph surgery a lot
18:05:21
karlosz
so maybe caching that order would be preferred as its not any more costly to compute either
18:15:50
Bike
question: in the local call analysis, to check that the function is in call position, you do (or (eq use (callee use)) (not (member reader (rest (inputs use)))))
18:59:13
kpoeck
karlosz I tried to build ironclad with current clasp from master, and it does get stuck (and allocates 100 GB). I really would like to know if this all caused by inlining
19:06:08
karlosz
kpoeck: if you want to try it, you can pull from the bir branch of clasp and build it
19:13:20
Bike
well we have a verifier and a textual disassembler, so hopefully it'll be easier than with hir
21:00:02
Bike
another question: find-function-local-calls seems to delete a function if /any/ of its encloses are unused? that doesn't seem right
21:00:36
Bike
i'm trying to figure out a somewhat involved test failure that goes away if local call finding isn't done. i suspect interpolation is having problems
21:02:51
Bike
the problem i'm hitting is (lambda (a b c) (block b8 (let ((v1 (return-from b8 a))) (block b3 (flet ((%f10 () (return-from b3 -1)))))))) doesn't compile, saying the b3 catch is missing
21:03:21
Bike
it looks like the let-lambda is deleted, which is reasonable as it is not used, but it seems %f10 is not removed