scm_the_last_stack_var.
* backtrace.h: Declare scm_the_last_stack_var.
* backtrace.c: Define scm_the_last_stack_var.
* root.c (mark_root): Don't mark the_last_stack_var.
* root.h (scm_root_state): Removed the_last_stack_var.
* throw.c: Added #include "fluids.h"
(ss_handler): `the-last-stack' is now a fluid.
* (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
--> the_last_stack_fluid.
* 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.
Sat Nov 29 01:16:53 1997 Mikael Djurfeldt <mdj@kenneth>
+ * init.c (scm_start_stack): Removed initialization of
+ scm_the_last_stack_var.
+
+ * backtrace.h: Declare scm_the_last_stack_var.
+
+ * backtrace.c: Define scm_the_last_stack_var.
+
+ * root.c (mark_root): Don't mark the_last_stack_var.
+
+ * root.h (scm_root_state): Removed the_last_stack_var.
+
+ * throw.c: Added #include "fluids.h"
+ (ss_handler): `the-last-stack' is now a fluid.
+
+ * (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
+ --> the_last_stack_fluid.
+
* 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.
return SCM_BOOL_F;
#endif
+SCM scm_the_last_stack_fluid;
+
static void display_header SCM_P ((SCM source, SCM port));
static void
display_header (source, port)
SCM
scm_backtrace ()
{
- SCM the_last_stack = scm_fluid_ref (SCM_CDR (scm_the_last_stack_var));
+ SCM the_last_stack = scm_fluid_ref (SCM_CDR (scm_the_last_stack_fluid));
if (SCM_NFALSEP (the_last_stack))
{
scm_newline (scm_cur_outp);
scm_init_backtrace ()
{
SCM f = scm_make_fluid ();
- scm_the_last_stack_var = scm_sysintern ("the-last-stack", f);
+ scm_the_last_stack_fluid = scm_sysintern ("the-last-stack", f);
#include "backtrace.x"
}
#include "libguile/__scm.h"
+extern SCM scm_the_last_stack_fluid;
+
void scm_display_error_message SCM_P ((SCM message, SCM args, SCM port));
SCM scm_display_error SCM_P ((SCM stack, SCM port, SCM subr, SCM message, SCM args, SCM rest));
SCM scm_display_backtrace SCM_P ((SCM stack, SCM port, SCM first, SCM depth));
scm_top_level_lookup_closure_var = SCM_BOOL_F;
scm_system_transformer = SCM_BOOL_F;
- scm_the_last_stack_var = SCM_BOOL_F;
-
scm_root->fluids = scm_make_initial_fluids ();
/* Create an object to hold the root continuation.
scm_gc_mark (s->fluids);
scm_gc_mark (s->top_level_lookup_closure_var);
scm_gc_mark (s->system_transformer);
- scm_gc_mark (s->the_last_stack_var);
return SCM_ROOT_STATE (root) -> parent;
}
SCM system_transformer;
SCM top_level_lookup_closure_var;
- SCM the_last_stack_var;
-
SCM handle; /* The root object for this root state */
SCM parent; /* The parent root object */
} scm_root_state;
#define scm_top_level_lookup_closure_var \
(scm_root->top_level_lookup_closure_var)
#define scm_system_transformer (scm_root->system_transformer)
-#define scm_the_last_stack_var (scm_root->the_last_stack_var)
#ifdef USE_THREADS
#define scm_root ((scm_root_state *) SCM_THREAD_LOCAL_DATA)
#include "continuations.h"
#include "stackchk.h"
#include "stacks.h"
+#include "fluids.h"
#include "throw.h"
\f
/* scm_internal_stack_catch
Use this one if you want debugging information to be stored in
- scm_the_last_stack_var on error. */
+ scm_the_last_stack_fluid on error. */
static SCM
ss_handler (void *data, SCM tag, SCM throw_args)
{
/* Save the stack */
- SCM_SETCDR (scm_the_last_stack_var,
- scm_make_stack (scm_cons (SCM_BOOL_T, SCM_EOL)));
+ scm_fluid_set_x (SCM_CDR (scm_the_last_stack_fluid),
+ scm_make_stack (scm_cons (SCM_BOOL_T, SCM_EOL)));
/* Throw the error */
return scm_throw (tag, throw_args);
}