mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 23:50:19 +02:00
All arities serialize a "closure" binding
* module/language/cps/compile-bytecode.scm (compile-function): Always define a 'closure binding in slot 0. * module/system/vm/frame.scm (available-bindings): No need to futz around not having a closure binding. * module/system/vm/debug.scm (arity-arguments-alist): Expect a closure binding. * test-suite/tests/rtl.test: Emit definitions for the closure.
This commit is contained in:
parent
02fc5a772b
commit
e5d7c0f13b
4 changed files with 31 additions and 18 deletions
|
@ -472,7 +472,9 @@
|
|||
(emit-label asm label)
|
||||
(set! frame-size (lookup-nlocals label allocation))
|
||||
(emit-begin-kw-arity asm req opt rest kw-indices allow-other-keys?
|
||||
frame-size alt)))
|
||||
frame-size alt)
|
||||
;; All arities define a closure binding in slot 0.
|
||||
(emit-definition asm 'closure 0 'scm)))
|
||||
(($ $kargs names vars ($ $continue k src exp))
|
||||
(emit-label asm label)
|
||||
(for-each (lambda (name var)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue