guile-commits
[Top][All Lists]
Advanced

[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



reply via email to

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