[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-148-g75b2cc9

From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, wip-rtl, created. v2.1.0-148-g75b2cc9
Date: Wed, 23 Jan 2013 15:59:09 +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".

The branch, wip-rtl has been created
        at  75b2cc9a56d9de6a5ad39db1493813cb917bdc6f (commit)

- Log -----------------------------------------------------------------
commit 75b2cc9a56d9de6a5ad39db1493813cb917bdc6f
Author: Andy Wingo <address@hidden>
Date:   Tue Jan 22 19:12:49 2013 +0100

    fix interruptability of some loops
    * libguile/vm-engine.c (BR_UNARY, BR_BINARY, BR_ARITHMETIC): Handle
      interrupts if we branch backwards.

commit e33e246fcf1992811b733da996f7df57a3dc1aa4
Author: Andy Wingo <address@hidden>
Date:   Fri Aug 3 15:46:59 2012 +0200

    remove return_loc, instead put MV returns on the stack
    * libguile/frames.h: Update description of how RTL frames work.  The
      details are commented.
    * libguile/vm.c (rtl_apply, rtl_values): New static RTL programs.
    * 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

commit d900ea5ee8f55d844191ec5f678101c4c1c64962
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 a70ffd7d13d62c75e84ecc47cf1962f4f9673ecd
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 b06bfd5104b92dfd0fbfe78efc24e68a9467eb61
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.
      (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

commit ab44a67328af6f77149b5b0a4bfb195ef15a6e34
Author: Andy Wingo <address@hidden>
Date:   Sat Jun 9 18:26:27 2012 +0200

    add DWARF parser
    * module/
    * module/system/vm/dwarf.scm: New module, a DWARF parser.

commit c1494c22bd5f3ee121c5ee78ab462eecc8ea8964
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"

commit d537993369918e47d5e7d3eb787f9a85cb4ba0fb
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
    * libguile/vm.c (rtl_boot_continuation): Define a boot program.
    * libguile/frames.c (scm_frame_num_locals): Adapt for frames of RTL
    * libguile/frames.h: Add support for RTL frames, in which we abuse the
    * libguile/ 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
    * libguile/objcodes.c: Wire up the bits needed to detect the new RTL
      bytecode and load it, as appropriate.

commit fc16925e20c0754e7d823ea5d1809aeb486697fe
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 b4bd81b82001839083dc176b362d620addccd056
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
    * libguile/vm-i-system.c (assert_nargs_ee, assert_nargs_ge)
      (assert_nargs_ee_locals): Adapt to vm_error_wrong_num_args change.

commit 690f43d546b37e6572eb926d8c93ba39efd539f4
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 f05d113a20fdc1b9a5db89103e62d156883f4095
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
    * 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-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 01588507c854cfa89dabd94760cdc25ba4f5978f
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 d559fbdf7e0969c3b43a5c36d539640a4aa8ecec
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 f4c066e9fd8e8f569306567bfa857275355628d8
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 b8f24db188debc484f1a6ba944461be74bb22a4d
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 edef0333e7e2b5dc2e821d789da1b21503a436bf
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/ Adapt.


GNU Guile

reply via email to

[Prev in Thread] Current Thread [Next in Thread]