[GHC] #11944: Simplifier ticks exhausted When trying UnfoldingDone ip_X7RI
GHC
ghc-devs at haskell.org
Mon Apr 18 11:35:36 UTC 2016
#11944: Simplifier ticks exhausted When trying UnfoldingDone ip_X7RI
-----------------------------------+--------------------------------------
Reporter: simone.trubian | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.2
Resolution: | Keywords:
Operating System: Linux | Architecture: x86_64 (amd64)
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-----------------------------------+--------------------------------------
Description changed by simonpj:
@@ -68,2 +68,3 @@
-
- ```<no location info>:
+ We get
+ {{{
+ <no location info>:
@@ -77,2 +78,2 @@
- Total ticks: 53522k```
-
+ Total ticks: 53522k
+ }}}
New description:
When trying compiling the following code I get a ghc panic
{{{#!hs
import Network.Wai
import Network.Wai.Handler.Warp
import Network.HTTP.Types
( status200
, status404)
import Blaze.ByteString.Builder (copyByteString)
import qualified Data.ByteString.UTF8 as BU
import Data.Monoid
main = do
let port = 3000
putStrLn $ "Listening on port " ++ show port
run port app
app req respond =
respond
$ case pathInfo req of
["avOK"] -> avOK
["avWrong"] -> avWrong
x -> index x
avOK =
responseBuilder
status200
[("Content-Type", "text/html")]
$ mconcat
$ map copyByteString
[ "<!DOCTYPE html>"
, "<html>"
, "<head>"
, "<title>Title</title>"
, "</head>"
, "<body>"
, "<div class=\"status\">"
, "In stock, usually dispatched in 1 business day"
, "</div>"
, "</body>"
, "</html>"]
avWrong =
responseBuilder
status404
[("Content-Type", "text/html")]
$ mconcat
$ map copyByteString ["<p>wong!</p>"]
index x =
responseBuilder
status200
[("Content-Type", "text/html")]
$ mconcat
$ map copyByteString
[ "<p>Hello from "
, BU.fromString $ show x
, "!</p>"
, "<p><a href='/yay'>yay</a></p>\n" ]
}}}
We get
{{{
<no location info>:
ghc: panic! (the 'impossible' happened)
(GHC version 7.10.2 for x86_64-unknown-linux):
Simplifier ticks exhausted
When trying UnfoldingDone ip_X7RI
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: 53522k
}}}
After a little bit of debugging I realised that it's the `copyBytestring`
imported from `import Blaze.ByteString.Builder` function that is causing
trouble, by reducing the number of elements in the list the function
doesn't crash the compiler, so for instance:
{{{#!hs
avOK =
responseBuilder
status200
[("Content-Type", "text/html")]
$ mconcat
$ map copyByteString
[ "<!DOCTYPE html>"
, "<html><head><title>Title</title></head>"
, "<body>"
, "<div class=\"status\">"
, "In stock, usually dispatched in 1 business day"
, "</div>"
, "</body>"
, "</html>"]
}}}
compiles happily. I'm using
- bytestring-0.10.6.0
- wai-3.0.4.0
- warp-3.1.8
- http-types-0.8.6
- blaze-builder-0.4.0.1
- utf8-string-1.0.1.1
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11944#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list