[GHC] #14338: Simplifier fails with "Simplifier ticks exhausted"
GHC
ghc-devs at haskell.org
Tue Oct 10 14:05:23 UTC 2017
#14338: Simplifier fails with "Simplifier ticks exhausted"
-------------------------------------+-------------------------------------
Reporter: dredozubov | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Keywords: | Operating System: Linux
Architecture: x86_64 | Type of failure: Compile-time
(amd64) | crash or panic
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
While upgrading a codebase to GHC 8.2.1(it compiles reliably with 7.10.3)
we encountered an issue with core simplifier(and rewrite rules if I
correctly understood the meaning of RuleFired):
{{{
ghc: panic! (the 'impossible' happened)
(GHC version 8.2.1 for x86_64-apple-darwin):
Simplifier ticks exhausted
When trying RuleFired Class op $p2HModify
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
Total ticks: 10450410
1494659 PreInlineUnconditionally
149100 w_ipsJ
149095 w_ipps
149084 w_iplQ
149084 w1_iplR
149084 w2_iplS
149084 w3_iplT
149078 w_ipm7
149078 w1_ipm8
149078 w2_ipm9
149078 w3_ipma
120 $d~_iplr
120 $d~1_ipls
120 irred_iplu
120 eta_iplv
39 v_spsR
38 v_sp9c
38 v1_sp9d
38 v_spii
38 v1_spij
38 v2_spik
38 v3_spil
37 v_sp99
37 v1_sp9a
37 v_spin
37 v1_spio
37 v2_spip
37 v3_spiq
36 v_sp9f
36 v1_sp9g
36 v_spis
...skipping...
1 cobox1_apuk
1 cobox_apuq
1 cobox1_apur
1 cobox_apux
1 cobox1_apuy
2 CaseIdentity 2 ds1_iqAB
4 FillInCaseDefault
1 nt_sqyY
1 nt_sqz9
1 nt_sqze
1 nt_sqzj
Call stack:
CallStack (from HasCallStack):
prettyCurrentCallStack, called at
compiler/utils/Outputable.hs:1133:58 in ghc:Outputable
callStackDoc, called at compiler/utils/Outputable.hs:1137:37 in
ghc:Outputable
pprPanic, called at compiler/simplCore/SimplMonad.hs:199:31 in
ghc:SimplMonad
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
}}}
We tried to shrink reproducible example to something reasonable and this
is what we got: https://github.com/4e6/webapp-template-hs/tree/simpl-tick-
factor
Compiling it with stack build --ghc-options='-fsimpl-tick-factor=1000'(ten
times the default) will demonstrate the issue.
It fails reliably with a combination of servant and hset libraries.
Removing one route from a servant API or moving the PayloadX to the head
of type-level list makes it compilable again.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14338>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list