D and file names
Walter Bright
newshound2 at digitalmars.com
Fri Mar 25 11:11:45 PDT 2011
On 3/25/2011 4:10 AM, Vladimir Panteleev wrote:
> On Fri, 25 Mar 2011 13:05:39 +0200, Russel Winder <russel at russel.org.uk> wrote:
>
>> It appears that DMD barfs on files with - in the file name. Why?
>
> Do you mean, why doesn't DMD try to work around the problem automatically (e.g.
> by substituting/removing invalid characters in the module identifier)? The error
> message answers your verbatim question.
>
> "test-file-name.d: Error: module test-file-name has non-identifier characters in
> filename, use module declaration instead"
The compiler synthesizes the module name from the file name. If the file name
has non-valid module identifiery characters in it, it can't do that. Hence the
error message. The solution is to either use a module declaration to set the
module name, or rename the file to be a valid module identifier.
The filename=modulename and directory=packagename equivalence allows for the
compiler to simply find and load imported modules. Without it you'd need some
complex database to map the module names to files.
More information about the Digitalmars-d
mailing list