Shake fails test with GHC 7.10 RC3

Neil Mitchell ndmitchell at
Wed Mar 18 15:33:00 UTC 2015


Testing GHC 7.10 RC3 I've found a bug where Shake seems to catch the
wrong exception in the wrong place. It's only hit by one of my tests,
and I've managed to isolate it to a fragment of code with no
unsafePerformIO, that throws exceptions using error (so not in IO),
and operates in IO. Turning off the stack hack makes the bug go away,
but then so does -O0, marking one of the functions it calls NOINLINE,
or moving an INLINE function it calls to a different module, or adding
a putStrLn under a catch block - it's very sensitive to the exact
conditions. This test and this exact code worked fine with GHC 7.10

I was wondering if there have been any state hack related changes or
other potentially dangerous optimisation changes since RC2? I'll
continue to try reducing the bug, but it's somewhat difficult as the
larger system is quite big, and the code is very sensitive.

Thanks, Neil

More information about the ghc-devs mailing list