This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 09 Jul, 2020 1 commit
  2. 27 Jun, 2020 1 commit
  3. 23 Jun, 2020 1 commit
    • Oleg Grenrus's avatar
      Resolve #6288 · e42e5462
      Oleg Grenrus authored
      - Add availableSince to language/extension fields
         - Also autogen-modules once we are on that.
      - Remove default-language check for cabal-version: 3.4
      
      We cannot make the field `uniqueFieldAlaDef`, as that would require
      specifying `default-language` in each subconditional.
      I leave it for https://github.com/haskell/cabal/issues/6925
      
      Note: the default language is whatever is the compiler's default.
      The GHC-8.10 default is its variant of Haskell2010
      with NondecreasingIndentation and without DatatypeContexts
      e42e5462
  4. 28 May, 2020 1 commit
  5. 18 May, 2020 1 commit
    • Oleg Grenrus's avatar
      Make cabal-install compilable with NoImplicitPrelude · d4fd273b
      Oleg Grenrus authored
      I.e. find out where we don't yet
      used `Distribution.Client.Compat.Prelude`.
      
      - If the module is small I added direct `Prelude` imports.
      - Add Exception, deepseq stuff to Cabal Prelude
      - Add Parsec, Pretty and Verbosity to Client Prelude
      - use for, for_, traverse and traverse_ (removes need for Control.Monad)
      d4fd273b
  6. 14 May, 2020 1 commit
  7. 21 Apr, 2020 1 commit
    • Oleg Grenrus's avatar
      Rename Flag types · 7fcb2045
      Oleg Grenrus authored
      There was three Flag's. Now they are
      - `Flag` (cli parsing)
      - `PackageFlag`
      - `CompilerFlag`
      
      This allows wild-imports without `hiding (Flag)`, and make tags
      navigaton work!
      7fcb2045
  8. 09 Apr, 2020 1 commit
  9. 04 Apr, 2020 1 commit
  10. 25 Mar, 2020 1 commit
  11. 16 Mar, 2020 1 commit
    • Oleg Grenrus's avatar
      Disallow wildcards and operators when spec is old · 2afbd0e1
      Oleg Grenrus authored
      Do this already in the Parsec instance parser.
      This allows removing checks from `D.PD.Check`.
      Later this would also allow removing non-relevant
      constructors from `VersionRange`, allowing easier testing.
      
      This change causes 10% slowdown: from
      
      ```
      135768 files processed
        7350 files contained warnings
      113156 files have check warnings
           0 files failed to parse
      
      120.901201s elapsed
      117.640431s elapsed
      119.663620s elapsed
      119.454329s elapsed
      119.785214s elapsed
      ```
      
      to
      
      ```
      135768 files processed
       31912 files contained warnings
      113109 files have check warnings
           0 files failed to parse
      
      130.969593s elapsed
      132.016403s elapsed
      134.214536s elapsed
      128.753382s elapsed
      131.503804s elapsed
      ```
      
      I hope the slowdown is acceptable, and I have an idea which may mitigate
      this. I'll try out it after I done further refactorings.
      
      Note how (parser) warnings grew by a factor. There are plenty of (old)
      files on Hackage, which don't use correct cabal-version.  For that
      reason we only issue warnings, and not fail.  Quirks approach won't
      scale for these. In comparison, there are even more files
      with check warnings
      2afbd0e1
  12. 22 Feb, 2020 1 commit
  13. 23 Dec, 2019 1 commit
  14. 12 Dec, 2019 2 commits
  15. 08 Nov, 2019 1 commit
  16. 02 Nov, 2019 1 commit
  17. 24 Sep, 2019 1 commit
    • Oleg Grenrus's avatar
      cabal check: cpp-options allows only -D and -U options · a2f43f3e
      Oleg Grenrus authored
      Before:
      
      130113 files processed
      7304 have lexer/parser warnings
      332 build impossible
      9742 build warning
      49779 build dist suspicious
      38666 build dist suspicious warning
      11834 build dist inexcusable
      
      After:
      
      130113 files processed
      7304 have lexer/parser warnings
      332 build impossible
      10063 build warning
      49779 build dist suspicious
      38666 build dist suspicious warning
      11834 build dist inexcusable
      
      i.e. 321 build warnings on all Hackage
      
      Examples:
      
      NO_DEBUG_MODE                       -- forgotten -D?
      -traditional                        -- doesn't work, nor needed
      -fallow-undecidable-instances       -- wrong -options?
      -fno-exceptions
      -Wall
      -Werror
      --include=include/config.h          -- doesn't work
      -maes                               -- cpp is not C++ ?
      -mpclmul
      -mssse3
      a2f43f3e
  18. 26 May, 2019 1 commit
  19. 08 May, 2019 1 commit
    • Oleg Grenrus's avatar
      Add autogen-includes field · 7e27ae7c
      Oleg Grenrus authored
      autogen-includes aren't searched nor packages by `sdist`.
      
      This is relatively small code patch, but there are
      - change in file-format
      - short documentation of the field
      - `cabal check`
      - test-suite noise due new field in `BuildInfo`
      7e27ae7c
  20. 27 Dec, 2018 1 commit
    • Oleg Grenrus's avatar
      Change MungedPackageName to be non-opaque type. · 1a6e2732
      Oleg Grenrus authored
      i.e. strict pair of PackageName and LibraryName
      the legacy conversion is done via Pretty/Parsec instances.
      
      Change of `Maybe UnqualComponentName` to `LibraryName` caused
      a cascade of other changes, but they all seem to be good changes.
      In the sense, they made many comments not-so-necessary.
      
      Add Distribution.Types.PackageName.Magic for special package names.
      
      Updates in cabal-install are mostly trivial type error driven changes.
      I removed few (deprecated) `Text` instances: `MungedPackageId`,
      `MungedPackageName` and `LibraryName`. Turns out only a `Pretty`
      part was used, so it was easy to update. Note: `LibraryName`
      doesn't have `Pretty` / `Parsec` instances as it's either parsed/printed
      as a `ComponentName` or `UnqualComponentName`, never stand alone.
      1a6e2732
  21. 30 Nov, 2018 1 commit
  22. 25 Nov, 2018 1 commit
  23. 24 Nov, 2018 5 commits
  24. 03 Nov, 2018 1 commit
    • Francesco Gazzetta's avatar
      Multiple libraries (allow depending on sublibs) · e2194d25
      Francesco Gazzetta authored
      Create a new syntax for depending on any library of any package.
      The syntax is
      
          build-depends: pkgname:{pkgname, sublibname} -any
      
      where the second `pkgname` specifies a dependency on the main unnamed
      library.
      
      Closes #4206.
      e2194d25
  25. 01 Oct, 2018 1 commit
    • Nikolai Obedin's avatar
      Track the exact source of ghc-*-options related warnings · 3c1502bb
      Nikolai Obedin authored
      Previously, when running `cabal check` all the various ghc-*-options
      flags were merged together, thus losing the information about the exact
      place of the warning. This PR implements separate checking of
      ghc-*-options, which allows us to give users more precise warnings.
      
      Fixes #5342
      3c1502bb
  26. 09 Jul, 2018 4 commits
  27. 08 Jul, 2018 1 commit
    • quasicomputational's avatar
      Make Setup.hs configure more CWD-independent. · a31ab06a
      quasicomputational authored
      Previously, we were checking the package with a hard-coded root
      directory of ".". This was not a problem before, but with #5372 we
      have started to expand globs while checking packages, which breaks if
      the CWD is not the directory containing the `.cabal` file and causes
      snowleopard/hadrian#634.
      
      Luckily, this is an easy fix: the correct directory is easy to
      determine. Writing a test and making sure it's tickling the failing
      case took longer than writing the fix!
      
      "." is hard-coded as the root directory passed to `checkPackageFiles`
      in a few other places, but those are (a) non-trivial to test, and (b)
      already in places that have other assumptions about their CWD, so I
      have simply documented the CWD requirement for those.
      a31ab06a
  28. 17 Jun, 2018 1 commit
  29. 16 Jun, 2018 1 commit
    • quasicomputational's avatar
      Allow globs to match against a suffix of a file's extensions · e4294f31
      quasicomputational authored
      This has the effect of allowing a glob `*.html` to match the file
      `foo.en.html`. For compatibility, this is only allowed with
      `cabal-version: 3.0` or later; for earlier spec versions, a warning
      will be generated by `cabal check` if there are files affected by this
      change in behaviour.
      
      Fixes #5057. Fixes #784. Closes #5061.
      e4294f31
  30. 25 May, 2018 2 commits
  31. 08 May, 2018 1 commit
    • quasicomputational's avatar
      Allow ** wildcards in globs. · 5e83ef26
      quasicomputational authored
      These are inspired by a plan described in a comment in #2522, and only
      implement a quite limited form of recursive matching: only a single **
      wildcard is accepted, it must be the final directory, and, if a **
      wildcard is present, the file name must include a wildcard.
      
      Or-patterns are not implemented, for simplicity.
      
      Closes #3178, #2030.
      5e83ef26