Compile-time regression in 8.2 when compiling bloodhound's test suite
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
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.2.1-rc2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |