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
22:32:08
karlosz
Bike: yeah we need better dead code handling strategies so not everything is just literred with unused-p
22:32:57
karlosz
you should only be allowed to remove a function from a module if its not enclosed and has no local calls
22:44:12
karlosz
well it would be cool to come up with an elegant approach that always makes sure that the graph is clean from instructions with no uses
22:46:35
Bike
i mean i'm just concerned with correctness right now. notes would be nice but this does not compile
23:00:28
karlosz
its just that the function got deleted but the code inside the function wasn't cleaned up
23:00:51
Bike
the inner function is still around so it has the unwind but the catch is gone, therefore death.
23:02:29
karlosz
deleting the enclose should just pull a trigger to delete the function which deletes everything in it
23:02:56
Bike
plus rmove-function-from-module calls clean-up-function, which just does (mapset nil #'clean-up-iblocks (iblocks f))
23:07:11
karlosz
i was also concerned that interpolation would interact badly but i think you covered that base by checking for local-calls
23:10:13
Bike
or maybe not enough, if the inner function is still around trying to refer to the outer one
23:11:03
Bike
mostly the miscellaneous tests, which have been remarkably good at ferreting this kind of problem out
0:37:30
drmeister
Those are different molecules made using our chemistry, approx the same amount of each.
0:37:52
drmeister
Note the 4th from the left and the 1st from the left - they are puffy - like aerogels.
0:41:17
drmeister
These and ~150 other molecules were synthesized in the last month using an application that I developed in Cando that designs the sequences and generates control files for the robotic synthesizers that made these molecules. It also generates a chemical formula database for each molecule that we use to assess how well each synthesis worked.