freenode/#sbcl - IRC Chatlog
Search
13:41:47
stassats
if i'm jumping into the middle of an otherwise unreachable lambda, it will show the block to be dead
13:50:59
stassats
removing (eq (functional-kind (block-home-lambda block)) :deleted) doesn't work, i wonder why
13:53:31
stassats
it fails in find-dfo, but shouldn't it just become unreachable, or is it coming through nlxes or something?
13:55:00
stassats
and it was me who inserted that check into find-dfo, can't ask anyone or consult git blame any further...
14:14:40
stassats
ok then, but component-head->succ are only NLXes and non-tail-called functions, not very good at catching unused stuff
14:30:21
stassats
so the job of eliminate-dead-code is simply to purge component-head->succ of dead blocks
14:39:08
stassats
so what if delete-lambda just unliks itself from there, then something similar for nlx
15:39:42
pfdietz
I'm going to try to modify the random form generator to make non-integer forms for "top level" forms (those whose return values end up being returned rather than being fed into arithmetic operator.) Maybe that would have caught this.
15:40:55
stassats
my modified test case crashed the compiler, so don't even need to check the result
15:47:31
pfdietz
Hypothesis (a test framework in Python) takes a different approach: instead of simplifying the generated form, it mutates the sequence of random bits fed to the generator. This ensures that correct-by-construction is maintained.
16:43:26
stassats
but it's probably useless, a lot of places check if the lambda of a node is deleted
18:03:19
stassats
jumping into LETs is safe, but not functions, so I don't have anything to worry about along that path