On Monday, 4 March 2013 at 23:24:02 UTC, Rob T wrote:
One of the main selling points of the module system is to prevent exactly what you are proposing, so I think there must be a better solution.

Please explain. Main points of module system is to avoid header compilation time hell and control access. I don't how this is relevant to the topic.

This is what I read when I first read about D, modules are supposed to be a way to get rid of the need for maintaining separate source files, which as you stated also has the desired side effect of getting rid of separate header files.

here's one source: http://dlang.org/overview.html

The proposal as I read it, moves us more backwards than forwards, and it seems there's a better way as I had described. If there's to be a solution, it should be a solution that retains one source file. If we need a separation, it should be automated to prevent manual duplication and maintenance hell.

I can find nothing on the topic of "separation" issue down that link. In fact I have never met a C/C++ programmer saying fact of having a separate headers is a problem, it was a loved feature if anything. Problem was the way it was designed, via pre-processor. D fixes this by introducing real symbolic imports and that is good, but completely irrelevant to the topic of separation of interface and implementation.


On Monday, 4 March 2013 at 06:06:14 UTC, Rob T wrote:
Manually maintaining a .di file is a bad idea for what should be obvious reasons

No, they are not obvious at all, please explain.

I did not think that I would have to explain the difference between manually maintaining two separate source files containing manual duplication of code that must be kept in sync vs manually maintaining only one source file with no manual duplication of code.

There is close to zero code duplication. This proposal suggests ability to import definitions from own .di file to main module file. That means only code duplication is method names (full signatures for overloaded ones). That actually simplifies maintenance a lot.

Reply via email to