cpstrnew branch (was Re: [fpc-devel] Freepascal 2.4.0rc1 released)
Michael Van Canneyt
michael at freepascal.org
Tue Nov 10 19:24:38 CET 2009
On Tue, 10 Nov 2009, Florian Klaempfl wrote:
> Martin Schreiber schrieb:
>> On Tuesday 10 November 2009 18:33:54 Florian Klaempfl wrote:
>>>> Did you look into the code in cpstrnew branch? I did.
>>> And which changes are exactly the reason for your concerns?
>> More checks
> Where? A pure unicodestring routine won't get additional checks.
>> and more complicated address calculation.
> Where? Adding 16 instead of 12 makes no difference.
> The "major" difference will be the initialization of the additional
> fields and the increased memory requirement of 4 bytes per string.
>> OK, you can say "you
>> will not notice the small difference". But possible this attitude is one of
>> the reasons that Delphi compiles much faster than FPC? ;-)
> Yes, and if compilation speed is important for you, you should use
> delphi ;) What you call "this attitude" is also the reason why FPC can
> exist: we need always to find a compromise between:
> - satisfy the needs of as much as possible users
> - maintainability
> - portability
> - performance
Especially portability is what makes the difference.
It is all about available time.
If we only had to support one target processor and one OS, we could
spend *much* more time on optimisation of the generated code.
But as it is, we have to divide our attention between i386, X86_64,
powerPC (32/64 bit), sparc and ARM. That's 6 CPUs and at least as much
Given the time limits, the first thing to go out of the window is therefor speed.
MSE boasts some 'great features'. Well, last time I checked
(admittedly some time ago), MSE didn't even support 64-bits,
while Lazarus does since many years.
What to spend time on is a decision each makes for himself:
Martin chose features over platforms. We choose platforms over optimization...
More information about the fpc-devel