[GHC] #15066: EtaExpandLevPoly triggers a core lint error in profasm/profthreaded ways
#15066: EtaExpandLevPoly triggers a core lint error in profasm/profthreaded ways ----------------------------------------+--------------------------------- Reporter: alpmestan | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.5 Keywords: | Operating System: Linux Architecture: Unknown/Multiple | Type of failure: None/Unknown Test Case: EtaExpandLevPoly | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: ----------------------------------------+--------------------------------- Against 8b823f270e53627ddca1a993c05f1ab556742d96: {{{#!hs $ make fulltest TEST=EtaExpandLevPoly [...] =====> EtaExpandLevPoly(normal) 1 of 1 [0, 0, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly =====> EtaExpandLevPoly(hpc) 1 of 1 [0, 0, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -O -fhpc cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly =====> EtaExpandLevPoly(optasm) 1 of 1 [0, 0, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -O -fasm cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly =====> EtaExpandLevPoly(profasm) 1 of 1 [0, 0, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto Compile failed (exit code 1) errors were: [1 of 1] Compiling Main ( EtaExpandLevPoly.hs, EtaExpandLevPoly.o ) *** Core Lint errors : in result of Simplifier *** <no location info>: warning: In the type ‘((# Bool, Int# #) |> Sym (TYPE (Sym co_a1ww))_N)’ co_a1ww :: (a_a1wt :: RuntimeRep) ~# ('TupleRep '['LiftedRep, 'IntRep] :: RuntimeRep) [LclId[CoVarId]] is out of scope *** Offending Program *** foo :: forall b. G 'LiftedRep -> b -> b [LclIdX, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)}] foo = \ (@ (a_a1wt :: RuntimeRep)) (@ (b_a1wu :: TYPE a_a1wt)) (ds_d1Pr :: G a_a1wt) -> scctick<foo> case ds_d1Pr of { MkG co_a1ww -> \ (x_a10m :: (b_a1wu |> Sym (TYPE (Sym co_a1ww))_N)) -> tick<foo.\> x_a10m } bar :: forall a. H 'LiftedRep -> (a -> a -> (# a, a #)) -> a -> (# a, a #) [LclIdX, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [20] 60 60}] bar = \ (@ (r_a1vB :: RuntimeRep)) (@ (a_a1vC :: TYPE r_a1vB)) (ds_d1Pk :: H r_a1vB) -> scctick<bar> case ds_d1Pk of { MkH co_a1vE -> (\ (f_a10o :: (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N) -> (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N) -> (# (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N), (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N) #)) (x_a10p :: (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N)) -> scctick<bar.\> f_a10o x_a10p x_a10p) `cast` ((Coh <a_a1vC>_R (TYPE co_a1vE)_N ->_R Coh <a_a1vC>_R (TYPE co_a1vE)_N ->_R ((#,#) (Sub (Sym co_a1vE)) (Sub (Sym co_a1vE)) (Coh <a_a1vC>_R (TYPE co_a1vE)_N) (Coh <a_a1vC>_R (TYPE co_a1vE)_N))_R) ->_R Coh <a_a1vC>_R (TYPE co_a1vE)_N ->_R ((#,#) (Sub (Sym co_a1vE)) (Sub (Sym co_a1vE)) (Coh <a_a1vC>_R (TYPE co_a1vE)_N) (Coh <a_a1vC>_R (TYPE co_a1vE)_N))_R :: (((a_a1vC |> (TYPE co_a1vE)_N) -> (a_a1vC |> (TYPE co_a1vE)_N) -> (# (a_a1vC |> (TYPE co_a1vE)_N), (a_a1vC |> (TYPE co_a1vE)_N) #)) -> (a_a1vC |> (TYPE co_a1vE)_N) -> (# (a_a1vC |> (TYPE co_a1vE)_N), (a_a1vC |> (TYPE co_a1vE)_N) #) :: *) ~R# ((a_a1vC -> a_a1vC -> (# a_a1vC, a_a1vC #)) -> a_a1vC -> (# a_a1vC, a_a1vC #) :: *)) } $trModule_s245 :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $trModule_s245 = "main"# $trModule_s246 :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $trModule_s246 = TrNameS $trModule_s245 $trModule_s247 :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $trModule_s247 = "Main"# $trModule_s248 :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $trModule_s248 = TrNameS $trModule_s247 $trModule :: Module [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $trModule = Module $trModule_s246 $trModule_s248 $krep_a1P3 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P3 = KindRepTyConApp $tc'LiftedRep ([] @ KindRep) $krep_a1OZ [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OZ = KindRepTyConApp $tc'IntRep ([] @ KindRep) $krep_a1OX [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OX = KindRepTyConApp $tcRuntimeRep ([] @ KindRep) $krep_a1OW [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OW = KindRepFun $krep_a1OX krep$* $krep_s249 :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s249 = : @ KindRep $krep_a1OX ([] @ KindRep) $krep_a1P5 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P5 = KindRepTyConApp $tc'[] $krep_s249 $krep_s24a :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24a = : @ KindRep $krep_a1P5 ([] @ KindRep) $krep_s24b :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24b = : @ KindRep $krep_a1OZ $krep_s24a $krep_s24c :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24c = : @ KindRep $krep_a1OX $krep_s24b $krep_a1P4 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P4 = KindRepTyConApp $tc': $krep_s24c $krep_s24d :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24d = : @ KindRep $krep_a1P4 ([] @ KindRep) $krep_s24e :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24e = : @ KindRep $krep_a1P3 $krep_s24d $krep_s24f :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24f = : @ KindRep $krep_a1OX $krep_s24e $krep_a1P2 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P2 = KindRepTyConApp $tc': $krep_s24f $krep_s24g :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24g = : @ KindRep $krep_a1P2 ([] @ KindRep) $krep_a1P1 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P1 = KindRepTyConApp $tc'TupleRep $krep_s24g $tcG_s24h :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tcG_s24h = "G"# $tcG_s24i :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tcG_s24i = TrNameS $tcG_s24h $tcG :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tcG = TyCon 14221008574166376522## 17210926818700297107## $trModule $tcG_s24i 0# $krep_a1OW $krep_s24j :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24j = : @ KindRep $krep_a1P1 ([] @ KindRep) $krep_a1P0 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P0 = KindRepTyConApp $tcG $krep_s24j $tc'MkG_s24k :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tc'MkG_s24k = "'MkG"# $tc'MkG_s24l :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tc'MkG_s24l = TrNameS $tc'MkG_s24k $tc'MkG :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tc'MkG = TyCon 11219666876303220503## 4566534404187760096## $trModule $tc'MkG_s24l 0# $krep_a1P0 $tcH_s24m :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tcH_s24m = "H"# $tcH_s24n :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tcH_s24n = TrNameS $tcH_s24m $tcH :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tcH = TyCon 5827673930009354874## 4277163490596771739## $trModule $tcH_s24n 0# $krep_a1OW $krep_s24o :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24o = : @ KindRep $krep_a1OZ ([] @ KindRep) $krep_a1OY [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OY = KindRepTyConApp $tcH $krep_s24o $tc'MkH_s24p :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tc'MkH_s24p = "'MkH"# $tc'MkH_s24q :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tc'MkH_s24q = TrNameS $tc'MkH_s24p $tc'MkH :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tc'MkH = TyCon 273175143458456096## 17487285292499736820## $trModule $tc'MkH_s24q 0# $krep_a1OY main :: IO () [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 510 0}] main = scctick<main> case (tick<foo> \ (x_a10m :: ((# Bool, Int# #) |> Sym (TYPE (Sym co_a1ww))_N)) -> scc<foo> tick<foo.\> x_a10m) (# True, 3# #) of ds_d23V { (# ipv_s24s, ipv_s24t #) -> (\ (s_a24P :: State# RealWorld) -> case ((hPutStr' stdout ($fShowBool_$cshow ipv_s24s) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) s_a24P of { (# ipv_a24S, ipv1_a24T #) -> case ((hPutStr' stdout (showSignedInt $fShow(,)1 (I# ipv_s24t) ([] @ Char)) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) ipv_a24S of { (# ipv_X265, ipv1_X267 #) -> ((case (scctick<bar> case $WMkH of { MkH co_a1vE -> \ (f_a10o :: Int# -> Int# -> (# Int#, Int# #)) (x_a10p :: Int#) -> scctick<bar.\> f_a10o x_a10p x_a10p }) ((#,#) @ 'IntRep @ 'IntRep @ Int# @ Int#) 8# of ds_d23T { (# ipv_s25y, ipv_s25z #) -> (\ (s_X26d :: State# RealWorld) -> case ((hPutStr' stdout (showSignedInt $fShow(,)1 (I# ipv_s25y) ([] @ Char)) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) s_X26d of { (# ipv_X26j, ipv1_X26l #) -> ((hPutStr' stdout (showSignedInt $fShow(,)1 (I# ipv_s25z) ([] @ Char)) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) ipv_X26j }) `cast` (Sym (N:IO[0] <()>_R) :: (State# RealWorld -> (# State# RealWorld, () #) :: *) ~R# (IO () :: *)) }) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) ipv_X265 } }) `cast` (Sym (N:IO[0] <()>_R) :: (State# RealWorld -> (# State# RealWorld, () #) :: *) ~R# (IO () :: *)) } main_s3to :: State# RealWorld -> (# State# RealWorld, () #) [LclId, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}] main_s3to = runMainIO1 @ () main main :: IO () [LclIdX, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}] main = main_s3to `cast` (Sym (N:IO[0] <()>_R) :: (State# RealWorld -> (# State# RealWorld, () #) :: *) ~R# (IO () :: *)) *** End of Offense *** <no location info>: error: Compilation had errors *** unexpected failure for EtaExpandLevPoly(profasm) =====> EtaExpandLevPoly(threaded1) 1 of 1 [0, 1, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -threaded -debug cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly =====> EtaExpandLevPoly(threaded2) 1 of 1 [0, 1, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -O -threaded -eventlog cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly +RTS -N2 -ls -RTS =====> EtaExpandLevPoly(dyn) 1 of 1 [0, 1, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -O -dynamic cd "./typecheck/should_run/EtaExpandLevPoly.run" && ./EtaExpandLevPoly =====> EtaExpandLevPoly(profthreaded) 1 of 1 [0, 1, 0] cd "./typecheck/should_run/EtaExpandLevPoly.run" && "/home/alp/ghc-slow- validate/inplace/test spaces/ghc-stage2" -o EtaExpandLevPoly EtaExpandLevPoly.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -dno-debug-output -O -prof -static -fprof-auto -threaded Compile failed (exit code 1) errors were: [1 of 1] Compiling Main ( EtaExpandLevPoly.hs, EtaExpandLevPoly.o ) *** Core Lint errors : in result of Simplifier *** <no location info>: warning: In the type ‘((# Bool, Int# #) |> Sym (TYPE (Sym co_a1ww))_N)’ co_a1ww :: (a_a1wt :: RuntimeRep) ~# ('TupleRep '['LiftedRep, 'IntRep] :: RuntimeRep) [LclId[CoVarId]] is out of scope *** Offending Program *** foo :: forall b. G 'LiftedRep -> b -> b [LclIdX, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)}] foo = \ (@ (a_a1wt :: RuntimeRep)) (@ (b_a1wu :: TYPE a_a1wt)) (ds_d1Pr :: G a_a1wt) -> scctick<foo> case ds_d1Pr of { MkG co_a1ww -> \ (x_a10m :: (b_a1wu |> Sym (TYPE (Sym co_a1ww))_N)) -> tick<foo.\> x_a10m } bar :: forall a. H 'LiftedRep -> (a -> a -> (# a, a #)) -> a -> (# a, a #) [LclIdX, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [20] 60 60}] bar = \ (@ (r_a1vB :: RuntimeRep)) (@ (a_a1vC :: TYPE r_a1vB)) (ds_d1Pk :: H r_a1vB) -> scctick<bar> case ds_d1Pk of { MkH co_a1vE -> (\ (f_a10o :: (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N) -> (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N) -> (# (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N), (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N) #)) (x_a10p :: (a_a1vC |> Sym (TYPE (Sym co_a1vE))_N)) -> scctick<bar.\> f_a10o x_a10p x_a10p) `cast` ((Coh <a_a1vC>_R (TYPE co_a1vE)_N ->_R Coh <a_a1vC>_R (TYPE co_a1vE)_N ->_R ((#,#) (Sub (Sym co_a1vE)) (Sub (Sym co_a1vE)) (Coh <a_a1vC>_R (TYPE co_a1vE)_N) (Coh <a_a1vC>_R (TYPE co_a1vE)_N))_R) ->_R Coh <a_a1vC>_R (TYPE co_a1vE)_N ->_R ((#,#) (Sub (Sym co_a1vE)) (Sub (Sym co_a1vE)) (Coh <a_a1vC>_R (TYPE co_a1vE)_N) (Coh <a_a1vC>_R (TYPE co_a1vE)_N))_R :: (((a_a1vC |> (TYPE co_a1vE)_N) -> (a_a1vC |> (TYPE co_a1vE)_N) -> (# (a_a1vC |> (TYPE co_a1vE)_N), (a_a1vC |> (TYPE co_a1vE)_N) #)) -> (a_a1vC |> (TYPE co_a1vE)_N) -> (# (a_a1vC |> (TYPE co_a1vE)_N), (a_a1vC |> (TYPE co_a1vE)_N) #) :: *) ~R# ((a_a1vC -> a_a1vC -> (# a_a1vC, a_a1vC #)) -> a_a1vC -> (# a_a1vC, a_a1vC #) :: *)) } $trModule_s245 :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $trModule_s245 = "main"# $trModule_s246 :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $trModule_s246 = TrNameS $trModule_s245 $trModule_s247 :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $trModule_s247 = "Main"# $trModule_s248 :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $trModule_s248 = TrNameS $trModule_s247 $trModule :: Module [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $trModule = Module $trModule_s246 $trModule_s248 $krep_a1P3 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P3 = KindRepTyConApp $tc'LiftedRep ([] @ KindRep) $krep_a1OZ [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OZ = KindRepTyConApp $tc'IntRep ([] @ KindRep) $krep_a1OX [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OX = KindRepTyConApp $tcRuntimeRep ([] @ KindRep) $krep_a1OW [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OW = KindRepFun $krep_a1OX krep$* $krep_s249 :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s249 = : @ KindRep $krep_a1OX ([] @ KindRep) $krep_a1P5 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P5 = KindRepTyConApp $tc'[] $krep_s249 $krep_s24a :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24a = : @ KindRep $krep_a1P5 ([] @ KindRep) $krep_s24b :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24b = : @ KindRep $krep_a1OZ $krep_s24a $krep_s24c :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24c = : @ KindRep $krep_a1OX $krep_s24b $krep_a1P4 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P4 = KindRepTyConApp $tc': $krep_s24c $krep_s24d :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24d = : @ KindRep $krep_a1P4 ([] @ KindRep) $krep_s24e :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24e = : @ KindRep $krep_a1P3 $krep_s24d $krep_s24f :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24f = : @ KindRep $krep_a1OX $krep_s24e $krep_a1P2 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P2 = KindRepTyConApp $tc': $krep_s24f $krep_s24g :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24g = : @ KindRep $krep_a1P2 ([] @ KindRep) $krep_a1P1 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P1 = KindRepTyConApp $tc'TupleRep $krep_s24g $tcG_s24h :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tcG_s24h = "G"# $tcG_s24i :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tcG_s24i = TrNameS $tcG_s24h $tcG :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tcG = TyCon 14221008574166376522## 17210926818700297107## $trModule $tcG_s24i 0# $krep_a1OW $krep_s24j :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24j = : @ KindRep $krep_a1P1 ([] @ KindRep) $krep_a1P0 [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1P0 = KindRepTyConApp $tcG $krep_s24j $tc'MkG_s24k :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tc'MkG_s24k = "'MkG"# $tc'MkG_s24l :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tc'MkG_s24l = TrNameS $tc'MkG_s24k $tc'MkG :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tc'MkG = TyCon 11219666876303220503## 4566534404187760096## $trModule $tc'MkG_s24l 0# $krep_a1P0 $tcH_s24m :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tcH_s24m = "H"# $tcH_s24n :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tcH_s24n = TrNameS $tcH_s24m $tcH :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tcH = TyCon 5827673930009354874## 4277163490596771739## $trModule $tcH_s24n 0# $krep_a1OW $krep_s24o :: [KindRep] [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_s24o = : @ KindRep $krep_a1OZ ([] @ KindRep) $krep_a1OY [InlPrag=NOUSERINLINE[~]] :: KindRep [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}] $krep_a1OY = KindRepTyConApp $tcH $krep_s24o $tc'MkH_s24p :: Addr# [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tc'MkH_s24p = "'MkH"# $tc'MkH_s24q :: TrName [LclId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] $tc'MkH_s24q = TrNameS $tc'MkH_s24p $tc'MkH :: TyCon [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}] $tc'MkH = TyCon 273175143458456096## 17487285292499736820## $trModule $tc'MkH_s24q 0# $krep_a1OY main :: IO () [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 510 0}] main = scctick<main> case (tick<foo> \ (x_a10m :: ((# Bool, Int# #) |> Sym (TYPE (Sym co_a1ww))_N)) -> scc<foo> tick<foo.\> x_a10m) (# True, 3# #) of ds_d23V { (# ipv_s24s, ipv_s24t #) -> (\ (s_a24P :: State# RealWorld) -> case ((hPutStr' stdout ($fShowBool_$cshow ipv_s24s) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) s_a24P of { (# ipv_a24S, ipv1_a24T #) -> case ((hPutStr' stdout (showSignedInt $fShow(,)1 (I# ipv_s24t) ([] @ Char)) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) ipv_a24S of { (# ipv_X265, ipv1_X267 #) -> ((case (scctick<bar> case $WMkH of { MkH co_a1vE -> \ (f_a10o :: Int# -> Int# -> (# Int#, Int# #)) (x_a10p :: Int#) -> scctick<bar.\> f_a10o x_a10p x_a10p }) ((#,#) @ 'IntRep @ 'IntRep @ Int# @ Int#) 8# of ds_d23T { (# ipv_s25y, ipv_s25z #) -> (\ (s_X26d :: State# RealWorld) -> case ((hPutStr' stdout (showSignedInt $fShow(,)1 (I# ipv_s25y) ([] @ Char)) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) s_X26d of { (# ipv_X26j, ipv1_X26l #) -> ((hPutStr' stdout (showSignedInt $fShow(,)1 (I# ipv_s25z) ([] @ Char)) True) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) ipv_X26j }) `cast` (Sym (N:IO[0] <()>_R) :: (State# RealWorld -> (# State# RealWorld, () #) :: *) ~R# (IO () :: *)) }) `cast` (N:IO[0] <()>_R :: (IO () :: *) ~R# (State# RealWorld -> (# State# RealWorld, () #) :: *))) ipv_X265 } }) `cast` (Sym (N:IO[0] <()>_R) :: (State# RealWorld -> (# State# RealWorld, () #) :: *) ~R# (IO () :: *)) } main_s3to :: State# RealWorld -> (# State# RealWorld, () #) [LclId, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}] main_s3to = runMainIO1 @ () main main :: IO () [LclIdX, Arity=1, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}] main = main_s3to `cast` (Sym (N:IO[0] <()>_R) :: (State# RealWorld -> (# State# RealWorld, () #) :: *) ~R# (IO () :: *)) *** End of Offense *** <no location info>: error: Compilation had errors *** unexpected failure for EtaExpandLevPoly(profthreaded) Unexpected results from: TEST="EtaExpandLevPoly" SUMMARY for test run started at Fri Apr 20 00:34:52 2018 CEST 0:00:05 spent to go through 1 total tests, which gave rise to 9 test cases, of which 1 were skipped 0 had missing libraries 6 expected passes 0 expected failures 0 caused framework failures 0 caused framework warnings 0 unexpected passes 2 unexpected failures 0 unexpected stat failures Unexpected failures: typecheck/should_run/EtaExpandLevPoly.run EtaExpandLevPoly [exit code non-0] (profasm) typecheck/should_run/EtaExpandLevPoly.run EtaExpandLevPoly [exit code non-0] (profthreaded) }}} I'll mark the test as expected broken in those ways for now, linking to this ticket. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15066> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15066: EtaExpandLevPoly triggers a core lint error in profasm/profthreaded ways ---------------------------------+---------------------------------------- Reporter: alpmestan | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.5 Resolution: | Keywords: Operating System: Linux | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: EtaExpandLevPoly Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by RyanGlScott): I can also reproduce this with GHC 8.4.1 when compiling with `-prof -fprof-auto -O1` (or `-O2`). Here is a slightly more minimal reproduction: {{{#!hs {-# LANGUAGE UnboxedTuples, GADTs, TypeInType, ExplicitForAll #-} module Bug where import GHC.Exts data G a where MkG :: G (TupleRep '[LiftedRep]) foo :: forall a (b :: TYPE a). G a -> b -> b foo MkG = (\x -> x) :: forall (c :: TYPE (TupleRep '[LiftedRep])). c -> c main :: IO () main = let (# b #) = foo MkG (# True #) in print b }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15066#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15066: EtaExpandLevPoly triggers a core lint error in profasm/profthreaded ways ---------------------------------+---------------------------------------- Reporter: alpmestan | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.5 Resolution: fixed | Keywords: Operating System: Linux | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: EtaExpandLevPoly Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Changes (by bgamari): * status: new => closed * resolution: => fixed * milestone: => 8.8.1 Comment: Strangely this no longer fails in the profiled ways as of 46f2906d1c6e1fb732a90882487479a2ebf19ca1. Ideally we would determine why but life is short. I'm going to close; reopen if this rears its ugly head again. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15066#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15066: EtaExpandLevPoly triggers a core lint error in profasm/profthreaded ways ---------------------------------+---------------------------------------- Reporter: alpmestan | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.5 Resolution: fixed | Keywords: Operating System: Linux | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: EtaExpandLevPoly Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by Ben Gamari <ben@…>): In [changeset:"e69590f1bdbbb605921f125050929c7b84f00d28/ghc" e69590f/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="e69590f1bdbbb605921f125050929c7b84f00d28" testsuite: EtaExpandLevPoly now passes in profiled ways Summary: This failure was originally tracked in #15066 but it seems the problem has somehow resolved itself. Reviewers: alpmestan Reviewed By: alpmestan Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5242 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15066#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC