[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-rtl-vm, created. v2.1.0-15-gafef28
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, wip-rtl-vm, created. v2.1.0-15-gafef28b |
Date: |
Sun, 19 May 2013 20:58:38 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=afef28b93e5c9032950806fd17c29e5d4e23772c
The branch, wip-rtl-vm has been created
at afef28b93e5c9032950806fd17c29e5d4e23772c (commit)
- Log -----------------------------------------------------------------
commit afef28b93e5c9032950806fd17c29e5d4e23772c
Author: Andy Wingo <address@hidden>
Date: Mon May 28 12:22:31 2012 +0200
add new rtl vm
* libguile/vm-engine.c (rtl_vm_engine): Add new VM.
(vm_engine): Add support for calling RTL programs.
* libguile/tags.h (scm_tc7_rtl_program): New type for procedures that
run on the new VM.
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/goops.c (scm_class_of):
* libguile/print.c (iprin1):
* libguile/procprop.c (scm_i_procedure_arity):
* libguile/procs.c (scm_procedure_p): Add hooks for the new tc7.
* libguile/programs.h:
* libguile/programs.c (scm_make_rtl_program, scm_i_rtl_program_print)
(scm_rtl_program_p, scm_rtl_program_code):
* module/system/vm/program.scm: Add constructors and accessors for the
new "RTL programs".
* libguile/vm.c (rtl_boot_continuation): Define a boot program.
(rtl_apply, rtl_values): New static RTL programs.
* libguile/frames.c (scm_frame_num_locals): Adapt for frames of RTL
programs.
* libguile/frames.h: Add description of RTL frames.
* libguile/Makefile.am: Add rules to generate vm-operations.h.
* .gitignore: Ignore vm-operations.h.
* module/system/vm/instruction.scm:
* libguile/instructions.c:
* libguile/instructions.h: Use vm-operations.h to define enumerated
values for the new RTL opcodes. Define some helper macros to pack and
unpack 32-bit instruction words.
(rtl-instruction-list): New function, exported by (system vm
instruction).
* libguile/objcodes.c: Wire up the bits needed to detect the new RTL
bytecode and load it, as appropriate.
* libguile/vm.c (vm_dispatch_hook):
* libguile/vm-engine.c (RUN_HOOK): Change hook dispatch mechanism to not
have the rest_p arg.
* libguile/vm-engine.c (PUSH_CONTINUATION_HOOK,
ABORT_CONTINUATION_HOOK): Don't take a rest_p.
(vm_engine, rtl_vm_engine):
* libguile/vm-i-system.c: Adapt {ABORT,POP}_CONTINUATION_HOOK
invocations to not have a rest_p.
* libguile/vm-engine.c (rtl_vm_engine): Adapt to new RTL stack frame
format.
commit 59bce5abd14dde04c5271b2927f0beb7bc9df876
Author: Andy Wingo <address@hidden>
Date: Mon May 28 12:25:43 2012 +0200
refactor to resolve_variable
* libguile/vm.c (resolve_variable): Slight refactor.
commit 98c106fcd4776feb325126367b2dcd60ac7e5a94
Author: Andy Wingo <address@hidden>
Date: Thu May 17 18:35:05 2012 +0200
cpp hygiene in the vm
* libguile/vm-engine.c:
* libguile/vm-i-scheme.c:
* libguile/vm-i-system.c: CPP hygiene: the code that #defines, #undefs.
Makes things cleaner given the multiple inclusion dance we do.
commit 4dc1be2932b5e739643b157714affdff7f9f0112
Author: Andy Wingo <address@hidden>
Date: Fri May 18 12:23:58 2012 +0200
pop-continuation abort-continuation hooks pass return vals directly
* doc/ref/api-debug.texi (VM Hooks): Update documentation.
* libguile/vm-engine.c: Rework the hook machinery so that they can
receive an arbitrary number of arguments. The return and abort hooks
will pass the values that they return to their continuations.
(vm_engine): Adapt to ABORT_CONTINUATION_HOOK change.
* libguile/vm-i-system.c (return, return/values): Adapt to
POP_CONTINUATION_HOOK change.
* module/system/vm/frame.scm (frame-return-values): Remove. The
pop-continuation-hook will pass the values directly.
* module/system/vm/trace.scm (print-return):
(trace-calls-to-procedure):
(trace-calls-in-procedure): Update to receive return values directly.
* module/system/vm/traps.scm (trap-in-procedure)
(trap-in-dynamic-extent): Ignore return values.
(trap-frame-finish, trap-calls-in-dynamic-extent)
(trap-calls-to-procedure): Pass return values to the handlers.
commit e56d6b6ec3a90d690ade7d9d5a31c953a22add49
Author: Andy Wingo <address@hidden>
Date: Fri May 18 12:21:33 2012 +0200
vm-engine: remove register assignments
* libguile/vm-engine.c: Remove the register assignments inherited from
the 1990s. GCC does seem to allocate reasonably on systems with
enough registers (e.g. x86-64), and on system with too few (x86-32) we
disabled manual allocation. Anyway this code was never tested, so
it's better to leave the compiler to do its own thing, until proven
otherwise. Also in the RTL VM we don't need to allocate a register to
the SP, because it isn't accessed as much.
commit b2b410e1504e9c7c75bfd3ac18bb1c22df43f84f
Author: Andy Wingo <address@hidden>
Date: Fri May 18 12:21:08 2012 +0200
remove some configurability in vm-engine
* libguile/vm-engine.c: Remove the ability for the VM to check object
access, free variable access, and the ip. They were off by default.
Since they will be different in the RTL VM, their presence is just
making things confusing.
commit ae8ae3959a70dbf904edeed84decbf23e7225a4d
Author: Andy Wingo <address@hidden>
Date: Fri May 18 11:57:51 2012 +0200
minor vm-engine cleanups
* libguile/vm-engine.c: Some very minor cleanups: indenting, use of
VM_ASSERT, commenting.
commit f138dc9f282a64be4c1196ed41f761f308f8dc7b
Author: Andy Wingo <address@hidden>
Date: Thu May 17 11:39:35 2012 +0200
remove CONS macro in VM; use scm_cons instead
* libguile/vm-engine.c (CONS): Remove. Callers should use scm_cons
instead, syncing registers beforehand.
(POP_LIST): Adapt, only synchronizing once.
(POP_LIST_MARK, POP_CONS_MARK): Remove unused macros.
* libguile/vm-i-scheme.c (cons):
* libguile/vm-i-system.c (push-rest, bind-rest): Adapt.
commit b5545044b1d5653964fc31347bf966a643543352
Author: Andy Wingo <address@hidden>
Date: Fri May 18 11:52:12 2012 +0200
inline vm-engine.h into vm-engine.c
* libguile/vm-engine.h:
* libguile/vm-engine.c: Fold vm-engine.h into vm-engine.c.
* libguile/Makefile.am: Adapt.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-rtl-vm, created. v2.1.0-15-gafef28b,
Andy Wingo <=