Jump to content
Kyle_Katarn

ICS v8.64 can't compile on Delphi 7

Recommended Posts

6 hours ago, A.M. Hoornweg said:

Totally apart from the usual string problems (unicode/ansi and codepages), there's the issue of Embarcadero deciding to move RTL functions from one unit to another, of functions being declared "deprecated" and of functions suddenly being declared "inline".  So in order to suppress such warnings, I need to know when Embarcadero decided to pull off such changes.

Well, when you buy a license for some version, you get all previous ones so there's nothing complicated in having all required versions available. Anyway you can contribute to Jedi inc file or to my abovementioned repo to make info available for others.

Share this post


Link to post
15 hours ago, Fr0sT.Brutal said:

Most of these checks could be performed with IF DECLARED clause. Thanks to it very few features must be defined manually, just some language features or unit relocations. I maintain a repo with defines for main compiler features here so use the provided info freely or make PR's/issues to add something that is missing.

This doesn't work for overloaded functions.  For example, function "strlen" (sysutils.pas) is ansi-only in Delphi 2007.  Then, in Delphi 2009 an overload was created for unicode so there were two versions.  In XE4 the ansi version was duplicated in unit Ansistrings so from then on there were three. And then in Delphi 10.4 Sydney the original ansi version in sysutils.pas got "deprecated". 

 

 

But I like your *.inc files, they look solid and they are a good reference as well. However I see that 10.4 Sydney hasn't been implemented yet?

 

Share this post


Link to post
3 hours ago, A.M. Hoornweg said:

This doesn't work for overloaded functions.  For example, function "strlen" (sysutils.pas) is ansi-only in Delphi 2007.  Then, in Delphi 2009 an overload was created for unicode so there were two versions.  In XE4 the ansi version was duplicated in unit Ansistrings so from then on there were three. And then in Delphi 10.4 Sydney the original ansi version in sysutils.pas got "deprecated".

Yep I've seen similar cases, mostly they're solved by conditional usage of AnsiStrings unit controlled by HAS_ANSISTRINGS define

3 hours ago, A.M. Hoornweg said:

However I see that 10.4 Sydney hasn't been implemented yet?

Yes, still not implemented. I plan to make additions in the near future

 

upd Added 10.4 and some more defines for previous versions

Edited by Fr0sT.Brutal

Share this post


Link to post
On 5/31/2020 at 8:59 PM, FPiette said:

Simply remove the inline keyword. This will not affect the function, only the performance.

 

Is it fixed already in 8.65?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×