let-values in terms of syntax-case, add make-tree-il-folder
authorAndy Wingo <wingo@pobox.com>
Wed, 5 Aug 2009 19:25:35 +0000 (21:25 +0200)
committerAndy Wingo <wingo@pobox.com>
Wed, 5 Aug 2009 19:35:30 +0000 (21:35 +0200)
commit4dcd84998fc61e15920aea83c4420c7357b9be46
tree14f17398e91c6c3eddedbcd9b2dda7f44fed4f92
parentc21c89b1384415313cd4bc03e76d6e1507e48d7a
let-values in terms of syntax-case, add make-tree-il-folder

* module/language/tree-il.scm (tree-il-fold): Fix for let-values case.
  (make-tree-il-folder): New public macro, makes a multi-valued folder
  specific to the number of seeds that the user wants.
* module/language/tree-il/optimize.scm (optimize!): Reverse the order of
  inline! and fix-letrec!, as the latter might expose opportunities for
  the former.
* module/srfi/srfi-11.scm (let-values): Reimplement in terms of
  syntax-case, so that its expressions may reference hygienically bound
  variables. See the NEWS for the rationale.
  (let*-values): An empty let*-values still introduces a local `let'
  binding contour.
* module/system/base/syntax.scm (record-case): Yukkkk. Reimplement in
  terms of syntax-case. Ug-ly, but see the NEWS again: "Lexical bindings
  introduced by hygienic macros may not be referenced by nonhygienic
  macros."
module/language/tree-il.scm
module/language/tree-il/optimize.scm
module/srfi/srfi-11.scm
module/system/base/syntax.scm