From b8290c30e201bc0f85997b85ac3223023c181a6b Mon Sep 17 00:00:00 2001 From: Alexey Khudyakov Date: Sun, 4 Oct 2026 20:29:06 +0300 Subject: [PATCH 1/2] Avoid workaround for inspection test failures With GHC 9.14 inspection tests started failing with found IP dictionary because of HasCallStack constraint. Maybe this will be in future version of inspection-testing but so far we can ignore IP dictionary explicitly. See https://github.com/nomeata/inspection-testing/issues/95 for discussion --- vector/tests-inspect/Inspect/DerivingVia.hs | 9 +++++---- vector/tests-inspect/Test/InspectExtra.hs | 7 ++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/vector/tests-inspect/Inspect/DerivingVia.hs b/vector/tests-inspect/Inspect/DerivingVia.hs index 5cc0ef48..ffad28f9 100644 --- a/vector/tests-inspect/Inspect/DerivingVia.hs +++ b/vector/tests-inspect/Inspect/DerivingVia.hs @@ -19,6 +19,7 @@ import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU import GHC.Generics (Generic) +import Test.InspectExtra import Inspect.DerivingVia.OtherFoo @@ -64,12 +65,12 @@ pipeline_OtherFoo n -- and even mentions of Foo data type. tests :: TestTree tests = testGroup "iso-deriving" - [ $(inspectObligations [(`doesNotUse` 'Foo), hasNoGenerics, hasNoTypeClasses] + [ $(inspectObligations [(`doesNotUse` 'Foo), hasNoGenerics, hasNoTypeClasses'] 'map_Foo) - , $(inspectObligations [(`doesNotUse` 'OtherFoo), hasNoGenerics, hasNoTypeClasses] + , $(inspectObligations [(`doesNotUse` 'OtherFoo), hasNoGenerics, hasNoTypeClasses'] 'pipeline_Foo) - , $(inspectObligations [(`doesNotUse` 'OtherFoo), hasNoGenerics, hasNoTypeClasses] + , $(inspectObligations [(`doesNotUse` 'OtherFoo), hasNoGenerics, hasNoTypeClasses'] 'map_OtherFoo) - , $(inspectObligations [(`doesNotUse` 'OtherFoo), hasNoGenerics, hasNoTypeClasses] + , $(inspectObligations [(`doesNotUse` 'OtherFoo), hasNoGenerics, hasNoTypeClasses'] 'pipeline_OtherFoo) ] diff --git a/vector/tests-inspect/Test/InspectExtra.hs b/vector/tests-inspect/Test/InspectExtra.hs index ce73e9a1..deb4f69c 100644 --- a/vector/tests-inspect/Test/InspectExtra.hs +++ b/vector/tests-inspect/Test/InspectExtra.hs @@ -5,11 +5,13 @@ module Test.InspectExtra ( noStream , inspectFusion , inspectClassyFusion + , hasNoTypeClasses' , module Test.Tasty.Inspection ) where import Language.Haskell.TH (Name,Q,Exp) import Test.Tasty.Inspection +import GHC.Base (IP) import qualified Data.Stream.Monadic as S @@ -19,8 +21,11 @@ noStream = (`doesNotUseAnyOf` ['S.Yield, 'S.Skip, 'S.Done]) inspectFusion :: Name -> Q Exp inspectFusion = inspectObligations [ noStream - , hasNoTypeClasses + , hasNoTypeClasses' ] inspectClassyFusion :: Name -> Q Exp inspectClassyFusion = inspectObligations [ noStream ] + +hasNoTypeClasses' :: Name -> Obligation +hasNoTypeClasses' e = hasNoTypeClassesExcept e [''IP] From 1cd331b527ff59a2295b8f3f1829e3cddb787191 Mon Sep 17 00:00:00 2001 From: Alexey Khudyakov Date: Sun, 4 Oct 2026 20:35:34 +0300 Subject: [PATCH 2/2] Add GHC 9.14 to CI --- .github/workflows/ci.yml | 49 +++++++++++++++++++++------------------- vector/vector.cabal | 1 + 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1acb224f..37a74ff3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,35 +18,38 @@ jobs: matrix: include: # Linux - - { cabal: "3.14", os: ubuntu-24.04, ghc: "8.8.4" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "8.10.7" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.0.2" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.2.8" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.4.8" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.6.7" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.6.7", + - { cabal: "3.16", os: ubuntu-24.04, ghc: "8.8.4" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "8.10.7" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.0.2" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.2.8" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.4.8" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.6.7" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.6.7", flags: "-fUnsafeChecks -fInternalChecks" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.8.4" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.10.2" } - - { cabal: "3.14", os: ubuntu-24.04, ghc: "9.12.2" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.8.4" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.10.2" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.12.2" } + - { cabal: "3.16", os: ubuntu-24.04, ghc: "9.14.1" } # Win - - { cabal: "3.14", os: windows-latest, ghc: "9.6.7" } - - { cabal: "3.14", os: windows-latest, ghc: "9.8.4" } - - { cabal: "3.14", os: windows-latest, ghc: "9.10.2" } - - { cabal: "3.14", os: windows-latest, ghc: "9.12.2" } + - { cabal: "3.16", os: windows-latest, ghc: "9.6.7" } + - { cabal: "3.16", os: windows-latest, ghc: "9.8.4" } + - { cabal: "3.16", os: windows-latest, ghc: "9.10.2" } + - { cabal: "3.16", os: windows-latest, ghc: "9.12.2" } + - { cabal: "3.16", os: windows-latest, ghc: "9.14.1" } # MacOS # # Fails with: # > : can't load framework: Security (not found) - # - { cabal: "3.14", os: macOS-15-intel, ghc: "8.8.4" } - - { cabal: "3.14", os: macOS-15-intel, ghc: "8.10.7" } - - { cabal: "3.14", os: macOS-15-intel, ghc: "9.0.2" } - - { cabal: "3.14", os: macOS-latest, ghc: "9.2.8" } - - { cabal: "3.14", os: macOS-latest, ghc: "9.4.8" } - - { cabal: "3.14", os: macOS-latest, ghc: "9.6.7" } - - { cabal: "3.14", os: macOS-latest, ghc: "9.8.4" } - - { cabal: "3.14", os: macOS-latest, ghc: "9.10.2" } - - { cabal: "3.14", os: macOS-latest, ghc: "9.12.2" } + # - { cabal: "3.16", os: macOS-15-intel, ghc: "8.8.4" } + - { cabal: "3.16", os: macOS-15-intel, ghc: "8.10.7" } + - { cabal: "3.16", os: macOS-15-intel, ghc: "9.0.2" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.2.8" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.4.8" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.6.7" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.8.4" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.10.2" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.12.2" } + - { cabal: "3.16", os: macOS-latest, ghc: "9.14.1" } fail-fast: false steps: diff --git a/vector/vector.cabal b/vector/vector.cabal index cd9e3956..a2031ad9 100644 --- a/vector/vector.cabal +++ b/vector/vector.cabal @@ -52,6 +52,7 @@ Tested-With: GHC == 9.8.4 GHC == 9.10.2 GHC == 9.12.2 + GHC == 9.14.1 Extra-doc-files: changelog.md