[GHC] #9153: TcCoercible test is failing with context reduction stack overflow

Simon Peyton Jones simonpj at microsoft.com
Fri May 30 09:28:11 UTC 2014


Thanks for this.

I've improved Note [Order of Coercible Instances] in TcInteract

Generally, it's much better to give an actual, concrete example in the Note, and refer to the ticket for additional background.  It took me a few minutes to re-read the long #9117 to reconstruct the example that precisely illustrates the Note.

Simon

| -----Original Message-----
| From: ghc-tickets [mailto:ghc-tickets-bounces at haskell.org] On Behalf Of
| GHC
| Sent: 30 May 2014 01:35
| Cc: ghc-tickets at haskell.org
| Subject: [GHC] #9153: TcCoercible test is failing with context reduction
| stack overflow
| 
| #9153: TcCoercible test is failing with context reduction stack overflow
| ------------------------------------+-----------------------------------
| ------------------------------------+--
|        Reporter:  ezyang            |             Owner:
|            Type:  bug               |            Status:  new
|        Priority:  low               |         Milestone:
|       Component:  Test Suite        |           Version:  7.9
|        Keywords:                    |  Operating System:
| Unknown/Multiple
|    Architecture:  Unknown/Multiple  |   Type of failure:  None/Unknown
|      Difficulty:  Unknown           |         Test Case:
|      Blocked By:                    |          Blocking:
| Related Tickets:                    |
| ------------------------------------+-----------------------------------
| ------------------------------------+--
|  Here is the error:
| 
|  {{{
|  TcCoercible.hs:62:12:
|      Context reduction stack overflow; size = 21
|      Use -fcontext-stack=N to increase stack size to N
|        Coercible Int Int
|      In the expression: coerce
|      In the first argument of ‘print’, namely
|        ‘(coerce $ (FixEither (Left age) :: FixEither Age) ::
|            Either Int (FixEither Int))’
|      In a stmt of a 'do' block:
|        print
|          (coerce $ (FixEither (Left age) :: FixEither Age) ::
|             Either Int (FixEither Int))
|  }}}
| 
|  I do not know enough to know if bumping the stack size is correct.
| 
|  Additionally, when run as GHCi I get:
| 
|  {{{
|  =====> TcCoercible(ghci) 2784 of 3970 [0, 7, 0]  cd
| ./typecheck/should_run && '/home/hs01/ezyang/ghc-validate/inplace/bin
|  /ghc-stage2' -fforce-re
|  comp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -
| rtsopts  -fno-ghci-history Tc  Coercible.hs --interactive -v0 -ignore-
| dot-ghci +RTS -I0.1 -RTS  <TcCoercible.genscript 1>TcCo
| ercible.interp.stdout 2>TcCoercible.interp.stderr  Actual stderr output
| differs from expected:
|  --- /dev/null   2014-02-15 17:35:19.578872448 -0800
|  +++ ./typecheck/should_run/TcCoercible.run.stderr       2014-05-29
|  16:27:30.476701835 -0700
|  @@ -0,0 +1,2 @@
|  +
|  +TcCoercible:7:30: Not in scope: ‘Main.main’
|  }}}
| 
| --
| Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9153>
| GHC <http://www.haskell.org/ghc/>
| The Glasgow Haskell Compiler
| _______________________________________________
| ghc-tickets mailing list
| ghc-tickets at haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-tickets


More information about the ghc-devs mailing list