diff options
| author | simonpj <unknown> | 2001-03-08 12:07:43 +0000 | 
|---|---|---|
| committer | simonpj <unknown> | 2001-03-08 12:07:43 +0000 | 
| commit | 51a571c0f5b0201ea53bec60fcaafb78c01c017e (patch) | |
| tree | 863679c641b8bc44aa08c145389a3d85520763a9 /ghc/compiler/DEPEND-NOTES | |
| parent | d78151f68bdaf05cb1e8ab77e32529327c0dae36 (diff) | |
| download | haskell-51a571c0f5b0201ea53bec60fcaafb78c01c017e.tar.gz | |
[project @ 2001-03-08 12:07:38 by simonpj]
--------------------
	A major hygiene pass
	--------------------
1. The main change here is to
	Move what was the "IdFlavour" out of IdInfo,
	and into the varDetails field of a Var
   It was a mess before, because the flavour was a permanent attribute
   of an Id, whereas the rest of the IdInfo was ephemeral.  It's
   all much tidier now.
   Main places to look:
	   Var.lhs	Defn of VarDetails
	   IdInfo.lhs	Defn of GlobalIdDetails
   The main remaining infelicity is that SpecPragmaIds are right down
   in Var.lhs, which seems unduly built-in for such an ephemeral thing.
   But that is no worse than before.
2. Tidy up the HscMain story a little.  Move mkModDetails from MkIface
   into CoreTidy (where it belongs more nicely)
   This was partly forced by (1) above, because I didn't want to make
   DictFun Ids into a separate kind of Id (which is how it was before).
   Not having them separate means we have to keep a list of them right
   through, rather than pull them out of the bindings at the end.
3. Add NameEnv as a separate module (to join NameSet).
4. Remove unnecessary {-# SOURCE #-} imports from FieldLabel.
Diffstat (limited to 'ghc/compiler/DEPEND-NOTES')
| -rw-r--r-- | ghc/compiler/DEPEND-NOTES | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/ghc/compiler/DEPEND-NOTES b/ghc/compiler/DEPEND-NOTES index f92764efa5..fb966c66b7 100644 --- a/ghc/compiler/DEPEND-NOTES +++ b/ghc/compiler/DEPEND-NOTES @@ -5,12 +5,12 @@ 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 (loop Type.Type) +	Name, PrimRep   then  	PrelNames  then -	Var (Name, loop CoreSyn.CoreExpr, loop IdInfo.IdInfo,  -	     loop Type.GenType, loop Type.Kind) +	Var (Name, loop IdInfo.IdInfo,  +	     loop Type.Type, loop Type.Kind)  then  	VarEnv, VarSet, ThinAir  then @@ -20,7 +20,7 @@ then  then  	Type (loop DataCon.DataCon, loop Subst.substTy)  then -	TysPrim (Type), PprEnv (loop DataCon.DataCon, Type) +	FieldLabel( Type), TysPrim (Type), PprEnv (loop DataCon.DataCon, Type)  then  	Unify, PprType (PprEnv)  then  | 
