On Monday, 18 January 2016 at 17:02:07 UTC, Jack Stouffer wrote:
On Monday, 18 January 2016 at 14:01:15 UTC, rsw0x wrote:
one of the biggest things D has over C++ is its vastly superior module system.

When you compare D's something with C++'s nothing, then the module system in D is infinitely better by definition.

Is there a compiled list of issues?

1. As deadalnix pointed out, a lack of spec

2. Issue 313

3. Issue 314

4. Issue 10378

These are the biggest IMO. There are probably others I don't know of.

I'm not sure I agree on 'half finished'

When looking at the above issues, it becomes clear that the D module system does not completely provide one of the main things module systems are designed for: encapsulation.

The problem is that D's import system is much more advanced than those in C++ or Java, allowing much more control and precision over what's imported, so some leaks have sprung in D's more complex module implementation. Certainly much more than half, but definitely not finished. :)

If you simply stick a bunch of non-selective imports at the top of a module, ie non-local, and all the modules you import do the same (this is tougher, as not everybody is aware of the issue and some library might leak symbols into your module if they're not as conservative), you'll have no problem. If you use more advanced features like selective or local imports, there are a few places they leak symbols or can shadow variables in non-intuitive ways, as the issues you listed enumerate.

Reply via email to