beginnings of letrec* support in the expander
authorAndy Wingo <wingo@pobox.com>
Thu, 17 Jun 2010 08:49:00 +0000 (10:49 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 17 Jun 2010 11:43:26 +0000 (13:43 +0200)
commitfb6e61ca21b397308474a6a553f7d502d0113251
tree356949850d0d0e7a6f822140e5463704566fbc34
parentf238862e9ec7c69d69eb3941f14844501c0f5937
beginnings of letrec* support in the expander

* libguile/expand.h (SCM_EXPANDED_LETREC_IN_ORDER_P)
  (SCM_MAKE_EXPANDED_LETREC): Add a new field to letrec, in-order?. Will
  be used to support letrec*.

* libguile/expand.c (LETREC, expand_named_let, expand_letrec): Adapt
  code.

* module/language/elisp/compile-tree-il.scm (compile-pair):
* module/ice-9/psyntax.scm (build-named-let, build-letrec): Pass #f for
  in-order? to `make-letrec'.

* module/ice-9/psyntax-pp.scm: Regenerate.

* module/language/tree-il.scm: Add letrec-in-order? accessor.
  (parse-tree-il, unparse-tree-il): Parse and unparse an in-order?
  letrec as `letrec*'.
  (tree-il->scheme): Serialize letrec*.
libguile/expand.c
libguile/expand.h
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
module/language/elisp/compile-tree-il.scm
module/language/tree-il.scm