mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 07:30:32 +02:00
* numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
* error.c, error.h: setup scm_num_overflow key. * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow. Remove definition of SCM_OVSCM_FLOW. * fports.c (scm_open_file): use SCM_SYSERROR_M. * __scm.h: SCM_SYSERROR_M: new macro for system errors with an explicit message and args. * error.c, error.h, __scm.h: change system_error_sym to scm_system_error. * error.c (system_error_sym): remove leading %% from the Scheme name "%%system-error". * __scm.h (SCM_SYSMISSING): Redefine using lgh_error. * boot-9.scm: remove leading %% from references to '%%system-error. (%%handle-system-error): don't pass all the thrown arguments when aborting, just the key and subr. Remove the code to "Install default handlers for built-in errors." Remove the definition of the syserror procedure. Associate 'numerical-overflow with default handler.
This commit is contained in:
parent
7d41a049f4
commit
e1724d200d
8 changed files with 111 additions and 66 deletions
|
@ -57,7 +57,6 @@
|
|||
/* {Errors and Exceptional Conditions}
|
||||
*/
|
||||
|
||||
SCM system_error_sym;
|
||||
|
||||
/* True between SCM_DEFER_INTS and SCM_ALLOW_INTS, and
|
||||
* when the interpreter is not running at all.
|
||||
|
@ -167,13 +166,13 @@ scm_everr (exp, env, arg, pos, s_subr)
|
|||
args = scm_listify (desc, sym, arg, SCM_UNDEFINED);
|
||||
}
|
||||
|
||||
/* (throw (quote %%system-error) <desc> <proc-name> arg)
|
||||
/* (throw (quote system-error) <desc> <proc-name> arg)
|
||||
*
|
||||
* <desc> is a string or an integer (see %%system-errors).
|
||||
* <proc-name> is a symbol or #f in some annoying cases (e.g. cddr).
|
||||
*/
|
||||
|
||||
scm_ithrow (system_error_sym, args, 1);
|
||||
scm_ithrow (scm_system_error, args, 1);
|
||||
|
||||
/* No return, but just in case: */
|
||||
|
||||
|
@ -223,6 +222,11 @@ scm_error (key, subr, message, args, rest)
|
|||
exit (1);
|
||||
}
|
||||
|
||||
/* error keys: defined here, initialized below, prototyped in error.h,
|
||||
associated with handler procedures in boot-9.scm. */
|
||||
SCM scm_system_error;
|
||||
SCM scm_num_overflow;
|
||||
|
||||
#ifdef __STDC__
|
||||
void
|
||||
scm_init_error (void)
|
||||
|
@ -231,7 +235,10 @@ void
|
|||
scm_init_error ()
|
||||
#endif
|
||||
{
|
||||
system_error_sym = scm_permanent_object (SCM_CAR (scm_intern0 ("%%system-error")));
|
||||
scm_system_error
|
||||
= scm_permanent_object (SCM_CAR (scm_intern0 ("system-error")));
|
||||
scm_num_overflow
|
||||
= scm_permanent_object (SCM_CAR (scm_intern0 ("numerical-overflow")));
|
||||
#include "error.x"
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue