1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 21:10:27 +02:00
guile/module/system/repl
Andy Wingo 498f3f9568 Avoid stacks in dynamically-bound values
* libguile/dynstack.h:
* libguile/dynstack.c (scm_dynstack_find_old_fluid_value): New
  function.
* libguile/fluids.c (saved_dynamic_state_ref): New helper.
  (scm_fluid_ref): Fix docstring.
  (scm_fluid_ref_star): New function allowing access to previous values
  for a fluid.
  (scm_dynamic_state_ref): New internal function.
* libguile/fluids.h: Add scm_fluid_ref_star and scm_dynamic_state_ref.
* libguile/stacks.c (scm_stack_id): Adapt to %stacks not being a chain.
* libguile/throw.c (catch, throw_without_pre_unwind): Adapt to
  %exception-handlers not being a chain.
* module/ice-9/boot-9.scm (catch, dispatch-exception): Instead of having
  %exception-handlers be a chain, use fluid-ref* to access the chain
  that is in place at the time the exception is thrown.  Prevents
  unintended undelimited capture of the current exception handler stack
  by a delimited "catch".
  (%start-stack): Similarly, don't be a chain.
* module/system/repl/debug.scm (frame->stack-vector):
* module/system/repl/error-handling.scm (call-with-error-handling):
* module/ice-9/save-stack.scm (save-stack): Adapt to %stacks not being a
  chain.
* test-suite/tests/exceptions.test ("delimited exception handlers"): Add
  tests.
* doc/ref/api-control.texi (Fluids and Dynamic States): Add docs.
2017-02-07 09:57:55 +01:00
..
command.scm Fix exception when running ",help debug" 2016-08-25 16:08:50 +02:00
common.scm Bump user-visible copyright years to 2016. 2016-05-22 20:02:43 +02:00
coop-server.scm Importing modules with #:select no longer grovels private bindings 2016-06-21 16:01:50 +02:00
debug.scm Avoid stacks in dynamically-bound values 2017-02-07 09:57:55 +01:00
describe.scm Use 'substring' instead of obsoleted 'make-shared-substring' 2011-02-02 05:45:37 -08:00
error-handling.scm Avoid stacks in dynamically-bound values 2017-02-07 09:57:55 +01:00
repl.scm Add cooperative REPL server module. 2014-02-12 11:26:22 -05:00
server.scm REPL server avoids thread cleanup handlers 2016-10-31 22:13:30 +01:00