[fpc-devel] inline... and philosophy

J. Gareth Moreton gareth at moreton-family.com
Sun Nov 10 03:23:03 CET 2019


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? 
Granted, since forms are being read from a resource file, I doubt it can 
really be tied into the compiler that closely.

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20191110/66292dbc/attachment.html>


More information about the fpc-devel mailing list