This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 28 Sep, 2016 1 commit
    • Herbert Valerio Riedel's avatar
      Make `Version` type opaque (#3905) · bb2026c4
      Herbert Valerio Riedel authored
      Similiar to dabd9d98 which made
      `PackageName` opaque, this makes `Distribution.Version.Version` opaque.
      
      The most common version numbers occuring on Hackage are 3- and
      4-part versions. This results in significant Heap overhead due to
      `Data.Version`'s inefficient internal representation.
      
      So like the `PackageName` commit, this commit is a preparatory commit to
      pave the way for replacing `Version`'s internal representation by a
      representation with a memory footprint which can be an order of
      magnitude smaller.
      
      Finally, this also adds a new functor-like convenience function
      
          alterVersion :: ([Int] -> [Int]) -> Version -> Version
      
      for modifying the version number components.
      bb2026c4
  2. 26 Sep, 2016 2 commits
  3. 24 Sep, 2016 1 commit
  4. 19 Sep, 2016 1 commit
    • Edward Z. Yang's avatar
      Never use --enable-profiling when invoking Setup. · bf3d3e68
      Edward Z. Yang authored
      
      
      In Cabal 1.22.5.0, the semantics of
      --disable-profiling/--enable-profiling depend on ordering (because there
      is a hack that operates by looking at the current flag assignment and
      doing something). In particular, if I specify --enable-library-profiling
      --disable-profiling, I end up with library profiling DISABLED.
      
      The fix is that we NEVER pass --enable-profiling or --disable-profiling
      to Cabal. At the moment, and according to my historical analysis, Cabal
      ONLY uses configProf to affect the effective library/executable
      profiling, which means that anything we do with --enable-profiling, we
      can do using the library/executable profiling individually. Since these
      are always flags for the versions of Cabal library we support, we will
      get order invariance. Historical versions have varied on whether or not
      setting executable profiling implies library profiling, but if we set
      both explicitly this change in behavior doesn't matter.
      
      This patch is difficult to test because the bad profiling flags
      can't be induced on an inplace build.  I tested by hand by building
      a package that depended on 'distributive' by hand.
      
      Fixes #3790.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      bf3d3e68
  5. 18 Sep, 2016 1 commit
  6. 17 Sep, 2016 1 commit
  7. 10 Sep, 2016 3 commits
  8. 06 Sep, 2016 2 commits
  9. 05 Sep, 2016 1 commit
  10. 03 Aug, 2016 1 commit
  11. 23 Jul, 2016 2 commits
  12. 11 Jul, 2016 1 commit
  13. 03 Jul, 2016 1 commit
  14. 02 Jul, 2016 1 commit
  15. 03 Jun, 2016 1 commit
  16. 12 May, 2016 2 commits
  17. 11 May, 2016 3 commits
  18. 06 May, 2016 2 commits
  19. 27 Apr, 2016 1 commit
  20. 26 Apr, 2016 1 commit
  21. 25 Apr, 2016 1 commit
  22. 24 Apr, 2016 2 commits
  23. 17 Mar, 2016 3 commits
    • mightybyte's avatar
      ea01974b
    • Duncan Coutts's avatar
      Correct typos in the cli/config lenses · d3b07300
      Duncan Coutts authored
      Getters and setters really need to match up.
      
      Detected by parse/print round trip QC tests.
      
      (cherry picked from commit a82af445)
      d3b07300
    • Duncan Coutts's avatar
      New module for new style project configuration files · 92f018c2
      Duncan Coutts authored
      This defines the new cabal.project files and introduces the notion of a
      project root (and the logic for finding it). Also has support for
      implicit projects when no cabal.project file is defined.
      
      Supports both reading and writing project files or fragments. The
      printing & parsing round trips correctly. QC tests to follow.
      
      This is a key part of the new nix-local-build branch approach, based
      around projects with clear configuration state held in a project file
      (or extra files).
      
      This has support for file and dirs as packages within a project,
      including by glob. It supports both globs that much match a target, and
      optional globs that are allowed to match nothing. It has partial support
      for local tarball, remote http tarball and remote source repo packages.
      
      (cherry picked from commit 324b3240)
      92f018c2
  24. 28 Feb, 2016 2 commits
  25. 20 Feb, 2016 2 commits
  26. 19 Feb, 2016 1 commit