[Python-Dev] Picking on platform fmod

Tim Peters tim.one@home.com
Mon, 30 Jul 2001 00:46:23 -0400


Thanks all for torturing your boxes with fmod()!  Would still like to hear
about Platforms from Mars (Macs <wink>, Tru64, HP-UX), but it got a clean
bill of health on all these:

Win98SE + MSVC 6

SuSE 7.2 system
Linux mira 2.4.4-4GB #1 Wed May 16 00:37:55 GMT 2001 i686 unknown
glibc-2.2.2-38
gcc-2.95.3-52
Python 2.2a0 (#383, Jul 24 2001, 09:26:51)

Solaris 8
SunOS pandora 5.8 Generic_108528-06 sun4u sparc SUNW,Ultra-Enterprise
Python 2.1.1 (#1, Jul 21 2001, 20:59:12)
[GCC 2.95.2 19991024 (release)] on sunos5

Reliant
ReliantUNIX-Y deukalion 5.45 B0032 RM600 4/512 R4000
Python 2.0 (#6, Apr 10 2001, 13:20:15) [C] on reliantunix-y5

Linux
% uname -a
Linux anthem 2.2.18 #21 SMP Mon Jan 8 00:33:29 EST 2001 i686 unknown
% rpm -q libc
libc-5.3.12-31
% gcc --version
egcs-2.91.66

Linux-Mandrake 7.2
Linux kernel 2.2.17
GNU libc 2.1.3 (includes libm), and GCC 2.95.3.

SunOS 5.8 Generic_108529-08

Linux 2.2.18 / glibc 2.1.3

OSF1 cfata6.harvard.edu V4.0 878 alpha
SunOS cfa0 5.8 Generic_108528-06 sun4u sparc SUNW,Ultra-Enterprise
building with or without gcc

SunOS s454 5.7 Generic_106541-10 sun4m sparc SUNW,SPARCstation-4

SunOS pc200 5.8 Generic_108529-03 i86pc i386 i86pc

BSDI, FreeBSD and Linux on Intel hardware

Solaris on SPARC hardware

Linux on (IBM) PPC (SourceForge?)

Linxux on (Compaq) Alpha (SourceForge)


Only one failure report, from Thomas Wouters on:

Linux usf-cf-sparc-linux-1 2.2.18pre21 #1 SMP Wed Nov 22 17:27:17 EST 2000
sparc64 unknown (SourceForge)

dying with OverflowError in math.fmod().  Looks like a *badly* buggy fmod()
to me!

If we had tried this a decade ago, *most* platforms would have gotten a
wrong answer on almost every try.  Assuming we don't get a failure report on
Mac, the major platforms do this correctly now, so we can save Python from
growing another few hundred lines of excruciating workaround code:

    http://www.netlib.org/fdlibm/e_fmod.c

when-even-windows-gets-it-right-there's-no-excuse-ly y'rs  - tim