Importing packages

Bill Baxter wbaxter at gmail.com
Fri Oct 27 19:42:16 PDT 2006


Mart Roosmaa wrote:
> Hello everybody,
> 
> I am quite new to D and when learning how the packages and modules
> worked, it seemed strange to me that if one wanted to import whole
> packages one would have to create a module (for example a module called
> "All") and do public imports of every other module in the package.
> 
> While this approach works, it's quite painful to keep that module up to
> date, as people tend to forget to update the central module doing the
> public imports.
> 
> Now, I propose to extend the import declaration so that if only a
> package is given, it imports all modules in that package.
> For example "import std.c;" would import std.c.fenv, std.c.math,
> std.c.process, std.c.stdargs, etc modules.
> 
> This approach would keep the code a bit easier to maintain as one
> wouldn't have to update the public imports module all the time.
> 
> What do you think? Could it be implemented in DMD?

What do you do about modules that really are intended to be 
implementation details rather than end-user code (aka private module)? 
What about packages containing a hierarchy of subpackages - do you 
import those recursively?

I would be more agreeable to the proposal if "import std.c" would be 
synononymous with "import std.c.all if it exists, otherwise import 
everything you can find under std.c".  That way the package maintainers 
still get to decide what consitutes 'all visible modules' of the package 
if they care to.

--bb



More information about the Digitalmars-d mailing list