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.



Reply via email to