mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-16 09:17:35 +02:00
WIP - emit AST lambda's from closure convert
This commit is contained in:
parent
bea5644503
commit
8359f7a6f9
2 changed files with 6 additions and 8 deletions
|
@ -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))
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue