zorael / kameloso

IRC bot with Twitch support
Boost Software License 1.0
9 stars 3 forks source link

Builds fail on Windows with 2.089 and later (workaround exists) #83

Closed zorael closed 2 years ago

zorael commented 4 years ago

At least unittest builds.

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.089.1-dirty
predefs   WithAdminPlugin WithAutomodePlugin WithBashQuotesPlugin WithChanQueriesService WithChatbotPlugin WithConnectService WithCTCPService WithHelpPlugin WithNotesPlugin WithOnelinersPlugin WithPersistenceService WithPipelinePlugin WithPrinterPlugin WithQuotesPlugin WithSedReplacePlugin WithSeenPlugin WithWebtitlesPlugin WithPlugins Colours Web TwitchSupport WithTwitchBotPlugin TwitchWarnings OmniscientAdmin PrintStacktraces ExplainReplay ProfileGC AssertsGeneration Have_kameloso Have_arsd_official_dom Have_dialect Have_lu Have_requests Have_arsd_official_characterencodings FlagAsUpdated Have_lu_core Have_lu_meld Have_cachetools DigitalMars Windows CRuntime_Microsoft CppRuntime_Microsoft LittleEndian D_Version2 all D_SIMD D_InlineAsm_X86_64 X86_64 Win64 D_LP64 unittest assert D_ModuleInfo D_Exceptions D_TypeInfo D_HardFloat
binary    C:\dmd2\windows\bin\dmd.exe
version   v2.089.1-dirty
config    C:\dmd2\windows\bin\sc.ini
DFLAGS    -IC:\dmd2\windows\bin\..\..\src\phobos -IC:\dmd2\windows\bin\..\..\src\druntime\import -L/OPT:NOICF
---
core.exception.OutOfMemoryError@src\core\exception.d(647): Memory allocation failed
----------------
0x0063839A
0x00598637
0x0059D79C
0x0058DFE5
0x00523E3C
[...]

Currently attempting reduction.

zorael commented 4 years ago

Bisected and reported.

https://issues.dlang.org/show_bug.cgi?id=20562

zorael commented 4 years ago

This only affects dmd. The workarounds are to either use LDC, or to build with --build-mode=singleFile. Neither can be enforced in a build configuration; they are only opt-in at the command line. As such we can only warn when the compiler is dmd and __VERSION__ is 2089L or higher* (2.089.0 seems to be the closest tag) and hope the user does the right thing.

DFLAGS=-lowmem does not currently work but I have not yet reported it upstream. It could be enforced in dub.sdl, it just needs to work first.

zorael commented 4 years ago

Fixes for AppVeyor were pulled in 9163c96a9da6d571958bff24f800edadb7f2e015. It also includes compile-time messages suggesting to use singleFile. We may have to promote it further in the readme.

Leaving this bug for visibility but it's technically a NOTOURBUG.

zorael commented 2 years ago

I haven't seen this in a good while now so I'm tentatively closing this. Reopen if it resurfaces.