• Paul Eggert's avatar
    Assume C89 or later for math functions. · f6196b87
    Paul Eggert authored
    This simplifies the code, and makes it a bit smaller and faster,
    and (most important) makes it easier to clean up signal handling
    since we can stop worring about floating-point exceptions in
    library code.  That was a problem before C89, but the problem
    went away many years ago on all practical Emacs targets.
    * configure.ac (frexp, fmod): Remove checks for these functions,
    as we now assume them.
    (FLOAT_CHECK_DOMAIN, HAVE_INVERSE_HYPERBOLIC, NO_MATHERR)
    (HAVE_EXCEPTION):
    Remove; no longer needed.
    * admin/CPP-DEFINES (HAVE_FMOD, HAVE_FREXP, FLOAT_CHECK_DOMAIN)
    (HAVE_INVERSE_HYPERBOLIC, NO_MATHERR): Remove.
    * src/data.c, src/image.c, src/lread.c, src/print.c:
    Don't include <math.h>; no longer needed.
    * src/data.c, src/floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
    might be autoconfigured, as that never happens.
    * src/data.c (fmod):
    * src/doprnt.c (DBL_MAX_10_EXP):
    * src/print.c (DBL_DIG):
    Remove.  C89 or later always defines these.
    * src/floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
    (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
    (arith_error, domain_error, domain_error2):
    Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
    no longer needed -- we simply return what C returns.  All uses removed.
    (IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
    the wrapped code.
    (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
    Remove.  All uses expanded, as these macros are no longer used
    more than once and are now more trouble than they're worth.
    (Ftan): Use tan, not sin / cos.
    (Flogb): Assume C89 frexp.
    (fmod_float): Assume C89 fmod.
    (matherr) [HAVE_MATHERR]: Remove; no longer needed.
    (init_floatfns): Remove.  All uses removed.
    f6196b87
lread.c 133 KB