Commits

Martin von Löwis committed 64bcef1

Revert parts of patch #453627, documenting the resulting test failures
instead.

  • Participants
  • Parent commits ca7f757
  • Branches legacy-trunk

Comments (0)

Files changed (6)

Modules/cmathmodule.c

 #define M_PI (3.141592653589793239)
 #endif
 
-#ifdef SCO_ATAN2_BUG
-/*
- * UnixWare 7+ is known to have a bug in atan2 that will return PI instead
- * of ZERO (0) if the first argument is ZERO(0).
- */
-static double atan2_sco(double x, double y)
-{
-	if (x == 0.0)
-		return (double)0.0;
-	return atan2(x, y);
-}
-#define ATAN2	atan2_sco
-#else
-#define ATAN2	atan2
-#endif
-
 /* First, the C functions that do the real work */
 
 /* constants */
 {
 	Py_complex r;
 	double l = hypot(x.real,x.imag);
-	r.imag = ATAN2(x.imag, x.real);
+	r.imag = atan2(x.imag, x.real);
 	r.real = log(l);
 	return r;
 }
 {
 	Py_complex r;
 	double l = hypot(x.real,x.imag);
-	r.imag = ATAN2(x.imag, x.real)/log(10.);
+	r.imag = atan2(x.imag, x.real)/log(10.);
 	r.real = log10(l);
 	return r;
 }

Modules/mathmodule.c

 #endif /* __STDC__ */
 #endif /* _MSC_VER */
 
-#ifdef SCO_ATAN2_BUG
-/*
- * UnixWare 7+ is known to have a bug in atan2 that will return PI instead
- * of ZERO (0) if the first argument is ZERO(0).
- */
-static double atan2_sco(double x, double y)
-{
- 	if (x == 0.0)
-		return (double)0.0;
-	return atan2(x, y);
-}
-#define ATAN2	atan2_sco
-#else
-#define ATAN2	atan2
-#endif
-
 /* Call is_error when errno != 0, and where x is the result libm
  * returned.  is_error will usually set up an exception and return
  * true (1), but may return false (0) without setting up an exception.
       "asin(x)\n\nReturn the arc sine (measured in radians) of x.")
 FUNC1(atan, atan,
       "atan(x)\n\nReturn the arc tangent (measured in radians) of x.")
-FUNC2(atan2, ATAN2,
+FUNC2(atan2, atan2,
       "atan2(y, x)\n\nReturn the arc tangent (measured in radians) of y/x.\n"
       "Unlike atan(y/x), the signs of both x and y are considered.")
 FUNC1(ceil, ceil,

Objects/complexobject.c

 #define PREC_REPR	17
 #define PREC_STR	12
 
-#ifdef SCO_ATAN2_BUG
-/*
- * UnixWare 7+ is known to have a bug in atan2 that will return PI instead
- * of ZERO (0) if the first argument is ZERO(0).
- */
-static double atan2_sco(double x, double y)
-{
-	if (x == 0.0)
-		return (double)0.0;
-	return atan2(x, y);
-}
-#define ATAN2	atan2_sco
-#else
-#define ATAN2	atan2
-#endif
-
 /* elementary operations on complex numbers */
 
 static Py_complex c_1 = {1., 0.};
 	else {
 		vabs = hypot(a.real,a.imag);
 		len = pow(vabs,b.real);
-		at = ATAN2(a.imag, a.real);
+		at = atan2(a.imag, a.real);
 		phase = at*b.real;
 		if (b.imag != 0.0) {
 			len /= exp(at*b.imag);
 
 		LIBS=' -lsocket -lcrypt_i'
 
+UnixWare: There are known bugs in the math library of the system, as well as
+        problems in the handling of threads (calling fork in one
+        thread may interrupt system calls in others). Therefore, test_math and
+        tests involving threads will fail until those problems are fixed.
+
 SunOS 4.x: When using the SunPro C compiler, you may want to use the
 	'-Xa' option instead of '-Xc', to enable some needed non-ANSI
 	Sunisms.
 
 /* Define the macros needed if on a UnixWare 7.x system. */
 #if defined(__USLC__) && defined(__SCO_VERSION__)
-#define SCO_ACCEPT_BUG     /* Use workaround for UnixWare accept() bug */
-#define SCO_ATAN2_BUG      /* Use workaround for UnixWare atan2() bug */
 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
 #endif
 
 
 /* Define the macros needed if on a UnixWare 7.x system. */
 #if defined(__USLC__) && defined(__SCO_VERSION__)
-#define SCO_ACCEPT_BUG     /* Use workaround for UnixWare accept() bug */
-#define SCO_ATAN2_BUG      /* Use workaround for UnixWare atan2() bug */
 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
 #endif