diff --git a/scheme/cyclone/cps-opt-memoize-pure-fncs.scm b/scheme/cyclone/cps-opt-memoize-pure-fncs.scm index c070939c..89142eb1 100644 --- a/scheme/cyclone/cps-opt-memoize-pure-fncs.scm +++ b/scheme/cyclone/cps-opt-memoize-pure-fncs.scm @@ -28,7 +28,7 @@ (define (memoizable? var body) (define cont #f) (define (scan exp return locals) - (trace:error `(DEBUG scan ,(ast:ast->pp-sexp exp))) + ;(trace:error `(DEBUG scan ,(ast:ast->pp-sexp exp))) ;(write `(DEBUG scan ,var ,cont ,(ast:ast->pp-sexp exp))) (newline) (cond ;; TODO: reject if a lambda is returned @@ -94,16 +94,23 @@ (cdr exp))) (else exp) )) +;;(write `(DEBUG ,var ;,body +;; ,(ref? var) +;; ,(ast:lambda? body) +;; ,(eq? (ast:lambda-formals-type body) 'args:fixed) +;; ,(< (length (ast:lambda-args body)) 4) ;; Too many combinations w/more args +;; ,(adb:get/default var #f) +;; ,(adbv:self-rec-call? (adb:get/default var #f)) +;;)) (newline) (cond - ((and-let* - ((ref? var) - (ast:lambda? body) - (eq? (ast:lambda-formals-type body) 'args:fixed) - (< (length (ast:lambda-args body)) 4) ;; Too many combinations w/more args - (adb:get/default var #f) - (adbv:self-rec-call? var) - ) - #t) + ((and + (ref? var) + (ast:lambda? body) + (eq? (ast:lambda-formals-type body) 'args:fixed) + (< (length (ast:lambda-args body)) 4) ;; Too many combinations w/more args + (adb:get/default var #f) + (adbv:self-rec-call? (adb:get/default var #f)) + ) (call/cc (lambda (return) (set! cont (car (ast:lambda-args body)))