This project is mirrored from Pull mirroring updated .
  1. 05 Oct, 2009 1 commit
    • Duncan Coutts's avatar
      Rewrite the PackageIndex again · 15f70a85
      Duncan Coutts authored
      It's a unified index again, rather than one for looking up by an
      InstalledPackageId and one for the source PackageId. The new one
      lets you look up by either. It also maintains the order of
      preference of different installed packages that share the same
      source PackageId. In configure we just pick the first preference.
  2. 04 Oct, 2009 1 commit
  3. 02 Oct, 2009 1 commit
  4. 28 Sep, 2009 1 commit
  5. 20 Sep, 2009 4 commits
  6. 17 Sep, 2009 3 commits
  7. 11 Sep, 2009 1 commit
  8. 06 Sep, 2009 1 commit
  9. 08 Sep, 2009 1 commit
  10. 28 Aug, 2009 1 commit
  11. 26 Aug, 2009 1 commit
    • Simon Marlow's avatar
      Add the ABI hash to the InstalledPackageId for inplace registrations too · 018ec60f
      Simon Marlow authored
      Previously, we just added a -inplace suffix, but this will cause
      problems when developing multiple packages inplace, and then
      installing them.
      Also, there was a round of refactoring: registerPackage now takes the
      InstalledPackageId as an argument, and generateRegistrationInfo is
      exposed for constructing it.  This means that callers of
      registerPackage get to munge the InstalledPackageInfo before it is
  12. 24 Aug, 2009 1 commit
  13. 22 Aug, 2009 5 commits
  14. 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>".
    • 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).
    • 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
    • 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.
    • 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.
    • Simon Marlow's avatar
      Add a unuque identifier for installed packages (part 4 of 9) · 443e099b
      Simon Marlow authored
        - 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
        - similarly, previously
            externalPackageDeps :: LocalBuildInfo -> [PackageId]
          is now
            externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId]
    • 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
    • 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
      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
    • 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:
        - define the InstalledPackageId type as a newtype of String
        - 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.
    • Simon Marlow's avatar
      Refactoring: fit into 80 columns · 20696778
      Simon Marlow authored
  15. 12 Aug, 2009 1 commit
  16. 11 Aug, 2009 1 commit
  17. 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.
    • 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 <>
        * 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 <>
        * Don't use the Stdout variant of rawSystemProgramConf to call gcc
        We ignore the output anyway
          M ./Distribution/Simple/Configure.hs -2 +3
  18. 26 Jul, 2009 1 commit
  19. 23 Jul, 2009 1 commit
  20. 10 Jul, 2009 2 commits