From: simonpj Date: Wed, 20 Mar 2002 14:46:18 +0000 (+0000) Subject: [project @ 2002-03-20 14:46:17 by simonpj] X-Git-Tag: Approx_11550_changesets_converted~2243 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=75dc3f87f6a7b3535b7c83091a9a8e313f441e3b;p=ghc-hetmet.git [project @ 2002-03-20 14:46:17 by simonpj] Put module dependency info in the commentary --- diff --git a/ghc/compiler/DEPEND-NOTES b/ghc/compiler/DEPEND-NOTES index 23f2a7f..f2ba244 100644 --- a/ghc/compiler/DEPEND-NOTES +++ b/ghc/compiler/DEPEND-NOTES @@ -1,68 +1,4 @@ - Notes on module dependencies - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Module dependency information is now given in the GHC commentary -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 diff --git a/ghc/docs/comm/genesis/modules.html b/ghc/docs/comm/genesis/modules.html new file mode 100644 index 0000000..2706038 --- /dev/null +++ b/ghc/docs/comm/genesis/modules.html @@ -0,0 +1,139 @@ + + + + + The GHC Commentary - The Marvellous Module Structure of GHC + + + +

The GHC Commentary - The Marvellous Module Structure of GHC

+

+ +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. +

+ +Compilation order is as follows: + + + + + + +

+ +Last modified: Wed Aug 22 16:46:33 GMT Daylight Time 2001 + + + + + + + + + diff --git a/ghc/docs/comm/index.html b/ghc/docs/comm/index.html index 763c3a2..5546034 100644 --- a/ghc/docs/comm/index.html +++ b/ghc/docs/comm/index.html @@ -45,6 +45,7 @@

The Beast Dissected