
#13960: Ticks exhausted with 8.0.2 -------------------------------------+------------------------------------- Reporter: tom-bop | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- This is unfortunately a closed-source codebase I'm experiencing this with, but we get a GHC panic with a small/not-doing-anything-crazy codebase: {{{ ghc: panic! (the 'impossible' happened) (GHC version 8.0.2 for x86_64-unknown-linux): Simplifier ticks exhausted When trying RuleFired Class op return To increase the limit, use -fsimpl-tick-factor=N (default 100) If you need to do this, let GHC HQ know, and what factor you needed To see detailed counts use -ddump-simpl-stats Total ticks: 118123 }}} When upping to `-fsimpl-tick-factor=150`, the error is a little different: {{{ ghc: panic! (the 'impossible' happened) (GHC version 8.0.2 for x86_64-unknown-linux): Simplifier ticks exhausted When trying UnfoldingDone $ To increase the limit, use -fsimpl-tick-factor=N (default 100) If you need to do this, let GHC HQ know, and what factor you needed To see detailed counts use -ddump-simpl-stats Total ticks: 177190 }}} Upping to 200 makes the issue go away. We're building with `ghc-options: -fhpc` Before each build, we remove all .tix files and the .hpc directory At the point this error fires, we're compiling the 6th module of 9. The first 6 modules to compile only have a total of 635 lines of code. To address issues I've seen in other similar tickets: - There are no recursive module imports - We don't use any `{-# INLINE #-}` or similar pragmas - There is no Template Haskell other than a `makeLenses ''App` for a small Snaplet. - We don't have any "very"/exponentially recursive code - We don't use any unboxed tuples (there *is* ST code in a module that's compiled, but not the one ghc panics on) - We don't use type families - We don't use TypeRep or Typeable - We don't use Generic When this error occurs, it fails on a module which has very little code in it. It's mainly a list of ~200-300 Query[0] values, using OverloadedStrings. I notice Query's `mappend`, which we use, is `INLINE`d. Please let me know if I can provide more detail! [0] http://hackage.haskell.org/package/postgresql-simple-0.5.3.0/docs /Database-PostgreSQL-Simple-Types.html#t:Query -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13960 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler