mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-04 03:36:34 +02:00
WIP
This commit is contained in:
parent
67071a1761
commit
ef647082e6
1 changed files with 4 additions and 2 deletions
|
@ -1718,7 +1718,7 @@
|
||||||
(body (ast:lambda-body exp))
|
(body (ast:lambda-body exp))
|
||||||
(new-free-vars
|
(new-free-vars
|
||||||
(difference
|
(difference
|
||||||
(difference (free-vars body) (cons 'Cyc-seq (ast:lambda-formals->list exp)))
|
(difference (free-vars body) (cons 'Cyc-seq (cons 'Cyc-local-set! (ast:lambda-formals->list exp))))
|
||||||
globals))
|
globals))
|
||||||
(formals (list->lambda-formals
|
(formals (list->lambda-formals
|
||||||
(cons new-self-var (ast:lambda-formals->list exp))
|
(cons new-self-var (ast:lambda-formals->list exp))
|
||||||
|
@ -1787,6 +1787,8 @@
|
||||||
; TODO: maybe just call a function to 'flatten' seq's
|
; TODO: maybe just call a function to 'flatten' seq's
|
||||||
((equal? 'Cyc-seq fn)
|
((equal? 'Cyc-seq fn)
|
||||||
`(Cyc-seq ,@args))
|
`(Cyc-seq ,@args))
|
||||||
|
((equal? 'Cyc-local-set! fn)
|
||||||
|
`(Cyc-local-set! ,@args))
|
||||||
((ast:lambda? fn)
|
((ast:lambda? fn)
|
||||||
(cond
|
(cond
|
||||||
;; If the lambda argument is not used, flag so the C code is
|
;; If the lambda argument is not used, flag so the C code is
|
||||||
|
@ -1814,7 +1816,7 @@
|
||||||
(let* ((body (ast:lambda-body fn))
|
(let* ((body (ast:lambda-body fn))
|
||||||
(new-free-vars
|
(new-free-vars
|
||||||
(difference
|
(difference
|
||||||
(difference (free-vars body) (cons 'Cyc-seq (ast:lambda-formals->list fn)))
|
(difference (free-vars body) (cons 'Cyc-seq (cons 'Cyc-local-set! (ast:lambda-formals->list fn))))
|
||||||
globals))
|
globals))
|
||||||
(new-free-vars? (> (length new-free-vars) 0)))
|
(new-free-vars? (> (length new-free-vars) 0)))
|
||||||
(if new-free-vars?
|
(if new-free-vars?
|
||||||
|
|
Loading…
Add table
Reference in a new issue