mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-18 18:40:22 +02:00
Add new $calli expression type.
* module/language/cps.scm ($calli): New expression type, calls a label as a value. Adapt all callers.
This commit is contained in:
parent
a1eb526b0c
commit
171072ec5a
21 changed files with 105 additions and 19 deletions
|
@ -473,6 +473,7 @@ for a label, it isn't known to be constant at that label."
|
|||
(($ $code label) (cons 'code label))
|
||||
(($ $call proc args) #f)
|
||||
(($ $callk k proc args) #f)
|
||||
(($ $calli args callee) #f)
|
||||
(($ $primcall name param args) (cons* name param args))
|
||||
(($ $values args) #f)))
|
||||
(define (compute-term-key term)
|
||||
|
@ -562,6 +563,8 @@ for a label, it isn't known to be constant at that label."
|
|||
($call (subst-var proc) ,(map subst-var args)))
|
||||
(($ $callk k proc args)
|
||||
($callk k (and proc (subst-var proc)) ,(map subst-var args)))
|
||||
(($ $calli args callee)
|
||||
($calli ,(map subst-var args) (subst-var callee)))
|
||||
(($ $primcall name param args)
|
||||
($primcall name param ,(map subst-var args)))
|
||||
(($ $values args)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue