[GHC] #13967: Simplifier ticks exhausted (when trying UnfoldingDone) from using lots of ByteString Builder literals

GHC ghc-devs at haskell.org
Wed Jul 12 20:49:46 UTC 2017


#13967: Simplifier ticks exhausted (when trying UnfoldingDone) from using lots of
ByteString Builder literals
-------------------------------------+-------------------------------------
        Reporter:  sergv             |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.2
      Resolution:                    |             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:                    |
-------------------------------------+-------------------------------------
Description changed by sergv:

Old description:

> I've tried to port Cabal's `Distribution.Simple.Build.PathsModule` from
> `String`s to `Data.ByteString.Builder`. The module uses lot's of string
> literals combined via `++`. After enabling `OverloadedStrings` and
> changing `++` to `Data.Semigroup.<>` I got an error message like in the
> subject.
>
> I have reproduced the issue on self-contained example, attached.
>
> ```
> $ cd "/tmp/ghc-ticks-exhausted-bug/" && stack build
> test-0.1.0.0: configure (lib)
> Configuring test-0.1.0.0...
> test-0.1.0.0: build (lib)
> Preprocessing library test-0.1.0.0...
> [1 of 1] Compiling Test             ( Test.hs, .stack-
> work/dist/x86_64-linux/Cabal-1.24.2.0/build/Test.o )
>
> /tmp/ghc-ticks-exhausted-bug/Test.hs:17:21: warning: [-Wunused-top-binds]
>     Defined but not used: data constructor ‘Linux’
>
> /tmp/ghc-ticks-exhausted-bug/Test.hs:22:29: warning: [-Wunused-top-binds]
>     Defined but not used: data constructor ‘Arm’
>
> <no location info>: error:
>     ghc: panic! (the 'impossible' happened)
>   (GHC version 8.0.2 for x86_64-unknown-linux):
>         Simplifier ticks exhausted
>   When trying UnfoldingDone $
>   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: 184333
>
> Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
>

> --  While building package test-0.1.0.0 using:
>       /home/sergey/.stack/setup-exe-cache/x86_64-linux/Cabal-
> simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-
> work/dist/x86_64-linux/Cabal-1.24.2.0 build lib:test --ghc-options "
> -ddump-hi -ddump-to-file"
>     Process exited with code: ExitFailure 1
>
> ```

New description:

 I've tried to port Cabal's `Distribution.Simple.Build.PathsModule` from
 `String`s to `Data.ByteString.Builder`. The module uses lot's of string
 literals combined via `++`. After enabling `OverloadedStrings` and
 changing `++` to `Data.Semigroup.<>` I got an error message like in the
 subject.

 I have reproduced the issue on self-contained example, attached.

 {{{
 $ cd "/tmp/ghc-ticks-exhausted-bug/" && stack build
 test-0.1.0.0: configure (lib)
 Configuring test-0.1.0.0...
 test-0.1.0.0: build (lib)
 Preprocessing library test-0.1.0.0...
 [1 of 1] Compiling Test             ( Test.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.24.2.0/build/Test.o )

 /tmp/ghc-ticks-exhausted-bug/Test.hs:17:21: warning: [-Wunused-top-binds]
     Defined but not used: data constructor ‘Linux’

 /tmp/ghc-ticks-exhausted-bug/Test.hs:22:29: warning: [-Wunused-top-binds]
     Defined but not used: data constructor ‘Arm’

 <no location info>: error:
     ghc: panic! (the 'impossible' happened)
   (GHC version 8.0.2 for x86_64-unknown-linux):
         Simplifier ticks exhausted
   When trying UnfoldingDone $
   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: 184333

 Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug


 --  While building package test-0.1.0.0 using:
       /home/sergey/.stack/setup-exe-cache/x86_64-linux/Cabal-
 simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-
 work/dist/x86_64-linux/Cabal-1.24.2.0 build lib:test --ghc-options "
 -ddump-hi -ddump-to-file"
     Process exited with code: ExitFailure 1

 }}}

--

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


More information about the ghc-tickets mailing list