This project is mirrored from Pull mirroring updated .
  1. 25 Jul, 2016 11 commits
    • Duncan Coutts's avatar
      Remove the now unused PlanPackage states · 7cb0844b
      Duncan Coutts authored
      We now just have the initial states, PreExisting and Configured. The
      Processing, Installed and Failed states are gone. We now do traversals
      separately from the InstallPlan, so we no longer need these states.
    • Duncan Coutts's avatar
      Rename the new InstallPlan.{ready,completed,failed} · 86853416
      Duncan Coutts authored
      Rename from prime' versions to the normal names, now that the old ones
      have been removed.
    • Duncan Coutts's avatar
      Remove the old InstallPlan.ready · f28cf318
      Duncan Coutts authored
      There were two uses other than excuteInstallPlan. The new ready impl can
      be used in both these cases, allowing the old one to be removed.
    • Duncan Coutts's avatar
      Remove a number of now-unused InstallPlan operations · 713af703
      Duncan Coutts authored
      These were the primitives used by executeInstallPlan to change the
      package states to Processing, Installed, Failed etc.
      The 'ready' is still used in a couple other places, so those need to be
      modified before the old 'ready' can be removed.
    • Duncan Coutts's avatar
      Convert the old install code to use InstallPlan.execute · 448714b8
      Duncan Coutts authored
      Redefine the local executeInstallPlan util in terms of
      InstallPlan.execute. Of course now executeInstallPlan returns
      BuildResults instead of an upated InstallPlan. This requires changes in
      all the code that looks at the result of the build execution, including
      console error reporting, build reports, symlinks etc.
    • Duncan Coutts's avatar
      Convert new-build to use InstallPlan.execute · 97cff5c0
      Duncan Coutts authored
      Eliminate the local executeInstallPlan. The main change is that the new
      execute returns BuildResults instead of an upated InstallPlan. This has
      a few knock-on conseuqnces for the code that looks at the result of the
      build execution.
      Currently we don't actually do that much with the results in the
      new-build code path (though we should) so there's less disruption than
      one might imagine. The biggest change is in the integration tests which
      do inspect the execution result to check things worked or didn't work as
      The equivalent change for the old build code path will be more
      disruptive since it does a lot of stuff with the execution results.
    • Duncan Coutts's avatar
      Add InstallPlan.execute plus tests · 31be24fa
      Duncan Coutts authored
      This is intended to replace a couple existing executeInstallPlan
      The tests check that execute visits packages in reverse topological
      order, for both serial and parallel job control. There's also a check
      that serial execute and executionOrder use exactly the same order.
    • Duncan Coutts's avatar
      Replace linearizeInstallPlan utils by InstallPlan.executionOrder · af112a61
      Duncan Coutts authored
      Delete two different ugly versions of linearizeInstallPlan. Yay.
    • Duncan Coutts's avatar
      Add InstallPlan.executionOrder · 2d6f94ea
      Duncan Coutts authored
      This is a replacement for the existing linearizeInstallPlan utils.
      It uses the new separate traversal approach.
    • Duncan Coutts's avatar
      Add new InstallPlan traversal primitives · 4d09392f
      Duncan Coutts authored
      Currently the way to traverse/execute an InstallPlan involves using the
      InstallPlan itself as the processing state.
      This adds a new Processing type and associated operations to help write
      InstallPlan traversals that are separate from the InstallPlan itself.
    • Duncan Coutts's avatar
      Add a test for an existing InstallPlan util · ba5297ec
      Duncan Coutts authored
      The main thing this adds is infrastructure for generating random
      InstallPlans (which is not totally trivial given their structure).
  2. 24 Jul, 2016 2 commits
    • Edward Z. Yang's avatar
      Implement --cabal-file, allows multiple Cabal files in directory · e507ca84
      Edward Z. Yang authored
      This is primarily intended for use with the Cabal test suite (allowing
      us to easily specify multiple Cabal packages for the same Haskell source
      files), but maybe some end-users will find it useful as well.  If there
      are multiple Cabal files in the current working directory, --cabal-file
      (for configure) allows you to disambiguate which one to build with.
      There's a big hack to handle the BOM check, as it is inconvenient to
      plumb the flag value all the way to the check code.  Some bigger
      refactoring needed, see #3552.
      Signed-off-by: default avatarEdward Z. Yang <>
    • Edward Z. Yang's avatar
      As much as possible, expunge uses of localPkgDescr. · e3c64e6d
      Edward Z. Yang authored
      The big change here is that most of the functions in
      Distribution.Types.HookedBuildInfo have to take a
      PackageDescription explicitly.  I hate the new type,
      so I primed these new functions, and added functions
      which use 'localPkgDescr'.  Presently those have WARNINGs
      attached to them so people don't accidentally use them;
      once we fix 'HookedBuildInfo' we can change this.
      Signed-off-by: default avatarEdward Z. Yang <>
  3. 23 Jul, 2016 4 commits
  4. 22 Jul, 2016 2 commits
  5. 21 Jul, 2016 4 commits
    • Lennart Kolmodin's avatar
      Add new-build to bash completion · c59c8118
      Lennart Kolmodin authored
      The command 'new-build' won't be completed, but if you type it out
      you'll get completions from that point.
    • Edward Z. Yang's avatar
      finalizePackageDescription BC. · 193f49da
      Edward Z. Yang authored
      Signed-off-by: default avatarEdward Z. Yang <>
    • Edward Z. Yang's avatar
      Introduce new ComponentEnabledSpec, removing testEnabled/benchmarkEnabled. · c1615bb9
      Edward Z. Yang authored
      As per an existing TODO in the code, the use of
      testEnabled/benchmarkEnabled to indicate if a component
      was enabled/disabled by the user command line was an
      egregious violation of abstraction.  This commit removes
      these two fields, instead passing along the necessary
      enabling information with ComponentEnabledSpec instead.
      As there were not many uses of testEnabled/benchmarkEnabled,
      this was not too difficult to do.
      Signed-off-by: default avatarEdward Z. Yang <>
    • Edward Z. Yang's avatar
      Rewrite Travis CI script. · 487565aa
      Edward Z. Yang authored
      Lots of changes:
          - When possible, we use the container infrastructure (sudo: false)
            rather than Google Compute Engine infrastructure (sudo: required).
            Unfortunately, we can't use GCE for the Linux builds, where
            reduced RAM available hoses are GHC build.
          - Switched from using ./Setup and old-style cabal to new-build.
            There are numerous great benefits but the best is that
            .cabal/store can be cached on Travis, leading to huge speedups
            on the build.  Downside is we need to string-and-ceiling-wax
            support for test/haddock/etc.
          - I stopped bootstrapping on every build we do; instead there
            is a separate bootstrap build we do to make sure that that
            is working.  This also speeds up the basic builds since
            we are not building Cabal/cabal-install multiple times.
          - There are some hacks.  The big one is setting CABAL_BUILDDIR
            explicitly; this smooths over quite a few infelicities in
            the current new-build implementation.
      Signed-off-by: default avatarEdward Z. Yang <>
  6. 19 Jul, 2016 11 commits
  7. 17 Jul, 2016 1 commit
  8. 16 Jul, 2016 1 commit
  9. 15 Jul, 2016 1 commit
  10. 14 Jul, 2016 1 commit
  11. 11 Jul, 2016 2 commits