English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] string_of_float -> float_of_string locale dependency bug
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-06-14 (21:52)
From: Yamagata Yoriyuki <yoriyuki@m...>
Subject: Re: [Caml-list] string_of_float -> float_of_string locale dependency bug
From: Xavier Leroy <xavier.leroy@inria.fr>
Subject: Re: [Caml-list] string_of_float -> float_of_string locale dependency bug
Date: Mon, 14 Jun 2004 17:58:22 +0200

> > Camomile needs to set LC_ALL to acquire LC_NUMERIC value.  Camomile
> > does not use LC_NUMERIC value currently, but it provides API to
> > getting all LC_* values for the user.
> Fine.  So what about restoring LC_NUMERIC after getting its value, like you
> helpfully suggest that the Caml run-time system does?

Because I did not aware that this causes a problem.  I will do
something to fix this problem.

> > > The C library API for internationalization is largely broken, and as
> > > you can see there is nothing we can do to work around the fact that
> > > the current locale is a global variable for the whole program.
> > 
> > You can temporally save the current LC_NUMERIC value, change its value
> > to C, and restore the value after the conversion.  What is a problem?
> Speed.  setlocale() is quite expensive, and string <-> float
> conversions can be extremely frequent.

Then, how about wrapping the entire ocaml-runtime by this "locale-free
zone"?  C primitives would be executed in "C" locale, but let them
have an access to the saved locale and temporarily revert back to the
original locale.

Yamagata Yoriyuki

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners