> BEGIN (right now at compile time) > UNITCHECK (at end of this compilation unit) > CHECK (at end of main compilation) > (compile time finishes) > ...time passes... > (run time starts) > INIT > (main starts running) > ENTER (every block entry) > START (first time through only) > LEAVE (every block exit) > (main finishes running) > END > > See S04 for when the other more specialized closure blocks get called.
"Code that is generated at run time can still fire off CHECK and INIT blocks, though of course those blocks can't do things that would require travel back in time." Could you specify [at least some examples of] which things would require travel back in time when eval'd?