[GHC] #13377: Compiler error: Simplifier ticks exhausted
GHC
ghc-devs at haskell.org
Sun Mar 5 13:39:18 UTC 2017
#13377: Compiler error: Simplifier ticks exhausted
-------------------------------------+-------------------------------------
Reporter: | Owner: (none)
simplifierticks |
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: Windows
Architecture: x86_64 | Type of failure: Compile-time
(amd64) | crash or panic
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
2.4 Programming jointly with types and values
Exercise 2.4.1 (Fixpoint). The lambda term:
y = = \f->(\x->f (x x)) (\x->f (x x))
(that encodes a fixed point combinator in the untyped lambda calculus)
does not type check in Haskell. Try it! Interestingly though, recursion on
the type level can be used to introduce recursion on the value level. If
we define the recursive type:
data F a = = F { unF :: F a->a }
then we can “annotate” the definition of y with applications of F and unF
such that y typechecks. Do it!
This works on someones else his computer:
{{{#!hs
data F a = F { unF :: F a -> a }
-- y = \f -> (\x -> f (x x)) (\x -> f (x x))
y = \f -> (\x -> x $ F x) (\x -> f . unF x $ x)
}}}
Compiler error:
ghc.EXE: panic! (the 'impossible' happened)
(GHC version 8.0.2 for x86_64-unknown-mingw32):
Simplifier ticks exhausted
When trying UnfoldingDone x_s1Gq
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: 6480
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Increased -fsimpl-tick-factor to 100.000 still the error occurred
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13377>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list