extensions 0.1.0.0 → 0.1.0.1
raw patch · 3 files changed
+61/−7 lines, 3 filesdep ~Cabaldep ~basedep ~bytestringnew-uploaderPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: Cabal, base, bytestring, ghc-boot-th, hedgehog, hspec-hedgehog, text
API changes (from Hackage documentation)
Files
- CHANGELOG.md +10/−0
- extensions.cabal +18/−7
- src/Extensions/Cabal.hs +33/−0
CHANGELOG.md view
@@ -3,6 +3,16 @@ `extensions` uses [PVP Versioning][1]. The changelog is available [on GitHub][2]. +## 0.1.0.1 — Oct 15, 2023++* Add support for GHC-9.6++* Add support for `Cabal` `3.10` and remove support for all other+ `Cabal` versions. This seems like the sensible thing to do, because+ the list of extensions in the `Cabal` package changes every major+ version. If this causes you problems please [file an+ issue](https://github.com/kowainik/extensions/issues/new) and we+ will address it. ## 0.1.0.0 — Oct 14, 2022
extensions.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: extensions-version: 0.1.0.0+version: 0.1.0.1 synopsis: Parse Haskell Language Extensions description: Parse Haskell Language Extensions. See [README.md](https://github.com/kowainik/extensions#extensions) for more details.@@ -20,6 +20,7 @@ GHC == 9.0.2 GHC == 9.2.4 GHC == 9.4.2+ GHC == 9.6.3 flag executable description: Build the extensions executable@@ -31,13 +32,14 @@ location: https://github.com/kowainik/extensions.git common common-options- build-depends: base >= 4.13.0.0 && < 4.18+ build-depends: base >= 4.13.0.0 && < 4.20 ghc-options: -Wall -Wcompat -Widentities -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Werror=incomplete-patterns if impl(ghc >= 8.0) ghc-options: -Wredundant-constraints if impl(ghc >= 8.2)@@ -80,14 +82,23 @@ Extensions.Package Extensions.Types - build-depends: bytestring >= 0.10 && < 0.12- , Cabal >= 3.0 && < 3.9+ build-depends: bytestring >= 0.10 && < 0.13+ -- We need to pin a single major version of+ -- Cabal here because the main reason we use+ -- Cabal is for its list of extensions. Later+ -- versions have strictly more extensions, and+ -- we'll have missing patterns if we try to+ -- support more than one major version. If+ -- this causes problems in practice let's+ -- revisit this decision and come up with+ -- another approach.+ , Cabal ^>= 3.10 , containers ^>= 0.6 , directory ^>= 1.3 , filepath ^>= 1.4- , ghc-boot-th >= 8.8.1 && < 9.5+ , ghc-boot-th >= 8.8.1 && < 9.9 , parsec ^>= 3.1- , text >= 1.2.3 && < 2.1+ , text >= 1.2.3 && < 2.2 executable extensions import: common-options@@ -118,7 +129,7 @@ , bytestring , containers , ghc-boot-th- , hedgehog >= 1.0 && < 1.3+ , hedgehog >= 1.0 && < 1.5 , hspec , hspec-hedgehog ^>= 0.0.1 , text
src/Extensions/Cabal.hs view
@@ -351,22 +351,55 @@ Cabal.ImportQualifiedPost -> Just ImportQualifiedPost Cabal.StandaloneKindSignatures -> Just StandaloneKindSignatures Cabal.UnliftedNewtypes -> Just UnliftedNewtypes+#else+ Cabal.CUSKs -> Nothing+ Cabal.ImportQualifiedPost -> Nothing+ Cabal.StandaloneKindSignatures -> Nothing+ Cabal.UnliftedNewtypes -> Nothing #endif #if __GLASGOW_HASKELL__ >= 900 Cabal.LexicalNegation -> Just LexicalNegation Cabal.QualifiedDo -> Just QualifiedDo Cabal.LinearTypes -> Just LinearTypes+#else+ Cabal.LexicalNegation -> Nothing+ Cabal.QualifiedDo -> Nothing+ Cabal.LinearTypes -> Nothing #endif #if __GLASGOW_HASKELL__ >= 902 Cabal.FieldSelectors -> Just FieldSelectors Cabal.OverloadedRecordDot -> Just OverloadedRecordDot Cabal.UnliftedDatatypes -> Just UnliftedDatatypes+#else+ Cabal.FieldSelectors -> Nothing+ Cabal.OverloadedRecordDot -> Nothing+ Cabal.UnliftedDatatypes -> Nothing #endif #if __GLASGOW_HASKELL__ >= 904 Cabal.OverloadedRecordUpdate -> Just OverloadedRecordUpdate Cabal.AlternativeLayoutRule -> Just AlternativeLayoutRule Cabal.AlternativeLayoutRuleTransitional -> Just AlternativeLayoutRuleTransitional Cabal.RelaxedLayout -> Just RelaxedLayout+#else+ Cabal.OverloadedRecordUpdate -> Nothing+ Cabal.AlternativeLayoutRule -> Nothing+ Cabal.AlternativeLayoutRuleTransitional -> Nothing+ Cabal.RelaxedLayout -> Nothing+#endif+#if __GLASGOW_HASKELL__ >= 906+ Cabal.DeepSubsumption -> Just DeepSubsumption+ Cabal.TypeData -> Just TypeData+#else+ Cabal.DeepSubsumption -> Nothing+ Cabal.TypeData -> Nothing+#endif+#if __GLASGOW_HASKELL__ >= 910+ -- This branch cannot be satisfied yet but we're including it so+ -- we don't forget to enablel RequiredTypeArguments when it+ -- becomes available.+ Cabal.RequiredTypeArguments -> Just RequiredTypeArguments+#else+ Cabal.RequiredTypeArguments -> Nothing #endif -- GHC extensions, parsed by both Cabal and GHC, but don't have an Extension constructor Cabal.Safe -> Nothing