mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 23:50:19 +02:00
merge guile-vm into libguile itself
* ice-9/boot-9.scm: Only define load-compiled as #f if it's not already defined, which won't normally be the case. * libguile/guile-vm.c: Removed, there's no more guile-vm binary. * libguile/frames.c: (with change frame? -> heap-frame?) * libguile/frames.h: * libguile/instructions.c: * libguile/instructions.h: * libguile/objcodes.c: * libguile/objcodes.h: * libguile/programs.c: * libguile/programs.h: * libguile/vm-bootstrap.h: (was bootstrap.h) * libguile/vm-engine.c: (was vm_engine.c) * libguile/vm-engine.h: (was vm_engine.h) * libguile/vm-expand.h: (was vm_expand.h) * libguile/vm-i-loader.c: (was vm_loader.c) * libguile/vm-i-scheme.c: (was vm_scheme.c) * libguile/vm-i-system.c: (was vm_system.c) * libguile/vm.c: * libguile/vm.h: These files moved here from src/, as guile-vm is now a part of libguile. * libguile/init.c: Bootstrap the VM. Yay! * libguile/Makefile.am: The necessary chicanery here. * module/system/vm/Makefile.am: * module/system/vm/bootstrap.scm: * module/system/vm/frame.scm: * module/system/vm/instruction.scm: * module/system/vm/objcode.scm: * module/system/vm/program.scm: * module/system/vm/vm.scm: * pre-inst-guile-env.in: Add builddirs to the load path; add module/ to the path in the empty-$GUILE_LOAD_PATH case as well. * src/Makefile.am: Moved out everything except guilec and guile-disasm, which probably should be moved to the scripts directory? * testsuite/Makefile.am: Update to find guile-vm in the right place. * module/system/vm/Makefile.am: * module/system/vm/bootstrap.scm: Removed bootstrap.scm, scm_init_guile handles the bootstrapping for us. * module/system/vm/frame.scm: * module/system/vm/instruction.scm: * module/system/vm/objcode.scm: * module/system/vm/program.scm: * module/system/vm/vm.scm: Call the init functions in libguile; should fix at some point to avoid the dlopen?
This commit is contained in:
parent
be52b55a32
commit
83495480e8
31 changed files with 70 additions and 175 deletions
|
@ -2136,7 +2136,8 @@ module '(ice-9 q) '(make-q q-length))}."
|
|||
|
||||
;;; {Compiled module}
|
||||
|
||||
(define load-compiled #f)
|
||||
(if (not (defined? 'load-compiled))
|
||||
(define load-compiled #f))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -115,6 +115,9 @@ libguile_la_SOURCES = alist.c arbiters.c async.c backtrace.c boolean.c \
|
|||
throw.c values.c variable.c vectors.c version.c vports.c weaks.c \
|
||||
ramap.c unif.c
|
||||
|
||||
# vm-related sources
|
||||
libguile_la_SOURCES += frames.c instructions.c objcodes.c programs.c vm.c
|
||||
|
||||
libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_SOURCES = i18n.c
|
||||
libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_CFLAGS = \
|
||||
$(libguile_la_CFLAGS)
|
||||
|
@ -139,6 +142,9 @@ DOT_X_FILES = alist.x arbiters.x async.x backtrace.x boolean.x chars.x \
|
|||
strports.x struct.x symbols.x threads.x throw.x values.x \
|
||||
variable.x vectors.x version.x vports.x weaks.x ramap.x unif.x
|
||||
|
||||
# vm-related snarfs
|
||||
DOT_X_FILES += frames.x instructions.x objcodes.x programs.x vm.x
|
||||
|
||||
EXTRA_DOT_X_FILES = @EXTRA_DOT_X_FILES@
|
||||
|
||||
DOT_DOC_FILES = alist.doc arbiters.doc async.doc backtrace.doc \
|
||||
|
@ -162,9 +168,14 @@ DOT_DOC_FILES = alist.doc arbiters.doc async.doc backtrace.doc \
|
|||
|
||||
EXTRA_DOT_DOC_FILES = @EXTRA_DOT_DOC_FILES@
|
||||
|
||||
DOT_I_FILES = vm-i-system.i vm-i-scheme.i vm-i-loader.i
|
||||
|
||||
.c.i:
|
||||
grep '^VM_DEFINE' $< > $@
|
||||
|
||||
BUILT_SOURCES = cpp_err_symbols.c cpp_sig_symbols.c libpath.h \
|
||||
version.h scmconfig.h \
|
||||
$(DOT_X_FILES) $(EXTRA_DOT_X_FILES)
|
||||
$(DOT_I_FILES) $(DOT_X_FILES) $(EXTRA_DOT_X_FILES)
|
||||
|
||||
EXTRA_libguile_la_SOURCES = _scm.h \
|
||||
inet_aton.c memmove.c putenv.c strerror.c \
|
||||
|
@ -192,6 +203,9 @@ noinst_HEADERS = convert.i.c \
|
|||
win32-uname.h win32-dirent.h win32-socket.h \
|
||||
private-gc.h private-options.h
|
||||
|
||||
# vm instructions
|
||||
noinst_HEADERS += vm-engine.c vm-i-system.c vm-i-scheme.c vm-i-loader.c
|
||||
|
||||
libguile_la_DEPENDENCIES = @LIBLOBJS@
|
||||
libguile_la_LIBADD = @LIBLOBJS@ $(gnulib_library)
|
||||
libguile_la_LDFLAGS = @LTLIBINTL@ -version-info @LIBGUILE_INTERFACE_CURRENT@:@LIBGUILE_INTERFACE_REVISION@:@LIBGUILE_INTERFACE_AGE@ -export-dynamic -no-undefined
|
||||
|
@ -219,6 +233,9 @@ modinclude_HEADERS = __scm.h alist.h arbiters.h async.h backtrace.h \
|
|||
pthread-threads.h null-threads.h throw.h unif.h values.h \
|
||||
variable.h vectors.h vports.h weaks.h
|
||||
|
||||
modinclude_HEADERS += vm-bootstrap.h frames.h instructions.h objcodes.h \
|
||||
programs.h vm.h vm-engine.h vm-expand.h
|
||||
|
||||
nodist_modinclude_HEADERS = version.h scmconfig.h
|
||||
|
||||
bin_SCRIPTS = guile-snarf
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "bootstrap.h"
|
||||
#include "vm-bootstrap.h"
|
||||
#include "frames.h"
|
||||
|
||||
|
||||
|
@ -95,10 +95,10 @@ heap_frame_free (SCM obj)
|
|||
|
||||
/* Scheme interface */
|
||||
|
||||
SCM_DEFINE (scm_frame_p, "frame?", 1, 0, 0,
|
||||
SCM_DEFINE (scm_heap_frame_p, "heap-frame?", 1, 0, 0,
|
||||
(SCM obj),
|
||||
"")
|
||||
#define FUNC_NAME s_scm_frame_p
|
||||
#define FUNC_NAME s_scm_heap_frame_p
|
||||
{
|
||||
return SCM_BOOL (SCM_HEAP_FRAME_P (obj));
|
||||
}
|
|
@ -104,6 +104,7 @@ extern scm_t_bits scm_tc16_heap_frame;
|
|||
#define SCM_HEAP_FRAME_POINTER(f) (SCM_HEAP_FRAME_DATA (f) + 2)
|
||||
#define SCM_VALIDATE_HEAP_FRAME(p,x) SCM_MAKE_VALIDATE (p, x, HEAP_FRAME_P)
|
||||
|
||||
extern SCM scm_heap_frame_p (SCM obj);
|
||||
extern SCM scm_frame_program (SCM frame);
|
||||
extern SCM scm_frame_local_ref (SCM frame, SCM index);
|
||||
extern SCM scm_frame_local_set_x (SCM frame, SCM index, SCM val);
|
|
@ -118,6 +118,7 @@
|
|||
#include "libguile/variable.h"
|
||||
#include "libguile/vectors.h"
|
||||
#include "libguile/version.h"
|
||||
#include "libguile/vm-bootstrap.h"
|
||||
#include "libguile/vports.h"
|
||||
#include "libguile/weaks.h"
|
||||
#include "libguile/guardians.h"
|
||||
|
@ -572,6 +573,8 @@ scm_i_init_guile (SCM_STACKITEM *base)
|
|||
scm_init_rw ();
|
||||
scm_init_extensions ();
|
||||
|
||||
scm_bootstrap_vm ();
|
||||
|
||||
atexit (cleanup_for_exit);
|
||||
scm_load_startup_files ();
|
||||
}
|
||||
|
|
|
@ -44,15 +44,15 @@
|
|||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "bootstrap.h"
|
||||
#include "vm-bootstrap.h"
|
||||
#include "instructions.h"
|
||||
|
||||
struct scm_instruction scm_instruction_table[] = {
|
||||
#define VM_INSTRUCTION_TO_TABLE 1
|
||||
#include "vm_expand.h"
|
||||
#include "vm_system.i"
|
||||
#include "vm_scheme.i"
|
||||
#include "vm_loader.i"
|
||||
#include "vm-expand.h"
|
||||
#include "vm-i-system.i"
|
||||
#include "vm-i-scheme.i"
|
||||
#include "vm-i-loader.i"
|
||||
#undef VM_INSTRUCTION_TO_TABLE
|
||||
{scm_op_last}
|
||||
};
|
|
@ -46,10 +46,10 @@
|
|||
|
||||
enum scm_opcode {
|
||||
#define VM_INSTRUCTION_TO_OPCODE 1
|
||||
#include "vm_expand.h"
|
||||
#include "vm_system.i"
|
||||
#include "vm_scheme.i"
|
||||
#include "vm_loader.i"
|
||||
#include "vm-expand.h"
|
||||
#include "vm-i-system.i"
|
||||
#include "vm-i-scheme.i"
|
||||
#include "vm-i-loader.i"
|
||||
#undef VM_INSTRUCTION_TO_OPCODE
|
||||
scm_op_last
|
||||
};
|
|
@ -51,7 +51,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "bootstrap.h"
|
||||
#include "vm-bootstrap.h"
|
||||
#include "programs.h"
|
||||
#include "objcodes.h"
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "bootstrap.h"
|
||||
#include "vm-bootstrap.h"
|
||||
#include "instructions.h"
|
||||
#include "programs.h"
|
||||
#include "vm.h"
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
/* This file is included in vm.c twice */
|
||||
|
||||
#include "vm_engine.h"
|
||||
#include "vm-engine.h"
|
||||
|
||||
|
||||
static SCM
|
||||
|
@ -87,10 +87,10 @@ vm_run (SCM vm, SCM program, SCM args)
|
|||
/* Jump table */
|
||||
static void *jump_table[] = {
|
||||
#define VM_INSTRUCTION_TO_LABEL 1
|
||||
#include "vm_expand.h"
|
||||
#include "vm_system.i"
|
||||
#include "vm_scheme.i"
|
||||
#include "vm_loader.i"
|
||||
#include "vm-expand.h"
|
||||
#include "vm-i-system.i"
|
||||
#include "vm-i-scheme.i"
|
||||
#include "vm-i-loader.i"
|
||||
#undef VM_INSTRUCTION_TO_LABEL
|
||||
};
|
||||
#endif
|
||||
|
@ -124,10 +124,10 @@ vm_run (SCM vm, SCM program, SCM args)
|
|||
switch (*ip++) {
|
||||
#endif
|
||||
|
||||
#include "vm_expand.h"
|
||||
#include "vm_system.c"
|
||||
#include "vm_scheme.c"
|
||||
#include "vm_loader.c"
|
||||
#include "vm-expand.h"
|
||||
#include "vm-i-system.c"
|
||||
#include "vm-i-scheme.c"
|
||||
#include "vm-i-loader.c"
|
||||
|
||||
#ifndef HAVE_LABELS_AS_VALUES
|
||||
}
|
|
@ -44,7 +44,7 @@
|
|||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "bootstrap.h"
|
||||
#include "vm-bootstrap.h"
|
||||
#include "frames.h"
|
||||
#include "instructions.h"
|
||||
#include "objcodes.h"
|
||||
|
@ -245,14 +245,14 @@ vm_heapify_frames (SCM vm)
|
|||
#if 0
|
||||
#define VM_NAME vm_regular_engine
|
||||
#define VM_ENGINE VM_REGULAR_ENGINE
|
||||
#include "vm_engine.c"
|
||||
#include "vm-engine.c"
|
||||
#undef VM_NAME
|
||||
#undef VM_ENGINE
|
||||
#endif
|
||||
|
||||
#define VM_NAME vm_debug_engine
|
||||
#define VM_ENGINE VM_DEBUG_ENGINE
|
||||
#include "vm_engine.c"
|
||||
#include "vm-engine.c"
|
||||
#undef VM_NAME
|
||||
#undef VM_ENGINE
|
||||
|
||||
|
@ -656,8 +656,7 @@ scm_bootstrap_vm (void)
|
|||
|
||||
the_vm = scm_permanent_object (make_vm ());
|
||||
|
||||
/* a bit heavy-handed, this */
|
||||
scm_variable_set_x (scm_c_lookup ("load-compiled"),
|
||||
scm_c_define ("load-compiled",
|
||||
scm_c_make_gsubr ("load-compiled/vm", 1, 0, 0,
|
||||
scm_load_compiled_with_vm));
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
SOURCES = assemble.scm bootstrap.scm conv.scm debug.scm \
|
||||
SOURCES = assemble.scm conv.scm debug.scm \
|
||||
disasm.scm frame.scm instruction.scm objcode.scm \
|
||||
profile.scm program.scm trace.scm vm.scm
|
||||
moddir = $(guiledir)/system/vm
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
;;; Bootstrapping the VM into the interpreter
|
||||
|
||||
;; Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation; either version 2, or (at your option)
|
||||
;; any later version.
|
||||
;;
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
;;
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program; see the file COPYING. If not, write to
|
||||
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(define-module (system vm bootstrap))
|
||||
|
||||
;;;
|
||||
;;; Core procedures
|
||||
;;;
|
||||
|
||||
;; Calling this updates boot-9.scm's `load-compiled' to point to to
|
||||
;; scm_load_compiled_with_vm, so future module loads will read .go files
|
||||
;; if they are present.
|
||||
(dynamic-call "scm_bootstrap_vm" (dynamic-link "libguile-vm"))
|
|
@ -32,9 +32,10 @@
|
|||
frame-object-name
|
||||
frame-local-ref frame-external-link frame-local-set!
|
||||
frame-return-address frame-program
|
||||
frame-dynamic-link frame?))
|
||||
frame-dynamic-link heap-frame?))
|
||||
|
||||
(dynamic-call "scm_init_frames" (dynamic-link "libguile-vm"))
|
||||
;; fixme: avoid the dynamic-call?
|
||||
(dynamic-call "scm_init_frames" (dynamic-link "libguile"))
|
||||
|
||||
;;;
|
||||
;;; Frame chain
|
||||
|
@ -123,7 +124,7 @@
|
|||
(let ((prog (frame-program frame))
|
||||
(link (frame-dynamic-link frame)))
|
||||
(or (object-property prog 'name)
|
||||
(and (frame? link)
|
||||
(and (heap-frame? link)
|
||||
(frame-object-name link (1- (frame-address link)) prog))
|
||||
(hash-fold (lambda (s v d) (if (eq? prog (variable-ref v)) s d))
|
||||
prog (module-obarray (current-module))))))
|
||||
|
|
|
@ -25,4 +25,4 @@
|
|||
instruction-pops instruction-pushes
|
||||
instruction->opcode opcode->instruction))
|
||||
|
||||
(dynamic-call "scm_init_instructions" (dynamic-link "libguile-vm"))
|
||||
(dynamic-call "scm_init_instructions" (dynamic-link "libguile"))
|
||||
|
|
|
@ -23,4 +23,4 @@
|
|||
:export (objcode->u8vector objcode? objcode->program bytecode->objcode
|
||||
load-objcode))
|
||||
|
||||
(dynamic-call "scm_init_objcodes" (dynamic-link "libguile-vm"))
|
||||
(dynamic-call "scm_init_objcodes" (dynamic-link "libguile"))
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
program-bytecode program? program-objects
|
||||
program-base program-external))
|
||||
|
||||
(dynamic-call "scm_init_programs" (dynamic-link "libguile-vm"))
|
||||
(dynamic-call "scm_init_programs" (dynamic-link "libguile"))
|
||||
|
||||
(define arity:nargs car)
|
||||
(define arity:nrest cadr)
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
vm-next-hook vm-apply-hook vm-boot-hook vm-return-hook
|
||||
vm-break-hook vm-exit-hook vm-halt-hook vm-enter-hook))
|
||||
|
||||
(dynamic-call "scm_init_vm" (dynamic-link "libguile-vm"))
|
||||
(dynamic-call "scm_init_vm" (dynamic-link "libguile"))
|
||||
|
||||
(define (vm-current-frame-chain vm)
|
||||
(make-frame-chain (vm-this-frame vm) (vm:ip vm)))
|
||||
|
|
|
@ -47,9 +47,14 @@ top_builddir="@top_builddir_absolute@"
|
|||
|
||||
if [ x"$GUILE_LOAD_PATH" = x ]
|
||||
then
|
||||
GUILE_LOAD_PATH="${top_srcdir}/guile-readline:${top_srcdir}"
|
||||
if test "${top_srcdir}" != "${top_builddir}"; then
|
||||
GUILE_LOAD_PATH="${top_builddir}/guile-readline:${top_srcdir}/guile-readline:${top_builddir}:${top_srcdir}:${top_builddir}/module:${top_srcdir}/module"
|
||||
else
|
||||
GUILE_LOAD_PATH="${top_srcdir}/guile-readline:${top_srcdir}:${top_builddir}/module:${top_srcdir}/module"
|
||||
fi
|
||||
else
|
||||
for d in "${top_srcdir}" "${top_srcdir}/guile-readline"
|
||||
for d in "${top_srcdir}" "${top_srcdir}/guile-readline" \
|
||||
"${top_srcdir}/module" "${top_builddir}/module"
|
||||
do
|
||||
# This hair prevents double inclusion.
|
||||
# The ":" prevents prefix aliasing.
|
||||
|
|
|
@ -1,49 +1,4 @@
|
|||
bin_PROGRAMS = guile-vm
|
||||
bin_SCRIPTS = guilec guile-disasm
|
||||
guile_vm_SOURCES = guile-vm.c
|
||||
guile_vm_LDADD = libguile-vm.la ../libguile/libguile.la
|
||||
|
||||
lib_LTLIBRARIES = libguile-vm.la
|
||||
libguile_vm_la_SOURCES = \
|
||||
bootstrap.h \
|
||||
frames.c instructions.c objcodes.c programs.c vm.c \
|
||||
frames.h instructions.h objcodes.h programs.h vm.h \
|
||||
vm_engine.h vm_expand.h
|
||||
libguile_vm_la_LDFLAGS = -version-info 0:0:0 -export-dynamic
|
||||
EXTRA_DIST = vm_engine.c vm_system.c vm_scheme.c vm_loader.c \
|
||||
guilec.in guile-disasm.in
|
||||
BUILT_SOURCES = vm_system.i vm_scheme.i vm_loader.i \
|
||||
frames.x instructions.x objcodes.x programs.x vm.x
|
||||
|
||||
INCLUDES =
|
||||
CLEANFILES = guilec guile-disasm
|
||||
DISTCLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
ETAGS_ARGS = --regex='/SCM_\(SYMBOL\|VCELL\).*\"\([^\"]\)*\"/\3/' \
|
||||
--regex='/SCM_DEFINE[ \t]*(\([^,]*\),[^,]*/\1/'
|
||||
|
||||
SNARF = $(top_builddir)/pre-inst-guile-env guile-snarf
|
||||
SUFFIXES = .i .x
|
||||
|
||||
.c.i:
|
||||
grep '^VM_DEFINE' $< > $@
|
||||
|
||||
.c.x:
|
||||
$(SNARF) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@ \
|
||||
|| { rm $@; false; }
|
||||
|
||||
|
||||
# Extra rules for debugging purposes.
|
||||
|
||||
%.I: %.c
|
||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $< > $@
|
||||
|
||||
%.s: %.c
|
||||
$(CC) -S -dA $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) -o $@ $<
|
||||
|
||||
|
||||
%: %.in
|
||||
sed "s!@guile@!$(bindir)/guile!" $^ > $@
|
||||
@chmod 755 $@
|
||||
|
||||
$(BUILT_SOURCES): vm_expand.h
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA
|
||||
*
|
||||
* As a special exception, the Free Software Foundation gives permission
|
||||
* for additional uses of the text contained in its release of GUILE.
|
||||
*
|
||||
* The exception is that, if you link the GUILE library with other files
|
||||
* to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the GUILE library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the
|
||||
* Free Software Foundation under the name GUILE. If you copy
|
||||
* code from other Free Software Foundation releases into a copy of
|
||||
* GUILE, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for GUILE, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <libguile.h>
|
||||
#include "bootstrap.h"
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
scm_init_guile ();
|
||||
scm_bootstrap_vm ();
|
||||
scm_shell (argc, argv);
|
||||
return 0; /* never reached */
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
# The test programs.
|
||||
|
||||
# The Libtool executable.
|
||||
GUILE_VM = $(top_builddir)/src/guile-vm
|
||||
GUILE_VM = $(top_builddir)/pre-inst-guile
|
||||
|
||||
vm_test_files = \
|
||||
t-basic-contructs.scm \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue