Replace all let-gensyms uses with let-fresh
authorAndy Wingo <wingo@pobox.com>
Fri, 28 Mar 2014 15:29:16 +0000 (16:29 +0100)
committerAndy Wingo <wingo@pobox.com>
Mon, 31 Mar 2014 16:20:55 +0000 (18:20 +0200)
commit828ed94469b4c8cf69db08e6aeb12b399b67ed20
tree87f8eef9518d2768245b900da1fff5ca9720ffeb
parent053473531464236f8ecf16a4038249cecfd5984c
Replace all let-gensyms uses with let-fresh

* .dir-locals.el: Add with-fresh-name-state.
* module/language/cps.scm (fresh-label, fresh-var): Signal an error if
  the counters are not initialized.
  (with-fresh-name-state): New macro.
  (make-cont-folder): New macro, generates an n-ary folder.
  (compute-max-label-and-var): New function, uses make-cont-folder.
  (fold-conts): Use make-cont-folder.
  (let-gensyms): Remove.

* module/language/cps/arities.scm:
* module/language/cps/closure-conversion.scm:
* module/language/cps/constructors.scm:
* module/language/cps/dce.scm:
* module/language/cps/elide-values.scm:
* module/language/cps/reify-primitives.scm:
* module/language/cps/specialize-primcalls.scm: Use let-fresh instead of
  let-gensyms, and wrap in a with-fresh-name-state as needed.

* module/language/tree-il/compile-cps.scm: Remove hack to avoid
  importing let-gensyms from (language tree-il).
.dir-locals.el
module/language/cps.scm
module/language/cps/arities.scm
module/language/cps/closure-conversion.scm
module/language/cps/constructors.scm
module/language/cps/dce.scm
module/language/cps/elide-values.scm
module/language/cps/reify-primitives.scm
module/language/cps/specialize-primcalls.scm
module/language/tree-il/compile-cps.scm