On Saturday, 1 November 2014 at 10:32:48 UTC, Jonathan M Davis
via Digitalmars-d wrote:
On Saturday, November 01, 2014 07:52:38 tcak via Digitalmars-d
wrote:
The "module" declaration, and the name and path of D files do
not
need to match each other. You include a D file while compiling
the project, and module declarations are cared only.
Based on above behaviour of design, allowing only one "module"
keyword, and that is on top of D code file seems like a
limitation to me (a little like just trying to copy Java, but
leaving the work in the middle).
Is there any VERY SPECIAL reason behind that limitation? How
hard
would it be to add a syntax as below? What problems could it
create?
test.d
----
module a{
}
module b{
module c{
}
}
In D, packages correspond to directories, and modules
correspond to files.
Yes, the module and package names can vary slightly from the
file name, but
that doesn't change the fact that they still correspond to
specific files, and
most folks don't give the modules names that don't match their
file names.
- Jonathan M Davis
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?
-- Nicolas