Sujet : Re: C23 thoughts and opinions
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.cDate : 08. Jun 2024, 04:55:19
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240607204550.319@kylheku.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-06-08, bart <
bc@freeuk.com> wrote:
On 08/06/2024 01:39, Kaz Kylheku wrote:
On 2024-06-07, bart <bc@freeuk.com> wrote:
It's you who can't get your head around the idea that someone could be
away with a 'linker'.
You can do away with linkers and linking.
But it's pretty helpful when
1. the same library is reused for many programs.
>
You use a shared library.
That's linking.
Static linking is the same thing as dynamic except it's being
precomputed: the libs are dynamically processed, but then rather
than the program being run, its image is dumped into an executable.
That executable no then longer needs to repeat that library processing
when started; everything is integrated. (There are ways to optimize
linking so not all the material must be present in memory all at once
as I describe it above.)
2. you're selling a library, and would like to ship a binary image of
that library.
>
You ship a shared library.
No, not always. There is such thing as selling static libraries.
Numerical code, crypto, codecs.
A few times in my career I worked with purchased static libs.
There are some advantages to it, like that static calls can be
faster than dynamic, and unused parts of static libs can be
removed at link time.
Another aspect is that it's possible for static libs to be
platform-independent, to an extent, because some of the
object formats like COFF are widely recognized. Whereas
shared libs tend to be very OS specific. The vendor has to make
them separately for Windows, Linux, Solaris, BSD, Mac, ...
This gruntwork is a pain in the ass that is removed from
the core value of your code.
The integrator who buys your static lib can turn it into a
shared lib for their target system, if they are so inclined.
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca