mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 08:17:35 +02:00
Only use Cyc-seq for non-CPSing arguments
This commit is contained in:
parent
8ba1954ac3
commit
37d510a41f
2 changed files with 15 additions and 2 deletions
|
@ -17,4 +17,10 @@
|
||||||
r)))));; Then return r.
|
r)))));; Then return r.
|
||||||
|
|
||||||
(write
|
(write
|
||||||
(get-set-root '()))
|
(get-set-root '(
|
||||||
|
(a . 1)
|
||||||
|
(b . 2)
|
||||||
|
(c . 3)
|
||||||
|
(d . 4)
|
||||||
|
(e . 5)
|
||||||
|
)))
|
||||||
|
|
|
@ -1477,7 +1477,14 @@
|
||||||
(with-var
|
(with-var
|
||||||
(car (lambda-formals->list fn))
|
(car (lambda-formals->list fn))
|
||||||
(lambda (var)
|
(lambda (var)
|
||||||
(zero? (adbv:ref-count var)))))
|
(zero? (adbv:ref-count var))))
|
||||||
|
;; Non-CPS args
|
||||||
|
(every
|
||||||
|
(lambda (x)
|
||||||
|
(or (not (pair? x)) ;; Should never happen
|
||||||
|
(and (prim-call? x)
|
||||||
|
(not (prim:cont? (car x))))))
|
||||||
|
args))
|
||||||
`(Cyc-seq
|
`(Cyc-seq
|
||||||
,@args
|
,@args
|
||||||
,@(map cc (lambda->exp fn))))
|
,@(map cc (lambda->exp fn))))
|
||||||
|
|
Loading…
Add table
Reference in a new issue