diff options
author | Andy Wingo <wingo@pobox.com> | 2008-08-07 13:11:27 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2008-08-07 13:11:27 +0200 |
commit | 07e56b27a1841d70e562ac69b9ef9d25d489ceb3 (patch) | |
tree | 5953919e3b45e6e3c1f5a472da088a666fd1a96c /src/instructions.c | |
parent | 1865ad56804be4da82a6247a868a81648ebe87b3 (diff) | |
download | guile-07e56b27a1841d70e562ac69b9ef9d25d489ceb3.tar.gz |
big reorg of scheme modules -- e.g. programs.c -> (system vm program)
This reorganization kills the ugly module-export-all hacks in
bootstrap.scm and core.scm. In fact, it gets rid of core.scm entirely,
breaking out its functionality into separate files.
* module/system/vm/trace.scm:
* module/system/vm/profile.scm:
* module/system/vm/disasm.scm:
* module/system/vm/debug.scm:
* module/system/vm/conv.scm:
* module/system/vm/assemble.scm:
* module/system/repl/repl.scm:
* module/system/repl/common.scm:
* module/system/base/compile.scm:
* module/system/repl/command.scm: Update for changes, and fix a bug in
procedure-documentation.
* module/system/vm/bootstrap.scm: Just call scm_bootstrap_vm, which
handles setting load-compiled for us.
* module/system/vm/core.scm: Removed, functionality folded into other
modules.
* module/system/vm/frame.scm: Export the C frame procedures here; also
move scheme functions from core.scm here.
* module/system/vm/instruction.scm: New file, exports procedures from
instructions.c.
* module/system/vm/objcode.scm: New file, exports procedures from
objcodes.c.
* module/system/vm/program.scm: New file, exports procedures from
programs.c, and some scheme functions originally from core.scm.
* module/system/vm/vm.scm: New file, from vm.c and core.scm.
* src/Makefile.am (libguile_vm_la_SOURCES): Add bootstrap.h.
* src/bootstrap.h: New file, prototypes scm_bootstrap_vm (), which the
scm_init_* functions call.
* src/frames.h:
* src/frames.c (scm_init_frames):
* src/frames.c (scm_bootstrap_frames):
* src/vm.h:
* src/instructions.h:
* src/instructions.c (scm_init_instructions):
* src/instructions.c (scm_bootstrap_instructions):
* src/objcodes.h:
* src/objcodes.c (scm_bootstrap_objcodes):
* src/objcodes.c (scm_init_objcodes):
* src/programs.h:
* src/programs.c (scm_bootstrap_programs):
* src/programs.c (scm_init_programs):
* src/vm.c (scm_bootstrap_vm):
* src/vm.c (scm_init_vm): Call scm_bootstrap_vm() before doing anything
in an init function. Bootstrap_vm will call bootstrap_instructions(),
etc to initialize types, then set load-compiled to point to
load-compiled/vm.
* src/vm.c (scm_load_compiled_with_vm): Code to load .go files, if
they're present.
Diffstat (limited to 'src/instructions.c')
-rw-r--r-- | src/instructions.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/instructions.c b/src/instructions.c index 2ed70f381..f7ec70182 100644 --- a/src/instructions.c +++ b/src/instructions.c @@ -44,6 +44,7 @@ #endif #include <string.h> +#include "bootstrap.h" #include "instructions.h" struct scm_instruction scm_instruction_table[] = { @@ -159,8 +160,15 @@ SCM_DEFINE (scm_opcode_to_instruction, "opcode->instruction", 1, 0, 0, #undef FUNC_NAME void +scm_bootstrap_instructions (void) +{ +} + +void scm_init_instructions (void) { + scm_bootstrap_vm (); + #ifndef SCM_MAGIC_SNARFER #include "instructions.x" #endif |