2
votes

Once 64 bit Delphi will be releases (is it for 2012?) how will components will work?

I mean I use several 3rd party components: will they automatically work on 64 bit or not? Will they need to release 2 separate versions of the components?

3

3 Answers

4
votes

Those vendors who look ahead, have already started to test their code (wherever possible) with 64-bit FreePascal. In general, the answer to your question is very specific to the component. If pointers are used extensively or if hardware is involved, adaptation of code will be needed. Otherwise there should be no significant problems on recompilation for 64 bits.

And yes, separate versions of code are required in any case for native code.

5
votes

I think you can compare it with the first release of the Unicode version of Delphi, Delphi 2009. When Delphi 2009 came out the 3rd party component vendors all supplied Unicode aware components pretty rapidly. Many had components ready at release.

In many ways, I suspect that the changes needed for 3rd party components to support Unicode will have been more onerous than will be needed for 64 bit. The 3rd party vendors will already be looking ahead and making use of NativeInt and NativeUInt types.

As for different versions, the normal practice from 3rd party component vendors is for their source code to compile on all supported platforms. If you are using packages then clearly you need different versions for different compilers but that's true today as well – components are delivered with packages for each supported Delphi version.

One point I would stress would be that if you have not already moved to a Unicode Delphi, then you should do that as soon as possible. You won't be able to move to the 64 bit version of Delphi without doing so and since you can port to Unicode Delphi now you really should get that out of the way.

In short, I have little apprehension over this issue.

5
votes

In short: components might automatically work in x64 Delphi, however most of them likely need changes, especially when they use pointers or assembly language.

I know that the Delphi team strives for an upgrade path to be as smooth as possible.
But x64 - like Unicode - is a breaking change, so be prepared to update your components too.

Usually, platform vendors will brief 3rd party vendors before the general public so they have time to make their 3rd party products compatible with their new platform version.

Microsoft has done this for .NET, the Delphi team has done this for Unicode and .NET, and other vendors have done similar things.

Like Eugene mentioned, 3rd party library vendors could also use the x64 version of Free Pascal to get a feel of what changes might be needed.

When you look at the source code, you see that some vendors indeed do.

You can get yourself a feel for the changes too.

For instance, Allen Bauer uses his blog and his twitter feed to post some info on x64 Delphi. He also talked about Delphi x64 on this Delphi.org podcast interview.

Embarcadero has shown an alpha version of the Delphi x64 command-line compiler during roadshows and conferences, including the last virtual CodeRage conference.

--jeroen