[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".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=57a5cc97609bfb6e90952352095cc8245473b8c5
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
bytevector?.
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
public.
(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
out-guard.
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/Makefile.am:
* 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_name_to_index)
(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
builtin-name->index.
* 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
ops.
(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.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-rtl-halloween, created. v2.1.0-310-g57a5cc9,
Andy Wingo <=