On 6/21/21 4:55 AM, frame wrote:
On Monday, 21 June 2021 at 03:32:58 UTC, someone wrote:
Since memory serves I use to name files with - instead of the more common _

The module name has to be strict and "-" is not allowed.
However, you should be able to import files with a "-" in the name.

 From the manual:

If the file name of a module is an invalid module name (e.g. foo-bar.d), you may use a module declaration to set a valid module name:


```d
module foo_bar;
```

Tested on Windows/dmd - does NOT work :(

It does work. However, you have to tell the compiler the file to compile.

When an import is used, the compiler does 2 stages:

1. Search through already-seen modules, and see if one matches
2. Search the filesystem to find a file that fits the module name. For example `std.path` becomes `$INCLUDE_DIR/std/path.d`

So if you provide the file name to the compiler as part of the set of files to compile, it should work. e.g:

foo-bar.d:
```d
module foo_bar;
```

app.d:
```d
module app;
import foo_bar;

void main () {}
```

compiled like:

```
> dmd app.d foo-bar.d
```

That being said, I strongly recommend just to name the file the same as the module name.

-Steve

Reply via email to