[Top][All Lists]

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

[Guile-commits] GNU Guile branch, wip-rtl-halloween, created. v2.1.0-310

From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, wip-rtl-halloween, created. v2.1.0-310-g57a5cc9
Date: Thu, 31 Oct 2013 17:01:15 +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-halloween has been created
        at  57a5cc97609bfb6e90952352095cc8245473b8c5 (commit)

- Log -----------------------------------------------------------------
commit 57a5cc97609bfb6e90952352095cc8245473b8c5
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 14:18:25 2013 +0100

    Better REPL support for disassembling RTL images
    * module/system/repl/command.scm (load-image): New helper.
      (compile, disassemble): Handle bytevectors.

commit b73a2ee01773d910d82074a818c3955b45a6e6e1
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 14:17:30 2013 +0100

    Default to compiling to RTL
    * module/ice-9/eval-string.scm (eval-string)
    * module/language/tree-il/spec.scm (tree-il)
    * module/scripts/compile.scm (compile)
    * module/system/base/compile.scm (compile-file, read-and-compile)
    * module/system/repl/common.scm (repl-compile, repl-prepare-eval-thunk):
      Default to compiling to RTL.
    * module/language/rtl/spec.scm (rtl->value): Add value compiler.

commit 30b7cf9df0f51bc2a3553396dc368c197eab4d8d
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 12:52:23 2013 +0100

    Avoid calling procedure-name when doing a make-procedure-with-setter
    * libguile/procs.c (scm_make_procedure_with_setter): Don't set the name
      of the procedure.  Instead rely on procedure-name to look it up from
      the wrapped procedure as needed.
    * libguile/procprop.c (scm_procedure_name): If there was no override and
      the procedure is a procedure-with-setter, recurse on the procedure.

commit 6165d8120d5973ea177514d0632247e1d38904ee
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 12:06:06 2013 +0100

    Better aliased primcall compilation
    * libguile/vm-engine.c (define!): Rename from define.
    * module/language/cps/arities.scm (fix-clause-arities): If a prim
      aliases an RTL instruction with a different name and we reify a
      primcall, reify the instruction name.
    * module/language/cps/compile-rtl.scm (emit-rtl-sequence): Update
      emit-define! for new name.
    * module/language/cps/primitives.scm (*rtl-instruction-aliases*): Add
      bytevector native accessors.

commit becce37b5835720857068c4865f1cd48275133d1
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 11:39:43 2013 +0100

    Better compiler support for bytevector ops
    * module/language/cps/compile-rtl.scm (emit-rtl-sequence): Add emitters
      for bytevector ops.  Add br-if-bytevector emitter.
    * module/language/cps/primitives.scm (*branching-primcall-arities*):
      Mark bytevector? as a branching primitive.
    * module/system/vm/assembler.scm (br-if-bytevector): New instruction
    * module/system/vm/disassembler.scm (code-annotation): Add support for

commit ecbef96687363cbf2eadeaaf8fab8d8efd33f944
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 11:30:53 2013 +0100

    Fix bytevector error messages.
    * libguile/vm-engine.c (BV_FIXABLE_INT_SET, BV_INT_SET):
      (BV_FLOAT_SET): Fix instruction names in error messages.

commit 7bfbc7b1c50df58a26e3ffb88f809858a03b0e11
Author: Andy Wingo <address@hidden>
Date:   Wed Oct 30 21:11:03 2013 +0100

    Support serialization of uniform vector literals
    * libguile/uniform.h:
    * libguile/uniform.c (scm_uniform_vector_element_type_code): New
      interface, returns a type code as an integer.
    * module/system/vm/assembler.scm (<uniform-vector-backing-store>)
      (simple-vector?, uniform-array?, statically-allocatable?)
      (intern-constant, link-data, link-constants): Support uniform arrays,
      and punt on vectors aren't contiguous from 0.  Support for general
      arrays will come later.
    * test-suite/tests/rtl.test ("load-constant"): Add tests.

commit 6a37b7faaf150e9fb7945ef79969cb7671d17367
Author: Andy Wingo <address@hidden>
Date:   Sun Oct 27 20:10:59 2013 +0100

    Compile-time debugging
    * module/language/cps/compile-rtl.scm:
    * module/language/cps/contification.scm: Add some compile-time
      printouts.  Will be removed later.

commit 334bd8e3c157fddf7a8f7b6c9d51358c15f257a3
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 10:49:38 2013 +0100

    DFG: $block no longer stores control-flow analysis
    * module/language/cps/dfg.scm ($block): Remove dominator-related things
      from $block.
      (reverse-post-order, convert-predecessors): Be more abstract, taking
      arbitrary identifiers for nodes instead of assuming the nodes are
      continuation names.
      (make-block-mapping): New helper.
      ($cfa): New data type, for dominator and loop analysis.  Not yet
      (analyze-control-flow): Rewrite to only compute the dominator tree in
      one direction, but take that direction as an argument.  To be public
      once there is some code that uses it.
      ($dfa): Refactor function fields to be hash tables.
      (dfa-k-idx, dfa-var-idx): Adapt to refactor.
      (compute-live-variables): Adapt to refactor.

commit 2ab2a10d508b521d4a1909fdd362811418f1aba4
Author: Andy Wingo <address@hidden>
Date:   Thu Oct 31 09:44:59 2013 +0100

    static-patch! replaces link-procedure!
    * libguile/vm-engine.c (static-patch!): Replace link-procedure! with
      this more versatile primitive.
    * module/system/vm/assembler.scm (intern-constant): Emit static-patch!
      for static procedures and for strings.
    * module/system/vm/disassembler.scm (code-annotation): Remove annotation
      for link-procedure!.  There can be no annotation for static-patch!, as
      neither operand is guaranteed to be a SCM value.

commit 11eff826853a34bf0de205f13519659d4926d22c
Author: Andy Wingo <address@hidden>
Date:   Wed Oct 30 21:08:38 2013 +0100

    Fix primitive reification for class-of, bytevector-u8-ref, etc
    * module/language/cps/reify-primitives.scm (primitive-module): Not all
      primitives are bound in (guile).

commit 4a39546bc4c06879464de80ad21b1b19786658bc
Author: Andy Wingo <address@hidden>
Date:   Tue Oct 29 23:06:07 2013 +0100

    DFG: Disable control-flow analysis.
    * module/language/cps/dfg.scm (visit-fun): Disable control-flow analysis
      for now, as it is not used.

commit 96af4a18b89f52bb94eb0ef69898b7f6a059beaa
Author: Andy Wingo <address@hidden>
Date:   Tue Oct 29 22:57:29 2013 +0100

    Add "pop" field to $prompt
    * module/language/cps.scm ($prompt): Add a "pop" field, indicating the
      continuation at which this prompt is popped.  The body of the prompt
      is dominated by the prompt, and post-dominated by the pop.  Adapt all
      builders and users.
    * module/language/cps/closure-conversion.scm:
    * module/language/cps/compile-rtl.scm:
    * module/language/cps/slot-allocation.scm:
    * module/language/cps/verify.scm:
    * module/language/tree-il/compile-cps.scm: Adapt.
    * module/language/cps/dfg.scm (visit-fun): Add an arc from the pop to
      the handler, to keep handler variables alive through the prompt body.

commit 2700f1983373a336d67bc622538988b36da73f09
Author: Andy Wingo <address@hidden>
Date:   Sun Oct 27 20:59:50 2013 +0100

    DWARF return arity fixen
    * module/system/vm/dwarf.scm (read-die-abbrev): Fix return arity.
      (read-compilation-unit): Fix return arity of read-die.

commit 73ba69a633c63de7ef8344e10fba027102d1f245
Author: Andy Wingo <address@hidden>
Date:   Sun Oct 27 11:40:55 2013 +0100

    Dynamic-wind doesn't call thunk? on the out-guard.
    * module/ice-9/boot-9.scm (dynamic-wind): Remove the thunk? check of the

commit 88e5caded5edf000f559c56d0ff2ea46d1ccffa1
Author: Andy Wingo <address@hidden>
Date:   Wed Oct 23 17:18:24 2013 +0200

    Walk the stack to determine extent of partial continuation
    * libguile/control.c (reify_partial_continuation): Walk the stack to
      determine the bottom of the captured stack.

commit 186b56c4dc870e0441a69b35ac9ea504251b6ca8
Author: Andy Wingo <address@hidden>
Date:   Sun Oct 20 18:09:52 2013 +0200

    Resumable partial continuations in the RTL VM
    * libguile/vm-engine.c (receive-values): Bugfix for the case where we
      want an exact number of values.
      (abort): Advance the IP before capturing.  The captured SP is fp - 1,
      not fp.
    * libguile/vm.c (vm_reinstate_partial_continuation): Don't push on a
      number-of-values marker.

commit 486013d67c2db6b454c4b684f0317ff948bd6eb1
Author: Andy Wingo <address@hidden>
Date:   Sun Oct 20 15:49:22 2013 +0200

    VM has "builtins": primitives addressable by emitted RTL code
    * libguile/
    * libguile/vm-builtins.h: New header, declaring stubs needed by the
      compiler like values, apply, and abort-to-prompt.
    * libguile/vm.c: Adapt the apply and values stubs to conform to a
      standard interface.  Add an abort-to-prompt stub.  Add call/cc and
      call-with-values stubs.
      (scm_vm_builtin_ref): New helper, for the builtin-ref opcode.
      (scm_vm_builtin_index_to_name): New helpers, for the compiler and
      disassembler, respectively.
      (scm_init_vm_builtins, scm_bootstrap_vm): Allow the compiler helpers
      to be loaded later into a module.
    * module/language/rtl.scm: Export builtin-index->name and
    * libguile/vm-engine.c (RETURN_VALUE_LIST): Update to use new names of
      "apply" and "values".
      (tail-call/shuffle): New opcode.
      (abort): Update to be a tail VM op, and reorder and renumber other
      (builtin-ref): New opcode.
    * libguile/continuations.h:
    * libguile/continuations.c (scm_i_call_with_current_continuation):
      Move this to vm.[ch], implemented as a builtin.
    * module/language/tree-il/compile-cps.scm (convert): Convert to
      'abort-to-prompt calls, possibly with 'apply, effectively undoing the
      tree-il transformation.
    * module/language/cps/reify-primitives.scm (builtin-ref): New helper.
      (reify-primitives): Convert builtin primitives to builtin-ref.
    * module/language/cps/dfg.scm (constant-needs-allocation?):
    * module/language/cps/compile-rtl.scm (emit-rtl-sequence): Add support
      for compiling builtin-ref.
    * module/system/vm/disassembler.scm (code-annotation): Add annotation
      for builtin-ref.

commit d76de8716d36e1fe419224119111fdb594a5d1b9
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 18 19:33:50 2013 +0200

    Partial continuations are RTL stubs
    * libguile/control.c: Implement partial continuations as RTL programs.
    * libguile/programs.c (scm_i_rtl_program_minimum_arity): Add partial
      continuation case.
    * libguile/vm-engine.c (compose-continuation): Fix to look for vm_cont
      from the free variables.
    * libguile/vm-i-system.c (abort): Poison continuations captured in the
      stack VM, as the can't be rewound by the RTL stubs.


GNU Guile

reply via email to

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