Tickets scheduled for 7.8.4
See the %7.8.4 milestone.
This section lists show-stopper bugs in 7.8.3. A show-stopper is a bug that simply prevents you using the compiler at all. The main reason for making a new release is to kill off show-stoppers. Everything not in this section counts as "nice to have".
- #9439 (closed): LLVM mangler mangles too vigorously. After 7.8.3 it was realized that the LLVM code generator's mangler mangled occurrences of tokens occurring within strings of user code. This very non-obvious miscompilation. While the tokens involved aren't likely to appear in user code, they do appear in the code generator itself. This will result in GHC builds bootstrapped with an affected compiler to produce incorrect binaries.
This bug poses a potentially significant inconvenience to users of architectures supported only by the LLVM code generator (e.g. ARM) as they will be unable to bootstrap 7.10 with a 7.8 release. The fix is implemented in 5895f2b8ffba72a8393e9f712461e6e5ed7ceced. A configure-time check to ensure an affected compiler isn't used as stage0 is implemented in bbd031134a571c1020945b2548e3fc4795b5047a. Both of these should be easily backported to the 7.8 branch.
- #8819 (closed) and #8849 (closed): Arithmetic is broken in unregisterised compiler. A regression in the C code backend leads to the compiler producing incorrect code that fails almost all arithmetic tests (#8849 (closed)) and others (#8819 (closed)) in the test suite. Moreover, the resulting 7.8.3 cannot bootstrap itself. This is a significant inconvenience for users of architectures where only the unregisterised backend via C is supported, such as powerpc64 and s390.
Phabricator D173 https://phabricator.haskell.org/D173 has a patch that fixes both tickets. The patch applies cleanly (with an offset of a few lines).
#8960 (closed) & co:
SpecConstrfrequently explodes in the wild, causing the compiler to essentially loop forever.