[Pyrex] special floats generate incorrect C code when used as compile-time constants
Stefan Behnel
stefan_ml at behnel.de
Fri Apr 25 17:34:52 CEST 2008
Hi,
Chris Mellon wrote:
> On Tue, Apr 22, 2008 at 6:13 PM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
>> Stefan Behnel wrote:
>> > DEF INFINITY = float('inf')
>> > print INFINITY
>> >
>> > results in:
>> >
>> > foo.c: In function 'init2foo':
>> > foo.c:158: error: 'inf' undeclared (first use in this function)
This was actually due to a bug report by Jacques Frechet:
https://bugs.launchpad.net/cython/+bug/218377
>> I'm not sure whether to do anything about this for Pyrex.
>> As I understand it, Python doesn't promise anything about
>> representation of inf and nan, so it's platform dependent.
>> I'm inclined to think that using an appropriate constant
>> from your platform's math.h is the right thing to do.
>
> As of 2.6, float('inf') and float('nan') will be guaranteed to work
> (instead of punting to libcs atof which is what it does now), so
> supporting it in Pyrex is forward-looking at least ;)
In Cython, a float "nan" or "inf" constant will now be translated into the C
equivalents from math.h (NAN/INFINITY). Do you happen to know if that's
compatible with what Python 2.6 does?
Stefan
More information about the Pyrex
mailing list