[Python-Dev] LC_NUMERIC and C libraries

Gustavo J A M Carneiro gjc@inescporto.pt
20 Jul 2003 13:57:36 +0100


A Dom, 2003-07-20 =E0s 10:50, Martin v. L=F6wis escreveu:
> Christian Reis <kiko@async.com.br> writes:
>=20
> > > a) it is unlikely that patches are accepted from anybody but
> > >    the author of the code, and
> > > b) it is unlikely that patches are implemented that provide huge
> > >    chunks of the C library.
> >=20
> > I'm afraid I didn't quite understand these two points:
> >=20
> > a) Do you mean to say that the patch should be sent *to* the original
> > author of the locale code? The original author of the code that *call=
s*
> > atof/strtod?
>=20
> No. I said that the original author should send us the patches; we
> will only accept them from that author.

  What if the original author isn't the least interested in Python?  I
am, but I'm not willing reinvent the wheel.

>=20
> > If the latter I can try and get Alex Larsson to submit the code. Is
> > written permission from the glib team, relicensing the code, not
> > acceptable enough, though?
>=20
> We would have to discuss this in the PSF. In general, we want the PSF
> to be owner of all contributed code, see
>=20
> http://www.python.org/psf/psf-contributor-agreement.html
>=20
> We had bad experience with contributions by non-authors in the past,
> and had to back out changes that we later found we had no right to
> distribute.
>=20
> > b) I'm unsure as to how we should proceed without offering alternativ=
e
> > versions of strtod/formatd (which is what the pystrtod.c file include=
s);
> > AFAICS, the current situation is *caused* by the libc versions not be=
ing
> > LC_NUMERIC-safe. Do you see an alternative?
>=20
> It might well be unimplementable. However, if you can find
> platform-specific routines that you can wrap with a small wrapper,
> falling back to strtod if such routines are not available, that might
> be a way out. For example, on glibc, you could use __strtod_l.

  Well, *my* glibc (2.3.1) has no such function.  Even if it had, I
would not use it because of the double underscore prefix.

cd /usr/include/
find . -type f -print0 | xargs -0 -e grep -n -e __strtod_l

grep exited abnormally with code 123 at Sun Jul 20 13:48:41

  Anyway, the code is not that big, and it uses libc's strtod.

  Regards.

--=20
Gustavo J. A. M. Carneiro
<gjc@inescporto.pt> <gustavo@users.sourceforge.net>