GDC release 0.23

Don Clugston dac at nospam.com.au
Wed Mar 7 08:59:01 PST 2007


Anders F Björklund wrote:
> Sean Kelly wrote:
> 
>>>> Yeah that doesn't sound like a very attractive option.  Some of the 
>>>> later replies in the Darwin thread mention a compiler switch:
>>>>
>>>> http://lists.apple.com/archives/Darwin-development/2001/Jan/msg00471.html 
>>>>
>>>> Is that a possibility?  Or did that switch not make it into an 
>>>> actual release?
>>>
>>> There are two switches: -mlong-double-64 and -mlong-double-128,
>>> just that the second one ("double-double") is now the default...
>>
>> Oh I see.  That thread above suggested the opposite.  Could GDC simply 
>> key the size of real off this switch as well then?  If the point is 
>> for real to map to double-double, then it must be aware of it, 
>> correct?  I know it's not ideal to have the size of any variable 
>> change dynamically, but this seems like a case where doing so may 
>> actually be desirable.
> 
> The thread was old, things change. Especially: from GCC 3.3 to GCC 4.0
> http://developer.apple.com/releasenotes/DeveloperTools/RN-GCC4/index.html
> 
> "In previous releases of GCC, the long double type was just a synonym 
> for double. GCC 4.0 now supports true long double. In GCC 4.0 long 
> double is made up of two double parts, arranged so that the number of 
> bits of precision is approximately twice that of double."
> 
> (this was for Apple GCC, but Linux PPC went through a similar change)
> 
> 
> Older versions of PPC operating systems used 64-bit for "long double",
> newer versions use 128-bit. Both are still in use, so we won't know.

Ugh. That's really horrible.

> And since the D "real" type simply maps over to C/C++ "long double",
> it means that it will be either 64-bit, 80-bit or 128-bit. Varying.

We've got to keep that piece of lunacy out of D somehow. Could we define 
it as __longdouble or something? (Ideally only for PPC, so that error 
messages remain sensible on other platforms).

At least in D, we can static-if an alias or typedef on the basis of 
mant_dig.



More information about the Digitalmars-d-announce mailing list