[GHC] #7928: GHC fails to terminate while compiling with optimizations

GHC cvs-ghc at haskell.org
Fri May 24 03:00:45 CEST 2013


#7928: GHC fails to terminate while compiling with optimizations
-----------------------------+----------------------------------------------
Reporter:  Ptharien's Flame  |          Owner:                
    Type:  bug               |         Status:  new           
Priority:  normal            |      Component:  Compiler      
 Version:  7.6.3             |       Keywords:                
      Os:  Unknown/Multiple  |   Architecture:  x86_64 (amd64)
 Failure:  Other             |      Blockedby:                
Blocking:                    |        Related:                
-----------------------------+----------------------------------------------
 When I try to compile random-fu-0.2.4.0 from Hackage, using the command:

 {{{
 cabal install --ghc --ghc-options="-fllvm -O2 -dcore-lint" --enable-
 optimization=2 random-fu-0.2.4.0
 }}}

 I get the following output:

 {{{
 Resolving dependencies...
 Configuring random-fu-0.2.4.0...
 Building random-fu-0.2.4.0...
 Preprocessing library random-fu-0.2.4.0...
 [ 1 of 27] Compiling Data.Random.Internal.Find (
 src/Data/Random/Internal/Find.hs, dist/build/Data/Random/Internal/Find.o )
 [ 2 of 27] Compiling Data.Random.Internal.Fixed (
 src/Data/Random/Internal/Fixed.hs, dist/build/Data/Random/Internal/Fixed.o
 )
 [ 3 of 27] Compiling Data.Random.Internal.TH (
 src/Data/Random/Internal/TH.hs, dist/build/Data/Random/Internal/TH.o )
 [ 4 of 27] Compiling Data.Random.Lift ( src/Data/Random/Lift.hs,
 dist/build/Data/Random/Lift.o )
 [ 5 of 27] Compiling Data.Random.RVar ( src/Data/Random/RVar.hs,
 dist/build/Data/Random/RVar.o )
 [ 6 of 27] Compiling Data.Random.Distribution (
 src/Data/Random/Distribution.hs, dist/build/Data/Random/Distribution.o )
 [ 7 of 27] Compiling Data.Random.Distribution.Uniform (
 src/Data/Random/Distribution/Uniform.hs,
 dist/build/Data/Random/Distribution/Uniform.o )
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 Loading package transformers-0.3.0.0 ... linking ... done.
 Loading package mtl-2.1.2 ... linking ... done.
 Loading package MonadPrompt-1.0.0.3 ... linking ... done.
 Loading package array-0.4.0.1 ... linking ... done.
 Loading package deepseq-1.3.0.1 ... linking ... done.
 Loading package containers-0.5.0.0 ... linking ... done.
 Loading package pretty-1.1.1.0 ... linking ... done.
 Loading package template-haskell ... linking ... done.
 Loading package syb-0.4.0 ... linking ... done.
 Loading package th-extras-0.0.0.2 ... linking ... done.
 Loading package flexible-defaults-0.0.1.1 ... linking ... done.
 Loading package old-locale-1.0.0.5 ... linking ... done.
 Loading package old-time-1.1.0.1 ... linking ... done.
 Loading package time-1.4.0.1 ... linking ... done.
 Loading package random-1.0.1.1 ... linking ... done.
 Loading package mersenne-random-pure64-0.2.0.3 ... linking ... done.
 Loading package primitive-0.5.0.1 ... linking ... done.
 Loading package vector-0.10.0.1 ... linking ... done.
 Loading package mwc-random-0.12.0.1 ... linking ... done.
 Loading package stm-2.4.2 ... linking ... done.
 Loading package stateref-0.3 ... linking ... done.
 Loading package random-source-0.3.0.4 ... linking ... done.
 Loading package rvar-0.2.0.1 ... linking ... done.
 Loading package MonadRandom-0.1.9 ... linking ... done.
 Loading package random-shuffle-0.0.4 ... linking ... done.
 Loading package monad-loops-0.4.2 ... linking ... done.
 Loading package continued-fractions-0.9.1.1 ... linking ... done.
 Loading package converge-0.1.0.1 ... linking ... done.
 Loading package gamma-0.9.0.2 ... linking ... done.
 Loading package erf-2.0.0.0 ... linking ... done.
 [ 8 of 27] Compiling Data.Random.List ( src/Data/Random/List.hs,
 dist/build/Data/Random/List.o )
 [ 9 of 27] Compiling Data.Random.Distribution.Bernoulli (
 src/Data/Random/Distribution/Bernoulli.hs,
 dist/build/Data/Random/Distribution/Bernoulli.o )
 [10 of 27] Compiling Data.Random.Distribution.Categorical (
 src/Data/Random/Distribution/Categorical.hs,
 dist/build/Data/Random/Distribution/Categorical.o )
 *** Core Lint warnings : in result of Desugar (after optimization) ***
 <no location info>: Warning:
     [RHS of $c>>_aMYc :: forall p_aMMn.
                          GHC.Num.Num p_aMMn =>
                          forall a_a3Jr b_a3Js.
                          Data.Random.Distribution.Categorical.Categorical
 p_aMMn a_a3Jr
                          ->
 Data.Random.Distribution.Categorical.Categorical p_aMMn b_a3Js
                          ->
 Data.Random.Distribution.Categorical.Categorical p_aMMn b_a3Js]
     INLINE binder is (non-rule) loop breaker: $c>>_aMYc
 }}}

 It then freezes for an as-far-as-I-known indefinite amount of time; I have
 tried it several times, and it never moves beyond that.  Once, I left it
 for two whole hours without any change.  Every time, I have had to
 manually interrupt it with {{{ctrl-c}}}.

 On the other hand, if I instead use the command:

 {{{
 cabal install --ghc --ghc-options="-fllvm -O1 -dcore-lint" --enable-
 optimization=1 random-fu-0.2.4.0
 }}}

 It produces literally identitical output up to the point that the first
 command stopped at, but it continues as normal afterwards and finishes
 installing random-fu as expected.

 My terminal confirms that the {{{ghc}}} executable (as opposed to, say,
 {{{opt}}} or {{{llc}}}) is the one that the first command gets stuck on.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7928>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list