module keyword with curly brackets

Nicolas Sicard via Digitalmars-d digitalmars-d at puremagic.com
Sat Nov 1 07:48:32 PDT 2014


On Saturday, 1 November 2014 at 14:40:16 UTC, Dicebot wrote:
> On Saturday, 1 November 2014 at 14:03:51 UTC, Nicolas Sicard 
> wrote:
>> What's the reason why the module keyword was introduced in the 
>> first place? The package and module hierarchy could have been 
>> deduced from the directory and file hierarchy, as it is the 
>> case in Python, IIRC. The search rules just have to be clear. 
>> I know this has the side effect that module names can't be 
>> keywords or non-identifiers, but who would use such module 
>> names?
>
> You can omit module declarations and those will be deduced 
> indeed.
> However that will make package path dependent on compiler 
> currend directory and this is why specifying qualified path 
> explicitly is helpful.

Compiling is already dependent on the current directory. And 
qualified path are not just helpful, they're required for 
packages, or did I miss something?

I was thinking about the way Python does it:
- 'dmd foo.d' => 'import foo;' (if foo.d is in cwd)
- 'dmd mylib/internal/foo.d' => 'import mylib.internal.foo;' (if 
the path exists in the cwd)
- 'dmd foo.d' and there is no foo.d in the cwd: use the search 
path from the config, or fail.

> I see no reason to put module declarations in single level 
> projects with no packages.

Yes, I don't put them!


More information about the Digitalmars-d mailing list