December 06, 2017
Hi,
I checked out dmd and druntime this morning. dmd seems to build fine, but when I try druntime I get this error:

$ make -f win32.mak
..\dmd\generated\windows\release\32\dmd -conf= -c -o- -Isrc -Iimport -Hfimport\core\sync\barrier.di src\core\sync\barrier.d
DMD v2.077.1
 DEBUG

core.exception.RangeError@ddmd\root\file.d(199): Range violation
----------------
0x005D8784 in _d_arrayboundsp
0x0054832C in nothrow void* ddmd.root.filename.extendedPathThen!(ddmd.root.file.File.read().__lambda1).extendedPathThen(const(char*)).__lambda2!(wchar[]).__lambda2(wchar[]) at C:\git\dmd\src\ddmd\root\filename.d(804)
0x005491CF in nothrow void* ddmd.root.filename.toWStringzThen!(ddmd.root.filename.extendedPathThen!(ddmd.root.file.File.read().__lambda1).extendedPathThen(const(char*)).__lambda2).toWStringzThen(const(char*)) at C:\git\dmd\src\ddmd\root\filename.d(870)
0x005482C2 in nothrow void* ddmd.root.filename.extendedPathThen!(ddmd.root.file.File.read().__lambda1).extendedPathThen(const(char*)) at C:\git\dmd\src\ddmd\root\filename.d(834)
0x005480E8 in File at C:\git\dmd\src\ddmd\root\file.d(198)
0x004BD5F5 in int ddmd.mars.tryMain(uint, const(char)**) at C:\git\dmd\src\ddmd\mars.d(327)
0x004BF81F in _Dmain at C:\git\dmd\src\ddmd\mars.d(1116)
0x005DAC87 in void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll().__lambda1()
0x005DAC4B in void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()
0x005DAB4C in _d_run_main
0x004C1880 in main at C:\git\dmd\src\ddmd\root\stringtable.d(7)
0x005F8FF5 in mainCRTStartup
0x76D83823 in BaseThreadInitThunk
0x7773A9BD in LdrInitializeThunk

--- errorlevel 1

Any ideas?
December 07, 2017
On Wednesday, 6 December 2017 at 17:11:49 UTC, Nick Treleaven wrote:
> 0x005482C2 in nothrow void* ddmd.root.filename.extendedPathThen!(ddmd.root.file.File.read().__lambda1).extendedPathThen(const(char*)) at C:\git\dmd\src\ddmd\root\filename.d(834)
> 0x005480E8 in File at C:\git\dmd\src\ddmd\root\file.d(198)

For now this workaround lets me compile druntime:

--- a/src/ddmd/root/file.d
+++ b/src/ddmd/root/file.d
@@ -193,6 +193,8 @@ nothrow:

             // work around Windows file path length limitation
             // (see documentation for extendedPathThen).
+            if (!name[0])
+                return true;
             HANDLE h = name.extendedPathThen!
                 (p => CreateFileW(&p[0],
                                   GENERIC_READ,