From a5d6d578d65b777b3715be35d97a0a4ee8689fd8 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Sat, 29 Nov 1997 01:10:21 +0000 Subject: [PATCH] * backtrace.c: Added #include "fluids.h" (scm_init_backtrace): Initialize `the-last-stack' to a fluid. (scm_backtrace): `the-last-stack' is now a fluid. * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace after scm_init_fluids. --- NEWS | 2 ++ libguile/ChangeLog | 9 +++++++++ libguile/backtrace.c | 9 ++++++--- libguile/init.c | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 56eaed3ba..ad5599afd 100644 --- a/NEWS +++ b/NEWS @@ -49,6 +49,8 @@ support for it. The readline library is available via anonymous FTP from any GNU mirror site; the canonical location is "ftp://prep.ai.mit.edu/pub/gnu". +** the-last-stack is now a fluid. + * Changes to the procedure for linking libguile with your programs ** You can now use the 'build-guile' utility to link against Guile. diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 8926ac422..6bdee91e7 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,12 @@ +Sat Nov 29 01:16:53 1997 Mikael Djurfeldt + + * backtrace.c: Added #include "fluids.h" + (scm_init_backtrace): Initialize `the-last-stack' to a fluid. + (scm_backtrace): `the-last-stack' is now a fluid. + + * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace + after scm_init_fluids. + 1997-11-28 Tim Pierce * iselect.c: #ifdef USE_THREADS around thread-related includes. diff --git a/libguile/backtrace.c b/libguile/backtrace.c index cf1677154..d66abb807 100644 --- a/libguile/backtrace.c +++ b/libguile/backtrace.c @@ -51,6 +51,7 @@ #include "struct.h" #include "strports.h" #include "throw.h" +#include "fluids.h" #include "backtrace.h" @@ -538,10 +539,11 @@ SCM_PROC(s_backtrace, "backtrace", 0, 0, 0, scm_backtrace); SCM scm_backtrace () { - if (SCM_NFALSEP (SCM_CDR (scm_the_last_stack_var))) + SCM the_last_stack = scm_fluid_ref (SCM_CDR (scm_the_last_stack_var)); + if (SCM_NFALSEP (the_last_stack)) { scm_newline (scm_cur_outp); - scm_display_backtrace (SCM_CDR (scm_the_last_stack_var), + scm_display_backtrace (the_last_stack, scm_cur_outp, SCM_UNDEFINED, SCM_UNDEFINED); @@ -568,7 +570,8 @@ scm_backtrace () void scm_init_backtrace () { - scm_the_last_stack_var = scm_sysintern ("the-last-stack", SCM_BOOL_F); + SCM f = scm_make_fluid (); + scm_the_last_stack_var = scm_sysintern ("the-last-stack", f); #include "backtrace.x" } diff --git a/libguile/init.c b/libguile/init.c index 06594b13d..aec3852c7 100644 --- a/libguile/init.c +++ b/libguile/init.c @@ -394,7 +394,6 @@ scm_boot_guile_1 (base, closure) scm_init_alist (); scm_init_arbiters (); scm_init_async (); - scm_init_backtrace (); scm_init_boolean (); scm_init_chars (); scm_init_continuations (); @@ -402,6 +401,7 @@ scm_boot_guile_1 (base, closure) scm_init_eq (); scm_init_error (); scm_init_fluids (); + scm_init_backtrace (); /* Requires fluids */ scm_init_fports (); scm_init_filesys (); scm_init_gc ();