cvs commit: fptools/ghc/compiler/utils Outputable.lhs UniqFM.lhs
fptools/ghc/compiler/basicTypes DataCon.lhs Name.lhs NameEnv.lhs
fptools/ghc/compiler/compMan CompManager.lhs fptools/ghc/compiler/deSugar
Desugar.lhs DsMonad.lhs fptools/ghc/compiler/ghci InteractiveUI.hs ...
Simon Peyton Jones
simonpj at haskell.org
Mon Aug 16 05:54:27 EDT 2004
simonpj 2004/08/16 02:54:27 PDT
Modified files:
ghc/compiler/utils Outputable.lhs UniqFM.lhs
ghc/compiler/basicTypes DataCon.lhs Name.lhs NameEnv.lhs
ghc/compiler/compMan CompManager.lhs
ghc/compiler/deSugar Desugar.lhs DsMonad.lhs
ghc/compiler/ghci InteractiveUI.hs
ghc/compiler/iface IfaceEnv.lhs IfaceSyn.lhs IfaceType.lhs
LoadIface.lhs MkIface.lhs
TcIface.hi-boot-6 TcIface.lhs
ghc/compiler/main HscMain.lhs HscTypes.lhs
ghc/compiler/rename RnNames.lhs
ghc/compiler/typecheck Inst.lhs TcEnv.lhs TcRnDriver.lhs
TcRnMonad.lhs TcRnTypes.lhs
TcSimplify.lhs
Log:
-------------------------------
Add instance information to :i
Get rid of the DeclPool
-------------------------------
1. Add instance information to :info command. GHCi now prints out
which instances a type or class belongs to, when you use :i
2. Tidy up printing of unqualified names in user output.
Previously Outputable.PrintUnqualified was
type PrintUnqualified = Name -> Bool
but it's now
type PrintUnqualified = ModuleName -> OccName -> Bool
This turns out to be tidier even for Names, and it's now also usable
when printing IfaceSyn stuff in GHCi, eliminating a grevious hack.
3. On the way to doing this, Simon M had the great idea that we could
get rid of the DeclPool holding pen, which held declarations read from
interface files but not yet type-checked. We do this by eagerly
populating the TypeEnv with thunks what, when poked, do the type
checking. This is just a logical continuation of lazy import
mechanism we've now had for some while.
The InstPool and RulePool still exist, but I plan to get rid of them in
the same way. The new scheme does mean that more rules get sucked in than
before, because previously the TypeEnv was used to mean "this thing was needed"
and hence to control which rules were sucked in. But now the TypeEnv is
populated more eagerly => more rules get sucked in. However this problem
will go away when I get rid of the Inst and Rule pools.
I should have kept these changes separate, but I didn't. Change (1)
affects mainly
TcRnDriver, HscMain, CompMan, InteractiveUI
whereas change (3) is more wide ranging.
Revision Changes Path
1.60 +8 -7 fptools/ghc/compiler/utils/Outputable.lhs
1.38 +0 -2 fptools/ghc/compiler/utils/UniqFM.lhs
1.47 +1 -1 fptools/ghc/compiler/basicTypes/DataCon.lhs
1.110 +10 -8 fptools/ghc/compiler/basicTypes/Name.lhs
1.5 +33 -31 fptools/ghc/compiler/basicTypes/NameEnv.lhs
1.151 +7 -7 fptools/ghc/compiler/compMan/CompManager.lhs
1.74 +2 -5 fptools/ghc/compiler/deSugar/Desugar.lhs
1.53 +3 -5 fptools/ghc/compiler/deSugar/DsMonad.lhs
1.174 +23 -14 fptools/ghc/compiler/ghci/InteractiveUI.hs
1.8 +15 -72 fptools/ghc/compiler/iface/IfaceEnv.lhs
1.11 +5 -3 fptools/ghc/compiler/iface/IfaceSyn.lhs
1.7 +38 -40 fptools/ghc/compiler/iface/IfaceType.lhs
1.13 +138 -110 fptools/ghc/compiler/iface/LoadIface.lhs
1.14 +11 -7 fptools/ghc/compiler/iface/MkIface.lhs
1.2 +1 -1 fptools/ghc/compiler/iface/TcIface.hi-boot-6
1.23 +121 -157 fptools/ghc/compiler/iface/TcIface.lhs
1.196 +19 -11 fptools/ghc/compiler/main/HscMain.lhs
1.114 +73 -54 fptools/ghc/compiler/main/HscTypes.lhs
1.169 +23 -17 fptools/ghc/compiler/rename/RnNames.lhs
1.139 +3 -3 fptools/ghc/compiler/typecheck/Inst.lhs
1.130 +0 -17 fptools/ghc/compiler/typecheck/TcEnv.lhs
1.76 +623 -588 fptools/ghc/compiler/typecheck/TcRnDriver.lhs
1.37 +20 -21 fptools/ghc/compiler/typecheck/TcRnMonad.lhs
1.39 +1 -8 fptools/ghc/compiler/typecheck/TcRnTypes.lhs
1.136 +2 -2 fptools/ghc/compiler/typecheck/TcSimplify.lhs
More information about the Cvs-ghc
mailing list