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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
