How programmers transition between languages

Atila Neves atila.neves at gmail.com
Fri Feb 2 14:45:18 UTC 2018


On Friday, 2 February 2018 at 14:04:09 UTC, Russel Winder wrote:
> On Fri, 2018-02-02 at 10:03 +0000, Atila Neves via 
> Digitalmars-d wrote:
>> 
> […]
>> Whether it's .a or .so depends on the dependent package being 
>> `staticLibrary` or `dynamicLibrary`. It's possible for a 
>> package to be both if it has a configuration for each.
>
> I think that is one of my points, the package source downloaded 
> from the Dub repository should not be determining whether a .a 
> or ,so is produced, it should be determined by the receiver of 
> the downloaded package.
>
>> Personally I don't even see the point - just link all the .o 
>> files. In a traditional build system static libraries might be 
>> useful to specify that multiple targets link to this 
>> particular binary blob. With dub there's only ever one binary 
>> anyway.
>
> But a static library is just a collection of .o files so I 
> think it fits with "link all the .o together".

Not quite. There's an extra step and when linking with a static 
library unused symbols are thrown away by default. That hid a dmd 
bug in 2.078.0 that only manifests when linking with the object 
files themselves.

>
> It is clear that there is a move in the Go, Rust, D communities 
> to rejecting the concept of shared library, and that 100MB 
> executables are acceptable.

On a desktop, 100MB executables are, at least to me. Shared 
libraries aren't going to magically make 100MB executables 
disappear, it depends on how much code is actually shared.

>
>> And at this point in time I think shared libraries are mostly 
>> a mistake. The only time I use them is when I have to, as in 
>> when developing Python extensions.
>
> The single biggest argument for shared libraries in D is GtkD. 
> Linking an executable with a static GtkD library takes ages, 
> and when developing you do a lot of linking. Fast turnaround, 
> and thus reasonable development times, requires use of a shared 
> library for GtkD.

That's a fair point.

Atila


More information about the Digitalmars-d mailing list