> 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?).
Initialization of the classes and implicitly used sysutils unit uses more code. Also the use of resourcestrings increases the binary. The size is mainly a rtl issue. The smartlinking principle in the compiler isn't changed since 1.0.6. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal