[GHC] #12843: Simplifier ticks exhausted When trying UnfoldingDone $

GHC ghc-devs at haskell.org
Tue Nov 29 13:23:29 UTC 2016


#12843: Simplifier ticks exhausted When trying UnfoldingDone $
-------------------------------------+-------------------------------------
        Reporter:  MikolajKonarski   |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Linux             |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #12776 #12789     |  Differential Rev(s):
  #12675                             |
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 I wanted to start with HEAD, but I get
 {{{
 Resolving dependencies...
 Configuring parsec-3.1.11...
 Configuring template-haskell-2.11.0.0...
 Building template-haskell-2.11.0.0...
 Building parsec-3.1.11...
 Failed to install template-haskell-2.11.0.0
 Build log ( /home/simonpj/.cabal/logs/template-haskell-2.11.0.0.log ):
 cabal: Entering directory '/tmp/cabal-tmp-16852/template-haskell-2.11.0.0'
 Configuring template-haskell-2.11.0.0...
 Building template-haskell-2.11.0.0...
 Preprocessing library template-haskell-2.11.0.0...

 Language/Haskell/TH/Lib.hs:487:2: error:
      error: #error Remove deprecated familyNoKindD, familyKindD,
 closedTypeFamilyNoKindD and closedTypeFamilyKindD
 `gcc' failed in phase `C pre-processor'. (Exit code: 1)
 cabal: Leaving directory '/tmp/cabal-tmp-16852/template-haskell-2.11.0.0'
 Failed to install parsec-3.1.11
 Build log ( /home/simonpj/.cabal/logs/parsec-3.1.11.log ):
 cabal: Entering directory '/tmp/cabal-tmp-16851/parsec-3.1.11'
 Configuring parsec-3.1.11...
 Building parsec-3.1.11...
 Preprocessing library parsec-3.1.11...
 [ 1 of 25] Compiling Text.Parsec.Pos  (.hs -> .o)
 [ 2 of 25] Compiling Text.Parsec.Error (.hs -> .o)
 [ 3 of 25] Compiling Text.Parsec.Prim (.hs -> .o)
 [ 4 of 25] Compiling Text.Parsec.Combinator (.hs -> .o)
 [ 5 of 25] Compiling Text.Parsec.Expr (.hs -> .o)
 [ 6 of 25] Compiling Text.Parsec.Char (.hs -> .o)
 [ 7 of 25] Compiling Text.Parsec.ByteString.Lazy (.hs -> .o)
 [ 8 of 25] Compiling Text.Parsec.ByteString (.hs -> .o)
 [ 9 of 25] Compiling Text.Parsec      (.hs -> .o)
 [10 of 25] Compiling Text.Parsec.Perm (.hs -> .o)
 [11 of 25] Compiling Text.Parsec.String (.hs -> .o)
 [12 of 25] Compiling Text.Parsec.Text (.hs -> .o)
 [13 of 25] Compiling Text.Parsec.Text.Lazy (.hs -> .o)
 [14 of 25] Compiling Text.Parsec.Token (.hs -> .o)

 Text/Parsec/Token.hs:524:27: error:
     • Could not deduce (Stream s m t0) arising from a use of ‘option’
       from the context: Stream s m Char
         bound by the type signature for:
                    makeTokenParser :: Stream s m Char =>
                                       GenLanguageDef s u m ->
 GenTokenParser s u m
         at Text/Parsec/Token.hs:(351,1)-(352,63)
       The type variable ‘t0’ is ambiguous
       Relevant bindings include
         decimalFloat :: ParsecT s u1 m (Either Integer Double)
           (bound at Text/Parsec/Token.hs:523:5)
         fractFloat :: forall b a1 u a2.
                       (Read b, Show a2) =>
                       a2 -> ParsecT s u m (Either a1 b)
           (bound at Text/Parsec/Token.hs:528:5)
         fractExponent :: forall a1 u a2.
                          (Show a2, Read a1) =>
                          a2 -> ParsecT s u m a1
           (bound at Text/Parsec/Token.hs:532:5)
         fraction :: forall u. ParsecT s u m [Char]
           (bound at Text/Parsec/Token.hs:546:5)
         exponent' :: forall u. ParsecT s u m [Char]
           (bound at Text/Parsec/Token.hs:552:5)
         int :: forall u. ParsecT s u m Integer
           (bound at Text/Parsec/Token.hs:561:5)
         reservedOp :: String -> ParsecT s u m ()
           (bound at Text/Parsec/Token.hs:590:5)
         (Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-
 relevant-binds)
       These potential instances exist:
         instance [safe] Monad m => Stream [tok] m tok
           -- Defined at Text/Parsec/Prim.hs:385:10
         ...plus four instances involving out-of-scope types
         (use -fprint-potential-instances to see them all)
     • In a stmt of a 'do' block: option (Left n) (fractFloat n)
       In the expression:
         do { n <- decimal;
              option (Left n) (fractFloat n) }
       In an equation for ‘decimalFloat’:
           decimalFloat
             = do { n <- decimal;
                    option (Left n) (fractFloat n) }
 }}}
 My HEAD has `template-haskell` installed, so I'm not sure why it's trying
 to install a different version.  Nor do I understand the error in
 `parsec`.

 I guess I can try with the `8.0 branch`.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12843#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list