Modern C++ Lamentations

Rubn where at is.this
Wed Jan 2 00:40:21 UTC 2019


On Tuesday, 1 January 2019 at 22:34:24 UTC, Jonathan M Davis 
wrote:
> The version number is in the file name for Phobos' shared 
> library, but if you're building the development version, that 
> really doesn't help you, because every time you rebuild it, you 
> get a file with the same name but potentially different 
> contents (at least until the next release gets tagged, and the 
> version number gets bumped). If you're only using releases, you 
> don't have that problem. However, unless you keep older 
> versions of the shared library around, as soon as you update, 
> all of your D programs break, because the version they need 
> isn't there anymore. All in all, it's just way simpler to use 
> Phobos as a static library. Sure, when you have a bunch of D 
> programs statically linked, it takes up a few extra megabytes 
> that way, but when systems have terabytes, that doesn't really 
> matter. Anyone who wants to use the shared library version is 
> free to do so, but I really don't think that it makes sense in 
> most cases. I do agree that shared library support in general 
> is something that we should have, but that doesn't mean that it 
> really makes sense as the default for the standard library - 
> especially when so much of it is templated anyway.

Why wouldn't you keep older versions of phobos? Why are you 
deleting the old ones when you install a new version of DMD. They 
are designed in such a way to keep them there for this very 
reason. I don't really understand your argument here, to me it 
just seems DMD is just doing something backwards in comparison to 
the rest of the platform (as usual).

But we aren't, there's no shared library of phobos for Windows 
and the looks of it Mac OS. It's not about size, it's about easy 
of use. The way the garbage collector works it might not be as 
bad in comparison with the C runtime. Where allocating memory 
from a shared library then unloading it would effectively free 
all the memory that was allocated by that shared library. But at 
the same time since allocating memory from the GC

> The whole nonsense where you have to rebuild your program, 
> because _anything_ changed in the dll is just ridiculous IMHO.

What?! Where did you hear this non-sense from? I'm not surprised 
at the state of shared library support on windows anymore.

Optlink and DMC are the greatest compilers and linkers on 
Windows, they don't cause ANY problems AT ALL, they are very well 
supported and shouldn't be removed. Sigh.



More information about the Digitalmars-d mailing list