From 8359f7a6f93c284a25b6a6fcf2848e80ac6db7b4 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 6 Sep 2018 13:32:01 -0400 Subject: [PATCH] WIP - emit AST lambda's from closure convert --- cyclone.scm | 8 +++----- scheme/cyclone/cps-optimizations.sld | 6 +++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/cyclone.scm b/cyclone.scm index a95c486d..7d7e2e73 100644 --- a/cyclone.scm +++ b/cyclone.scm @@ -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)) diff --git a/scheme/cyclone/cps-optimizations.sld b/scheme/cyclone/cps-optimizations.sld index 10f81690..1cb20d9b 100644 --- a/scheme/cyclone/cps-optimizations.sld +++ b/scheme/cyclone/cps-optimizations.sld @@ -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)