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")