This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 22 Sep, 2014 2 commits
  2. 18 Sep, 2014 1 commit
  3. 14 Sep, 2014 4 commits
  4. 30 Aug, 2014 2 commits
  5. 29 Aug, 2014 1 commit
  6. 28 Aug, 2014 1 commit
  7. 27 Aug, 2014 5 commits
    • Edward Z. Yang's avatar
      Switch InstallPlan over to using IPID-indexed PackageIndex. · 6465d174
      Edward Z. Yang authored
      
      
      While this doesn't let us get rid of Distribution.Client.PackageIndex,
      it does make InstallPlan more flexible, so we can have the same
      package name-package version in the install plan multiple times.
      We do this by synthesizing fake installed package IDs to act
      as placeholders prior to compilation.
      
      There is some shindig with 'FakeMap' in PackageIndex, check out
      the Note in that file for more details.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      6465d174
    • Edward Z. Yang's avatar
      Make Distribution.Simple.PackageIndex polymorphic in package storage. · 4e8c6ecc
      Edward Z. Yang authored
      
      
      BC note: renamed type PackageIndex :: * to InstalledPackageIndex.
      
      The intent is to have cabal-install use this package index in order to
      track information about compilation in progress.  We introduce a new
      PackageInstalled type-class to keep track of data types which have their
      IDs and dependency graphs in InstalledPackageId.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      4e8c6ecc
    • Duncan Coutts's avatar
      Change rep of module re-exports, and do resolution ourselves · a3d3273a
      Duncan Coutts authored
      The initial support for module re-exports relied on ghc-pkg to resolve
      user-specified re-exports to references to specific installed packages.
      This resolution is something that can fail so it's better for Cabal to
      do it during the package configure phase.
      
      In addition, it is inconvenient in ghc-pkg to be doing this resolution,
      and it just seems fishy as a design. Also, the same ModuleExport type
      was being used both for user-specified source re-exports and also for
      the specific re-exports in the package db.
      
      This patch splits the type into two: one for source level, and one for
      resolved ones for use in the package db. The configure phase resolves
      one to the other.
      
      One minor change: it is now possible to re-export a module defined in
      the same package that is not itself exported (ie it's in other-modules,
      rather than exposed-modules). Previously for modules definied in the
      same package they had to be themselves exported. Of course for
      re-exports from other packages they have to be exposed.
      a3d3273a
    • Duncan Coutts's avatar
      20e35704
    • Edward Z. Yang's avatar
      Change the inplace package database to not use file-style database. · 8d59dc9f
      Edward Z. Yang authored
      
      
      Instead we use HcPkg.init (e.g. ghc-pkg init). For ghc-pkg this will
      create a new directory style db.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      Signed-off-by: Duncan Coutts's avatarDuncan Coutts <duncan@well-typed.com>
      8d59dc9f
  8. 22 Aug, 2014 1 commit
  9. 20 Aug, 2014 1 commit
  10. 15 Aug, 2014 1 commit
  11. 04 Aug, 2014 5 commits
    • Edward Z. Yang's avatar
      Fix regression for V09 test library handling. · 2b50d0a7
      Edward Z. Yang authored
      
      
      detailed-1.0 test libraries allow users to define a test library as part
      of package, which has a different package ID than the original library.
      When I made the change to packageKey, I forgot to assign new package keys
      here; the result was that the test library was compiled with the same
      package key as the original.  The fix is a bit of a hack, since arguably
      this should have been done properly in the configure step!
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      2b50d0a7
    • Edward Z. Yang's avatar
      Add $pkgkey template variable, and use it for install paths. · 1d33c8f5
      Edward Z. Yang authored
      
      
      At the moment, $pkgkey is not supported for build reports, although in
      principle we could add support for it, assuming that the configure step
      succeeds.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      1d33c8f5
    • 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
    • Edward Z. Yang's avatar
    • kgardas's avatar
      9326c359
  12. 01 Aug, 2014 1 commit
  13. 27 Jul, 2014 3 commits
  14. 21 Jul, 2014 1 commit
    • Edward Z. Yang's avatar
      Weaken dependency on process. · ebd4d4b9
      Edward Z. Yang authored
      
      
      GHC 7.6 still distributes by default with an old version of process, which
      means that requiring the most recent version prevents GHC from properly
      bootstrapping out of the box.  In this patch, we relax the version requirement
      on process, disabling proper ctl-c handling when the version is not sufficiently
      new.
      
      Perhaps one problem with lowering the bound, is if someone attempts to install
      Cabal out of the box on GHC 7.6, the dependency solver will prefer the old
      installed version, so it is very easy to end up with a cabal-install which
      doesn't have working ctl-c.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      ebd4d4b9
  15. 20 Jul, 2014 1 commit
  16. 17 Jul, 2014 1 commit
  17. 16 Jul, 2014 1 commit
    • Edward Z. Yang's avatar
      Implement "reexported-modules" field, towards fixing GHC bug #8407. · 62450f9a
      Edward Z. Yang authored
      
      
      Re-exported modules allow packages to reexport modules from their
      dependencies without having to create stub files.  Reexports of the same
      original module don't count as ambiguous imports when module finding
      occurs.  The syntax is:
      
          "orig-pkg" OrigName as NewName
      
      You can omit 'as NewName', in which case it is reexported as the same
      name.  Self referential aliases work too; however, they're only visible
      to packages which depend on this package.
      
      Left to future work: just provide a module name 'OrigName', where ghc-pkg
      figures out what the source package is.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      62450f9a
  18. 02 Jul, 2014 1 commit
  19. 28 Jun, 2014 1 commit
  20. 26 Jun, 2014 1 commit
  21. 24 Jun, 2014 1 commit
  22. 16 Jun, 2014 1 commit
  23. 20 May, 2014 2 commits
    • ttuegel's avatar
      Always stream test output concurrently · e7236056
      ttuegel authored
      Issue #1810. Some test suites would freeze if invoked with
      `--show-details=always` instead of `--show-details=streaming` because
      output would build up in the pipe without being cleared. This corrects
      the issue by forcing the length of the output string in another thread.
      
      (cherry picked from commit e5a07013)
      e7236056
    • ttuegel's avatar
      Always stream test output concurrently · e5a07013
      ttuegel authored
      Issue #1810. Some test suites would freeze if invoked with
      `--show-details=always` instead of `--show-details=streaming` because
      output would build up in the pipe without being cleared. This corrects
      the issue by forcing the length of the output string in another thread.
      e5a07013
  24. 15 May, 2014 1 commit