diff options
author | Andy Wingo <wingo@pobox.com> | 2013-05-28 12:06:30 -0400 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-06-10 22:46:08 +0200 |
commit | 007f671afc4a0deb4e9b3e91f7b908d7be5fef44 (patch) | |
tree | bb5b6a0eb67e3d0d52d268241fe61045f4ea0f2f /module/language/tree-il/peval.scm | |
parent | 99b4da8fb2098762c9d51ee5cc92b1db971bbe1d (diff) | |
download | guile-007f671afc4a0deb4e9b3e91f7b908d7be5fef44.tar.gz |
Implement tree-il-fold in terms of make-tree-il-folder.
* module/language/tree-il.scm (tree-il-fold): Implement using
make-tree-il-folder. This is an incompatible change: there is no more
"leaf" procedure, and tree-il-fold only works on tree-il and not
lists.
* module/language/tree-il/analyze.scm (<tree-analysis>, analyze-tree):
Adapt to tree-il-fold change, losing the "leaf" handler.
(unused-variable-analysis, unused-toplevel-analysis)
(unbound-variable-analysis, arity-analysis): Adapt to tree-analysis
change.
* module/language/tree-il/canonicalize.scm (tree-il-any)
* module/language/tree-il/cse.scm (build-assigned-var-table)
* module/language/tree-il/peval.scm (tree-il-any, build-var-table)
(peval): Adapt to tree-il-fold change.
* test-suite/tests/tree-il.test ("tree-il-fold"): Adapt tests for new
interface and expectations.
Diffstat (limited to 'module/language/tree-il/peval.scm')
-rw-r--r-- | module/language/tree-il/peval.scm | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/module/language/tree-il/peval.scm b/module/language/tree-il/peval.scm index d7d561d4f..3755380ec 100644 --- a/module/language/tree-il/peval.scm +++ b/module/language/tree-il/peval.scm @@ -79,9 +79,6 @@ (tree-il-fold (lambda (exp res) (let ((res (proc exp))) (if res (k res) #f))) - (lambda (exp res) - (let ((res (proc exp))) - (if res (k res) #f))) (lambda (exp res) #f) #f exp))) @@ -132,9 +129,6 @@ (let ((var (cdr (vhash-assq gensym res)))) (set-var-refcount! var (1+ (var-refcount var))) res)) - (_ res))) - (lambda (exp res) - (match exp (($ <lambda-case> src req opt rest kw init gensyms body alt) (fold (lambda (name sym res) (vhash-consq sym (make-var name sym 0 #f) res)) @@ -666,8 +660,6 @@ top-level bindings from ENV and return the resulting expression." (define (small-expression? x limit) (let/ec k (tree-il-fold - (lambda (x res) ; leaf - (1+ res)) (lambda (x res) ; down (1+ res)) (lambda (x res) ; up |