mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
compose-continuation uses an intrinsic
* libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): Add compose-continuation intrinsic. * libguile/vm-engine.c (compose-continuation): Call compose-continuation intrinsic. * libguile/vm.c (compose_continuation_inner, compose_continuation): Move down and rename from vm_reinstate_partial_continuation, and make into a form that works as an intrinsic.
This commit is contained in:
parent
ba23bc12fd
commit
b4553dbb02
3 changed files with 82 additions and 84 deletions
|
@ -696,10 +696,7 @@ VM_NAME (scm_thread *thread, jmp_buf *registers, int resume)
|
|||
vmcont = SCM_PROGRAM_FREE_VARIABLE_REF (FP_REF (0), cont_idx);
|
||||
|
||||
SYNC_IP ();
|
||||
VM_ASSERT (SCM_VM_CONT_REWINDABLE_P (vmcont),
|
||||
vm_error_continuation_not_rewindable (vmcont));
|
||||
vm_reinstate_partial_continuation (VP, vmcont, FRAME_LOCALS_COUNT_FROM (1),
|
||||
&thread->dynstack, registers);
|
||||
scm_vm_intrinsics.compose_continuation (thread, registers, vmcont);
|
||||
CACHE_REGISTER ();
|
||||
NEXT (0);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue