www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - building git druntime - range violation in extendedPathThen

reply Nick Treleaven <nick geany.org> writes:
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).toWStrin
zThen(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).extendedPa
hThen(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?
Dec 06 2017
parent Nick Treleaven <nick geany.org> writes:
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).extendedPa
hThen(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,
Dec 07 2017