On Thu, 05 Apr 2012 11:23:12 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

On 4/5/12 7:43 AM, Steven Schveighoffer wrote:
I currently think DIP16 is invalid/worksforme (public imports allows
splitting a module into a package). All that is left is how we could
specifically import a package with one import statement.

Not entirely (I was aware of the way public import works). An issue does exist - there are "too many names", i.e. the alias pulled in the importing module and also the name being imported. This makes for odd synonyms such as std.algorithm_package.sort.sort being the same as std.algorithm.sort.

Right, but if one only ever imports std.algorithm, who cares what the submodule FQNs are?

AIUI, DIP16 also doesn't really reduce the number of names either.

The other issue is that obviously algorithm_package and algorithm must have distinct names, which makes the scheme a bit awkward at least until we define a compelling convention. I guess we can live with all that.

Agreed. I think Don mentioned std.math already does something, we may want to look at that model.

A couple issues that still need consideration:

1. If std.algorithm the module becomes std.algorithm the package, what happens with ddoc? We probably *do* need a compiler solution to this. 2. deadalnix pointed out that if we come up with a scheme where the package module and its submodules are in the same directory, the package accessibility qualifier can be used (hey look, a use for the package keyword!).

-Steve

Reply via email to