WIP - emit AST lambda's from closure convert

This commit is contained in:
Justin Ethier 2018-09-06 13:32:01 -04:00
parent bea5644503
commit 8359f7a6f9
2 changed files with 6 additions and 8 deletions

View file

@ -441,15 +441,13 @@
((define? expr)
;; Global
`(define ,(define->var expr)
,@(caddr (closure-convert (define->exp expr) globals *optimization-level*))))
,@(car (ast:lambda-body (closure-convert (define->exp expr) globals *optimization-level*)))))
((define-c? expr)
expr)
(else
(caddr ;; Strip off superfluous lambda
(closure-convert expr globals *optimization-level*)))))
(car (ast:lambda-body ;; Strip off superfluous lambda
(closure-convert expr globals *optimization-level*))))))
input-program))
; (caddr ;; Strip off superfluous lambda
; (closure-convert input-program)))
(trace:info "---------------- after closure-convert:")
(trace:info (ast:ast->pp-sexp input-program))

View file

@ -1588,7 +1588,7 @@
(list->lambda-formals
(cons new-self-var (ast:lambda-formals->list exp))
(ast:lambda-formals-type exp))
(convert (car body) new-self-var new-free-vars)
(list (convert (car body) new-self-var new-free-vars))
(ast:lambda-has-cont exp))
,@(map (lambda (v) ;; TODO: splice here?
(cc v))
@ -1659,7 +1659,7 @@
(list->lambda-formals
(cons new-self-var (ast:lambda-formals->list fn))
(ast:lambda-formals-type fn))
(convert (car body) new-self-var new-free-vars)
(list (convert (car body) new-self-var new-free-vars))
(ast:lambda-has-cont fn)
)
,@(map (lambda (v) (cc v))
@ -1687,7 +1687,7 @@
(ast:make-lambda
(list)
(convert exp #f '())
(list (convert exp #f '()))
#f))
(define (analyze:find-named-lets exp)