[fpc-pascal] Executable size compiler 1.96 vs 1.06

L505 fpc505 at z505.com
Tue May 17 07:03:28 CEST 2005


With compiler version 1.96, one of my command line applications is 1MB (win32)
With the 1.0.6 compiler (using dev pascal) it is just 100KB. (win32)

On linux, 1.96 the application was about 300KB.
(not so worried about linux, since this is not consistent testing..comparing two OS's)

What is the major reason for the different sizes?  The application I'm testing uses the same compiler command
line arguments. The application calls on the synregexpr unit (which calls for the classes unit). I'm guessing
the classes unit maybe has something to do with the size addition. But how come 100KB to 1MB? This reminds me
of when I first started using lazarus and comparing to Delphi, or when I first started using KOL vs VCL in
Delphi ;-)

Before I go digging into the sources spending hours figuring out the major code changes between the compilers,
maybe you could just give me a summary of the major causes (the compiler was completely rewritten, with this
much difference?)
Also, if there is discussion on this in the mailing list from previous questioners let me know! I just want to
know some of the  details (like it's because of more initialization functions? because the classes unit got
bigger with time? code that just couldn't be smart linked in later compiler versions?).

Lars





More information about the fpc-pascal mailing list