Have Win DMD use gmake instead of a separate DMMake makefile?

Walter Bright newshound2 at digitalmars.com
Sun Aug 11 14:43:13 PDT 2013


On 8/11/2013 2:21 PM, bearophile wrote:
> Walter Bright:
>
>> On the subject of friction, I believe we make a mistake by making a dependency
>> on libcurl, a library over which we don't have control. Some issues:
>>
>> http://d.puremagic.com/issues/show_bug.cgi?id=10710
>>
>> http://d.puremagic.com/issues/show_bug.cgi?id=8756
>
> Issue 8756 doesn't seem caused by libcurl. (If the pragma(lib) feature is not
> portable then perhaps it should become a feature of just DMD and not of the D
> language. This aligns a bit better the theory/dream of D with the reality of D.)
>
> On the other hand doing everything yourself/ourselves has some other large
> disadvantages, look at the Phobos bigints: the GHC Haskell compiler uses the GMP
> multi-precision numbers, that are usually faster or much faster than Phobos
> ones, have more functions implemented that are missing in Phobos (like
> power-modulus), and help GHC developers focus on more Haskell-related issues.

You might consider that D is designed to be *very* friendly to linking with 
existing C code libraries for exactly that reason. Haskell is not. You might 
also recall my steadfast opposition to doing things like rolling our own crypto 
libraries rather than linking to existing ones.

That said, as soon as the D *package* starts to depend on non-default-installed 
libraries, trouble happens. With libcurl, the only solution so far seems to be 
to BUILD OUR OWN LIBCURL binary!

http://d.puremagic.com/issues/show_bug.cgi?id=10710

This is a terrible situation.

Consider things like the trig functions. D started out by forwarding to the C 
versions. Unfortunately, the C versions are of spotty, unreliable quality (even 
today!). Because of that, we've been switching to our own implementations.

And, consider that using GMP means CTFE would not be supported.

> Rust developers don't try to design/develop at the same time a language, a
> linker, a back-end, a run-time and a standard library.

Neither did D's developers. Note that D was developed with existing backends and 
linkers. Rust is not released yet, and given that they just switched to their 
own runtime, they clearly intend to ship with their own runtime.

> Restricting the work helps speed up the development of what's more related to D.

We really aren't complete fools, bearophile.





More information about the Digitalmars-d mailing list