• simonpj's avatar
    [project @ 2002-10-24 14:17:46 by simonpj] · e0445ffa
    simonpj authored
    ------------------------------------------
    	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.
    e0445ffa
HsDecls.lhs 30.9 KB