[GHC] #8078: Core lint failure for profiled code

GHC ghc-devs at haskell.org
Sun Jul 21 00:19:42 CEST 2013


#8078: Core lint failure for profiled code
-----------------------------------+---------------------------------------
       Reporter:  ezyang           |             Owner:
           Type:  bug              |            Status:  new
       Priority:  normal           |         Milestone:
      Component:  Compiler         |           Version:  7.7
       Keywords:                   |  Operating System:  Unknown/Multiple
   Architecture:                   |   Type of failure:  Compile-time crash
  Unknown/Multiple                 |         Test Case:  T4492
     Difficulty:  Unknown          |          Blocking:
     Blocked By:                   |
Related Tickets:                   |
-----------------------------------+---------------------------------------
 Probably related to the cardinality changes.  Here is the dump:

 =====> T4492(profasm) 3361 of 3686 [2, 51, 0]
 cd ./indexed-types/should_compile && '/srv/code/ghc-build-
 sandbox/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint
 -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -c
 T4492.hs -O -prof -static -auto-all   >T4492.comp.stderr 2>&1
 Compile failed (status 256) errors were:
 *** Core Lint errors : in result of CorePrep ***
 {-# LINE 12 "T4492.hs #-}: Warning:
     [RHS of T4492.$fCMaybe_$cgo :: forall a_aex.
                                    T4492.C a_aex =>
                                    forall b_ae0.
                                    (forall a1_ae1. Data.Maybe.Maybe a1_ae1
 -> b_ae0 -> a1_ae1)
                                    -> Data.Maybe.Maybe a_aex
                                    -> T4492.F (Data.Maybe.Maybe a_aex)
 b_ae0]
     Demand type has 4 arguments, rhs has 3 arguments, T4492.$fCMaybe_$cgo
     Binder's strictness signature: DmdType
 <C(C(S)),1*C1(C1(U))><L,U><L,U><L,U>
 *** Offending Program ***
 T4492.go [InlPrag=INLINE]
   :: forall a_adZ.
      T4492.C a_adZ =>
      forall b_ae0.
      (forall a_ae1. Data.Maybe.Maybe a_ae1 -> b_ae0 -> a_ae1)
      -> a_adZ -> T4492.F a_adZ b_ae0
 [GblId[ClassOp],
  Arity=1,
  Caf=NoCafRefs,
  Str=DmdType <S,U>,
  Unf=OtherCon []]
 T4492.go =
   \ (@ a_adZ) (tpl_sgH [Occ=Once] :: T4492.C a_adZ) ->
     tpl_sgH
     `cast` (T4492.NTCo:C[0] <a_adZ>
             :: T4492.C a_adZ
                  ~#
                (forall b_ae0.
                 (forall a_ae1. Data.Maybe.Maybe a_ae1 -> b_ae0 -> a_ae1)
                 -> a_adZ -> T4492.F a_adZ b_ae0))

 T4492.$fCMaybe1
   :: forall a_aex.
      T4492.C a_aex =>
      forall b_afH.
      (forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
      -> Data.Maybe.Maybe a_aex -> b_afH -> T4492.F a_aex b_afH
 [GblId,
  Arity=4,
  Caf=NoCafRefs,
  Str=DmdType <C(C(S)),1*C1(C1(U))><L,U><L,U><L,U>,
  Unf=OtherCon []]
 T4492.$fCMaybe1 =
   \ (@ a_aex)
     ($dC_sgI [Occ=OnceL] :: T4492.C a_aex)
     (@ b_afH)
     (f_sgJ
        :: forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
     (a1_sgK [Occ=OnceL] :: Data.Maybe.Maybe a_aex)
     (b1_sgL [Occ=OnceL] :: b_afH) ->
     scctick<go>
     let {
       sat_sgM [Occ=Once] :: a_aex
       [LclId, Str=DmdType]
       sat_sgM = f_sgJ @ a_aex a1_sgK b1_sgL } in
     ($dC_sgI
      `cast` (T4492.NTCo:C[0] <a_aex>
              :: T4492.C a_aex
                   ~#
                 (forall b_ae0.
                  (forall a_ae1. Data.Maybe.Maybe a_ae1 -> b_ae0 -> a_ae1)
                  -> a_aex -> T4492.F a_aex b_ae0)))
       @ b_afH f_sgJ sat_sgM

 T4492.$fCMaybe_$cgo
   :: forall a_aex.
      T4492.C a_aex =>
      forall b_ae0.
      (forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_ae0 -> a1_ae1)
      -> Data.Maybe.Maybe a_aex -> T4492.F (Data.Maybe.Maybe a_aex) b_ae0
 [GblId,
  Arity=3,
  Caf=NoCafRefs,
  Str=DmdType <C(C(S)),1*C1(C1(U))><L,U><L,U><L,U>,
  Unf=OtherCon []]
 T4492.$fCMaybe_$cgo =
   (\ (@ a_aex)
      (eta_B3 [Occ=Once] :: T4492.C a_aex)
      (@ b_afH)
      (eta_B2 [Occ=Once]
         :: forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
      (eta_B1 [Occ=Once] :: Data.Maybe.Maybe a_aex) ->
      T4492.$fCMaybe1 @ a_aex eta_B3 @ b_afH eta_B2 eta_B1)
   `cast` (forall a_aex.
           <T4492.C a_aex>
           -> forall b_afH.
              <forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1>
              -> <Data.Maybe.Maybe a_aex>
              -> Sym (T4492.TFCo:R:FMaybeb[0] <a_aex> <b_afH>)
           :: (forall a_aex.
               T4492.C a_aex =>
               forall b_afH.
               (forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
               -> Data.Maybe.Maybe a_aex -> b_afH -> T4492.F a_aex b_afH)
                ~#
              (forall a_aex.
               T4492.C a_aex =>
               forall b_afH.
               (forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
               -> Data.Maybe.Maybe a_aex
               -> T4492.F (Data.Maybe.Maybe a_aex) b_afH))

 T4492.$fCMaybe [InlPrag=INLINE (sat-args=0)]
   :: forall a_aex. T4492.C a_aex => T4492.C (Data.Maybe.Maybe a_aex)
 [GblId[DFunId(nt)],
  Arity=3,
  Caf=NoCafRefs,
  Str=DmdType <C(C(S)),1*C1(C1(U))><L,U><L,U><L,U>,
  Unf=OtherCon []]
 T4492.$fCMaybe =
   (\ (@ a_aex)
      (eta_B3 [Occ=Once] :: T4492.C a_aex)
      (@ b_afH)
      (eta_B2 [Occ=Once]
         :: forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
      (eta_B1 [Occ=Once] :: Data.Maybe.Maybe a_aex) ->
      T4492.$fCMaybe1 @ a_aex eta_B3 @ b_afH eta_B2 eta_B1)
   `cast` (forall a_aex.
           <T4492.C a_aex>
           -> (forall b_afH.
               <forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1>
               -> <Data.Maybe.Maybe a_aex>
               -> Sym (T4492.TFCo:R:FMaybeb[0] <a_aex> <b_afH>))
              ; Sym (T4492.NTCo:C[0] <Data.Maybe.Maybe a_aex>)
           :: (forall a_aex.
               T4492.C a_aex =>
               forall b_afH.
               (forall a1_ae1. Data.Maybe.Maybe a1_ae1 -> b_afH -> a1_ae1)
               -> Data.Maybe.Maybe a_aex -> b_afH -> T4492.F a_aex b_afH)
                ~#
              (forall a_aex. T4492.C a_aex => T4492.C (Data.Maybe.Maybe
 a_aex)))

 *** End of Offense ***


 <no location info>:
 Compilation had errors



 *** unexpected failure for T4492(profasm)

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




More information about the ghc-tickets mailing list