[Lazarus] News on Delphi x64

Sven Barth pascaldragon at googlemail.com
Mon Nov 1 11:21:34 CET 2010

On 01.11.2010 10:51, Graeme Geldenhuys wrote:
> Op 2010-11-01 11:26, Sven Barth het geskryf:
>> A little entry about some details of Delphi x64 I stumbled on today:
> And let me guess, they took no cues from FPC, and had to make sure there is
> as much "incompatibility" as humanly possible!  This is why I say, FPC
> should cut any ties with Delphi and simply innovate on it's own.

There are times where I think the same...

>>   >  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.

I'm aware that FPC has Extended. But the point is that it's not 
supported on all platforms, cause not every platform can handle 80bit 
floating points.
My question was more: Is Extended usable/enabled on Win64 or is it 
Extended=Double as well?

>>   >  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 only. This will break such a LOT of programs!!

Ehhhh... In modes "objfpc" and "delphi" SizeOf(Integer) = 4 is already 
the case no matter what bitness your system has. For that purpose 
"PtrInt" (and "PtrUInt") were added. Only in modes "fpc" and "tp" 
SizeOf(Integer) = 2 is true (one can argue whether that was a good 
decision but that's the way it is...)

>> // they needed to call it NativeInt, didn't they? They couldn't have
>> gone with PtrInt -.-
> Definitely not, because that would be FPC compatible.

Yes... although I found a statement some time ago when they introduced 
"exit with argument". In a comment to that a Delphi developer said "We 
never broke compatibility with FPC on purpose". It's a pity that I'm not 
able to find that statement again :(


More information about the Lazarus mailing list