
#14558: Unable to parse integer-gmp's Cabal file -------------------------------------+------------------------------------- Reporter: taylorfausak | Owner: hvr Type: task | Status: new Priority: normal | Milestone: Component: Core Libraries | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Phyx-): Replying to [comment:27 svenpanne]:
What is that "clear benefit"? It surely can't be saving roughly ten keystrokes. As I understand it, it is just (IMHO superfluous) syntactic sugar. If it's not, there should be a big announcement with some clarifications and the underlying rationale somewhere on the Haskell mailing lists. The cabal file syntax is at the core of the Haskell ecosystem, so everybody involved should have a clear understanding of its semantics.
= intersected with an automatically inferred major upper bound. For example, foo ^>= 1.3.1 is equivalent to foo >= 1.3.1 && < 1.4. Besides being a convenient syntax sugar, ^>= allows to distinguish “strong” and “weak” upper bounds: foo >= 1.3.1 && < 1.4 means “I know for sure that my
It was announced, about 3 months ago, http://coldwa.st/e/blog/2017-09-09-Cabal-2-0.html along with the future intention of this syntax and how it differs from the strong bounded versions: New caret-style version range operator ^>= (#3705) that is equivalent to package doesn’t work with foo-1.4”, while foo ^>= 1.3.1 means “I don’t know whether foo-1.4, which is not out yet, will break my package, but I want to be cautious and follow PVP”. In the future, this feature will allow to implement automatic version bounds relaxation in a formally sound way (work on this front is progressing on matrix.hackage.haskell.org). See this section of the manual for more information. It was designed and approved in public https://github.com/haskell/cabal/pull/3705 it was publicly posted on reddit https://www.reddit.com/r/haskell/comments/6z2gja/whats_new_in_cabalcabalinst... And the migration plan was outlined https://github.com/haskell/cabal/issues/4899. Could it be that perhaps a lot of people here don't read Cabal release information? Or follow Cabal development? At least taylorfausak can't possibly be surprised by it because he was even fighting with hvr about it in the reddit thread. FYI, it's also in the package changelog https://www.haskell.org/cabal/release/cabal-2.0.1.1/changelog which is linked to from https://www.haskell.org/cabal/download.html . The post never made it to the homepage due to some bikeshedding https://github.com/haskell/cabal-website/issues/3. It was also announced on twitter https://twitter.com/refold/status/906547449329831936 So I fail to see how any of this could have come at such a big surprise to anyone. The fact is, the change was not done in secret, the feature not developed in secret. The change was communicated well ahead of time and on channels that lots of you frequent. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14558#comment:28 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler