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-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



reply via email to

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