compiler support for letrec*
authorAndy Wingo <wingo@pobox.com>
Thu, 17 Jun 2010 10:47:46 +0000 (12:47 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 17 Jun 2010 11:43:26 +0000 (13:43 +0200)
commit60d4b224483632662b6e1739713f83f55e216caa
treefa1b34964fbbaac9d3150996654aa3c9de7ed096
parent4ee781a688231044b3e0e3f56407c71e554036c3
compiler support for letrec*

* test-suite/tests/tree-il.test ("letrec"): Add some tests.
* module/language/tree-il/compile-glil.scm (flatten): Add support for
  compiling letrec* in its unoptimized form.

* module/language/tree-il/fix-letrec.scm (simple-expression?):
  Parameterize, so that letrec* will not treat `(car x)' as primitive
  (because it could raise an exception).
  (partition-vars): Lump unreferenced vars in with complex vars, when
  compiling letrec*.
  (fix-letrec!): No need to evaluate inits within a let for letrec*.
module/language/tree-il/compile-glil.scm
module/language/tree-il/fix-letrec.scm
test-suite/tests/tree-il.test