mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 03:30:27 +02:00
rename tail-call to goto/args, add some more tail instructions
* libguile/vm-i-system.c (call): Rename continuation invocation from `vm_call_cc' to `vm_call_continuation', because that's what it really does. Add a note that it doesn't handle multiple values at the moment. (goto/arg): Renamed from tail-call, in deference to the progenitors, on Dale Smith's suggestion. (goto/apply): New instruction, for `apply' in a tail context. Not yet used, or vetted for that matter. (call/cc): No need to pop the program, I don't think; although this isn't tested either. (goto/cc): New instruction, for call/cc in a tail context. * module/language/scheme/translate.scm (*forbidden-primitives*): Rename from %forbidden-primitives. * module/system/il/compile.scm (codegen): Adapt to goto/args instead of tail-call. * module/system/il/inline.scm: Start inlining some macros used in r4rs.scm -- not yet fully tested. * ice-9/boot-9.scm: Allow load of a compiled r4rs file.
This commit is contained in:
parent
da320011a3
commit
f03c31dbad
6 changed files with 49 additions and 12 deletions
|
@ -296,6 +296,7 @@
|
|||
((<ghil-inline> env loc inline args)
|
||||
;; ARGS...
|
||||
;; (INST NARGS)
|
||||
;; FIXME: translate between call and goto/args, etc
|
||||
(push-call! loc inline args)
|
||||
(maybe-drop)
|
||||
(maybe-return))
|
||||
|
@ -305,7 +306,7 @@
|
|||
;; ARGS...
|
||||
;; ([tail-]call NARGS)
|
||||
(comp-push proc)
|
||||
(push-call! loc (if tail 'tail-call 'call) args)
|
||||
(push-call! loc (if tail 'goto/args 'call) args)
|
||||
(maybe-drop))))
|
||||
;;
|
||||
;; main
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue