diff options
author | Ludovic Courtès <ludo@gnu.org> | 2011-09-09 00:05:34 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2011-09-09 00:05:34 +0200 |
commit | 11671bbacbdd52039c77978bfe7f24a3316f6019 (patch) | |
tree | 5daa38d92bcc68a1202768b48c5843d461675dae /doc/ref/api-macros.texi | |
parent | 16a3b316113b4000a39b92ddfe4c3edc16954d52 (diff) | |
download | guile-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