September 12, 2012
On Wednesday, September 12, 2012 15:37:21 Habibutsu wrote:
> At now in most distribute of linux contains ldc (LLVM D Compiler) and
> not contain dmd. Why?

Probably for two primary reasons.

One, IIRC, you need Walter's permission to redistribute dmd (which is easy to get, but if you never ask, then you'll never get it).

And two, while the source for dmd's backend is available, it's not open source in the sense that you can fork it And Walter has no control over that - Symantec owns it. As I understand it, Digital Mars leases it, so Walter can work on it and distribute it as part of dmd and all that, but he has no control over the license. For some distros, this is a non-issue, but for others which are more fanatical, anything being distributed with the distro must be fully open source, which makes it so that they can't include dmd.

gdc and ldc don't have those issues, because their backends are fully open source. All 3 compilers share the same frontend though.

And it could also just be because the person adding it to the distro prefers ldc. It takes longer to compile code than dmd does, and it's generally a bit behind dmd (maybe a release or so, depending on how fast the ldc devs are), but it tends to generate faster code. So, depending on what you're trying to do, it's better than dmd. And once gdc is part of gcc-proper (as is supposed to happen with the next release of gcc if I understand properly), pretty much _every_ Linux distro will have gdc. Some distros _do_ have dmd though.

- Jonathan M Davis