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