[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-395-g70e1afa
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, wip-rtl, created. v2.1.0-395-g70e1afa |
Date: |
Sat, 28 Jul 2012 14:35:12 +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=70e1afafb65ab54f8bd66d6df32fa9549f83d28b
The branch, wip-rtl has been created
at 70e1afafb65ab54f8bd66d6df32fa9549f83d28b (commit)
- Log -----------------------------------------------------------------
commit 70e1afafb65ab54f8bd66d6df32fa9549f83d28b
Author: Andy Wingo <address@hidden>
Date: Thu Jun 28 20:42:07 2012 +0200
beginnings of procedure metadata tracking
* module/system/vm/rtl.scm (<meta>, <asm>): Add procedure meta-data
bookkeeping to <asm>.
(assembler): Move reset-asm-start! invocation to emit-text.
(begin-program): No more nlocals arg. Open a new asm-meta.
(end-program): New macro instruction, closes an asm-meta.
(emit-init-constants): Adapt begin-program invocation.
* test-suite/tests/rtl.test: Adapt begin-program invocations.
commit 8012487b672f7a3f3c22f3787f7c9fc5ab26705f
Author: Andy Wingo <address@hidden>
Date: Thu Jun 28 19:11:41 2012 +0200
remove initial nlocals and meta words on rtl programs
* libguile/programs.h: RTL programs no longer have initial nlocals /
meta words.
* libguile/vm-engine.c:
* libguile/vm.c:
* module/system/vm/rtl.scm: Adapt.
commit d1d0f91ae8dc21ed66d76483f750c571b56a821f
Author: Andy Wingo <address@hidden>
Date: Thu Jun 28 17:23:50 2012 +0200
the rtl vm updates vp->sp as appropriate
* libguile/vm-engine.c (SYNC_ALL, CHECK_OVERFLOW, ALLOC_FRAME)
(RESET_FRAME, RESTORE_FRAME): Rework to update vp->sp on entering and
leaving procedures.
(RETURN_ONE_VALUE, RETURN_VALUE_LIST): Adapt to use RESTORE_FRAME.
(rtl_vm_engine): Assume that non-local exits push on a `values' frame
of their own, and thus that we know how many values there are. Adapt
prelude to save space for the function's return values. Adapt various
instructions to use RESTORE_FRAME / RESET_FRAME / ALLOC_FRAME in order
to correctly catch the cases in which stack expansion would be
possible.
commit a22ef4e0c60c7b6a2768151ce388299a290b0540
Author: Andy Wingo <address@hidden>
Date: Sat Jun 9 18:26:27 2012 +0200
add DWARF parser
* module/Makefile.am:
* module/system/vm/dwarf.scm: New module, a DWARF parser.
commit 53ccb5c0ae5582cceea69bb1b02ee640ece6dd7a
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 6f26ae580e490f9be6519ef9b15617d7522a92e6
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).
* libguile/objcodes.c: Wire up the bits needed to detect the new RTL
bytecode and load it, as appropriate.
commit 7bee3910a6ed5797fef91ba66d03b4d1520aa612
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 7f5ab9fc33cd183f40ad6775efe37fcafb5e5fa7
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 8b5860ae7d5779c449c3f6a34cf1db5934cd1139
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 68983000229c3bc6fb7ab3575ff2d550ff8662c7
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 215a5cd84bbcb2612b630cac0b8c747e6f0228c2
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 9702dde3637e128d6eda52a74a04eaab2e414a75
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 7976b0e88a5a92d96669d2ba459be75673408422
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 15cb41c7002a1f630c4093ba16bcbe8e8fa0bbd5
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 675a5c3d06be42fbacefeef1946f1055cb4da295
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-395-g70e1afa,
Andy Wingo <=