Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. Nov 18, 2016
  2. Nov 17, 2016
  3. Nov 16, 2016
  4. Nov 15, 2016
    • Herbert Valerio Riedel's avatar
      Add `--index-state` support to `cabal get` · f10b7a28
      Herbert Valerio Riedel authored
      With this `cabal get` gains the ability to
      
       a) unpack and update with the .cabal revision which was
          active at the given index-state, as well as
      
       b) allow to unpack the most recent package version
          (while satisfying imposed version constraints) as of
          the given index-state
      
      The `--index-state` flag can be combined with `--pristine` if only b) is
      desired.
      f10b7a28
  5. Nov 14, 2016
  6. Nov 11, 2016
  7. Nov 09, 2016
  8. Nov 08, 2016
  9. Nov 06, 2016
    • Herbert Valerio Riedel's avatar
      Add more fields to plan.json schema · d2f7845d
      Herbert Valerio Riedel authored
      This adds the following new fields:
      
       - `.compiler-id`
       - `.os`
       - `.arch`
       - `.install-plan[].pkg-name`
       - `.install-plan[].pkg-version`
       - `.install-plan[].pkg-src-sha256`
      
      Having separate "pkg-{name,version}" fields is desirable because the "id"-field
      is actually a UnitId which is supposed to be an opaque id which may not
      always be easily convertible into a PackageId via string operations.
      
      The "pkg-src-sha256" is generally useful to uniquely identify a
      source-tarball (when the package-id is not exact enough).
      
      Finally, the compiler-id/os/arch information is needed to determine the
      values of the respective impl()/os()/arch() predicates used in
      conditionals in .cabal files.
      
      Here's an example demonstrating the new fields:
      
          {
            "cabal-version": "1.25.0.0",
            "cabal-lib-version": "1.25.0.0",
            "compiler-id": "ghc-8.0.1",
            "os": "linux",
            "arch": "x86_64",
            "install-plan": [
      	{
      	  "type": "configured",
      	  "id": "StateVar-1.1.0.4-048d5d25d5813f17f152f9e766fe3ea0ef6f5317439aa115f3fc24e53a0e3c17",
      	  "pkg-name": "StateVar",
      	  "pkg-version": "1.1.0.4",
      	  "flags": {},
      	  "style": "global",
      	  "pkg-src-sha256": "7ad68decb5c9a76f83c95ece5fa13d1b053e4fb1079bd2d3538f6b05014dffb7",
      	  "depends": [
      	    "base-4.9.0.0",
      	    "stm-2.4.4.1-2c7789312d2396a91db173e1ae8cf3a9af3dd18de42bb1021c4978fbab49c191",
      	    "transformers-0.5.2.0"
      	  ],
      	  "exe-depends": [],
      	  "component-name": "lib"
      	},
              {
                "type": "pre-existing",
                "id": "rts",
                "pkg-name": "rts",
                "pkg-version": "1.0",
                "depends": []
              },
      	{
      	  "type": "configured",
      	  "id": "hackage-matrix-builder3-0.3-inplace-matrix-lib",
      	  "pkg-name": "hackage-matrix-builder3",
      	  "pkg-version": "0.3",
      	  "component-name": "lib:matrix-lib"
      	  ...
      	}
      	...
          }
      d2f7845d
    • Edward Z. Yang's avatar
      Improve error output when package fails to build. · da9c0526
      Edward Z. Yang authored
      
      New error message is:
      
      cabal: Failed to build p-1.0 (which is required by exe:e4 from p-1.0, exe:e3
      from p-1.0 and others).
      
      Fixes #4081.
      
      TODO: Use these utility functions in other appropriate places.
      
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      da9c0526
  10. Nov 05, 2016
  11. Nov 03, 2016
    • Mikhail Glushenkov's avatar
      Formatting. · 3d6dbe69
      Mikhail Glushenkov authored
      Before:
      
          cabal new-build               Build the package in the current
        directory or all packages in the project
          cabal new-build pkgname       Build the package named pkgname in the
        project
          cabal new-build cname       Build the component named cname in the
        project
          cabal new-build pkgname:cname       Build the component named cname
        in the package pkgname
      
      After:
      
          cabal new-build               Build the package in the current
        directory or all packages in the project
          cabal new-build pkgname       Build the package named pkgname in the
        project
          cabal new-build cname         Build the component named cname in the
        project
          cabal new-build pkgname:cname Build the component named cname in the
        package pkgname
      3d6dbe69
  12. Nov 02, 2016
    • Mikhail Glushenkov's avatar
      new-configure: Select the same plan subset as new-build. · 46d1b0c2
      Mikhail Glushenkov authored
      Before:
      
      $ cabal new-configure
      Resolving dependencies...
      In order, the following would be built (use -v for more details):
       - Crypto-4.2.5.1 (exe:SymmetricTest) (requires build)
       - Crypto-4.2.5.1 (exe:WordListTest) (requires build)
       - Crypto-4.2.5.1 (exe:SHA1Test) (requires build)
       - Crypto-4.2.5.1 (exe:QuickTest) (requires build)
       - Crypto-4.2.5.1 (exe:RSATest) (requires build)
       - Crypto-4.2.5.1 (exe:HMACTest) (requires build)
       - HaXml-1.25.3 (exe:Xtract) (requires build)
       - HaXml-1.25.3 (exe:Validate) (requires build)
       - HaXml-1.25.3 (exe:MkOneOf) (requires build)
       - HaXml-1.25.3 (exe:CanonicaliseLazy) (requires build)
       - HaXml-1.25.3 (exe:Canonicalise) (requires build)
       - HaXml-1.25.3 (exe:XsdToHaskell) (requires build)
       - HaXml-1.25.3 (exe:DtdToHaskell) (requires build)
       - HaXml-1.25.3 (exe:FpMLToHaskell) (requires build)
       - aeson-pretty-0.8.1 (exe:aeson-pretty) (requires build)
       - cpphs-1.20.2 (exe:cpphs) (requires build)
       - hS3-0.5.9 (exe:hs3) (requires build)
       - yaml-0.8.18 (exe:json2yaml) (requires build)
       - yaml-0.8.18 (exe:yaml2json) (requires build)
      
      $ cabal new-build
      Resolving dependencies...
      Up to date
      
      After:
      
      $ cabal new-configure
      Resolving dependencies...
      Up to date
      
      $ cabal new-build
      Resolving dependencies...
      Up to date
      46d1b0c2
    • Mikhail Glushenkov's avatar
      Removed unneeded LANGUAGE pragma. · a078b55e
      Mikhail Glushenkov authored
      a078b55e
    • Mikhail Glushenkov's avatar
      Whitespace. · e815863f
      Mikhail Glushenkov authored
      e815863f
  13. Nov 01, 2016
  14. Oct 31, 2016
  15. Oct 29, 2016
    • Jason Dagit's avatar
      Require Cabal >= 1.20 in new-build. (#4051) · 80de7ff4
      Jason Dagit authored and Edward Z. Yang's avatar Edward Z. Yang committed
      Constrain Cabal >= 1.20 in all new-build install plans. This solves problems where Cabal 1.18 don't have a good enough API to let us handle the new-style store (we need --dependency flags.)
      
      In the future we plan to relax this to only Setup.hs dependencies.
      
      Fixes issue #3932.
      80de7ff4
  16. Oct 28, 2016
    • Edsko de Vries's avatar
      Add support for foreign libraries. · 382143aa
      Edsko de Vries authored
      A stanza for a platform library looks something like
      
          platform-library test-package
            type:                native-shared
      
            if os(Windows)
              options: standalone
              mod-def-file: TestPackage.def
      
            other-modules:       MyPlatformLib.Hello
                                 MyPlatformLib.SomeBindings
            build-depends:       base >=4.7 && <4.9
            hs-source-dirs:      src
            c-sources:           csrc/MyPlatformLibWrapper.c
            default-language:    Haskell2010
      
      where native-shared means that we want to build a native shared library
      (.so on Linux, .dylib on OSX, .dll on Windows). The parser also
      recognizes native-static but this is not currently supported anywhere.
      The standalone option means that the we merge all library dependencies
      into the dynamic library (i.e., ghc options -shared -static), rather
      than make the created dynamic library just record its dependencies (ghc
      options -shared -dynamic); it is currently compulsory on Windows and
      unsupported anywhere else. The mod-def-file can be used to specify a
      module definition file, and is also Windows specific.
      
      There is a bit of refactoring in Build: gbuild is the old buildOrReplExe
      and now deals with both executables and platform libraries.
      382143aa
  17. Oct 26, 2016
  18. Oct 25, 2016
    • Edward Z. Yang's avatar
      Drop version check when resolving package names. · af24cefe
      Edward Z. Yang authored
      
      In #4017, hvr reported that when he used --allow-older/--allow-newer,
      there was an assert failure in toConfiguredComponent.  Indeed
      the problem was that toConfiguredComponent was testing version
      ranges of build-depends to determine which package to select, but
      there was no satisfying one (since the build-depends field had
      not been updated.)
      
      After thinking about this for a bit, it seemed a bit bogus for
      us to be doing another version check at this late phase; we
      already picked dependencies earlier in the configuration process.
      So I decided to drop it.
      
      To drop it, however, I needed to remove support for a feature (discussed
      in #4020), which uses version ranges to disambiguate whether or not a
      dependency is on an external package or an internal package.  This
      feature doesn't seem to be very useful.  If someone asks, I'll
      check on Hackage to see if anyone is using it.
      
      Also added some useful extra debug info.
      
      Fixes #4020 and #4017
      
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      af24cefe
  19. Oct 23, 2016
  20. Oct 22, 2016
Loading