summaryrefslogtreecommitdiff
path: root/doc/ref/api-macros.texi
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2011-09-09 00:05:34 +0200
committerLudovic Courtès <ludo@gnu.org>2011-09-09 00:05:34 +0200
commit11671bbacbdd52039c77978bfe7f24a3316f6019 (patch)
tree5daa38d92bcc68a1202768b48c5843d461675dae /doc/ref/api-macros.texi
parent16a3b316113b4000a39b92ddfe4c3edc16954d52 (diff)
downloadguile-11671bbacbdd52039c77978bfe7f24a3316f6019.tar.gz
Add a partial evaluator for use in the compiler.
Thanks to William R. Cook for his excellent tutorial, <http://softlang.uni-koblenz.de/dsl11/>. * module/language/tree-il/optimize.scm (optimize!): Call `peval' unless the #:partial-eval? option asks otherwise. (peval): New procedure. * module/language/tree-il/inline.scm: Add comment. * module/language/tree-il/primitives.scm (*primitive-constructors*): New variable. (*effect-free-primitives*): Use it. (constructor-primitive?): New primitive. * test-suite/tests/tree-il.test (assert-tree-il->glil): Extend to support `with-partial-evaluation', `without-partial-evaluation', and `with-options'. (peval): New binding. (pass-if-peval): New macro. ("lexical refs"): Run tests without partial evaluation. ("letrec"): Likewise. ("the or hack"): Likewise. ("conditional"): Likewise, for some tests. ("sequence"): Adjust to new generated code. ("partial evaluation"): New test prefix.
Diffstat (limited to 'doc/ref/api-macros.texi')
0 files changed, 0 insertions, 0 deletions