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 <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

Reply via email to