freenode/#sicl - IRC Chatlog
Search
23:43:30
Bike
1) dynamic environment in a variable sounds good, 2) by "subject to capture" i assume you mean just that an implementation might do so, but nothing in cleavir itself would, as we sorta discussed
23:44:03
Bike
3) catch/block etc having a pointer/successor to the "exit" is difficult since there can be multiple (local) exits
23:44:40
Bike
4) having multiple pointer/successors for a tagbody might be okay, but might be weird for code deletion - basically most tags in a tagbody aren't actually referred to nonlocally, really most blocks aren't either, so most catch instructions are deleted, so we'd have to do something like that probably
23:45:28
Bike
5) i'd like to subsume dynamic variable binding under unwind-protect, but if we can't that's fine too
23:45:57
Bike
6) having the protected form be a normal successor might be a problem because with the scheme i outlined, the protected form still has to be in some kind of closure so the unwind code can get at it- in sicl anyway
23:46:52
Bike
and having unwind refer to catches etc is fine- currently, an unwind actually DOES refer to the catch, but it's with a special slot rather than the successor, so that i don't have to special-case unwind-instruction in the instruction mapping code
3:52:57
beach
Bike: By "subject to capture" I meant (block name (f (lambda () (return-from name)))) where F is unknown.
3:54:20
beach
Bike: I used the wrong terminology. I mean the CATCH would have a reference to the first instruction of the BLOCK/TAGBODY, to the SUCCESSOR of the BLOCK/TAGBODY (not the exit), and to each instruction following a tag.
3:55:26
beach
Bike: If we remove those references, we are back to the problem we previously had with computing ownership. But if you are OK with that, sure, then we can skip those references.
3:57:16
beach
Bike: I will be busy most of the day, because loke is coming over for lunch. I will cook, then pick him up at the train station, etc...
9:22:04
|3b|
when generating code from eq-instruction, should i be looking at the predecessors of the instructions in the 2 branches to determine where they merge againi?