
#14434: GHC 8.2.1 picks wrong instances with -O in a presence of an OVERLAPPABLE instance -------------------------------------+------------------------------------- Reporter: dredozubov | Owner: (none) Type: bug | Status: new Priority: high | Milestone: 8.2.3 Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 Type of failure: Incorrect result | (amd64) at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Description changed by dredozubov: Old description:
We experienced code breakage while moving to 8.2.1 - in some circumstances it picks wrong instances if an instance in the lines of `instance {-# OVERLAPPABLE #-} C a ` is defined. @s9gf4ult was really nice to create a repo demonstrating an issue, you can look at the repo here: [https://github.com/s9gf4ult/isogen-minimal-example]
Running `chech.sh` will trigger three builds:
{{{ GHC 8.0.2, -O, succeeds GHC 8.2.1, -O0, succeeds GHC 8.2.1, -O, fails }}}
If you'll check out to either of fix- branches:
{{{ fix-move-to_string fix-no-catchall-instance fix-replace-to_string fix-add-irrelevant-instance }}}
then the last test should succeed also. Those branches contain changes over master which fixes the bug in different ways.
New description: We experienced code breakage while moving to 8.2.1 - in some circumstances it picks wrong instances if an instance in the lines of `instance {-# OVERLAPPABLE #-} C a ` is defined. @s9gf4ult was really nice to create a repo demonstrating an issue, you can look at the repo here: [https://github.com/s9gf4ult/isogen-minimal-example] Running `chech.sh` will trigger three builds: {{{ GHC 8.0.2, -O, succeeds GHC 8.2.1, -O0, succeeds GHC 8.2.1, -O, fails }}} If you'll check out to either of fix- branches: {{{ fix-move-to_string fix-no-catchall-instance fix-replace-to_string fix-add-irrelevant-instance }}} then the last test should succeed also. Those branches contain changes over master which fix the application behavior in different ways. -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14434#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler