February 05, 2020 [Issue 20562] New: [dmd] Memory allocation failed (ERROR: This is a compiler bug) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20562 Issue ID: 20562 Summary: [dmd] Memory allocation failed (ERROR: This is a compiler bug) Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: zorael@gmail.com After updating to 2.088.1 from 2.087.1, my project no longer compiles with dmd under Windows and just throws an OutOfMemoryError. I bisected it to https://github.com/dlang/dmd/pull/10446, which adds a stack size linker parameter to dmd's compilation, and thus breaks mine. > diff --git a/src/build.d b/src/build.d > index 8b5d59373..592ceb8a8 100755 > --- a/src/build.d > +++ b/src/build.d > @@ -361,13 +361,16 @@ alias dmdExe = memoize!(function(string targetSuffix, string[] extraFlags...) > target = env["DMD_PATH"] ~ targetSuffix; > msg = "(DC) DMD%s %-(%s, %)".format(targetSuffix, dmdSources.map!(e => e.baseName).array); > deps = [versionFile, sysconfDirFile, lexer, backend]; > + string[] platformArgs; > + version (Windows) > + platformArgs = ["-L/STACK:8388608"]; > command = [ > env["HOST_DMD_RUN"], > "-of" ~ target, > "-vtls", > "-J"~env["G"], > "-J../res", > - ].chain(extraFlags).chain(flags["DFLAGS"], sources).array; > + ].chain(extraFlags, platformArgs, flags["DFLAGS"], sources).array; > } > return new DependencyRef(dep); > }); I don't know enough. Assuming it's there for a reason and can't be reverted, can we at least increase the size? Or is there some other way for me to be able to keep using dmd? To test (assuming Windows): > git clone https://github.com/zorael/kameloso > cd kameloso > dub build -c vanilla # lightest build C:\Temp\kameloso>dub build -c vanilla Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. lu:core 0.1.2: target for configuration "library" is up to date. lu:meld 0.1.2: target for configuration "library" is up to date. dialect 0.3.2: target for configuration "library" is up to date. lu 0.1.2: target for configuration "library" is up to date. kameloso 1.5.0+commit.15.g588f6e55: building configuration "vanilla"... --- ERROR: This is a compiler bug. Please report it via https://issues.dlang.org/enter_bug.cgi with, preferably, a reduced, reproducible example and the information below. DustMite (https://github.com/CyberShadow/DustMite/wiki) can help with the reduction. --- DMD v2.090.0-dirty predefs WithAdminPlugin WithAutomodePlugin WithBashQuotesPlugin WithChanQueriesService WithChatbotPlugin WithConnectService WithCTCPService WithHelpPlugin WithNotesPlugin WithOnelinersPlugin WithPersistenceService WithPipelinePlugin WithPrinterPlugin WithQuotesPlugin WithSedReplacePlugin WithSeenPlugin WithWebtitlesPlugin WithPlugins Have_kameloso Have_dialect Have_lu FlagAsUpdated Have_lu_core Have_lu_meld DigitalMars Windows CRuntime_Microsoft CppRuntime_Microsoft LittleEndian D_Version2 all D_SIMD D_InlineAsm_X86_64 X86_64 Win64 D_LP64 assert D_ModuleInfo D_Exceptions D_TypeInfo D_HardFloat binary C:\D\dmd2\windows\bin\dmd.exe version v2.090.0-dirty config C:\D\dmd2\windows\bin\sc.ini DFLAGS -IC:\D\dmd2\windows\bin\..\..\src\phobos -IC:\D\dmd2\windows\bin\..\..\src\druntime\import -L/OPT:NOICF --- core.exception.OutOfMemoryError@src\core\exception.d(647): Memory allocation failed > dub remove dialect --version=* > dub remove lu --version=* Bisection results: digger: Finding shortest path between 77f556acec92e295ac04e96f800f6d81a8b53ec0 and 2ca17849f4ce2585cb288026241337425385a590... digger: 0 commits (about 0 tests) remaining. digger: 2ca17849f4ce2585cb288026241337425385a590 is the first bad commit commit 2ca17849f4ce2585cb288026241337425385a590 Author: The Dlang Bot <code+dlang-bot@dawg.eu> Date: Fri Oct 4 01:17:22 2019 +0200 dmd: Merge pull request #10446 from marler8997/compileDmdBuildD https://github.com/dlang/dmd/pull/10446 Compile dmd exe in build.d merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com> -- |
Copyright © 1999-2021 by the D Language Foundation