* backtrace.c: Added #include "fluids.h"
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Sat, 29 Nov 1997 01:10:21 +0000 (01:10 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Sat, 29 Nov 1997 01:10:21 +0000 (01:10 +0000)
(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
libguile/ChangeLog
libguile/backtrace.c
libguile/init.c

diff --git a/NEWS b/NEWS
index 56eaed3..ad5599a 100644 (file)
--- 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.
index 8926ac4..6bdee91 100644 (file)
@@ -1,3 +1,12 @@
+Sat Nov 29 01:16:53 1997  Mikael Djurfeldt  <mdj@kenneth>
+
+       * 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  <twp@skepsis.com>
 
        * iselect.c: #ifdef USE_THREADS around thread-related includes.
index cf16771..d66abb8 100644 (file)
@@ -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"
 }
index 06594b1..aec3852 100644 (file)
@@ -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 ();