From 3a98b3b8d80fc866c9fd4434948db84079c9b4a5 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 8 Jan 2016 23:07:23 -0500 Subject: [PATCH] WIP --- scheme/cyclone/cgen.sld | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/scheme/cyclone/cgen.sld b/scheme/cyclone/cgen.sld index 7f83d48a..5edb7c85 100644 --- a/scheme/cyclone/cgen.sld +++ b/scheme/cyclone/cgen.sld @@ -1002,16 +1002,21 @@ ,(caddr exp) ;; Args ,(cadddr exp) ;; Body )) - (lid (allocate-lambda lambda-data)) + (lid 999) ;; TODO: (allocate-lambda lambda-data)) ) (add-global (define->var exp) #t ;(lambda? body) - (c-code (cadddr exp)) - ;(c-compile-exp - ; body append-preamble cont - ; (st:add-function! trace var)) + (let ((cv-name (mangle (gensym 'c)))) + (c-code/vars + (string-append "&" cv-name) + (list + (string-append "mclosure0(" cv-name ", (function_type)__lambda" + (number->string lid) ");" cv-name ".num_args = " + (number->string 2) ;; TODO: figure out number of args + ";"))) ) + ) (c-code/vars "" (list "")))) ;; Symbol compilation @@ -1342,7 +1347,8 @@ (caddr l) " {" (cadddr l) - " }")) + " }" + )) (else (emit ((caadr l) (string-append "__lambda_" (number->string (car l)))))))) lambdas)