Opened 4 years ago

Closed 3 years ago

#8078 closed bug (worksforme)

Core lint failure for profiled code

Reported by: ezyang Owned by:
Priority: normal Milestone:
Component: Compiler Version: 7.7
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Compile-time crash Test Case: T4492
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description (last modified by ezyang)

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)

Change History (2)

comment:1 Changed 4 years ago by ezyang

Description: modified (diff)

comment:2 Changed 3 years ago by thomie

Resolution: worksforme
Status: newclosed

T4492 works for me in the profasm way, so this must have been fixed at some point.

Note: See TracTickets for help on using tickets.