summaryrefslogtreecommitdiff
path: root/libguile/vm.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-26 16:19:16 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-26 16:23:02 +0200
commite7778c62aa35ae10743cb4680df0bb3440163e26 (patch)
treea473ad138c7e2715ee493775b1379a6a9d8c9dc2 /libguile/vm.h
parent03a9b7147965831b84506a9315bae215d4775dc3 (diff)
downloadguile-e7778c62aa35ae10743cb4680df0bb3440163e26.tar.gz
abort-to-prompt uses an intrinsic
* libguile/control.h: * libguile/control.c (scm_i_make_composable_continuation): Rename from make_partial_continuation and expose internally. (scm_abort_to_prompt_star): Adapt to scm_i_vm_abort name change. * libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): Define abort_to_prompt intrinsic. * libguile/throw.c (abort_to_prompt): Adapt to scm_i_vm_abort name change. * libguile/vm-engine.c (abort): Use abort_to_prompt intrinsic. * libguile/vm.c (capture_delimited_continuation): Move here from control.c where it was named reify_partial_continuation. (scm_i_vm_abort): Move from control.c where it was named scm_c_abort (and only exposed internally). (abort_to_prompt): New intrinsic, replacing vm_abort. * libguile/vm.h: Add setjmp include and scm_i_vm_abort decl.
Diffstat (limited to 'libguile/vm.h')
-rw-r--r--libguile/vm.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/libguile/vm.h b/libguile/vm.h
index 9b97a6aa9..7d4f34294 100644
--- a/libguile/vm.h
+++ b/libguile/vm.h
@@ -20,6 +20,8 @@
#ifndef _SCM_VM_H_
#define _SCM_VM_H_
+#include <setjmp.h>
+
#include <libguile/gc.h>
#include <libguile/programs.h>
@@ -120,6 +122,8 @@ SCM_INTERNAL SCM scm_i_vm_capture_stack (union scm_vm_stack_element *stack_top,
uint32_t *ra,
scm_t_dynstack *dynstack,
uint32_t flags);
+SCM_INTERNAL void scm_i_vm_abort (struct scm_vm *vp, SCM tag, size_t n, SCM *argv,
+ jmp_buf *registers) SCM_NORETURN;
SCM_INTERNAL int scm_i_vm_cont_to_frame (SCM cont, struct scm_frame *frame);
SCM_INTERNAL void scm_i_vm_cont_print (SCM x, SCM port,
scm_print_state *pstate);