This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 06 Aug, 2009 10 commits
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 9 of 9) · f76e38cb
      Simon Marlow authored
      When registering, choose the InstalledPackageId.
      
       - When registering inplace, use "foo-1.0-inplace"
      
       - If this isn't GHC, just use "foo-1.0-installed"
      
       - When installing a package with GHC, call
         Distribution.Simple.GHC.libAbiHash to get the hash, and
         use "foo-1.0-<hash>".
      f76e38cb
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 7 of 9) · 700facb2
      Simon Marlow authored
      Follow changes in Distribution.Simple.LocalBuildInfo (installedPkgs is
      now an InstalledPackageIndex).
      700facb2
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 8 of 9) · 77a57844
      Simon Marlow authored
      Distribution.Simple.Configure: follow changes to PackageIndex and
      INstalledPackageInfo.
      77a57844
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 6 of 9) · ad3175ee
      Simon Marlow authored
      Add libAbiHash, which extracts a String representing a hash of
      the ABI of a built library.  It can fail if the library has not
      yet been built.
      ad3175ee
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 5 of 9) · 15c88616
      Simon Marlow authored
      Follow changes to Distribution.Simple.LocalBuildInfo.componentPackageDeps.
      15c88616
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 4 of 9) · 443e099b
      Simon Marlow authored
      Distribution.Simple.LocalBuildInfo: 
      
        - the LocalBuildInfo record contains an index of the installed
          packages; this has changed from PackageIndex InstalledPackageInfo
          to InstalledPackageIndex.
      
        - ComponentLocalBuildInfo stores the "external package dependencies"
          of the component, which was 
            componentPackageDeps :: [PackageId]
          and is now
            componentInstalledPackageDeps :: [InstalledPackageId]
      
        - we now export
            componentPackageDeps :: LocalBuildInfo -> [PackageId]
          (since to get the PackageId for an InstalledPackageId, you need
          to look it up in the InstalledPackageIndex, which is in the
          LocalBuildInfo)
      
        - similarly, previously
            externalPackageDeps :: LocalBuildInfo -> [PackageId]
          is now
            externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId]
      443e099b
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 3 of 9) · a809635c
      Simon Marlow authored
      This part adds the InstalledPackageIndex type to
      Distribution.Simple.PackageIndex.  Now that packages have a unique
      identifier within a package database, it makes sense to use this as
      the key for looking up installed packages, so InstalledPackageIndex is
      a mapping from InstalledPackageId to InstalledPackageInfo.
      
      Distribution.Simple.PackageIndex still supports other kinds of package
      mappings: PackageIndex is a mapping from PackageName.
      
      All the functions in the section "Special Queries" now work on
      InstalledPackageIndex rather than PackageFixedDeps pkg => PackageIndex
      pkg:
      
        topologicalOrder,
        reverseTopologicalOrder,
        dependencyInconsistencies,
        dependencyCycles,
        brokenPackages,
        dependencyClosure,
        reverseDependencyClosure
        dependencyGraph
      a809635c
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 2 of 9) · fb685e8c
      Simon Marlow authored
      Note: this patch doesn't build on its own, you also need the rest of
      the patch series.
      
      Compatibility with older GHCs.  When reading a package database
      created by an older version of GHC without installedPackageIds, we
      have to fake an InstalledPackageId for the internal
      InstalledPackageInfo.
      
      So, when reading in an InstalledPackageInfo from an older GHC, we set
      the installedPackageId to be the textual representation of the
      PackageIdentifier: i.e. <package>-<version>.  Now, previously the
      depends field of InstalledPackageInfo was [PackageIdentifier], and is
      now [InstalledPackageId], so we will read each PackageIdentifier as an
      InstalledPackageId (a String).  The dependencies will still point to
      the correct package, however, because we have chosen the
      installedPackageId to be the textual representation of the
      PackageIdentifier.
      fb685e8c
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 1 of 9) · b1d6a488
      Simon Marlow authored
        
        NOTE: the patch has been split into 9 pieces for easy
        reviewing, the individual pieces won't build on their own.
        
      Part 1 does the following:
      
      Distribution.Package: 
        - define the InstalledPackageId type as a newtype of String
      
      Distribution.InstalledPackageInfo:
        - add an installedPackageId field to InstalledPackageInfo
        - change the type of the depends field from [PackageIdentifier]
          to [InstalledPackageId]
      
      
      The idea behind this change is to add a way to uniquely identify
      installed packages, letting us decouple the identity of an installed
      package instance from its package name and version.  The benefits of
      this are
      
        - We get to detect when a package is broken because its
          dependencies have been recompiled, or because it is being
          used with a different package than it was compiled against.
      
        - We have the possibility of having multiple instances of a
          given <package>-<version> installed at the same time.  In the
          future this might be used for "ways".  It might also be
          useful during the process of upgrading/recompiling packages.
      b1d6a488
    • Simon Marlow's avatar
      Refactoring: fit into 80 columns · 20696778
      Simon Marlow authored
      20696778
  2. 12 Aug, 2009 1 commit
  3. 11 Aug, 2009 1 commit
  4. 27 Jul, 2009 2 commits
    • Duncan Coutts's avatar
      Fix "unused-do-bind" warnings properly · 075bec97
      Duncan Coutts authored
      Though I'm not at all sure I like the _ <- bind idiom.
      075bec97
    • Duncan Coutts's avatar
      Undo incorrect fixes for "unused-do-bind" warnings. · 8c887272
      Duncan Coutts authored
      We capture (and discard) the program output because we do not
      want it printed to the console. We do not currently have a
      specific variant for redirecting the output to /dev/null so
      we simply use the variant that captures the output.
      
      rolling back:
      
      Fri Jul 10 22:04:45 BST 2009  Ian Lynagh <igloo@earth.li>
        * Don't ask for the output of running ld, as we ignore it anyway
      
          M ./Distribution/Simple/GHC.hs -2 +2
          M ./Distribution/Simple/LHC.hs -2 +2
      Fri Jul 10 22:08:02 BST 2009  Ian Lynagh <igloo@earth.li>
        * Don't use the Stdout variant of rawSystemProgramConf to call gcc
        We ignore the output anyway
      
          M ./Distribution/Simple/Configure.hs -2 +3
      8c887272
  5. 26 Jul, 2009 1 commit
  6. 23 Jul, 2009 1 commit
  7. 10 Jul, 2009 4 commits
  8. 07 Jul, 2009 3 commits
  9. 05 Jul, 2009 3 commits
  10. 25 Jun, 2009 1 commit
  11. 05 Jul, 2009 1 commit
  12. 26 Jun, 2009 1 commit
  13. 25 Jun, 2009 1 commit
  14. 22 Jun, 2009 1 commit
  15. 12 Jun, 2009 1 commit
  16. 14 Jun, 2009 2 commits
  17. 10 Jun, 2009 3 commits
  18. 08 Jun, 2009 1 commit
  19. 07 Jun, 2009 2 commits