summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/vm-engine.c3
-rw-r--r--libguile/vm.c14
-rw-r--r--libguile/vm.h2
-rw-r--r--module/system/vm/traps.scm16
-rw-r--r--module/system/vm/vm.scm2
5 files changed, 4 insertions, 33 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index 4ae2aa728..68a8b12aa 100644
--- a/libguile/vm-engine.c
+++ b/libguile/vm-engine.c
@@ -125,8 +125,6 @@
RUN_HOOK0 (next)
#define ABORT_CONTINUATION_HOOK() \
RUN_HOOK0 (abort)
-#define RESTORE_CONTINUATION_HOOK() \
- RUN_HOOK0 (restore_continuation)
#define VM_HANDLE_INTERRUPTS \
SCM_ASYNC_TICK_WITH_GUARD_CODE (current_thread, SYNC_IP (), CACHE_FP ())
@@ -3228,7 +3226,6 @@ VM_NAME (scm_i_thread *current_thread, struct scm_vm *vp,
#undef NEXT_JUMP
#undef POP_CONTINUATION_HOOK
#undef PUSH_CONTINUATION_HOOK
-#undef RESTORE_CONTINUATION_HOOK
#undef RETURN
#undef RETURN_ONE_VALUE
#undef RETURN_VALUE_LIST
diff --git a/libguile/vm.c b/libguile/vm.c
index 0ccc9f1c3..f9441ad20 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -167,7 +167,6 @@ static void vm_dispatch_push_continuation_hook (struct scm_vm *vp) SCM_NOINLINE;
static void vm_dispatch_pop_continuation_hook (struct scm_vm *vp, SCM *old_fp) SCM_NOINLINE;
static void vm_dispatch_next_hook (struct scm_vm *vp) SCM_NOINLINE;
static void vm_dispatch_abort_hook (struct scm_vm *vp) SCM_NOINLINE;
-static void vm_dispatch_restore_continuation_hook (struct scm_vm *vp) SCM_NOINLINE;
static void
vm_dispatch_hook (struct scm_vm *vp, int hook_num, SCM *argv, int n)
@@ -258,10 +257,6 @@ static void vm_dispatch_abort_hook (struct scm_vm *vp)
&SCM_FRAME_LOCAL (vp->fp, 1),
SCM_FRAME_NUM_LOCALS (vp->fp, vp->sp) - 1);
}
-static void vm_dispatch_restore_continuation_hook (struct scm_vm *vp)
-{
- return vm_dispatch_hook (vp, SCM_VM_RESTORE_CONTINUATION_HOOK, NULL, 0);
-}
static void
vm_abort (struct scm_vm *vp, SCM tag,
@@ -1025,15 +1020,6 @@ SCM_DEFINE (scm_vm_abort_continuation_hook, "vm-abort-continuation-hook", 0, 0,
}
#undef FUNC_NAME
-SCM_DEFINE (scm_vm_restore_continuation_hook, "vm-restore-continuation-hook", 0, 0, 0,
- (void),
- "")
-#define FUNC_NAME s_scm_vm_restore_continuation_hook
-{
- VM_DEFINE_HOOK (SCM_VM_RESTORE_CONTINUATION_HOOK);
-}
-#undef FUNC_NAME
-
SCM_DEFINE (scm_vm_trace_level, "vm-trace-level", 0, 0, 0,
(void),
"")
diff --git a/libguile/vm.h b/libguile/vm.h
index 387e0b815..6a257328e 100644
--- a/libguile/vm.h
+++ b/libguile/vm.h
@@ -28,7 +28,6 @@ enum {
SCM_VM_POP_CONTINUATION_HOOK,
SCM_VM_NEXT_HOOK,
SCM_VM_ABORT_CONTINUATION_HOOK,
- SCM_VM_RESTORE_CONTINUATION_HOOK,
SCM_VM_NUM_HOOKS,
};
@@ -56,7 +55,6 @@ SCM_API SCM scm_vm_apply_hook (void);
SCM_API SCM scm_vm_push_continuation_hook (void);
SCM_API SCM scm_vm_pop_continuation_hook (void);
SCM_API SCM scm_vm_abort_continuation_hook (void);
-SCM_API SCM scm_vm_restore_continuation_hook (void);
SCM_API SCM scm_vm_next_hook (void);
SCM_API SCM scm_vm_trace_level (void);
SCM_API SCM scm_set_vm_trace_level_x (SCM level);
diff --git a/module/system/vm/traps.scm b/module/system/vm/traps.scm
index 7fab208aa..aa13b6ab8 100644
--- a/module/system/vm/traps.scm
+++ b/module/system/vm/traps.scm
@@ -199,12 +199,6 @@
(if (our-frame? frame)
(enter-proc frame)))
- (define (restore-hook frame)
- (if in-proc?
- (exit-proc frame))
- (if (our-frame? frame)
- (enter-proc frame)))
-
(new-enabled-trap
current-frame
(lambda (frame)
@@ -212,7 +206,6 @@
(add-hook! (vm-push-continuation-hook) push-cont-hook)
(add-hook! (vm-pop-continuation-hook) pop-cont-hook)
(add-hook! (vm-abort-continuation-hook) abort-hook)
- (add-hook! (vm-restore-continuation-hook) restore-hook)
(if (and frame (our-frame? frame))
(enter-proc frame)))
(lambda (frame)
@@ -221,8 +214,7 @@
(remove-hook! (vm-apply-hook) apply-hook)
(remove-hook! (vm-push-continuation-hook) push-cont-hook)
(remove-hook! (vm-pop-continuation-hook) pop-cont-hook)
- (remove-hook! (vm-abort-continuation-hook) abort-hook)
- (remove-hook! (vm-restore-continuation-hook) restore-hook)))))
+ (remove-hook! (vm-abort-continuation-hook) abort-hook)))))
;; Building on trap-in-procedure, we have trap-instructions-in-procedure
;;
@@ -425,13 +417,11 @@
(if (not fp)
(error "return-or-abort traps may only be enabled once"))
(add-hook! (vm-pop-continuation-hook) pop-cont-hook)
- (add-hook! (vm-abort-continuation-hook) abort-hook)
- (add-hook! (vm-restore-continuation-hook) abort-hook))
+ (add-hook! (vm-abort-continuation-hook) abort-hook))
(lambda (frame)
(set! fp #f)
(remove-hook! (vm-pop-continuation-hook) pop-cont-hook)
- (remove-hook! (vm-abort-continuation-hook) abort-hook)
- (remove-hook! (vm-restore-continuation-hook) abort-hook)))))
+ (remove-hook! (vm-abort-continuation-hook) abort-hook)))))
;; A more traditional dynamic-wind trap. Perhaps this should not be
;; based on the above trap-frame-finish?
diff --git a/module/system/vm/vm.scm b/module/system/vm/vm.scm
index ffed9073d..33bcbf126 100644
--- a/module/system/vm/vm.scm
+++ b/module/system/vm/vm.scm
@@ -25,7 +25,7 @@
vm-push-continuation-hook vm-pop-continuation-hook
vm-apply-hook
vm-next-hook
- vm-abort-continuation-hook vm-restore-continuation-hook))
+ vm-abort-continuation-hook))
(load-extension (string-append "libguile-" (effective-version))
"scm_init_vm")