Stop trying to cater to platforms with a broken HUGE_VAL definition. It
breaks other platforms (in this case, the hack for broken Cray systems in turn caused failure on a Mac system broken in a different way).
This commit is contained in:
parent
60ae701b3a
commit
1de41bfbc0
|
@ -229,19 +229,14 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
#define Py_IS_INFINITY(X) ((X) && (X)*0.5 == (X))
|
#define Py_IS_INFINITY(X) ((X) && (X)*0.5 == (X))
|
||||||
|
|
||||||
/* According to
|
/* HUGE_VAL is supposed to expand to a positive double infinity. Python
|
||||||
* http://www.cray.com/swpubs/manuals/SN-2194_2.0/html-SN-2194_2.0/x3138.htm
|
* uses Py_HUGE_VAL instead because some platforms are broken in this
|
||||||
* on some Cray systems HUGE_VAL is incorrectly (according to the C std)
|
* respect. We used to embed code in pyport.h to try to worm around that,
|
||||||
* defined to be the largest positive finite rather than infinity. We need
|
* but different platforms are broken in conflicting ways. If you're on
|
||||||
* the std-conforming infinity meaning (provided the platform has one!).
|
* a platform where HUGE_VAL is defined incorrectly, fiddle your Python
|
||||||
*
|
* config to #define Py_HUGE_VAL to something that works on your platform.
|
||||||
* Then, according to a bug report on SourceForge, defining Py_HUGE_VAL as
|
|
||||||
* INFINITY caused internal compiler errors under BeOS using some version
|
|
||||||
* of gcc. Explicitly casting INFINITY to double made that problem go away.
|
|
||||||
*/
|
*/
|
||||||
#ifdef INFINITY
|
#ifndef Py_HUGE_VAL
|
||||||
#define Py_HUGE_VAL ((double)INFINITY)
|
|
||||||
#else
|
|
||||||
#define Py_HUGE_VAL HUGE_VAL
|
#define Py_HUGE_VAL HUGE_VAL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
18
Misc/NEWS
18
Misc/NEWS
|
@ -289,6 +289,24 @@ Tools/Demos
|
||||||
|
|
||||||
Build
|
Build
|
||||||
|
|
||||||
|
- Accoring to Annex F of the current C standard,
|
||||||
|
|
||||||
|
The Standard C macro HUGE_VAL and its float and long double analogs,
|
||||||
|
HUGE_VALF and HUGE_VALL, expand to expressions whose values are
|
||||||
|
positive infinities.
|
||||||
|
|
||||||
|
Python only uses the double HUGE_VAL, and only to #define its own symbol
|
||||||
|
Py_HUGE_VAL. Some platforms have incorrect definitions for HUGE_VAL.
|
||||||
|
pyport.h used to try to worm around that, but the workarounds triggered
|
||||||
|
other bugs on other platforms, so we gave up. If your platform defines
|
||||||
|
HUGE_VAL incorrectly, you'll need to #define Py_HUGE_VAL to something
|
||||||
|
that works on your platform. The only instance of this I'm sure about
|
||||||
|
is on an unknown subset of Cray systems, described here:
|
||||||
|
|
||||||
|
http://www.cray.com/swpubs/manuals/SN-2194_2.0/html-SN-2194_2.0/x3138.htm
|
||||||
|
|
||||||
|
Presumably 2.3a1 breaks such systems. If anyone uses such a system, help!
|
||||||
|
|
||||||
- The configure option --without-doc-strings can be used to remove the
|
- The configure option --without-doc-strings can be used to remove the
|
||||||
doc strings from the builtin functions and modules; this reduces the
|
doc strings from the builtin functions and modules; this reduces the
|
||||||
size of the executable.
|
size of the executable.
|
||||||
|
|
Loading…
Reference in New Issue