trim our set of vm hooks
authorAndy Wingo <wingo@pobox.com>
Thu, 16 Sep 2010 10:14:55 +0000 (12:14 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 16 Sep 2010 10:16:02 +0000 (12:16 +0200)
commitc45d4d775d47bd80650e9888bf47815a03b04332
tree69f38925f200a57d7ec3d3d487da7b5f51b50a12
parent7c42238610dbf5780d9aeb12ca799c83f9f6167e
trim our set of vm hooks

* libguile/vm.h (SCM_VM_PUSH_CONTINUATION_HOOK)
  (SCM_VM_POP_CONTINUATION_HOOK): New hooks, to replace
  enter/exit/return.
  (SCM_VM_BOOT_HOOK, SCM_VM_HALT_HOOK, SCM_VM_BREAK_HOOK): Remove these
  useless hooks.

* libguile/vm.c (scm_vm_push_continuation_hook)
  (scm_vm_pop_continuation_hook): New accessors.

* libguile/vm-i-system.c: Remove boot, halt, break, enter, exit, and
  return hooks. Also remove the break instruction. Instead now when we
  push a new continuation onto the stack we call PUSH_CONTINUATION_HOOK,
  and when we pop via a return we call POP_CONTINUATION_HOOK. APPLY_HOOK
  is now decoupled from continuation pushes and pops.

* libguile/vm-engine.h:
* libguile/vm-engine.c: Adapt for hooks.

* module/system/vm/trace.scm (vm-trace): Adapt for hooks. Also revive
  the #:instructions? #t mode.

* module/system/vm/vm.scm: Adapt exports for new set of hooks.
libguile/vm-engine.c
libguile/vm-engine.h
libguile/vm-i-system.c
libguile/vm.c
libguile/vm.h
module/system/vm/trace.scm
module/system/vm/vm.scm