summaryrefslogtreecommitdiff
path: root/module/ice-9/save-stack.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-06-19 13:43:33 +0200
committerAndy Wingo <wingo@pobox.com>2010-06-19 13:43:33 +0200
commitec16eb7847895247be3438c25d2d27ce2e137b83 (patch)
treef63db2c446063ff7e481d7b374a5c1b61582d3c4 /module/ice-9/save-stack.scm
parenta0d57eedfa135ae25bdb94274169aac362408bb9 (diff)
downloadguile-ec16eb7847895247be3438c25d2d27ce2e137b83.tar.gz
deprecate the-last-stack
* libguile/backtrace.h (scm_the_last_stack_fluid_var) * libguile/backtrace.c (scm_init_backtrace): No more scm_the_last_stack_fluid_var. The replacement is to resolve `the-last-stack' in (ice-9 stack-catch). (scm_backtrace_with_highlights): Accordingly, instead of backtracing the last stack, backtrace the current stack. * libguile/throw.h: * libguile/throw.c: * libguile/deprecated.h: * libguile/deprecated.c (scm_internal_stack_catch): Deprecate this function. * module/ice-9/save-stack.scm (the-last-stack): Move here from boot-9. * module/ice-9/debug.scm: * module/ice-9/debugger.scm: Use (ice-9 save-stack) for the-last-stack. * module/ice-9/deprecated.scm (the-last-stack): Add deprecated shim.
Diffstat (limited to 'module/ice-9/save-stack.scm')
-rw-r--r--module/ice-9/save-stack.scm3
1 files changed, 3 insertions, 0 deletions
diff --git a/module/ice-9/save-stack.scm b/module/ice-9/save-stack.scm
index 31eb8215e..126ed837e 100644
--- a/module/ice-9/save-stack.scm
+++ b/module/ice-9/save-stack.scm
@@ -32,11 +32,14 @@
(define-module (ice-9 save-stack)
;; Replace deprecated root-module bindings, if present.
#:replace (stack-saved?
+ the-last-stack
save-stack))
;; FIXME: stack-saved? is broken in the presence of threads.
(define stack-saved? #f)
+(define the-last-stack (make-fluid))
+
(define (save-stack . narrowing)
(if (not stack-saved?)
(begin