This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 04 Aug, 2014 1 commit
    • Edward Z. Yang's avatar
      Implement package keys, distinguishing packages built with different deps/flags · 41610a0b
      Edward Z. Yang authored
      
      
      Previously, the GHC ecosystem assumed that for any package ID (foo-0.1), there
      would only be one instance of it in the installed packages database.  This
      posed problems for situations where you want a package compiled twice against
      different sets of dependencies: they could not both exist in the package
      database.
      
      Package keys are a hash of the package ID and package
      dependencies, which identify a package more uniquely than a package ID, but less
      uniquely than an installed package ID. Unlike installed package IDs, these can
      be computed immediately after dependency resolution, rather than after
      compilation.  Package keys require support from the compiler.  At the moment,
      only GHC 7.10 supports package keys (the reason is that old versions of GHC
      do a sannity check to see that the <pkg-name>-<pkg-version> stored in the
      package database matches with the -package-name embedded in an hi file; so
      the format is fixed.) We fallback to package keys == package IDs for old
      versions.
      
      Note: the ./Setup configure fallback script does not try particularly hard to
      pick consistent sets of dependencies.  If your package database is too difficult
      for it to resolve, manually provide installed package IDs or use cabal-install's
      dependency solver.
      
      Note: This patch *suspends* the reinstall check unless it would result in
      a different package, so cabal-install will now happily reinstall foo-0.1
      compiled against bar-0.2 if foo-0.1 already exists.
      
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      41610a0b
  2. 02 Feb, 2014 1 commit
  3. 06 May, 2013 1 commit
  4. 18 Mar, 2013 1 commit
  5. 03 Nov, 2012 1 commit
  6. 23 Aug, 2012 2 commits
  7. 23 Oct, 2011 1 commit
  8. 19 Jun, 2011 1 commit
  9. 28 Nov, 2009 1 commit
  10. 22 Aug, 2009 1 commit
  11. 06 Aug, 2009 1 commit
    • 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
  12. 31 May, 2009 1 commit
  13. 02 Dec, 2008 1 commit
  14. 12 Aug, 2008 1 commit
  15. 28 Jun, 2008 1 commit
    • Duncan Coutts's avatar
      Update module headers · 0c993c84
      Duncan Coutts authored
      Use cabal-devel@haskell.org as the maintainer in most cases except for
      a few which were pre-existing modules copied from elsewhere or modules
      like L.H.Extension which really belong to libraries@haskell.org
      Remove the useless stability module. We have more detailed information
      on stability elsewhere (in the version number and user guide).
      Add more top level module documentation, taken from the source guide.
      0c993c84
  16. 26 Jun, 2008 1 commit
  17. 14 Jun, 2008 1 commit
  18. 29 May, 2008 1 commit
    • Duncan Coutts's avatar
      Add thisPackageVersion and notThisPackageVersion · 7146dfe7
      Duncan Coutts authored
      Util functions for makeing dependencies from package identifiers.
      thisPackageVersion    (foo-1.0) = foo ==1.0
      notThisPackageVersion (foo-1.0) = foo /=1.0
      The latter is handy as a constraint in dependency resolution.
      7146dfe7
  19. 21 Mar, 2008 2 commits
  20. 12 Mar, 2008 1 commit
  21. 07 Mar, 2008 1 commit
  22. 22 Feb, 2008 1 commit
  23. 27 Nov, 2006 1 commit
  24. 22 Aug, 2006 2 commits
  25. 16 Oct, 2005 1 commit
    • ijones's avatar
      lots of cvs pulls from Ross, Malcolm, Simon, & Simon · c35d8f5c
      ijones authored
        No reason we shouldn't have Ord on PackageIdentifiers
      
        Various changes committed in one bunch:
        
         - bindir/libdir/datadir/libexecdir support as discussed on
           librarie@haskell.org.  This should be considered fairly
           experimental.  Full documentation in the manual.
        
         - A module Paths_<pkgname> is autogenerated, you should be able
           to just import this.  (I haven't made this work with Hugs yet, though).
           I suspect I might need to make sure it's available to 'setup haddock'
           too.  Also, I haven't tested this on Windows yet (TODO).
        
         - All installation-paths-related functions are now provided by
           Distribution.Simple.LocalBuildInfo
        
         - some cleaning up of Distribution.Simple.Build as regards GHC support.
        
         - "setup copy" now takes a --destdir argument instead of --copy-prefix
           (the latter is still accepted for compatibility).
        
           Note for autoconf/make users: this means that your Makefile now
           needs to implement a "copy" target, see the manual for details.
        
         - New types: Distribution.Setup.CopyFlags (was previously just a
           pair), and CopyDest (was previously Maybe FilePath).
        
         - Hooks: the post hooks all take a PackageDescription argument now.
           There seemed no reason not to do this, and sometimes it's useful.
      
      
        Remove literal tabs in strings.  Not Haskell'98.
      
        harmonize running of ./confugure between defaultUserHooks and
        Distribution.Make:
        
        * pass through the same set of flags, plus unrecognized options
        
        * select the default compiler before processing options
      
        Fixes for Windows
      
        added a simple-minded data-files field.  Also added getDataFileName to
        Paths_<pkg> to save client code from worrying about path separators.
      
      c35d8f5c
  26. 19 Jul, 2005 1 commit
  27. 16 Jul, 2005 1 commit
  28. 12 Jan, 2005 1 commit
    • ijones's avatar
      glob of CVS changes; PError, NHC options, system.directory, NHC builds · d1975ee2
      ijones authored
      Authors: Malcolm Wallace, Ross Paterson, Krasimir Angelov
      
        move createIfNotExists and removeFileRecursive functions from
        Distribution.Simple.Utils to System.Directory. The functions are renamed
        to createDirectoryIfMissing and removeDirectoryRecursive.
      
        avoid a few GHC warnings
      
        get IOError stuff from System.IO.Error instead of System.IO
      
        Minor tweaks to build with nhc98.
      
        OPTIONS pragma stuff for nhc98 and compat w/ ghc
      
        Use a custom monad ParseResult for parse results instead of Either PError,
        removing the need for Distribution.Compat.Error and the dependency on mtl.
        
      
      d1975ee2
  29. 30 Nov, 2004 1 commit
    • simonmar's avatar
      Huge wad of changes from GHC team · d84d3728
      simonmar authored
      - Rename Compat.* modules to Distribution.Compat.*
      - Add {-# OPTIONS -cpp #-} to a few modules
      - Distribution.Compat.ReadP: use real ReadP in GHC 6.3+
      - new module: Distribution.Extension, contains Extension type
        formerly from Distribution.Misc.
      - new module: Distribution.License, contains License type
        formerly from Distribution.Misc.
      - remove Distribution.Misc
      - new module: Distribution.ParseUtils, containing various parsing utilities
        formerly from Distribution.Package, that are re-used in 
        Distribution.InstalledPackageInfo.
      - new module: Distribution.PackageDescription contains everything related
        to PackageDescription, which was formerly in Distribution.Package.
      - Distribution.Package now contains only PackageId-related stuff.
      - Distribution.InstalledPackageInfo: update for use in GHC, add
        parsing/pretty-printing.
      - Compat.H98 is now Distribution.Compat.Error (it contained only stuff
        related to the Error monad, which isn't H98 anyway).
      - remove imports of H98 libs (use hierarchical ones instead)
      - configure now detects the GHC version (but doesn't do anything with it... yet)
      d84d3728
  30. 04 Nov, 2004 1 commit
  31. 03 Nov, 2004 1 commit
  32. 23 Oct, 2004 1 commit
  33. 16 Oct, 2004 2 commits
    • ijones's avatar
      allModules wasn't used. · 183f554e
      ijones authored
      183f554e
    • ijones's avatar
      moved currentDir into utils · 0d8ee7b8
      ijones authored
      Utils used to depend on Distribution.Package, so Package couldn't
      easily use Utils.  I removed this dependency by moving a couple of
      functions into D.Package, then moved currentDir into Utils where it
      belongs.
      0d8ee7b8
  34. 09 Oct, 2004 3 commits