[project @ 2002-10-24 14:17:46 by simonpj]
authorsimonpj <unknown>
Thu, 24 Oct 2002 14:17:53 +0000 (14:17 +0000)
committersimonpj <unknown>
Thu, 24 Oct 2002 14:17:53 +0000 (14:17 +0000)
commite0445ffa5a89632b542e7d7bc2ad46d944716453
tree66fc90430fa44665beaf3cfe3a3af643e68d5c04
parent04a63774d33a71fc0b6eb2765ec28c77dad19052
[project @ 2002-10-24 14:17:46 by simonpj]
------------------------------------------
1. New try and module and package dependencies
2. OrigNameCache always contains final info
------------------------------------------

These things nearly complete sorting out the incremental
linking problem that started us off!

1. This commit separates two kinds of information:

  (a) HscTypes.Dependencies:
What (i)  home-package modules, and
     (ii) other packages
      this module depends on, transitively.

      That is, to link the module, it should be enough
      to link the dependent modules and packages (plus
      any C stubs etc).

      Along with this info we record whether the dependent module
      is (a) a boot interface or (b) an orphan module.  So in
      fact (i) can contain non-home-package modules, namely the
      orphan ones in other packages (sigh).

  (b) HscTypes.Usage:
      What version of imported things were used to
      actually compile the module.  This info is used for
      recompilation control only.

2. The Finder now returns a correct Module (incl package indicator)
first time, so we can install the absolutely final Name in the
OrigNameCache when we first come across an occurrence of that name,
even if it's only an occurrence in an unfolding in some other interface
file.  This is much tidier.

As a result Module.lhs is much cleaner
No DunnoYet
No mkVanillaModule
ALl very joyful stuff.
24 files changed:
ghc/compiler/basicTypes/Module.lhs
ghc/compiler/basicTypes/Name.lhs
ghc/compiler/deSugar/Desugar.lhs
ghc/compiler/deSugar/DsMeta.hs
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/ilxGen/IlxGen.lhs
ghc/compiler/main/BinIface.hs
ghc/compiler/main/DriverPipeline.hs
ghc/compiler/main/DriverState.hs
ghc/compiler/main/HscMain.lhs
ghc/compiler/main/HscTypes.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/main/Packages.lhs
ghc/compiler/main/TidyPgm.lhs
ghc/compiler/parser/Parser.y
ghc/compiler/prelude/PrelNames.lhs
ghc/compiler/prelude/TysWiredIn.lhs
ghc/compiler/rename/RnEnv.lhs
ghc/compiler/rename/RnHiFiles.lhs
ghc/compiler/rename/RnIfaces.lhs
ghc/compiler/rename/RnNames.lhs
ghc/compiler/typecheck/TcRnDriver.lhs
ghc/compiler/typecheck/TcRnMonad.lhs
ghc/compiler/typecheck/TcRnTypes.lhs