classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Assertion failure


From: Dalibor Topic
Subject: Re: Assertion failure
Date: Tue, 10 Jan 2006 16:14:49 +0100
User-agent: Debian Thunderbird 1.0.7 (X11/20051117)

Mark Wielaard wrote:
> On Tue, 2006-01-10 at 11:49 +0100, Mark Wielaard wrote:
> 
>>BTW, does anybody know why we are not using the system strtod() when
>>available? That seems the way to the quickest solution on most
>>platforms. It seems to work with some simple tests for me. But I notice
>>that there is no strtod_r(), just strtod(). But I couldn't find a
>>definitive answer on whether or not the standard strtod() is guaranteed
>>to be thread-safe or not. Does anybody know (where to find this
>>information)?
> 
> 
> OK found that out myself. Apparently some strtod implementations are
> indeed not thread-safe by default (but most seem to be). The other
> problem is that strtod depends on the locale and changing the locale
> isn't thread-safe... sigh. So we do need our own implementation, or do
> something like glib g_ascii_strtod() and convert the string
> representation first to the current locale form (eeeewwww).
> 

In addition, many strotod implementations I encountered are subtly
different when it comes to having the results that the Java specs demand
for very small values. I guess that has a lot to do with floating point
rounding modes being largely implementation dependant in C89 [1], so
when porting to a C89-ish strtod one can only hope that the libc in
question has been compiled with the right options/switches/assembly. :/

cheers,
dalibor topic

[1] that's one of the reasons why I prefer C99 over C89, personally.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]