Well then I think I've found some new bugs in RDMD & xfbuild: Files: root/main.d root/socket.d
main.d: module main; import alt.socket; void main() { foo(); } socket.d: module alt.socket; import std.stdio : writeln; void foo() { writeln("test"); } $ RDMD main.d main.d(2): Error: module socket is in file 'alt\socket.d' which cannot be read import path[0] = . import path[1] = C:\DMD\dmd2\windows\bin\..\..\src\phobos import path[2] = C:\DMD\dmd2\windows\bin\..\..\src\druntime\import $ xfbuild +o=main.exe main.d socket.d main.d(4): Error: module socket is in file 'alt\socket.d' which cannot be read import path[0] = C:\DMD\dmd2\windows\bin\..\..\src\phobos import path[1] = C:\DMD\dmd2\windows\bin\..\..\src\druntime\import Build failed: 'dmd @xfbuild.a00e00.rsp' returned 1. DSSS fails as well. But DMD works: $ dmd main.d socket.d $ main.exe > test Rory Mcguire Wrote: > In Java yes. I D you can use the module declaration to "move" a module. > e.g. > filename: socket.d; > module: alt.socket; > > to import you'd do "import alt.socket;" even if the file is in the same > directory as the module using the file.