1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-28 07:50:20 +02:00
guile/module/language
Andy Wingo 880e794812 inline dynwind guards for normal control flow
* module/language/tree-il.scm (<tree-il>): Add `pre' and `post' fields
  to <dynwind>, so that we can inline the guard bodies in the normal
  control-flow case.  It also avoids duplicating code in compile-glil,
  which probably hides more bugs in 2.0.
  (parse-tree-il, unparse-tree-il, tree-il->scheme, tree-il-fold)
  (make-tree-il-folder, post-order!, pre-order!): Update.

* module/language/tree-il/analyze.scm (analyze-lexicals): Update.

* module/language/tree-il/compile-glil.scm (flatten-lambda-case): Update
  to use `pre' and `post' instead of compiling code twice.

* module/language/tree-il/debug.scm (verify-tree-il): Update.

* module/language/tree-il/peval.scm (peval): Update.  Instead of doing
  complicated things in <dynwind>, handle 'dynamic-wind primcalls.

* module/language/tree-il/primitives.scm (*primitive-expand-table*):
  Remove 'dynamic-wind mess.  Adapt '@dynamic-wind.

* test-suite/tests/tree-il.test ("partial evaluation"): Update tests.
2011-11-09 19:38:44 +01:00
..
assembly more define-syntax-rule usage 2011-09-02 11:36:14 +02:00
brainfuck rename <application> to <call> 2011-06-02 13:42:55 +02:00
bytecode remove `version' field from <language> 2010-05-02 11:19:13 +02:00
ecmascript Merge remote-tracking branch 'origin/stable-2.0' 2011-09-29 18:02:28 +02:00
elisp sequence of expressions -> seq of head and tail 2011-06-02 19:13:32 +02:00
glil Fix compilation of untyped arrays of rank not 1 2011-09-21 05:37:07 +02:00
objcode fix error message on ,disassemble "non-procedure" 2011-03-29 12:38:18 +02:00
scheme read-enable 'positions by default 2011-02-13 15:06:11 +01:00
tree-il inline dynwind guards for normal control flow 2011-11-09 19:38:44 +01:00
value remove `version' field from <language> 2010-05-02 11:19:13 +02: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 inline dynwind guards for normal control flow 2011-11-09 19:38:44 +01:00