~ chicken-core (chicken-5) cf141f9c8773dcabb0ae0db7980d66a3bad49135
commit cf141f9c8773dcabb0ae0db7980d66a3bad49135
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Jul 25 14:41:51 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Jul 25 14:41:51 2011 +0200
simplified gae handling in gp
diff --git a/optimizer.scm b/optimizer.scm
index 34b2418b..5f74d41b 100644
--- a/optimizer.scm
+++ b/optimizer.scm
@@ -255,42 +255,40 @@
((##core#lambda)
(let ((llist (third params))
(id (first params)))
- (fluid-let ((gae '()))
- (cond [(test id 'has-unused-parameters)
- (decompose-lambda-list
- llist
- (lambda (vars argc rest)
- (receive (unused used) (partition (lambda (v) (test v 'unused)) vars)
- (touch)
- (debugging 'o "removed unused formal parameters" unused)
- (make-node
- '##core#lambda
- (list (first params) (second params)
- (cond [(and rest (test id 'explicit-rest))
- (debugging
- 'o "merged explicitly consed rest parameter" rest)
- (build-lambda-list used (add1 argc) #f) ]
- [else (build-lambda-list used argc rest)] )
- (fourth params) )
- (list (walk (first subs) (cons id fids) '())) ) ) ) ) ]
- [(test id 'explicit-rest)
- (decompose-lambda-list
- llist
- (lambda (vars argc rest)
+ (cond [(test id 'has-unused-parameters)
+ (decompose-lambda-list
+ llist
+ (lambda (vars argc rest)
+ (receive (unused used) (partition (lambda (v) (test v 'unused)) vars)
(touch)
- (debugging 'o "merged explicitly consed rest parameter" rest)
+ (debugging 'o "removed unused formal parameters" unused)
(make-node
'##core#lambda
- (list (first params)
- (second params)
- (build-lambda-list vars (add1 argc) #f)
+ (list (first params) (second params)
+ (cond [(and rest (test id 'explicit-rest))
+ (debugging
+ 'o "merged explicitly consed rest parameter" rest)
+ (build-lambda-list used (add1 argc) #f) ]
+ [else (build-lambda-list used argc rest)] )
(fourth params) )
- (list (walk (first subs) (cons id fids) '())) ) ) ) ]
- [else (walk-generic n class params subs (cons id fids) '() #f)] ) ) ))
+ (list (walk (first subs) (cons id fids) '())) ) ) ) ) ]
+ [(test id 'explicit-rest)
+ (decompose-lambda-list
+ llist
+ (lambda (vars argc rest)
+ (touch)
+ (debugging 'o "merged explicitly consed rest parameter" rest)
+ (make-node
+ '##core#lambda
+ (list (first params)
+ (second params)
+ (build-lambda-list vars (add1 argc) #f)
+ (fourth params) )
+ (list (walk (first subs) (cons id fids) '())) ) ) ) ]
+ [else (walk-generic n class params subs (cons id fids) '() #f)] ) ) )
((##core#direct_lambda)
- (fluid-let ((gae '()))
- (walk-generic n class params subs fids '() #f)))
+ (walk-generic n class params subs fids '() #f))
((##core#call)
(let* ([fun (car subs)]
Trap