Ticket #7124 (closed bug: fixed)

Opened 10 months ago

Last modified 9 months ago

polykinds tests failing

Reported by: pcapriotti Owned by: simonpj
Priority: highest Milestone: 7.6.1
Component: Compiler Version: 7.4.2
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Compile-time crash Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description (last modified by pcapriotti) (diff)

Some of the polykinds tests are failing with -fhpc with core lint errors, namely:

  • Freeman
  • PolyKinds13
  • T6015

Change History

Changed 10 months ago by pcapriotti

  • description modified (diff)

Changed 9 months ago by igloo

  • owner set to simonpj
  • priority changed from high to highest

Here's one of them:

=====> PolyKinds13(hpc) 808 of 3391 [0, 0, 0]
cd ./polykinds && '/home/ian/ghc/7.6-branch/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts  -fno-ghci-history -c PolyKinds13.hs -O -fhpc   >PolyKinds13.comp.stderr 2>&1
Compile failed (status 256) errors were:
*** Core Lint errors : in result of Float out(FOS {Lam = Just 0,
                                                   Consts = True,
                                                   PAPs = False}) ***
{-# LINE 9 "PolyKinds13.hs #-}: Warning:
    [in body of lambda with binder a_ajh :: k_aka]
    @ (k_aka :: BOX) is out of scope
*** Offending Program ***
PolyKinds13.$dmmyTypeOf
  :: forall (k_ajD :: BOX) (t_aiK :: k_ajD).
     PolyKinds13.MyTypeable k_ajD t_aiK =>
     PolyKinds13.Proxy k_ajD t_aiK -> PolyKinds13.TypeRep
[LclIdX,
 Arity=2,
 Unf=Unf{Src=Compulsory, TopLvl=True, Arity=0, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)
         Tmpl= \ (@ (k_ajD :: BOX)) (@ (t_aiK :: k_ajD)) _ _ ->
                 tick<main:PolyKinds13,1>
                 tick<main:PolyKinds13,0> PolyKinds13.TypeRep}]
PolyKinds13.$dmmyTypeOf =
  \ (@ (k_ajD :: BOX)) (@ (t_aiK :: k_ajD)) _ _ ->
    tick<main:PolyKinds13,1>
    tick<main:PolyKinds13,0> PolyKinds13.TypeRep

lvl_sn2
  :: forall b_al3.
     (GHC.Types.Char -> b_al3 -> b_al3) -> b_al3 -> b_al3
[LclId]
lvl_sn2 =
  \ (@ b_al3) -> GHC.CString.unpackFoldrCString# @ b_al3 "Proxy"

lvl_sn3 :: [GHC.Types.Char]
[LclId]
lvl_sn3 = GHC.Base.build @ GHC.Types.Char lvl_sn2

$cshow_akL
  :: forall (k_aka :: BOX) (a_ajh :: k_aka).
     PolyKinds13.Proxy k_aka a_ajh -> GHC.Base.String
[LclId,
 Arity=1,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=IF_ARGS [0] 50 40}]
$cshow_akL =
  \ (@ (k_aka :: BOX)) (@ (a_ajh :: k_aka)) _ ->
    tick<main:PolyKinds13,5> tick<main:PolyKinds13,4> lvl_sn3

$cshowsPrec_akI
  :: forall (k_aka :: BOX) (a_ajh :: k_aka).
     GHC.Types.Int -> PolyKinds13.Proxy k_aka a_ajh -> GHC.Show.ShowS
[LclId,
 Arity=3,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=3, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=IF_ARGS [0 0 0] 80 40}]
$cshowsPrec_akI =
  \ (@ (k_aka :: BOX))
    (@ (a_ajh :: k_aka))
    _
    (x_alG :: PolyKinds13.Proxy k_aka a_ajh)
    (s_alH :: GHC.Base.String) ->
    GHC.Base.augment
      @ GHC.Types.Char
      (\ (@ b_alK)
         (c_alL [Lbv=OneShot] :: GHC.Types.Char -> b_alK -> b_alK)
         (n_alM [Lbv=OneShot] :: b_alK) ->
         GHC.Base.foldr
           @ GHC.Types.Char
           @ b_alK
           c_alL
           n_alM
           ($cshow_akL @ k_aka @ a_ajh x_alG))
      s_alH

Rec {
PolyKinds13.$fShowProxy [InlPrag=[ALWAYS] CONLIKE]
  :: forall (k_aka :: BOX) (a_ajh :: k_aka).
     GHC.Show.Show (PolyKinds13.Proxy k_aka a_ajh)
[LclIdX[DFunId],
 Unf=DFun(arity=2) GHC.Show.D:Show [{$cshowsPrec_akI}, {$cshow_akL},
                                    {$cshowList_akP}]]
PolyKinds13.$fShowProxy =
  \ (@ (k_aka :: BOX)) (@ (a_ajh :: k_aka)) ->
    GHC.Show.D:Show
      @ (PolyKinds13.Proxy k_aka a_ajh)
      ($cshowsPrec_akI @ k_aka @ a_ajh)
      ($cshow_akL @ k_aka @ a_ajh)
      ($cshowList_akP @ k_aka @ a_ajh)

lvl_sn4
  :: forall (a_ajh :: k_aka) (k_aka :: BOX).
     PolyKinds13.Proxy k_aka a_ajh -> GHC.Show.ShowS
[LclId]
lvl_sn4 =
  \ (@ (a_ajh :: k_aka)) (@ (k_aka :: BOX)) ->
    GHC.Show.shows
      @ (PolyKinds13.Proxy k_aka a_ajh)
      (PolyKinds13.$fShowProxy @ k_aka @ a_ajh)

$cshowList_akP [Occ=LoopBreaker]
  :: forall (k_aka :: BOX) (a_ajh :: k_aka).
     [PolyKinds13.Proxy k_aka a_ajh] -> GHC.Show.ShowS
[LclId,
 Arity=2,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=2, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=IF_ARGS [0 0] 60 0}]
$cshowList_akP =
  \ (@ (k_aka :: BOX))
    (@ (a_ajh :: k_aka))
    (ls_alc :: [PolyKinds13.Proxy k_aka a_ajh])
    (s_ald :: GHC.Base.String) ->
    GHC.Show.showList__
      @ (PolyKinds13.Proxy k_aka a_ajh)
      (lvl_sn4 @ a_ajh @ k_aka)
      ls_alc
      s_ald
end Rec }

lvl_sn5 :: forall b_b. PolyKinds13.Proxy * b_b
[LclId]
lvl_sn5 =
  \ (@ b_b) -> (tick<main:PolyKinds13,2> PolyKinds13.Proxy) @ * @ b_b

$cfmap_akt
  :: forall a_akv b_akw.
     (a_akv -> b_akw)
     -> PolyKinds13.Proxy * a_akv -> PolyKinds13.Proxy * b_akw
[LclId,
 Arity=2,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=2, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}]
$cfmap_akt =
  \ (@ a_a) (@ b_b) _ (ds_dkX :: PolyKinds13.Proxy * a_a) ->
    tick<main:PolyKinds13,3>
    case ds_dkX of _ { PolyKinds13.Proxy -> lvl_sn5 @ b_b }

$c<$_akz
  :: forall a_akB b_akC.
     a_akB -> PolyKinds13.Proxy * b_akC -> PolyKinds13.Proxy * a_akB
[LclId,
 Arity=2,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=2, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=IF_ARGS [0 0] 50 0}]
$c<$_akz =
  \ (@ a_amK)
    (@ b_amL)
    (x_amN :: a_amK)
    (eta_B1 :: PolyKinds13.Proxy * b_amL) ->
    $cfmap_akt
      @ b_amL @ a_amK (GHC.Base.const @ a_amK @ b_amL x_amN) eta_B1

PolyKinds13.$fFunctorProxy [InlPrag=[ALWAYS] CONLIKE]
  :: GHC.Base.Functor (PolyKinds13.Proxy *)
[LclIdX[DFunId],
 Unf=DFun(arity=0) GHC.Base.D:Functor [{$cfmap_akt}, {$c<$_akz}]]
PolyKinds13.$fFunctorProxy =
  GHC.Base.D:Functor @ (PolyKinds13.Proxy *) $cfmap_akt $c<$_akz

$cmyTypeOf_akq
  :: forall (k_ajZ :: BOX).
     PolyKinds13.Proxy
       ((k_ajZ -> *) -> k_ajZ -> *) (PolyKinds13.Apply k_ajZ)
     -> PolyKinds13.TypeRep
[LclId,
 Arity=1,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}]
$cmyTypeOf_akq =
  \ (@ (k_ajZ :: BOX)) _ ->
    tick<main:PolyKinds13,1>
    tick<main:PolyKinds13,0> PolyKinds13.TypeRep

PolyKinds13.$fMyTypeable(->)Apply [InlPrag=INLINE (sat-args=0)]
  :: forall (k_ajZ :: BOX).
     PolyKinds13.MyTypeable
       ((k_ajZ -> *) -> k_ajZ -> *) (PolyKinds13.Apply k_ajZ)
[LclIdX[DFunId(nt)],
 Unf=Unf{Src=InlineStable, TopLvl=True, Arity=0, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=True)
         Tmpl= $cmyTypeOf_akq
               `cast` (forall (k_ajZ :: BOX).
                       Sym
                         <(PolyKinds13.NTCo:MyTypeable
                             <(k_ajZ -> *) -> k_ajZ -> *> <PolyKinds13.Apply k_ajZ>)>
                       :: (forall (k_ajZ :: BOX).
                           PolyKinds13.Proxy
                             ((k_ajZ -> *) -> k_ajZ -> *) (PolyKinds13.Apply k_ajZ)
                           -> PolyKinds13.TypeRep)
                            ~#
                          (forall (k_ajZ :: BOX).
                           PolyKinds13.MyTypeable
                             ((k_ajZ -> *) -> k_ajZ -> *) (PolyKinds13.Apply k_ajZ)))}]
PolyKinds13.$fMyTypeable(->)Apply =
  $cmyTypeOf_akq
  `cast` (forall (k_ajZ :: BOX).
          Sym
            <(PolyKinds13.NTCo:MyTypeable
                <(k_ajZ -> *) -> k_ajZ -> *> <PolyKinds13.Apply k_ajZ>)>
          :: (forall (k_ajZ :: BOX).
              PolyKinds13.Proxy
                ((k_ajZ -> *) -> k_ajZ -> *) (PolyKinds13.Apply k_ajZ)
              -> PolyKinds13.TypeRep)
               ~#
             (forall (k_ajZ :: BOX).
              PolyKinds13.MyTypeable
                ((k_ajZ -> *) -> k_ajZ -> *) (PolyKinds13.Apply k_ajZ)))

$cmyTypeOf_akm
  :: PolyKinds13.Proxy * GHC.Types.Int -> PolyKinds13.TypeRep
[LclId,
 Arity=1,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}]
$cmyTypeOf_akm =
  \ _ ->
    tick<main:PolyKinds13,1>
    tick<main:PolyKinds13,0> PolyKinds13.TypeRep

PolyKinds13.$fMyTypeable*Int [InlPrag=INLINE (sat-args=0)]
  :: PolyKinds13.MyTypeable * GHC.Types.Int
[LclIdX[DFunId(nt)],
 Unf=Unf{Src=InlineStable, TopLvl=True, Arity=0, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=True)
         Tmpl= $cmyTypeOf_akm
               `cast` (Sym <(PolyKinds13.NTCo:MyTypeable <*> <GHC.Types.Int>)>
                       :: (PolyKinds13.Proxy * GHC.Types.Int -> PolyKinds13.TypeRep)
                            ~#
                          PolyKinds13.MyTypeable * GHC.Types.Int)}]
PolyKinds13.$fMyTypeable*Int =
  $cmyTypeOf_akm
  `cast` (Sym <(PolyKinds13.NTCo:MyTypeable <*> <GHC.Types.Int>)>
          :: (PolyKinds13.Proxy * GHC.Types.Int -> PolyKinds13.TypeRep)
               ~#
             PolyKinds13.MyTypeable * GHC.Types.Int)

$cmyTypeOf_aki
  :: PolyKinds13.Proxy (* -> *) Data.Maybe.Maybe
     -> PolyKinds13.TypeRep
[LclId,
 Arity=1,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}]
$cmyTypeOf_aki =
  \ _ ->
    tick<main:PolyKinds13,1>
    tick<main:PolyKinds13,0> PolyKinds13.TypeRep

PolyKinds13.$fMyTypeable(->)Maybe [InlPrag=INLINE (sat-args=0)]
  :: PolyKinds13.MyTypeable (* -> *) Data.Maybe.Maybe
[LclIdX[DFunId(nt)],
 Unf=Unf{Src=InlineStable, TopLvl=True, Arity=0, Value=True,
         ConLike=True, WorkFree=True, Expandable=True,
         Guidance=ALWAYS_IF(unsat_ok=False,boring_ok=True)
         Tmpl= $cmyTypeOf_aki
               `cast` (Sym
                         <(PolyKinds13.NTCo:MyTypeable <* -> *> <Data.Maybe.Maybe>)>
                       :: (PolyKinds13.Proxy (* -> *) Data.Maybe.Maybe
                           -> PolyKinds13.TypeRep)
                            ~#
                          PolyKinds13.MyTypeable (* -> *) Data.Maybe.Maybe)}]
PolyKinds13.$fMyTypeable(->)Maybe =
  $cmyTypeOf_aki
  `cast` (Sym
            <(PolyKinds13.NTCo:MyTypeable <* -> *> <Data.Maybe.Maybe>)>
          :: (PolyKinds13.Proxy (* -> *) Data.Maybe.Maybe
              -> PolyKinds13.TypeRep)
               ~#
             PolyKinds13.MyTypeable (* -> *) Data.Maybe.Maybe)

*** End of Offense ***


<no location info>:
Compilation had errors



*** unexpected failure for PolyKinds13(hpc)

Changed 9 months ago by simonpj@…

commit bdce8f0a3b40a60108a99b4635d168c12b79f255

Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Wed Aug 15 15:59:26 2012 +0100

    Put kind variables before type variables when quantifying
    
    This is a pretty egregious error; I'm surprised it has lasted so long!
    
    Fixes Trac #7124

 compiler/coreSyn/MkCore.lhs |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Changed 9 months ago by simonpj

  • status changed from new to merge

Fixed, thanks.

Pls merge to 7.6

Changed 9 months ago by pcapriotti

  • status changed from merge to closed
  • resolution set to fixed

Merged as 2e1a0cb7d5f9d2c4ba7f99a28e666f6ce40cee88.

Note: See TracTickets for help on using tickets.