[GHC] #8078: Core lint failure for profiled code
#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
#8078: Core lint failure for profiled code ---------------------------------------+----------------------------------- Reporter: ezyang | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.7 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time crash | Unknown/Multiple Test Case: T4492 | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: ---------------------------------------+----------------------------------- Description changed by ezyang: Old description:
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)
New description: 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#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#8078: Core lint failure for profiled code -------------------------------------+------------------------------------- Reporter: ezyang | Owner: Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 7.7 Resolution: worksforme | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: T4492 Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Changes (by thomie): * status: new => closed * resolution: => worksforme Comment: T4492 works for me in the `profasm` way, so this must have been fixed at some point. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8078#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC