> So, if David's report is correct, and best I understand it you were > all using 7.1 too with at least some level of optimization, it's A > Mystery why CVS test_math.py succeeds on that system (its new > math.sqrt(-1) test would probably fail; its new math.exp(+huge) test > would almost certainly fail). I'm anal enough about this stuff that > I'd try to figure out why if I had a Mandrake system, but in the > cosmic scheme of things I doubt it's important enough for anyone > else to burn time on. Well, I don't know about Mandrake, but I have glibc 2.1.94 here, and I get Python 2.0 (#104, Oct 15 2000, 15:47:19) [GCC 2.95.2 19991024 (release)] on linux2 Type "copyright", "credits" or "license" for more information. >>> import math >>> math.sqrt(-1) Traceback (most recent call last): File "<stdin>", line 1, in ? OverflowError: math range error >>> math.exp(800) inf >>> math.exp(-800) 0.0 It turns that Tcl8.3 and Tk8.3, on my system, link with -lieee. That is implemented as _LIB_VERSION_TYPE _LIB_VERSION = _IEEE_; in this version of glibc, which in turn changes the behaviour of double __exp(double x) /* wrapper exp */ { double z; z = __ieee754_exp(x); if(_LIB_VERSION == _IEEE_) return z; if(__finite(x)) { if(x>o_threshold) return __kernel_standard(x,x,6); /* exp overflow */ else if(x<u_threshold) return __kernel_standard(x,x,7); /* exp underflow */ } return z; } As a rationale for linking with -lieee, the Tcl/Tk configure.in offers # Also, Linux requires the "ieee" library for math to # work right (and it must appear before "-lm"). Without testing, it seems that this would give some interesting consequences on installations where Tkinter is a shared module: the outcome of these functions could depend on whether Tkinter is imported or not. I can't produce such a scenario with the BeOpen binaries on a RedHat systems; the Tcl 8.0 RPMs of RedHat include the tcltk-8.0-ieee.patch, which removes the line AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) from both Tcl's and Tk's configure.in. Of course, the problem is not restricted to Tcl: any extension module that links with a shared library that includes libieee.a would change the behaviour of Python's math functions. Regards, Martin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4