X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FDEPEND-NOTES;h=2c0f82a09d7b29323571b8f4b4170dacc6f1c0d2;hb=a0dd958a791a2decd383248a8c607bfee45dcf01;hp=c1b64f3afb16d6a377f7df4287c1ab7d026416a7;hpb=438596897ebbe25a07e1c82085cfbc5bdb00f09e;p=ghc-hetmet.git diff --git a/ghc/compiler/DEPEND-NOTES b/ghc/compiler/DEPEND-NOTES index c1b64f3..2c0f82a 100644 --- a/ghc/compiler/DEPEND-NOTES +++ b/ghc/compiler/DEPEND-NOTES @@ -1,3 +1,15 @@ +add types/InstEnv, InstEnv.hi-boot +add coreSyn/CoreRules.* +add coreSyn/CoreTidy.lhs +add coreSyn/CoreFVs.lhs +remove coreSyn/FreeVars.lhs +add coreSyn/Subst.* +remove simplCore/MagicUFs.* + +remove specialise/SpecEnv.* + + + ToDo ~~~~ * Test effect of eta-expanding past (case x of ..) @@ -62,45 +74,43 @@ ToDo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Name/Var/Type group is a bit complicated. Here's the deal +Things in brackets are what the module *uses*. +A 'loop' indicates a use from a module compiled later - Name, PrimRep, FieldLabel (uses Type.Type) + Name, PrimRep, FieldLabel (loop Type.Type) then - Var (uses Const.Con, IdInfo.IdInfo, Type.GenType, Type.Kind) + Var (loop Const.Con, loop IdInfo.IdInfo, + loop Type.GenType, loop Type.Kind) then - VarEnv, VarSet + VarEnv, VarSet, ThinAir then - Class (uses TyCon.TyCon, Type.Type, SpecEnv.SpecEnv) + Class (loop TyCon.TyCon, loop Type.Type, loop InstEnv.InstEnv) then - TyCon (uses Type.Type, Type.Kind, DataCon.DataCon) + TyCon (loop Type.Type, loop Type.Kind, loop DataCon.DataCon) then - Type (uses [DataCon.DataCon]) + Type (loop DataCon.DataCon, loop Subst.substTy) then - DataCon, TysPrim, Unify, SpecEnv, PprType + DataCon, TysPrim, Unify, PprType then - IdInfo, TysWiredIn (uses DataCon.mkDataCon, [MkId.mkDataConId]) + InstEnv (Unify) then - PrimOp (uses PprType, TysWiredIn) + IdInfo (loop CoreRules.CoreRules) + TysWiredIn (DataCon.mkDataCon, loop MkId.mkDataConId) then - Const (needs PrimOp, [TysWiredIn.stringTy]) + PrimOp (PprType, TysWiredIn, IdInfo.StrictnessInfo) then - Id (needs Const.Con(..)), CoreSyn + Const (PrimOp.PrimOp, TysWiredIn.stringTy) then - CoreUtils, OccurAnal + Id (Const.Con(..)), CoreSyn then - CoreUnfold (uses OccurAnal) + CoreUtils (loop PprCore.pprCoreExpr), CoreFVs +then + OccurAnal (ThinAir.noRepStrs -- an awkward dependency) then - MkId (uses CoreUnfold) - - -PrimOp uses TysWiredIn - + CoreUnfold (loop OccurAnal.globalOccurAnalyse) +then + Rules (Unfolding), Subst (Unfolding, CoreFVs), CoreTidy (noUnfolding) +then + MkId (CoreUnfold.mkUnfolding, Subst) -Add -~~~ -basicTypes/DataCon.lhs -basicTypes/DataCon.hi-boot -Remove -~~~~~~ -specialise/SpecUtils.lhs -basicTypes/IdUtils.lhs