[fpc-devel] inline... and philosophy

Mattias Gaertner nc-gaertnma at netcologne.de
Sun Nov 10 14:49:01 CET 2019


On Sun, 10 Nov 2019 02:23:03 +0000
"J. Gareth Moreton" <gareth at moreton-family.com> wrote:

> Does the smart linker strip out LCL components that are not used, or 
> must everything that's registered in a package or unit be included? 

If you mean with "registered" the RegsiterClass or RegisterComponents
functions:
If it is registered the compiler must include it.
Usually the LCL components are only registered by designtime code.


> Granted, since forms are being read from a resource file, I doubt it
> can really be tied into the compiler that closely.


Mattias


> 
> Gareth aka. Kit
> 
> On 09/11/2019 15:50, Sven Barth via fpc-devel wrote:
> > J. Gareth Moreton <gareth at moreton-family.com 
> > <mailto:gareth at moreton-family.com>> schrieb am Sa., 9. Nov. 2019,
> > 16:20:
> >
> >
> >     On 09/11/2019 15:14, Michael Van Canneyt wrote:  
> >     >
> >     >
> >     > On Sat, 9 Nov 2019, J. Gareth Moreton wrote:
> >     >  
> >     >> Competitions aside, there are times where space is a
> >     >> premium,  
> >     whether  
> >     >> it be from distributing an application on a DVD, bandwidth
> >     >> or data limits (even some first world countries are still on
> >     >> dial-up in places, or are otherwise monopolised by a single,
> >     >> bad-quality provider), the smaller capacity of solid-state
> >     >> hard drives (especially on some laptops) and can otherwise
> >     >> be a money saver sometimes.  
> >     >
> >     > I tend to think more size gains can be obtained from more  
> >     aggressive  
> >     > smartlinking.
> >     > The smartlinking is sometimes disabled by the way code is
> >     > written.
> >     >
> >     > To give an example, pas2js has a switch to convert published
> >     > to  
> >     public  
> >     > sections. As a result, the published sections are suddenly  
> >     reduced to  
> >     > what is actually used in code. This produces significant size
> >     > gains.
> >     >
> >     > Michael.
> >     > _______________________________________________
> >     > fpc-devel maillist  - fpc-devel at lists.freepascal.org  
> >     <mailto:fpc-devel at lists.freepascal.org>  
> >     > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
> >     >  
> >     That's true.  That's mentioned in the "size matters" article. I
> >     didn't
> >     know about 'published' until then.  Presumably, if that switch
> >     doesn't
> >     exist (like with most of the LCL), I gather the only way to
> > strip out those unused published sections is some very intelligent
> >     whole-program
> >     optimisation, and even then it may not work if a string (to
> > access a property name) is not deterministic.
> >
> >
> > For the LCL it's simply not possible, because it relies heavily on
> > the RTTI. And in the future that will only increase with extended
> > RTTI.
> >
> > Regards,
> > Sven
> >
> >
> > _______________________________________________
> > fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel  



More information about the fpc-devel mailing list