On 2020/09/24 11:04, Sven Barth via lazarus wrote:
Bo Berglund via lazarus <lazarus@lists.lazarus-ide.org <mailto:lazarus@lists.lazarus-ide.org>> schrieb am Do., 24. Sep. 2020, 08:08:


    >If course there is. That's how the unit system is supposed to
    work after
    >all.
    >
    Yes, I realize that now.

    It means that the client even though it will not interface to the
    hardware will have all of the code used to do that included in the
    app, right?


The compiler (and linker) only includes code that is used. Thus as long as you don't call the hardware functions anywhere in your program (this includes indirectly or through initialization/finalization sections) then the code won't be in the final binary either.

Regards,
Sven


Sven, I believe Bo's problem is that even though he won't need the Code (which the linker/compiler will surely cleverly disregard), he also do not even wish to "need" the physical Unit files to be in view of the compiler - at least not the secondary-dependency units - when he references a unit file in which he only needs a few declarations visible.

Sadly Bo, the entire premise of the Unit system is that every dependency will be in view, the compiler cannot decide BEFORE compiling that it would or wouldn't need a unit which appears in a "unit" clause lower down the dependency tree. Consider that a used unit may well declare a global variable that overrides one from a higher-up unit, for instance. So even though the program has all the participating symbols at hand without looking at this depended unit with the override, it will produce a different program (than when that override IS considered) and so cannot simply decide to ignore/not require a unit preemptively before actually parsing the physical file.

All units you use, pluse every dependent unit they use, must be available and visible to the compiler. That rule is absolute.


-- 
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to