[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