add vm-abort-continuation-hook, vm-restore-continuation-hook
[bpt/guile.git] / module / system / vm / vm.scm
CommitLineData
07e56b27
AW
1;;; Guile VM core
2
6f3b0cc2 3;;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
587cd3bf
LC
4;;;
5;;; This library is free software; you can redistribute it and/or
6;;; modify it under the terms of the GNU Lesser General Public
7;;; License as published by the Free Software Foundation; either
8;;; version 3 of the License, or (at your option) any later version.
9;;;
10;;; This library is distributed in the hope that it will be useful,
11;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
12;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13;;; Lesser General Public License for more details.
14;;;
15;;; You should have received a copy of the GNU Lesser General Public
16;;; License along with this library; if not, write to the Free Software
17;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
07e56b27
AW
18
19;;; Code:
20
21(define-module (system vm vm)
1a1a10d3 22 #:use-module (system vm frame)
53e28ed9 23 #:use-module (system vm program)
6f3b0cc2 24 #:export (vm? the-vm make-vm vm-version vm-apply
b1b942b7 25 vm:ip vm:sp vm:fp vm:last-ip
07e56b27 26
6c20a0b3 27 vm-load vm-option set-vm-option! vm-version
b1b942b7 28 vms:time vms:clock
07e56b27 29
7656f194 30 vm-trace-level set-vm-trace-level!
c45d4d77
AW
31 vm-push-continuation-hook vm-pop-continuation-hook
32 vm-apply-hook
f3120251
AW
33 vm-next-hook
34 vm-abort-continuation-hook vm-restore-continuation-hook))
07e56b27 35
44602b08
AW
36(load-extension (string-append "libguile-" (effective-version))
37 "scm_init_vm")
07e56b27 38
07e56b27
AW
39(define (vms:time stat) (vector-ref stat 0))
40(define (vms:clock stat) (vector-ref stat 1))
41
42(define (vm-load vm objcode)
6f3b0cc2 43 (vm-apply vm (make-program objcode) '()))