On Wednesday, 13 June 2018 at 17:13:09 UTC, Atila Neves wrote:
After too many days of frustration to be able to count, I
finally discovered what works for our builds: the debug build
of 64-bit dmd on Windows.
When I build the release version from the Makefile or use
digger, it produces a dmd binary that crashes randomly (bad
enough) or compiles executables which themselves crash or run
forever (much, much worse).
I've used 64-bit DMD exclusively while Windows was my primary OS,
but that was a few years ago.
Do you have a way to reproduce these problems reliably? If so, a
few things you could try to narrow down the problem:
- Use DustMite and a test script that compiles a program with
64-bit release dmd.exe and a 32-bit or 64-bit debug dmd.exe, and
accepts any reductions in which only the former crashes.
- See if this is a regression (do older 64-bit DMDs work OK?),
and if so, use Digger to find where it was introduced.
- It's possible that the bug occurs not in the compiled DMD code,
but in the host DMD compiler. There was at least one recorded
case of a bug in the host DMD resulting in a broken built DMD
which in turn executed successfully, but built broken programs. A
discrepancy between which host DMD compiler is used can sometimes
explain why some tests succeed on CI but fail locally, or vice
versa.