Show quoted text 8 lines
> > So, Extended = Double.
>
> // how is this in FPC? Extended is just not available on x86_64, or?
> (well... I don't use Extended anyway ^^)
FPC has Extended and it's rang is 19-20 significant digits with range:
1.9E-4932 – 1.1E4932
It's size is 10 bytes.
AFAIK this type is not available on x64 architecture, and the use of the FPU is discouraged as well - has somebody a reference to this strange change? Are 128 bit reals available now, as a replacement?
That's why a x64 system even cannot cross-compile for i386 (and other) targets, without using an FPU emulator.
Show quoted text 5 lines
> > Type sizes for 64: SizeOf(Integer)=4,
> SizeOf(NativeInt)=SizeOf(Pointer)=8,
Oh f**k, please don't tell me FPC is now going to downgrade Integer to a
32-bit type. This will break such a LOT of programs!!
That's how most programming languages behave, not only FPC and Delphi.
IMO subranges should be used, for values with an guaranteed bit/byte count. In those good ole days[tm] Fortran and Cobol allowed to specify the byte count or number of digits for every single integral, real and string variable. And that even before bytes and chars had settled down to 8 bits. Wirth only added a finer granularity, with the introduction of subrange types.
> // they needed to call it NativeInt, didn't they? They couldn't have
> gone with PtrInt -.-
Definitely not, because that would be FPC compatible.
It's wise to have different names for different origins. This allows to define the imported types (from other languages/compilers) as appropriate, in either environment.
DoDi