namespace pollution with entities in math.h
Steve Kargl
sgk at troutmask.apl.washington.edu
Thu Sep 21 00:11:07 UTC 2017
It seems that I accidentally stumped onto namespace
pollution in lang/python36, which is identical to the
same issue I came across with lang/python27 and reported
several weeks ago. The following diff fixes both ports.
Index: lang/python27/files/patch-Modules__mathmodule.c
===================================================================
--- lang/python27/files/patch-Modules__mathmodule.c (nonexistent)
+++ lang/python27/files/patch-Modules__mathmodule.c (working copy)
@@ -0,0 +1,38 @@
+--- Modules/mathmodule.c.orig 2017-09-15 11:14:58.388892000 -0700
++++ Modules/mathmodule.c 2017-09-15 11:15:38.636909000 -0700
+@@ -71,7 +71,7 @@
+ static const double sqrtpi = 1.772453850905516027298167483341145182798;
+
+ static double
+-sinpi(double x)
++_sinpi(double x)
+ {
+ double y, r;
+ int n;
+@@ -270,7 +270,7 @@
+ integer. */
+ if (absx > 200.0) {
+ if (x < 0.0) {
+- return 0.0/sinpi(x);
++ return 0.0/_sinpi(x);
+ }
+ else {
+ errno = ERANGE;
+@@ -294,7 +294,7 @@
+ }
+ z = z * lanczos_g / y;
+ if (x < 0.0) {
+- r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
++ r = -pi / _sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
+ r -= z * r;
+ if (absx < 140.0) {
+ r /= pow(y, absx - 0.5);
+@@ -366,7 +366,7 @@
+ (x-0.5)*(log(x+lanczos_g-0.5)-1);
+ }
+ else {
+- r = log(pi) - log(fabs(sinpi(absx))) - log(absx) -
++ r = log(pi) - log(fabs(_sinpi(absx))) - log(absx) -
+ (log(lanczos_sum(absx)) - lanczos_g +
+ (absx-0.5)*(log(absx+lanczos_g-0.5)-1));
+ }
Property changes on: lang/python27/files/patch-Modules__mathmodule.c
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: lang/python36/files/patch-Modules__mathmodule.c
===================================================================
--- lang/python36/files/patch-Modules__mathmodule.c (nonexistent)
+++ lang/python36/files/patch-Modules__mathmodule.c (working copy)
@@ -0,0 +1,38 @@
+--- Modules/mathmodule.c.orig 2017-09-15 13:33:29.735199000 -0700
++++ Modules/mathmodule.c 2017-09-15 13:33:48.030737000 -0700
+@@ -67,7 +67,7 @@
+ static const double logpi = 1.144729885849400174143427351353058711647;
+
+ static double
+-sinpi(double x)
++_sinpi(double x)
+ {
+ double y, r;
+ int n;
+@@ -296,7 +296,7 @@
+ integer. */
+ if (absx > 200.0) {
+ if (x < 0.0) {
+- return 0.0/sinpi(x);
++ return 0.0/_sinpi(x);
+ }
+ else {
+ errno = ERANGE;
+@@ -320,7 +320,7 @@
+ }
+ z = z * lanczos_g / y;
+ if (x < 0.0) {
+- r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
++ r = -pi / _sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
+ r -= z * r;
+ if (absx < 140.0) {
+ r /= pow(y, absx - 0.5);
+@@ -390,7 +390,7 @@
+ r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1);
+ if (x < 0.0)
+ /* Use reflection formula to get value for negative x. */
+- r = logpi - log(fabs(sinpi(absx))) - log(absx) - r;
++ r = logpi - log(fabs(_sinpi(absx))) - log(absx) - r;
+ if (Py_IS_INFINITY(r))
+ errno = ERANGE;
+ return r;
Property changes on: lang/python36/files/patch-Modules__mathmodule.c
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--
Steve
20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4
20161221 https://www.youtube.com/watch?v=IbCHE-hONow
More information about the freebsd-python
mailing list