From 31baca33c331c41a182d945bad282fc3f3e508dc Mon Sep 17 00:00:00 2001 From: Phil de Joux Date: Wed, 18 Mar 2026 11:47:39 -0400 Subject: [PATCH 1/3] Add ghc-9.14 language extensions --- Cabal-syntax/src/Language/Haskell/Extension.hs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Cabal-syntax/src/Language/Haskell/Extension.hs b/Cabal-syntax/src/Language/Haskell/Extension.hs index 26cd45edac8..dbc9cc2ffd7 100644 --- a/Cabal-syntax/src/Language/Haskell/Extension.hs +++ b/Cabal-syntax/src/Language/Haskell/Extension.hs @@ -556,6 +556,12 @@ data KnownExtension | -- | Allow use of or-pattern syntax, condensing multiple patterns -- into a single one. OrPatterns + | -- | Along with 'ImplicitStagePersistence', this gives fine-grained control + -- over which modules are needed at each stage of execution. + ExplicitLevelImports + | -- | Allow identifiers to be used at different levels than where they’re + -- defined, using path-based persistence. + ImplicitStagePersistence deriving (Generic, Show, Read, Eq, Ord, Enum, Bounded, Data) instance Binary KnownExtension From 0b55c2344cdd67e56b33c607ada3233e5a32255d Mon Sep 17 00:00:00 2001 From: Phil de Joux Date: Thu, 19 Mar 2026 07:44:56 -0400 Subject: [PATCH 2/3] Add to vim syntax and sort --- editors/vim/syntax/cabal.vim | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/editors/vim/syntax/cabal.vim b/editors/vim/syntax/cabal.vim index 3d2600253e5..c7694c65cb3 100644 --- a/editors/vim/syntax/cabal.vim +++ b/editors/vim/syntax/cabal.vim @@ -162,8 +162,8 @@ syn keyword cabalExtension contained \ ConstraintKinds \ DataKinds \ DatatypeContexts - \ DefaultSignatures \ DeepSubsumption + \ DefaultSignatures \ DeriveAnyClass \ DeriveDataTypeable \ DeriveFoldable @@ -182,6 +182,7 @@ syn keyword cabalExtension contained \ EmptyDataDeriving \ ExistentialQuantification \ ExplicitForAll + \ ExplicitLevelImports \ ExplicitNamespaces \ ExtendedDefaultRules \ ExtendedLiterals @@ -201,6 +202,7 @@ syn keyword cabalExtension contained \ HexFloatLiterals \ ImplicitParams \ ImplicitPrelude + \ ImplicitStagePersistence \ ImportQualifiedPost \ ImpredicativeTypes \ IncoherentInstances @@ -213,16 +215,15 @@ syn keyword cabalExtension contained \ LiberalTypeSynonyms \ LinearTypes \ ListTuplePuns - \ RequiredTypeArguments \ MagicHash \ MonadComprehensions \ MonadFailDesugaring \ MonoLocalBinds \ MonoPatBinds \ MonomorphismRestriction - \ MultilineStrings \ MultiParamTypeClasses \ MultiWayIf + \ MultilineStrings \ NPlusKPatterns \ NamedDefaults \ NamedFieldPuns @@ -260,6 +261,7 @@ syn keyword cabalExtension contained \ RecursiveDo \ RegularPatterns \ RelaxedPolyRec + \ RequiredTypeArguments \ RestrictedTypeSynonyms \ RoleAnnotations \ SafeImports @@ -307,8 +309,8 @@ syn keyword cabalExtension contained \ NoConstraintKinds \ NoDataKinds \ NoDatatypeContexts - \ NoDefaultSignatures \ NoDeepSubsumption + \ NoDefaultSignatures \ NoDeriveAnyClass \ NoDeriveDataTypeable \ NoDeriveFoldable @@ -327,6 +329,7 @@ syn keyword cabalExtension contained \ NoEmptyDataDeriving \ NoExistentialQuantification \ NoExplicitForAll + \ NoExplicitLevelImports \ NoExplicitNamespaces \ NoExtendedDefaultRules \ NoExtendedLiterals @@ -346,6 +349,7 @@ syn keyword cabalExtension contained \ NoHexFloatLiterals \ NoImplicitParams \ NoImplicitPrelude + \ NoImplicitStagePersistence \ NoImportQualifiedPost \ NoImpredicativeTypes \ NoIncoherentInstances @@ -357,16 +361,15 @@ syn keyword cabalExtension contained \ NoLexicalNegation \ NoLiberalTypeSynonyms \ NoLinearTypes - \ NoRequiredTypeArguments \ NoMagicHash \ NoMonadComprehensions \ NoMonadFailDesugaring \ NoMonoLocalBinds \ NoMonoPatBinds \ NoMonomorphismRestriction - \ NoMultilineStrings \ NoMultiParamTypeClasses \ NoMultiWayIf + \ NoMultilineStrings \ NoNPlusKPatterns \ NoNamedDefaults \ NoNamedFieldPuns @@ -377,12 +380,12 @@ syn keyword cabalExtension contained \ NoNullaryTypeClasses \ NoNumDecimals \ NoNumericUnderscores + \ NoOrPatterns \ NoOverlappingInstances \ NoOverloadedLabels \ NoOverloadedLists \ NoOverloadedRecordDot \ NoOverloadedStrings - \ NoOrPatterns \ NoPackageImports \ NoParallelArrays \ NoParallelListComp @@ -404,6 +407,7 @@ syn keyword cabalExtension contained \ NoRecursiveDo \ NoRegularPatterns \ NoRelaxedPolyRec + \ NoRequiredTypeArguments \ NoRestrictedTypeSynonyms \ NoRoleAnnotations \ NoSafeImports From 84cd4c37aa078e410aa512a9848d80d8b61acb8d Mon Sep 17 00:00:00 2001 From: Phil de Joux Date: Thu, 19 Mar 2026 07:48:29 -0400 Subject: [PATCH 3/3] Update md5 check expectation --- Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs b/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs index eab77f27433..0d14150d345 100644 --- a/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs +++ b/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs @@ -29,8 +29,8 @@ md5Check proxy md5Int = structureHash proxy @?= md5FromInteger md5Int md5CheckGenericPackageDescription :: Proxy GenericPackageDescription -> Assertion md5CheckGenericPackageDescription proxy = md5Check proxy - 0xc039c6741dead5203ad2b33bd3bf4dc8 + 0xd355021433c2000dbf333e4efd4a800d md5CheckLocalBuildInfo :: Proxy LocalBuildInfo -> Assertion md5CheckLocalBuildInfo proxy = md5Check proxy - 0xe38f63a643a5782e0ee7d16453796142 + 0x78979713e08179ab070d6ab10cd5ef6c