On 11/29/17 10:23 PM, Walter Bright wrote:
On 11/29/2017 6:54 PM, Steven Schveighoffer wrote:
But even though it doesn't come with Windows, it can be installed once, and shared between all applications that use it.

That's the theory. Unfortunately, that relies on the library not changing. Microsoft changes it all the time, hence "dll hell".

My understanding is that if you use the Microsoft supplied MSI package as a dependency, there is only one installation of the libraries necessary. Granted, the last time I built MSI packages was about 10 years ago...

But I don't remember having issues with DLL hell with that, even across compiler releases.

Yes, they changed the library on some revisions, but your MSVCRT dll would also be installed in the right places (and the right version loaded at runtime).

But we don't have to look at Microsoft as the gurus of library deployment, there are many good solutions already out there for other OSes.


A second problem is that due to the way D works most of the time (with templates just about everywhere), each new release is likely to be binary-incompatible. So you will essentially need many copies of druntime, probably one per release that was used to compile any D programs on your system.

At this point, relying on druntime not changing is just not realistic. libc is different, having been cast in stone for nearly 30 years now.

Baby steps, let's deploy it as a shared object first :) Until we do that, there is no point to worry about binary compatibility.

-Steve

Reply via email to