1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-05 11:40:20 +02:00
guile/module/language/tree-il
Andy Wingo 178a40928a <prompt> body and handler are lambdas; add escape-only? field
* module/language/tree-il.scm (<prompt>): Change to have the body and
  handler be lambdas, and add an "escape-only?" field.  This will make
  generic prompts work better in CPS or ANF with the RTL VM, as it
  doesn't make sense in that context to capture only part of a frame.
  Escape-only prompts can still be fully inlined.
  (parse-tree-il, unparse-tree-il): Add escape-only? to the
  serialization.
  (make-tree-il-folder, pre-post-order): Deal with escape-only?.

* module/language/tree-il/analyze.scm (analyze-lexicals): Handle
  escape-only?, and the new expectations for the body and handler.

* module/language/tree-il/canonicalize.scm (canonicalize): Ensure that
  the body of an escape-only continuation is a thunk, and that the
  handler is always a lambda.
* module/language/tree-il/debug.scm (verify-tree-il): Assert that
  escape-only? is a boolean.

* module/language/tree-il/cse.scm (cse):
* module/language/tree-il/effects.scm (make-effects-analyzer):
* module/language/tree-il/peval.scm (peval):
* module/language/tree-il/primitives.scm (*primitive-expand-table*):
* test-suite/tests/peval.test ("partial evaluation"):
* module/language/tree-il/compile-glil.scm (flatten-lambda-case): Adapt
  to <prompt> change.
2013-07-06 20:27:21 +09:00
..
analyze.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
canonicalize.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
compile-glil.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
cse.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
debug.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
effects.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
fix-letrec.scm Tree-il post-order rewriter no longer destructive 2013-06-10 22:46:08 +02:00
inline.scm separate peval and a new canonicalization pass into their own modules 2011-09-28 19:39:39 +02:00
optimize.scm Pre-order tree-il rewrites are now non-destructive 2013-06-10 22:46:08 +02:00
peval.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
primitives.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
spec.scm Merge remote-tracking branch 'origin/stable-2.0' 2013-01-31 11:52:42 +01:00