Mercurial > hg > xemacs-beta
view src/s/openbsd.h @ 5911:48386fd60fd0
GMP functions that take doubles choke on non-finite values, avoid that.
src/ChangeLog addition:
2015-05-10 Aidan Kehoe <kehoea@parhasard.net>
* floatfns.c (double_to_integer):
Rename this from float_to_int to fit our newer, bignum-compatible
terminology.
GMP can signal SIGFPE when asked to turn NaN or infinity into a
bignum, and we're not prepared to handle that signal if the OS float
library routines don't do that, so check for those values
explicitly.
* floatfns.c (ceiling_two_float):
* floatfns.c (ceiling_one_float):
* floatfns.c (floor_two_float):
* floatfns.c (floor_one_float):
* floatfns.c (round_two_float):
* floatfns.c (round_one_float):
* floatfns.c (truncate_two_float):
* floatfns.c (truncate_one_float):
Call double_to_integer() with its new name.
* number.c:
Don't use the {bignum,ratio,bigfloat}_set_double functions
directly here, with GMP they can choke when handed non-finite C
doubles, call Ftruncate() and the new float_to_bigfloat() from
floatfns.c. Maybe we should extend number-gmp.c with GMP-specific
implementations that check for non-finite values.
tests/ChangeLog addition:
2015-05-10 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Backslash a few parentheses in the first column for the sake of
fontification.
* automated/lisp-tests.el:
Check that the rounding functions signal Lisp errors correctly
when handed positive and negative infinity and NaN.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 10 May 2015 19:07:09 +0100 |
parents | 861f2601a38b |
children |
line wrap: on
line source
/* s/ file for openbsd systems. */ /* Synced up with: FSF 23.1.92. */ /* Synced by: Ben Wing, 2-18-10. */ /* Mostly the same as NetBSD. */ #include "netbsd.h" #if 0 /* Following mrb, this stuff is probably unneeded for XEmacs */ /* This very-badly named symbol is conditionally defined in netbsd.h. Better would be either to not need it in the first place, or to choose a more descriptive name. */ #ifndef LD_SWITCH_SYSTEM_tmp #define LD_SWITCH_SYSTEM_tmp /* empty */ #endif #endif /* 0 */ /* TERMINFO, LIBS_TERMCAP deleted */ #if 0 /* Following mrb, this stuff is probably unneeded for XEmacs */ #undef LD_SWITCH_SYSTEM_TEMACS #undef LD_SWITCH_SYSTEM #ifdef __ELF__ /* Han Boetes <han@mijncomputer.nl> says this is necessary, otherwise Emacs dumps core on elf systems. */ #define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp "-Z" /* The version of gcc on OpenBSD doesn't search /usr/local/lib by default. */ #define LD_SWITCH_X_DEFAULT "-L/usr/local/lib" #else #define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp #define LD_SWITCH_X_DEFAULT "-L/usr/local/lib" #endif #endif /* 0 */ /* arch-tag: 7e3f65ca-3f48-4237-933f-2b208b21e8e2 (do not change this comment) */