
#13744: Compile-time regression in 8.2 when compiling bloodhound's test suite -------------------------------------+------------------------------------- Reporter: refold | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1-rc2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Compile-time Unknown/Multiple | performance bug Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- GHC 8.2 takes much longer to compile bloodhound's test suite than GHC 8.0.2. With 8.0.2, compilation takes approximately a minute on my machine, 8.2 takes approximately four minutes and uses much more memory. How to reproduce: {{{ $ git clone -b ghc-8.2 https://github.com/23Skidoo/bloodhound.git $ cd bloodhound $ cabal new-build -w ghc-8.0.1 --enable-tests $ cabal new-build -w ghc-8.2.1 --enable-tests }}} GHC version: {{{ $ ghc-8.2.1 --version The Glorious Glasgow Haskell Compilation System, version 8.2.0.20170505 }}} These warnings (fixed in my `ghc-8.2` branch of `bloodhound`) may provide a clue to what's happening: {{{ tests/V1/tests.hs:1876:17: warning: [-Wsimplifiable-class-constraints] • The constraint ‘SOP.All SOP.SListI (SOP.GCode a)’ matches an instance declaration instance forall k (f :: k -> Constraint) (xs :: [k]). (Generics.SOP.Constraint.AllF f xs, SOP.SListI xs) => SOP.All f xs -- Defined in ‘Generics.SOP.Constraint’ This makes type inference for inner bindings fragile; either use MonoLocalBinds, or simplify it using the instance • In the type signature: sopArbitrary :: forall a. (Generic a, SOP.GTo a, SOP.All SOP.SListI (SOP.GCode a), SOP.All2 Arbitrary (SOP.GCode a)) => Gen a }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13744 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler