1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 07:30:28 +02:00
guile/module/language/cps
Andy Wingo 7184c176b4 with-dynamic-state compiler and VM support
* libguile/dynstack.h (SCM_DYNSTACK_TYPE_DYNAMIC_STATE):
* libguile/dynstack.c (DYNAMIC_STATE_WORDS, DYNAMIC_STATE_STATE_BOX):
  (scm_dynstack_push_dynamic_state):
  (scm_dynstack_unwind_dynamic_state): New definitions.
  (scm_dynstack_unwind_1, scm_dynstack_wind_1): Add with-dynamic-state
  cases.
* libguile/memoize.c (push_dynamic_state, pop_dynamic_state)
  (do_push_dynamic_state, do_pop_dynamic_state): New definitions.
  (memoize, scm_init_memoize): Handle push-dynamic-state and
  pop-dynamic-state.
* libguile/vm-engine.c (push-dynamic-state, pop-dynamic-state): New
  opcodes.
* module/ice-9/boot-9.scm (with-dynamic-state): New definition in Scheme
  so that the push-dynamic-state and pop-dynamic-state always run in the
  VM.
* module/language/cps/compile-bytecode.scm (compile-function):
* module/language/cps/effects-analysis.scm:
* module/language/cps/types.scm:
* module/language/tree-il/effects.scm (make-effects-analyzer):
* module/language/tree-il/peval.scm (peval):
* module/language/tree-il/primitives.scm (*interesting-primitive-names*):
* module/system/vm/assembler.scm: Add support for with-dynamic-state to
  the compiler.
* test-suite/tests/fluids.test ("dynamic states"): Add basic tests.
* doc/ref/vm.texi (Dynamic Environment Instructions): Update.
2016-12-05 22:57:29 +01:00
..
closure-conversion.scm Unbox indexes of vectors, strings, and structs 2015-12-01 15:42:24 +01:00
compile-bytecode.scm with-dynamic-state compiler and VM support 2016-12-05 22:57:29 +01:00
constructors.scm Unbox indexes of vectors, strings, and structs 2015-12-01 15:42:24 +01:00
contification.scm Replace return primcalls with $values 2015-10-28 11:11:23 +00:00
cse.scm Fabricated expression tweak in CSE 2016-09-01 10:54:31 +02:00
dce.scm Factor out compute-effects/elide-type-checks from dce.scm 2015-07-24 11:39:18 +02:00
effects-analysis.scm with-dynamic-state compiler and VM support 2016-12-05 22:57:29 +01:00
elide-values.scm Add missing files 2015-07-22 18:27:37 +02:00
handle-interrupts.scm Add handle-interrupts inst and compiler pass 2016-11-16 22:55:45 +01:00
intmap.scm Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
intset.scm Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
licm.scm Loop-invariant code motion 2015-07-24 16:50:58 +02:00
optimize.scm Include missing #:simplify? option in (language cps optimize). 2016-01-04 22:43:30 +01:00
peel-loops.scm Loop peeling 2015-07-27 13:45:23 +02:00
primitives.scm Add support for comparing u64 values with SCM values 2015-12-03 09:01:24 +01:00
prune-bailouts.scm Add missing files 2015-07-22 18:27:37 +02:00
prune-top-level-scopes.scm Add missing files 2015-07-22 18:27:37 +02:00
reify-primitives.scm Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
renumber.scm Add missing files 2015-07-22 18:27:37 +02:00
rotate-loops.scm Fix compilation of continue' in while'. 2016-08-04 21:36:34 +02:00
self-references.scm Add missing files 2015-07-22 18:27:37 +02:00
simplify.scm Remove unused function in simplify.scm 2016-01-04 23:33:24 +01:00
slot-allocation.scm Fix slot allocation for prompts 2016-10-11 23:01:38 +02:00
spec.scm Add missing files 2015-07-22 18:27:37 +02:00
specialize-numbers.scm Better unboxing 2016-09-01 10:55:45 +02:00
specialize-primcalls.scm Add ursh/immediate and ulsh/immediate ops 2015-12-02 22:11:19 +01:00
split-rec.scm Add missing files 2015-07-22 18:27:37 +02:00
type-checks.scm Factor out compute-effects/elide-type-checks from dce.scm 2015-07-24 11:39:18 +02:00
type-fold.scm Better folding of branches on $values 2016-01-03 16:17:53 +01:00
types.scm with-dynamic-state compiler and VM support 2016-12-05 22:57:29 +01:00
utils.scm Fix bug in intmap-map 2015-12-26 22:12:09 +01:00
verify.scm Replace return primcalls with $values 2015-10-28 11:11:23 +00:00
with-cps.scm Add missing files 2015-07-22 18:27:37 +02:00