GDC release 0.23

Don Clugston dac at nospam.com.au
Wed Mar 7 23:15:02 PST 2007


Anders F Björklund wrote:
> Don Clugston wrote:
> 
>>>>> 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.
>>>
>>> It's called progress :-)
>>
>> I was referring to the entire section, not just that line.
> 
> Seriously, there was a lot of effort put into supporting 128-bit
> long doubles - but I guess it was done with less emphasis on it
> being IEEE correct and handling exceptions then what D demands ?
> 
> The D spec should probably mention whether it absolutely requires
> the type to conform to the IEEE floating-point standard or not...
> i.e. whether it should just map over to C/C++ "long double" or not.
> 
>>> I'll let David decide which one wins: D real === C long double, or
>>> the definition of "largest hardware implemented floating point size"
>>
>> There's just no way D real can be equal to C long double in general, 
>> when the C long double is playing silly games. The only reason gcc can 
>> even do that, is that the C spec for floating point is ridiculously 
>> vague, and consequently no-one actually uses long double. To mimic it 
>> is to immediately break D's support for IEEE.
> 
> We can equate D "real" with C "long double", and just avoid using
> it on those platforms where it doesn't match the hardware size ?
> But then "real" would be a bad name for it, that I agree with...
> 
>> Seriously, the viability of D as a numeric computing platform is at 
>> stake here.
> 
> Only on the PowerPC platform, though. Maybe on SPARC too, not sure.
> (it might have real 128-bit ?) 

SPARC has true 128-bit IEEE reals, but they're not actually implemented 
(!). Actually the Linux 16-byte 80-bit reals are binary compatible with 
128-bit IEEE reals (just that the final 128-80 bits are always set to zero).

But not on the DMD platform: Intel,
> there it will have full 80-bit support (even if not too portable).

My perspective is that I've been writing most of the Tango math library, 
trying to make it portable -- but it's just infeasible when this 
double+double type pops up. It just has almost nothing in common with 
the hardware real types!

> 
> --anders


More information about the D.gnu mailing list