cvs commit: fptools/ghc/compiler/basicTypes BasicTypes.lhs DataCon.lhs Demand.lhs Id.lhs IdInfo.lhs MkId.lhs NewDemand.lhs fptools/ghc/compiler/coreSyn CorePrep.lhs CoreTidy.lhs CoreUtils.lhs fptools/ghc/compiler/cprAnalysis CprAnalyse.lhs ...
Marcin 'Qrczak' Kowalczyk
qrczak@knm.org.pl
23 Jul 2001 11:13:43 GMT
Mon, 23 Jul 2001 03:54:50 -0700, Simon Peyton Jones <simonpj@glass.cse.ogi.edu> pisze:
> This commit makes the new demand analyser the main beast,
> with the old strictness analyser as a backup. When
> DEBUG is on, the old strictness analyser is run too, and the
> results compared.
I don't know if it will work now, but the new demand analyser didn't
work yesterday (the output below is in wrong order because stdout and
stderr were wrongly merged - the panic was actually below "Changes
in demands"):
../../ghc/compiler/ghc-inplace -ldl -recomp -cpp -fglasgow-exts -I../../ghc/includes -fallow-undecidable-instances -funbox-strict-fields -iedison -iedison/Assoc -iedison/Coll -iedison/Seq -O -Rghc-timing -I../lang/cbits -I../util/cbits -package lang -package util -package-name data -split-objs -DDEBUG -c edison/Seq/BankersQueue.hs -o edison/Seq/BankersQueue.o
NOTE: Simplifier still going after 4 iterations; bailing out.
WARNING: file cprAnalysis/CprAnalyse.lhs line 216
ListSeq.sizze{-rh9-} @ a{-a3T1-} eta_s6oP
WARNING: file cprAnalysis/CprAnalyse.lhs line 216
ListSeq.sizze{-rh9-} @ a{-a3T1-} ys{-rBL-}
ghc-5.01: panic! (the `impossible' happened, GHC version 5.01):
splitDmdTy
Please report it as a compiler bug to glasgow-haskell-bugs@haskell.org,
or http://sourceforge.net/projects/ghc/.
Changes in demands
BETTER strictness for BankersQueue.lhead Old DmdType U(LVAL)T {}
New DmdType U(AVAA)T {}
BETTER strictness for BankersQueue.rhead Old DmdType U(LLVL)T {}
New DmdType U(ALVA)T {}
BETTER strictness for BankersQueue.foldr Old DmdType LLU(LVLL)T {}
New DmdType LLU(AVLA)T {}
BETTER strictness for BankersQueue.foldl Old DmdType LLU(LLVL)T {}
New DmdType LLU(ALVA)T {}
BETTER strictness for BankersQueue.foldl1 Old DmdType LU(LVVL)T {}
New DmdType LU(AVVA)T {}
BETTER strictness for BankersQueue.foldr1 Old DmdType LU(LVVL)T {}
New DmdType LU(LVVA)T {}
BETTER strictness for BankersQueue.toList Old DmdType U(LVLL)T {}
New DmdType U(AVLV)T {}
BETTER strictness for BankersQueue.null Old DmdType U(LAAL)T {}
New DmdType U(VAAA)T {}<<ghc: 145868936 bytes, 198 GCs, 2416962/3971520 avg/max bytes residency (5 samples), 12M in use, 0.01 INIT (0.01 elapsed), 3.97 MUT (4.44 elapsed), 1.97 GC (2.21 elapsed) :ghc>>
make[2]: *** [edison/Seq/BankersQueue.o] Błąd 1
make[1]: *** [all] Błąd 1
make[1]: Opuszczam katalog `/home/users/qrczak/cvs/fptools/hslibs'
make: *** [all] Błąd 1
I also have a program which, when compiled with -O, causes the compiler
compiled with -DDEBUG to loop while endlessly outputting this. I can
send you it if you wish (1127 lines in a few modules).
dmdFix
440 [(go{-r3L7-},
\ eta_s6HT eta_s6HV ->
case DrawElements.plot{-r2-}
@ s{-X4D3-}
param{-Xzz-}
pict{-XzC-}
yp{-XzJ-}
xp{-XzM-}
yzq{-s6yA-}
(case left{-roA-} of wild_XmC {
PrelBase.True{-6u-} ->
case lvl_s6Ai of wild{-r3gf-} { PrelBase.Izh{-6c-} x{-r3gj-} ->
let {
a_s6GW
= PrelGHC.zpzh{-91a-} (PrelGHC.zpzh{-91a-} x{-r3gj-} eta_s6HT) 1
} in PrelBase.zdwIzh{-6d-} a_s6GW
};
PrelBase.False{-68-} ->
case lvl_s6Aj of wild{-X3ru-} { PrelBase.Izh{-6c-} x{-X3rA-} ->
let { a_s6GY = PrelGHC.zmzh{-91b-} x{-X3rA-} eta_s6HT
} in PrelBase.zdwIzh{-6d-} a_s6GY
}
})
eta_s6HV
of wild{-X3jv-} { (# newzus{-X3jx-}, r{-X3jz-} #) ->
case PrelGHC.zezezh{-91m-} eta_s6HT y{-X3VC-} of wild1{-r3L9-} {
PrelBase.True{-6u-} -> ds_X6z8 newzus{-X3jx-};
PrelBase.False{-68-} ->
go{-r3L7-} (PrelGHC.zpzh{-91a-} eta_s6HT 1) newzus{-X3jx-}
}
})]
dmdFix
441 [(go{-r3L7-},
\ eta_s6HT eta_s6HV ->
case DrawElements.plot{-r2-}
@ s{-X4D3-}
param{-Xzz-}
pict{-XzC-}
yp{-XzJ-}
xp{-XzM-}
yzq{-s6yA-}
(case left{-roA-} of wild_XmC {
PrelBase.True{-6u-} ->
case lvl_s6Ai of wild{-r3gf-} { PrelBase.Izh{-6c-} x{-r3gj-} ->
let {
a_s6GW
= PrelGHC.zpzh{-91a-} (PrelGHC.zpzh{-91a-} x{-r3gj-} eta_s6HT) 1
} in PrelBase.zdwIzh{-6d-} a_s6GW
};
PrelBase.False{-68-} ->
case lvl_s6Aj of wild{-X3ru-} { PrelBase.Izh{-6c-} x{-X3rA-} ->
let { a_s6GY = PrelGHC.zmzh{-91b-} x{-X3rA-} eta_s6HT
} in PrelBase.zdwIzh{-6d-} a_s6GY
}
})
eta_s6HV
of wild{-X3jv-} { (# newzus{-X3jx-}, r{-X3jz-} #) ->
case PrelGHC.zezezh{-91m-} eta_s6HT y{-X3VC-} of wild1{-r3L9-} {
PrelBase.True{-6u-} -> ds_X6z8 newzus{-X3jx-};
PrelBase.False{-68-} ->
go{-r3L7-} (PrelGHC.zpzh{-91a-} eta_s6HT 1) newzus{-X3jx-}
}
})]
--
__("< Marcin Kowalczyk * qrczak@knm.org.pl http://qrczak.ids.net.pl/
\__/
^^ SYGNATURA ZASTĘPCZA
QRCZAK