[[project @ 2002-03-20 14:46:17 by simonpj] simonpj**20020320144618 Put module dependency info in the commentary ] { addfile ./ghc/docs/comm/genesis/modules.html hunk ./ghc/compiler/DEPEND-NOTES 1 - Notes on module dependencies - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Module dependency information is now given in the GHC commentary hunk ./ghc/compiler/DEPEND-NOTES 3 -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 -then - PrelNames -then - Var (Name, loop IdInfo.IdInfo, - loop Type.Type, loop Type.Kind) -then - VarEnv, VarSet, ThinAir -then - Class (loop TyCon.TyCon, loop Type.Type) -then - TyCon (loop Type.Type, loop Type.Kind, loop DataCon.DataCon, loop Generics.GenInfo) -then - Type (loop DataCon.DataCon, loop Subst.substTy) -then - FieldLabel( Type), TysPrim (Type), PprEnv (loop DataCon.DataCon, Type) -then - Unify, PprType (PprEnv) -then - Literal (TysPrim, PprType), DataCon (loop PprType) -then - TysWiredIn (DataCon.mkDataCon, loop MkId.mkDataConId, loop Generics.mkGenInfo) -then - TcType( lots of TysWiredIn stuff) -then - PprType( lots of TcType stuff ) -then - PrimOp (PprType, TysWiredIn) -then - CoreSyn [does not import Id] -then - IdInfo (CoreSyn.Unfolding, CoreSyn.CoreRules) -then - Id (lots from IdInfo) -then - CoreFVs, PprCore -then - CoreUtils (PprCore.pprCoreExpr, CoreFVs.exprFreeVars, - CoreSyn.isEvaldUnfolding CoreSyn.maybeUnfoldingTemplate) -then - CoreLint( CoreUtils ) - OccurAnal (CoreUtils.exprIsTrivial) - CoreTidy (CoreUtils.exprArity ) -then - CoreUnfold (OccurAnal.occurAnalyseGlobalExpr) -then - Subst (CoreUnfold.Unfolding, CoreFVs) - Generics (CoreUnfold.mkTopUnfolding) -then - Rules (CoreUnfold.Unfolding, PprCore.pprTidyIdRules) -then - MkId (CoreUnfold.mkUnfolding, Subst, Rules.addRule) -then - PrelInfo (MkId) - HscTypes( Rules.RuleBase ) - ----------------- END OF INFRASTRUCTURE -------------------- - -then - CoreTidy (HscTypes.PersistentCompilerState) + ghc/docs/comm/genesis/modules.html hunk ./ghc/docs/comm/genesis/modules.html 1 + + +
+ ++ +GHC is built out of about 245 Haskell modules. It can be quite tricky +to figure out what the module dependency graph looks like. It can be +important, too, because loops in the module dependency graph need to +be broken carefully using .hi-boot interface files. +
+This section of the commentary documents the subtlest part of +the module dependency graph, namely the part near the bottom. +
+
+ +Last modified: Wed Aug 22 16:46:33 GMT Daylight Time 2001 + + + + + + + + + hunk ./ghc/docs/comm/index.html 48 +