[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-rtl, created. v2.1.0-301-g41dcd5a
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, wip-rtl, created. v2.1.0-301-g41dcd5a |
Date: |
Mon, 28 May 2012 10:40:04 +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=41dcd5ad8bf3e046f7a06d57de08d4d59d6b2106
The branch, wip-rtl has been created
at 41dcd5ad8bf3e046f7a06d57de08d4d59d6b2106 (commit)
- Log -----------------------------------------------------------------
commit 41dcd5ad8bf3e046f7a06d57de08d4d59d6b2106
Author: Andy Wingo <address@hidden>
Date: Mon May 28 12:37:56 2012 +0200
add (system vm rtl)
* module/system/vm/rtl.scm: New module, implementing an assembler and
disassembler for RTL. Currently the output format is ELF, though we
will provide a version with less boilerplate for use in "online"
compilations.
commit 8917e54040580e2dde10617b499a2346517193bb
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):
* module/system/vm/program.scm: Add constructors for the new "RTL
programs".
* libguile/vm.c (rtl_boot_continuation): Define a boot program.
* libguile/frames.c (scm_frame_num_locals): Adapt for frames of RTL
programs.
* libguile/frames.h: Add support for RTL frames, in which we abuse the
MVRA.
* 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).
commit 06130a52759b21dd815fedc9fe3bea0fcba1e118
Author: Andy Wingo <address@hidden>
Date: Wed May 23 20:25:34 2012 +0200
add elf parser and linker
* module/Makefile.am:
* module/system/vm/elf.scm: New file.
commit b1d53967a5a7029e3d2832a5d8c056e4f3b7edee
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 49e013c6d2146463679c639c0213ddcaa83872a5
Author: Andy Wingo <address@hidden>
Date: Mon May 28 12:25:13 2012 +0200
slight change to vm_error_wrong_num_args
* libguile/vm.c (vm_error_wrong_num_args): Take the number of arguments
directly.
* libguile/vm-i-system.c (assert_nargs_ee, assert_nargs_ge)
(assert_nargs_ee_locals): Adapt to vm_error_wrong_num_args change.
commit 391c306c7c1c503f439f1460d086c0630633e5e8
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 73804b1ba5522c52d14d96000f85f64b27c82229
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 8ef83d19abcdb4bb96eb5c3fa2e800851c854a78
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 there is no SP, so things are a bit
different there.
commit bae07a150042c1ce71f7c5af4de8d94bed133975
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 8a289566079ee7ad124be3bb0997eca2d310d254
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 f2098778fab348bdbbdc95c7ccc13d9155f950d0
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 810f03ae425cb23347b87e685b7d9a14aa94368b
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, created. v2.1.0-301-g41dcd5a,
Andy Wingo <=