[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, wip-rtl-vm, created. v2.1.0-15-gafef28

From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, wip-rtl-vm, created. v2.1.0-15-gafef28b
Date: Sun, 19 May 2013 20:58:38 +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-vm has been created
        at  afef28b93e5c9032950806fd17c29e5d4e23772c (commit)

- Log -----------------------------------------------------------------
commit afef28b93e5c9032950806fd17c29e5d4e23772c
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)
      (scm_rtl_program_p, scm_rtl_program_code):
    * module/system/vm/program.scm: Add constructors and accessors for the
      new "RTL programs".
    * libguile/vm.c (rtl_boot_continuation): Define a boot program.
      (rtl_apply, rtl_values): New static RTL programs.
    * libguile/frames.c (scm_frame_num_locals): Adapt for frames of RTL
    * libguile/frames.h: Add description of RTL frames.
    * 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.
    * 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 59bce5abd14dde04c5271b2927f0beb7bc9df876
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 98c106fcd4776feb325126367b2dcd60ac7e5a94
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 4dc1be2932b5e739643b157714affdff7f9f0112
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 e56d6b6ec3a90d690ade7d9d5a31c953a22add49
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 we don't need to allocate a register to
      the SP, because it isn't accessed as much.

commit b2b410e1504e9c7c75bfd3ac18bb1c22df43f84f
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 ae8ae3959a70dbf904edeed84decbf23e7225a4d
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 f138dc9f282a64be4c1196ed41f761f308f8dc7b
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 b5545044b1d5653964fc31347bf966a643543352
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]