mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-24 04:25:06 +02:00
WIP
This commit is contained in:
parent
1b1320ebf0
commit
3a98b3b8d8
1 changed files with 12 additions and 6 deletions
|
@ -1002,15 +1002,20 @@
|
||||||
,(caddr exp) ;; Args
|
,(caddr exp) ;; Args
|
||||||
,(cadddr exp) ;; Body
|
,(cadddr exp) ;; Body
|
||||||
))
|
))
|
||||||
(lid (allocate-lambda lambda-data))
|
(lid 999) ;; TODO: (allocate-lambda lambda-data))
|
||||||
)
|
)
|
||||||
(add-global
|
(add-global
|
||||||
(define->var exp)
|
(define->var exp)
|
||||||
#t ;(lambda? body)
|
#t ;(lambda? body)
|
||||||
(c-code (cadddr exp))
|
(let ((cv-name (mangle (gensym 'c))))
|
||||||
;(c-compile-exp
|
(c-code/vars
|
||||||
; body append-preamble cont
|
(string-append "&" cv-name)
|
||||||
; (st:add-function! trace var))
|
(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 ""))))
|
(c-code/vars "" (list ""))))
|
||||||
|
|
||||||
|
@ -1342,7 +1347,8 @@
|
||||||
(caddr l)
|
(caddr l)
|
||||||
" {"
|
" {"
|
||||||
(cadddr l)
|
(cadddr l)
|
||||||
" }"))
|
" }"
|
||||||
|
))
|
||||||
(else
|
(else
|
||||||
(emit ((caadr l) (string-append "__lambda_" (number->string (car l))))))))
|
(emit ((caadr l) (string-append "__lambda_" (number->string (car l))))))))
|
||||||
lambdas)
|
lambdas)
|
||||||
|
|
Loading…
Add table
Reference in a new issue