mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
Allow callk to continue to kargs
* module/language/cps/verify.scm (check-arities): If a callk continues to kargs, the caller knows the number of return values that the callee provides and no number-of-values check is needed. * module/language/cps/contification.scm (apply-contification): Allow contification of known-return-values calls. * module/language/cps/reify-primitives.scm (uniquify-receive) (reify-primitives): No need for uniquify-receive any more as receive shuffles are attached to the call, not the continuation. * module/language/cps/compile-bytecode.scm (compile-function): Add kargs case.
This commit is contained in:
parent
4fcd643adb
commit
5c76381625
5 changed files with 23 additions and 30 deletions
|
@ -135,6 +135,8 @@
|
|||
(emit-fmov asm dst src)
|
||||
(lp moves reset-frame?)))))))
|
||||
(match cont
|
||||
(($ $kargs)
|
||||
(shuffle-results))
|
||||
(($ $kreceive ($ $arity req () rest () #f) kargs)
|
||||
(let ((nreq (length req))
|
||||
(rest-var (and rest
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue