1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-19 18:20:22 +02:00
guile/module/language/tree-il
Andy Wingo c32b7c4cef Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops
* libguile/vm-i-system.c (push-fluid, pop-fluid):
* doc/ref/vm.texi (Dynamic Environment Instructions): Rename wind-fluids
  to push-fluid, and unwind-fluids to pop-fluid.  They now only work on
  one fluid binding at a time.

* module/ice-9/boot-9.scm (with-fluid*): Implement in Scheme in terms of
  primcalls to push-fluid and pop-fluid.
  (custom-throw-handler, catch, with-throw-handler): Use with-fluid*
  instead of with-fluids, as with-fluids is no longer available before
  psyntax is loaded.
  (with-fluids): Define in Scheme in terms of with-fluid*.

* libguile/fluids.c (scm_with_fluid): Rename from scm_with_fluids, and
  don't expose to Scheme.

* libguile/eval.c (eval): Remove SCM_M_WITH_FLUIDS case.
* libguile/expand.c (expand_with_fluids): Remove with-fluids syntax.
  (DYNLET): Remove, no longer defining dynlet in the %expanded-vtables.
* libguile/expand.h: Remove dynlet definitions.
* module/ice-9/eval.scm (primitive-eval): Remove with-fluids case.
* libguile/memoize.c (do_push_fluid, do_pop_fluid): New primitive
  helpers, like wind and unwind.
  (memoize): Memoize wind and unwind primcalls.  Don't memoize dynlet to
  with-fluids.
  (scm_init_memoize): Initialize push_fluid and pop_fluid here.
* libguile/memoize.h (SCM_M_WITH_FLUIDS): Remove definition.

* module/ice-9/psyntax.scm (build-dynlet): Remove; this just supported
  with-fluids, which is now defined in boot-9.
* module/ice-9/psyntax-pp.scm: Regenerate.

* doc/ref/compiler.texi (Tree-IL):
* module/language/tree-il.scm:
* module/language/tree-il/analyze.scm:
* module/language/tree-il/canonicalize.scm:
* module/language/tree-il/compile-glil.scm:
* module/language/tree-il/cse.scm:
* module/language/tree-il/debug.scm:
* module/language/tree-il/effects.scm: Remove <dynlet>.  Add cases for
  primcalls to push-fluid and pop-fluid in compile-glil.scm and
  effects.scm.

* module/language/tree-il/peval.scm (peval): Factor out
  with-temporaries; probably a bad idea, but works for now.  Factor out
  make-begin0 (a better idea).  Inline primcalls to with-fluid*, and
  remove dynlet cases.

* module/language/tree-il/primitives.scm (*interesting-primitive-names*):
  Add with-fluid*.
2013-06-28 19:52:09 +02:00
..
analyze.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
canonicalize.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
compile-glil.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
cse.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
debug.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
effects.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
fix-letrec.scm Tree-il post-order rewriter no longer destructive 2013-06-10 22:46:08 +02:00
inline.scm separate peval and a new canonicalization pass into their own modules 2011-09-28 19:39:39 +02:00
optimize.scm Pre-order tree-il rewrites are now non-destructive 2013-06-10 22:46:08 +02:00
peval.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
primitives.scm Remove with-fluids; replaced by with-fluid* and inlined push-fluid primops 2013-06-28 19:52:09 +02:00
spec.scm Merge remote-tracking branch 'origin/stable-2.0' 2013-01-31 11:52:42 +01:00