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=a05fc75ca003623bf17fdf9e50dfc17f3e78321c The branch, wip-rtl has been created at a05fc75ca003623bf17fdf9e50dfc17f3e78321c (commit) - Log ----------------------------------------------------------------- commit a05fc75ca003623bf17fdf9e50dfc17f3e78321c Author: Andy Wingo <[email protected]> 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 a0341a7df691692d4744def43cda9811f00d4c9a Author: Andy Wingo <[email protected]> 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 5dd57fc57ce138a021ee5436c318101607aec0a4 Author: Andy Wingo <[email protected]> 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 e765d5ed50c4d9d0832bb14f143f2a13c22bc280 Author: Andy Wingo <[email protected]> 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 480cdc21c8024ed65470dfb9084fd7e22bc668a3 Author: Andy Wingo <[email protected]> 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 f60b8a298c0ed5ed8b00ea1aa2c571de68b58706 Author: Andy Wingo <[email protected]> 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 1aa4ccbbbe7bec2208d6ba4edf99130fb3139245 Author: Andy Wingo <[email protected]> Date: Mon May 28 12:25:43 2012 +0200 refactor to resolve_variable * libguile/vm.c (resolve_variable): Slight refactor. commit 64958206b9b3989f9d713677d8d6587c94653247 Author: Andy Wingo <[email protected]> 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 24e39bd753dbd00d776a512d9ff41327a4dd3a52 Author: Andy Wingo <[email protected]> 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 c0c08486478827d9bf59590a80dc69bd8f155f50 Author: Andy Wingo <[email protected]> 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 98e6f96110911043f7e29e456b5b10c18efe65c5 Author: Andy Wingo <[email protected]> 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 ff415ddfdc3208409852b10c9e97b7ccc778223d Author: Andy Wingo <[email protected]> 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 59bd526467e518ff69de3506bf506c0482d43c78 Author: Andy Wingo <[email protected]> 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 25513a40863add6cb856eba50c1fa344b93dc26f Author: Andy Wingo <[email protected]> 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 2098a00d852a2551db576f914f5902676508f14f Author: Andy Wingo <[email protected]> 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
