1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-30 00:40:20 +02:00
guile/module/language
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
..
assembly Merge remote-tracking branch 'origin/stable-2.0' 2013-01-31 11:52:42 +01:00
brainfuck rename <application> to <call> 2011-06-02 13:42:55 +02:00
bytecode Merge remote-tracking branch 'origin/stable-2.0' 2013-01-31 11:52:42 +01:00
ecmascript Merge remote-tracking branch 'origin/stable-2.0' 2013-01-31 11:52:42 +01:00
elisp Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
glil remove language/glil/decompile-assembly.scm 2013-02-24 15:50:09 +01:00
objcode linker string tables are stateful objects 2013-06-09 16:04:12 +02:00
scheme <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
tree-il <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
assembly.scm silly "optimization" in (language assembly) 2011-05-05 11:43:12 +02:00
glil.scm prompt handlers are always inline 2010-02-19 15:30:34 +01:00
objcode.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00