Skip to content
  • Edward Z. Yang's avatar
    Library names, with Cabal submodule update · f9687caf
    Edward Z. Yang authored
    A library name is a package name, package version, and hash of the
    version names of all textual dependencies (i.e. packages which were included.) A library
    name is a coarse approximation of installed package IDs, which are suitable for
    inclusion in package keys (you don't want to put an IPID in a package key, since
    it means the key will change any time the source changes.)
    
        - We define ShPackageKey, which is the semantic object which
          is hashed into a PackageKey.  You can use 'newPackageKey'
          to hash a ShPackageKey to a PackageKey
    
        - Given a PackageKey, we can lookup its ShPackageKey with
          'lookupPackageKey'.  The way we can do this is by consulting
          the 'pkgKeyCache', which records a reverse mapping from
          every hash to the ShPackageKey.  This means that if you
          load in PackageKeys from external sources (e.g. interface
          files), you also need to load in a mapping of PackageKeys
          to their ShPackageKeys so we can popul...
    f9687caf