si:trap-fpe: move into ext package and extend documentation

This commit is contained in:
Marius Gerbershagen 2019-06-25 20:49:05 +02:00
parent b891630699
commit 34f26e8b71
3 changed files with 17 additions and 13 deletions

View file

@ -1797,7 +1797,7 @@ cl_symbols[] = {
{KEY_ "CDECL", KEYWORD, NULL, -1, OBJNULL},
{KEY_ "STDCALL", KEYWORD, NULL, -1, OBJNULL},
{SYS_ "TRAP-FPE", SI_ORDINARY, si_trap_fpe, 2, OBJNULL},
{EXT_ "TRAP-FPE", EXT_ORDINARY, si_trap_fpe, 2, OBJNULL},
{EXT_ "*ACTION-ON-UNDEFINED-VARIABLE*", EXT_SPECIAL, NULL, -1, ECL_NIL},

View file

@ -1797,7 +1797,7 @@ cl_symbols[] = {
{KEY_ "CDECL",NULL},
{KEY_ "STDCALL",NULL},
{SYS_ "TRAP-FPE","si_trap_fpe"},
{EXT_ "TRAP-FPE","si_trap_fpe"},
{EXT_ "*ACTION-ON-UNDEFINED-VARIABLE*",NULL},

View file

@ -59,33 +59,37 @@ or the value is silently used as it is. There are multiple options
controlling which behaviour is selected: If ECL is built with the
@code{--with-ieee-fp=no} configure option, then a condition is
signaled for every infinity or NaN encountered. If not, the behaviour
can be controlled by @code{si:trap-fpe}. By default, a condition is
can be controlled by @code{ext:trap-fpe}. By default, a condition is
signaled for invalid operation, division by zero and floating point
overflows. If the @code{ECL_OPT_TRAP_SIGFPE} option is false, no
conditions are signaled by default (Note that in this case, if you
enable trapping of floating point exceptions with @code{si:trap-fpe},
enable trapping of floating point exceptions with @code{ext:trap-fpe},
then you have to install your own signal handler).
@lspindex si:trap-fpe
@defun si:trap-fpe condition flag
@lspindex ext:trap-fpe
@defun ext:trap-fpe condition flag
Control the signaling of the floating point exceptions
@subsubheading Synopsis
@table @var
@item condition
a symbol - one of @code{t}, @code{division-by-zero},
a symbol - one of @code{last}, @code{t}, @code{division-by-zero},
@code{floating-point-overflow}, @code{floating-point-underflow},
@code{floating-point-invalid-operation} or
@code{floating-point-inexact}
@code{floating-point-invalid-operation},
@code{floating-point-inexact} or an integer.
@item flag
a generalized boolean
@end table
@subsubheading Description
If flag is true, arranges for the current thread to signal a
@var{condition} if the corresponding floating point exception is
detected in the future. If @var{condition} is @code{t}, the exceptions
which are signaled by default are disabled or enabled all at once.
If @var{condition} is @code{last}, @var{flag} is ignored and the
currently enabled floating point exceptions are returned in an
implementation depended format (currently an integer). Otherwise,
@var{flag} determines whether current thread will signal a floating
point exception for the conditions passed in @var{condition}.
@var{condition} can be either a symbol denoting a single condition,
@code{t} for all conditions that are enabled by default or a value
obtained from an earlier call to @code{ext:trap-fpe} with @code{last}.
@end defun
@node Numbers - Random-States