On Sun, 10 Nov 2019 02:23:03 +0000 "J. Gareth Moreton" <gar...@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 <gar...@moreton-family.com > > <mailto:gar...@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@lists.freepascal.org > > <mailto:fpc-devel@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@lists.freepascal.org > > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel