Time to destroy Walter: breaking modules into packages

Jonathan M Davis jmdavisProg at gmx.com
Fri Jun 7 14:18:09 PDT 2013


On Friday, June 07, 2013 10:55:36 nazriel wrote:
> If it was carefully discussed and I somehow missed those
> discussion or I am not allowed to see them, then I am sorry and
> please ignore this and my previous post in this topic.

Actually, Daniel Murphy, Martin Nowak, and I discussed it with Walter and 
Andrei at dconf the night of Adam's talk, so it wasn't on the newsgroup. 
There's nothing secret about it though. It's just that it was discussed in 
person, so there is no record. I believe that some further discussion has 
occured in the newsgroup in the two pull requests for it as well as the DIP 
announcement, but we went into a fair bit of detail in the discussion at dconf 
of what exactly the pros and cons would be as well as the side effects.

What's really nice about DIP 37 is that it takes advantage of a number of 
existing features rather than requiring much new. It's essentially just taking 
what currently works with a module like all.d (publicly importing the 
everything in the package in the one module) and making it work in a manner 
that we can avoid code breakage. And naming the file package.d is a particular 
stroke of genius (provided by someone in the original discussion on Martion 
Nowak's DIP on the issue IIRC), because then the file can't even conflict with 
any existing code. So, while the implementation does have some definite nuances 
to it (like making sure that using the explict path to something like 
std.datetime.DosFileTime still works), it's ultimately fairly simple and 
straightforward. And given the need to break up modules in place, we decided 
that it was worth implementing.

- Jonathan M Davis


More information about the Digitalmars-d mailing list