and s_primitive_load_path.
* eval.c, load.c, error.c (scm_wta): use scm_misc_error.
* error.h: don't declare error symbols. prototype for scm_misc_error.
* stackchk.c (scm_stack_overflow_key): defined here instead of in
error.c.
* error.c: use SCM_SYMBOL to set up error keys.
scm_misc_error: new procedure.
+Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * load.c: change s_try_load and s_try_load_path to s_primitive_load
+ and s_primitive_load_path.
+
+ * eval.c, load.c, error.c (scm_wta): use scm_misc_error.
+
+ * error.h: don't declare error symbols. prototype for scm_misc_error.
+
+ * stackchk.c (scm_stack_overflow_key): defined here instead of in
+ error.c.
+
+ * error.c: use SCM_SYMBOL to set up error keys.
+ scm_misc_error: new procedure.
+
Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
* read.c (scm_lreadr): Recognize SCSH-style block comments; text
void (*scm_error_callback) () = 0;
/* all errors thrown from C should pass through here. */
-/* also known as scm_error. */
void
scm_error (key, subr, message, args, rest)
SCM key;
exit (1);
}
-/* error keys: defined here, initialized below, prototyped in error.h,
- associated with handler procedures in boot-9.scm. */
-SCM scm_system_error_key;
-SCM scm_num_overflow_key;
-SCM scm_out_of_range_key;
-SCM scm_arg_type_key;
-SCM scm_args_number_key;
-SCM scm_memory_alloc_key;
-SCM scm_stack_overflow_key;
-SCM scm_misc_error_key;
-
+SCM_SYMBOL (scm_system_error_key, "system-error");
void
scm_syserror (subr)
char *subr;
#endif
}
+SCM_SYMBOL (scm_num_overflow_key, "numerical-overflow");
void
scm_num_overflow (subr)
char *subr;
SCM_BOOL_F);
}
+SCM_SYMBOL (scm_out_of_range_key, "out-of-range");
void
scm_out_of_range (subr, bad_value)
char *subr;
SCM_BOOL_F);
}
+SCM_SYMBOL (scm_args_number_key, "wrong-number-of-args");
void
scm_wrong_num_args (proc)
SCM proc;
SCM_BOOL_F);
}
+SCM_SYMBOL (scm_arg_type_key, "wrong-type-arg");
void
scm_wrong_type_arg (subr, pos, bad_value)
char *subr;
SCM_BOOL_F);
}
+SCM_SYMBOL (scm_memory_alloc_key, "memory-allocation-error");
void
scm_memory_error (subr)
char *subr;
SCM_BOOL_F);
}
+SCM_SYMBOL (scm_misc_error_key, "misc-error");
+void
+scm_misc_error (subr, message, args)
+ char *subr;
+ char *message;
+ SCM args;
+{
+ scm_error (scm_misc_error_key, subr, message, args, SCM_BOOL_F);
+}
+
/* implements the SCM_ASSERT interface. */
SCM
scm_wta (arg, pos, s_subr)
if ((~0x1fL) & (long) pos)
{
/* error string supplied. */
- scm_error (scm_misc_error_key,
- s_subr,
- pos,
- SCM_BOOL_F,
- SCM_BOOL_F);
+ scm_misc_error (s_subr, pos, SCM_BOOL_F);
}
else
{
scm_memory_error (s_subr);
default:
/* this shouldn't happen. */
- scm_error (scm_misc_error_key,
- s_subr,
- "Unknown error",
- SCM_BOOL_F,
- SCM_BOOL_F);
+ scm_misc_error (s_subr, "Unknown error", SCM_BOOL_F);
}
}
return SCM_UNSPECIFIED;
void
scm_init_error ()
{
- scm_system_error_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("system-error")));
- scm_num_overflow_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("numerical-overflow")));
- scm_out_of_range_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("out-of-range")));
- scm_arg_type_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("wrong-type-arg")));
- scm_args_number_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("wrong-number-of-args")));
- scm_memory_alloc_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("memory-allocation-error")));
- scm_stack_overflow_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("stack-overflow")));
- scm_misc_error_key
- = scm_permanent_object (SCM_CAR (scm_intern0 ("misc-error")));
#include "error.x"
}
\f
extern int scm_ints_disabled;
-extern SCM scm_system_error_key;
-extern SCM scm_num_overflow_key;
-extern SCM scm_out_of_range_key;
-extern SCM scm_arg_type_key;
-extern SCM scm_args_number_key;
-extern SCM scm_memory_alloc_key;
-extern SCM scm_stack_overflow_key;
-extern SCM scm_misc_error_key;
-
\f
extern SCM scm_errno SCM_P ((SCM arg));
extern void scm_wrong_num_args SCM_P ((SCM proc));
extern void scm_wrong_type_arg SCM_P ((char *subr, int pos, SCM bad_value));
extern void scm_memory_error SCM_P ((char *subr));
+extern void scm_misc_error SCM_P ((char *subr, char *message, SCM args));
extern SCM scm_wta SCM_P ((SCM arg, char *pos, char *s_subr));
extern void scm_init_error SCM_P ((void));
var = SCM_CAR (var);
errout:
/* scm_everr (vloc, genv,...) */
- scm_error (scm_misc_error_key,
- NULL,
- SCM_NULLP (env)
- ? "Unbound variable: %S"
- : "Damaged environment: %S",
- scm_listify (var, SCM_UNDEFINED),
- SCM_BOOL_F);
+ scm_misc_error (NULL,
+ SCM_NULLP (env)
+ ? "Unbound variable: %S"
+ : "Damaged environment: %S",
+ scm_listify (var, SCM_UNDEFINED));
}
#endif
SCM_SETCAR (vloc, var + 1);
if (SCM_NIMP(x) && UDSCM_VARIABLEP (SCM_CAR (x)))
{
/* scm_everr (SCM_UNDEFINED, env,..., "global variable reference") */
- scm_error (scm_misc_error_key,
- NULL,
- "Bad variable: %S",
- scm_listify (SCM_CAR (SCM_CDR (x)), SCM_UNDEFINED),
- SCM_BOOL_F);
+ scm_misc_error (NULL,
+ "Bad variable: %S",
+ scm_listify (SCM_CAR (SCM_CDR (x)), SCM_UNDEFINED));
}
ASSYNT (SCM_NIMP(x) && DEFSCM_VARIABLEP (SCM_CAR (x)),
xorig, s_variable, s_vref);
proc = x;
badfun:
/* scm_everr (x, env,...) */
- scm_error (scm_misc_error_key,
- NULL,
- "Wrong type to apply: %S",
- scm_listify (proc, SCM_UNDEFINED),
- SCM_BOOL_F);
+ scm_misc_error (NULL,
+ "Wrong type to apply: %S",
+ scm_listify (proc, SCM_UNDEFINED));
case scm_tc7_vector:
case scm_tc7_wvect:
case scm_tc7_bvect:
\f
/* Loading a file, given an absolute filename. */
-SCM_PROC(s_sys_try_load, "primitive-load", 1, 2, 0, scm_primitive_load);
+SCM_PROC(s_primitive_load, "primitive-load", 1, 2, 0, scm_primitive_load);
SCM
scm_primitive_load (filename, case_insensitive_p, sharp)
SCM filename;
SCM sharp;
{
SCM_ASSERT (SCM_NIMP (filename) && SCM_ROSTRINGP (filename), filename,
- SCM_ARG1, s_sys_try_load);
+ SCM_ARG1, s_primitive_load);
{
SCM form, port;
port = scm_open_file (filename,
}
-SCM_PROC(s_sys_try_load_path, "primitive-load-path", 1, 2, 0,scm_primitive_load_path);
+SCM_PROC(s_primitive_load_path, "primitive-load-path", 1, 2, 0,scm_primitive_load_path);
SCM
scm_primitive_load_path (filename, case_insensitive_p, sharp)
SCM filename;
SCM full_filename = scm_sys_search_load_path (filename);
if (SCM_FALSEP (full_filename))
{
- scm_error (scm_misc_error_key,
- s_sys_try_load_path,
- "Unable to find file %S in %S",
- scm_listify (filename, *scm_loc_load_path, SCM_UNDEFINED),
- SCM_BOOL_F);
+ scm_misc_error (s_primitive_load_path,
+ "Unable to find file %S in %S",
+ scm_listify (filename, *scm_loc_load_path,
+ SCM_UNDEFINED));
}
return scm_primitive_load (full_filename, case_insensitive_p, sharp);
}
#ifdef STACK_CHECKING
int scm_stack_checking_enabled_p;
+SCM_SYMBOL (scm_stack_overflow_key, "stack-overflow");
+
void
scm_report_stack_overflow ()
{