From a4712068a53661eb6d207763319f41f6fe51d04c Mon Sep 17 00:00:00 2001 From: Claudio Bley Date: Tue, 2 Jan 2024 12:48:37 +0100 Subject: [PATCH 1/3] Support GHC 9.6 --- .bazelrc | 2 ++ .github/workflows/workflow.yaml | 5 ++- snapshot-9.6.2.json | 60 +++++++++++++++++++++++++++++++++ snapshot-9.6.2.yaml | 1 + 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 snapshot-9.6.2.json create mode 100644 snapshot-9.6.2.yaml diff --git a/.bazelrc b/.bazelrc index 7ca729f..918319d 100644 --- a/.bazelrc +++ b/.bazelrc @@ -17,6 +17,8 @@ common:ghc_9_2_7 --repo_env=GHC_VERSION=9.2.7 common:ghc_9_4_5 --repo_env=GHC_VERSION=9.4.5 +common:ghc_9_6_2 --repo_env=GHC_VERSION=9.6.2 + common:bzlmod --enable_bzlmod # Try to load a file that includes the remote cache authentication flag diff --git a/.github/workflows/workflow.yaml b/.github/workflows/workflow.yaml index 32f9151..9f9e033 100644 --- a/.github/workflows/workflow.yaml +++ b/.github/workflows/workflow.yaml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - ghc-version: [ghc_8_10_7, ghc_9_0_2, ghc_9_2_7, ghc_9_4_5] + ghc-version: [ghc_8_10_7, ghc_9_0_2, ghc_9_2_7, ghc_9_4_5, ghc_9_6_2] enable-bzlmod: [false] include: - os: ubuntu-latest @@ -31,6 +31,9 @@ jobs: - os: ubuntu-latest ghc-version: ghc_9_4_5 enable-bzlmod: true + - os: ubuntu-latest + ghc-version: ghc_9_6_2 + enable-bzlmod: true runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/snapshot-9.6.2.json b/snapshot-9.6.2.json new file mode 100644 index 0000000..dfe17b7 --- /dev/null +++ b/snapshot-9.6.2.json @@ -0,0 +1,60 @@ +{ + "__GENERATED_FILE_DO_NOT_MODIFY_MANUALLY": -1905886853, + "all-cabal-hashes": "https://raw.githubusercontent.com/commercialhaskell/all-cabal-hashes/d77837f979c4b15fe0eb25cdf8a0463773434c9d", + "resolved": { + "Cabal": {"dependencies":[],"location":{"type":"core"},"name":"Cabal","version":"3.10.1.0"}, + "Glob": {"dependencies":["base","containers","directory","dlist","filepath","transformers","transformers-compat"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/Glob-0.10.2/Glob-0.10.2.tar.gz"},"name":"Glob","pinned":{"cabal-sha256":"dd2ddbecae8f84e8f4cacb5b856901a19c25ceaa11f2525d3ee88d034acb0081","sha256":"6af672ac8427d35cbd42d64142dc288feab266f0be92dae3c696e8860d8173c0","url":["https://hackage.haskell.org/package/Glob-0.10.2/Glob-0.10.2.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/Glob-0.10.2.tar.gz"]},"version":"0.10.2"}, + "HUnit": {"dependencies":["base","call-stack","deepseq"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/HUnit-1.6.2.0/HUnit-1.6.2.0.tar.gz"},"name":"HUnit","pinned":{"cabal-sha256":"1a79174e8af616117ad39464cac9de205ca923da6582825e97c10786fda933a4","sha256":"b0b7538871ffc058486fc00740886d2f3172f8fa6869936bfe83a5e10bd744ab","url":["https://hackage.haskell.org/package/HUnit-1.6.2.0/HUnit-1.6.2.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/HUnit-1.6.2.0.tar.gz"]},"version":"1.6.2.0"}, + "QuickCheck": {"dependencies":["base","containers","deepseq","random","splitmix","template-haskell","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/QuickCheck-2.14.3/QuickCheck-2.14.3.tar.gz"},"name":"QuickCheck","pinned":{"cabal-sha256":"f03d2f404d5ba465453d0fbc1944832789a759fe7c4f9bf8616bc1378a02fde4","sha256":"5c0f22b36b28a1a8fa110b3819818d3f29494a3b0dedbae299f064123ca70501","url":["https://hackage.haskell.org/package/QuickCheck-2.14.3/QuickCheck-2.14.3.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/QuickCheck-2.14.3.tar.gz"]},"version":"2.14.3"}, + "ansi-terminal": {"dependencies":["ansi-terminal-types","base","colour"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/ansi-terminal-1.0/ansi-terminal-1.0.tar.gz"},"name":"ansi-terminal","pinned":{"cabal-sha256":"640ffecfd95471388d939fcacb57bdc0cef15f0457746c234a12cdd5a6c6d1e8","sha256":"0798a98f79189e62b5ff0aa247ba95fc3845f0f6f1e14ecceb37facfbdd5cfc9","url":["https://hackage.haskell.org/package/ansi-terminal-1.0/ansi-terminal-1.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/ansi-terminal-1.0.tar.gz"]},"version":"1.0"}, + "ansi-terminal-types": {"dependencies":["base","colour"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/ansi-terminal-types-0.11.5/ansi-terminal-types-0.11.5.tar.gz"},"name":"ansi-terminal-types","pinned":{"cabal-sha256":"f78440dfd95c4509e88855ac7cc2d9566ddf956a92c1290404cac93ad1a1b00a","sha256":"bf7b230389f43105100a6d5740822598a88b38eaaf7d042de595ccf72db4fdd1","url":["https://hackage.haskell.org/package/ansi-terminal-types-0.11.5/ansi-terminal-types-0.11.5.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/ansi-terminal-types-0.11.5.tar.gz"]},"version":"0.11.5"}, + "array": {"dependencies":[],"location":{"type":"core"},"name":"array","version":"0.5.5.0"}, + "base": {"dependencies":[],"location":{"type":"core"},"name":"base","version":"4.18.1.0"}, + "bytestring": {"dependencies":[],"location":{"type":"core"},"name":"bytestring","version":"0.11.5.2"}, + "call-stack": {"dependencies":["base"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/call-stack-0.4.0/call-stack-0.4.0.tar.gz"},"name":"call-stack","pinned":{"cabal-sha256":"ac44d2c00931dc20b01750da8c92ec443eb63a7231e8550188cb2ac2385f7feb","sha256":"430bcf8a3404f7e55319573c0b807b1356946f0c8f289bb3d9afb279c636b87b","url":["https://hackage.haskell.org/package/call-stack-0.4.0/call-stack-0.4.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/call-stack-0.4.0.tar.gz"]},"version":"0.4.0"}, + "colour": {"dependencies":["base"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/colour-2.3.6/colour-2.3.6.tar.gz"},"name":"colour","pinned":{"cabal-sha256":"ebdcbf15023958838a527e381ab3c3b1e99ed12d1b25efeb7feaa4ad8c37664a","sha256":"2cd35dcd6944a5abc9f108a5eb5ee564b6b1fa98a9ec79cefcc20b588991f871","url":["https://hackage.haskell.org/package/colour-2.3.6/colour-2.3.6.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/colour-2.3.6.tar.gz"]},"version":"2.3.6"}, + "containers": {"dependencies":[],"location":{"type":"core"},"name":"containers","version":"0.6.7"}, + "deepseq": {"dependencies":[],"location":{"type":"core"},"name":"deepseq","version":"1.4.8.1"}, + "directory": {"dependencies":[],"location":{"type":"core"},"name":"directory","version":"1.3.8.1"}, + "dlist": {"dependencies":["base","deepseq"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/dlist-1.0/dlist-1.0.tar.gz"},"name":"dlist","pinned":{"cabal-sha256":"55ff69d20ce638fc7727342ee67f2f868da61d3dcf3763f790bf9aa0b145e568","sha256":"173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115","url":["https://hackage.haskell.org/package/dlist-1.0/dlist-1.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/dlist-1.0.tar.gz"]},"version":"1.0"}, + "exceptions": {"dependencies":[],"location":{"type":"core"},"name":"exceptions","version":"0.10.7"}, + "filepath": {"dependencies":[],"location":{"type":"core"},"name":"filepath","version":"1.4.100.4"}, + "ghc-prim": {"dependencies":[],"location":{"type":"core"},"name":"ghc-prim","version":"0.10.0"}, + "haskell-lexer": {"dependencies":["base"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/haskell-lexer-1.1.1/haskell-lexer-1.1.1.tar.gz"},"name":"haskell-lexer","pinned":{"cabal-sha256":"4ce310678b7e56b51acb558c0233d2f71a3f3553f8a88e9b48c0bc68301f799b","sha256":"c8eeda569a30f115244c17920247ba2c45d11b3e30805f648a878f7855d8f349","url":["https://hackage.haskell.org/package/haskell-lexer-1.1.1/haskell-lexer-1.1.1.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/haskell-lexer-1.1.1.tar.gz"]},"version":"1.1.1"}, + "hspec": {"dependencies":["QuickCheck","base","hspec-core","hspec-discover","hspec-expectations"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/hspec-2.11.7/hspec-2.11.7.tar.gz"},"name":"hspec","pinned":{"cabal-sha256":"2869580a2a29e7beb6268ea3dc561583f4ae229ed1f47fb1c92e8c09ce35acec","sha256":"2a3e108abd9ba4133f96131cf22e5e4e4c77f3f125b377e6d4c14719746e3096","url":["https://hackage.haskell.org/package/hspec-2.11.7/hspec-2.11.7.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-2.11.7.tar.gz"]},"version":"2.11.7"}, + "hspec-api": {"dependencies":["base","hspec-core","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/hspec-api-2.11.7/hspec-api-2.11.7.tar.gz"},"name":"hspec-api","pinned":{"cabal-sha256":"38ae9a6c636539410b87f065f3a529552b11269d0e43d7466bab889c97a0580f","sha256":"b29e88412192dd7865fcf073b72d5bc2af0d5e1756ada47e6e0676aa234c31c5","url":["https://hackage.haskell.org/package/hspec-api-2.11.7/hspec-api-2.11.7.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-api-2.11.7.tar.gz"]},"version":"2.11.7"}, + "hspec-core": {"dependencies":["HUnit","QuickCheck","ansi-terminal","array","base","call-stack","deepseq","directory","filepath","haskell-lexer","hspec-expectations","process","quickcheck-io","random","stm","tf-random","time","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/hspec-core-2.11.7/hspec-core-2.11.7.tar.gz"},"name":"hspec-core","pinned":{"cabal-sha256":"90d8873356d7e15f843bc523360e206e8e356ff6b82a1fa4b3889dc31d073ea1","sha256":"6ffa9b86b8a79bb7e8de47c4c850a2e2500f770827d6645ff478ea50f731b134","url":["https://hackage.haskell.org/package/hspec-core-2.11.7/hspec-core-2.11.7.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-core-2.11.7.tar.gz"]},"version":"2.11.7"}, + "hspec-discover": {"dependencies":["base","directory","filepath"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/hspec-discover-2.11.7/hspec-discover-2.11.7.tar.gz"},"name":"hspec-discover","pinned":{"cabal-sha256":"6307eb16d308258a99a242025df50217d835ba0a3f205b1202a100a175877b38","sha256":"2862b230bb45eb320dd985659b81b482de98f869f4ed88398555a6a7cd12d82a","url":["https://hackage.haskell.org/package/hspec-discover-2.11.7/hspec-discover-2.11.7.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-discover-2.11.7.tar.gz"]},"version":"2.11.7"}, + "hspec-expectations": {"dependencies":["HUnit","base","call-stack"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/hspec-expectations-0.8.4/hspec-expectations-0.8.4.tar.gz"},"name":"hspec-expectations","pinned":{"cabal-sha256":"4237f094a7931202ff57ac6475542b0b314b50a7024550e2b6eb87cfb0d4ff93","sha256":"7b8dde7e230ecfda90c95fd80478b244a45e68602fb3dd4a76f4710619be21ff","url":["https://hackage.haskell.org/package/hspec-expectations-0.8.4/hspec-expectations-0.8.4.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-expectations-0.8.4.tar.gz"]},"version":"0.8.4"}, + "json": {"dependencies":["array","base","bytestring","containers","mtl","parsec","pretty","syb","text"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/json-0.11/json-0.11.tar.gz"},"name":"json","pinned":{"cabal-sha256":"3afa37628415992fe648da6f002672f5a0119aa5d49022bf928d10a927c29318","sha256":"d079ab12e2482349421044851cf52cf23d0bf762ca9b5c854c902def7277e690","url":["https://hackage.haskell.org/package/json-0.11/json-0.11.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/json-0.11.tar.gz"]},"version":"0.11"}, + "logict": {"dependencies":["base","mtl","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/logict-0.8.1.0/logict-0.8.1.0.tar.gz"},"name":"logict","pinned":{"cabal-sha256":"6c7e89252b7f1963bd472f1345154d9d32eb72bd85c9b6e24f3c6eb9c4401426","sha256":"d3dc47581c8484220e57c8f827e0d44f8c04f054aba9ba1797ee15b897e3b813","url":["https://hackage.haskell.org/package/logict-0.8.1.0/logict-0.8.1.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/logict-0.8.1.0.tar.gz"]},"version":"0.8.1.0"}, + "mtl": {"dependencies":[],"location":{"type":"core"},"name":"mtl","version":"2.3.1"}, + "optparse-applicative": {"dependencies":["base","prettyprinter","prettyprinter-ansi-terminal","process","text","transformers","transformers-compat"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/optparse-applicative-0.18.1.0/optparse-applicative-0.18.1.0.tar.gz"},"name":"optparse-applicative","pinned":{"cabal-sha256":"b4cf8d9018e5e67cb1f14edb5130b6d05ad8bc1b5f6bd4efaa6ec0b7f28f559d","sha256":"63811ab4fd26e829b8868364325a88be3acc79819f5bb5005b2dd3b961ecc491","url":["https://hackage.haskell.org/package/optparse-applicative-0.18.1.0/optparse-applicative-0.18.1.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/optparse-applicative-0.18.1.0.tar.gz"]},"version":"0.18.1.0"}, + "parsec": {"dependencies":[],"location":{"type":"core"},"name":"parsec","version":"3.1.16.1"}, + "pretty": {"dependencies":[],"location":{"type":"core"},"name":"pretty","version":"1.1.3.6"}, + "prettyprinter": {"dependencies":["base","text"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/prettyprinter-1.7.1/prettyprinter-1.7.1.tar.gz"},"name":"prettyprinter","pinned":{"cabal-sha256":"9c43c9d8c3cd9f445596e5a2379574bba87f935a4d1fa41b5407ee3cf4edc743","sha256":"5e6ea6903114fa118fcc359633dfb7ecddecb92c06c853d02a77b72b251f0b45","url":["https://hackage.haskell.org/package/prettyprinter-1.7.1/prettyprinter-1.7.1.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/prettyprinter-1.7.1.tar.gz"]},"version":"1.7.1"}, + "prettyprinter-ansi-terminal": {"dependencies":["ansi-terminal","base","prettyprinter","text"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/prettyprinter-ansi-terminal-1.1.3/prettyprinter-ansi-terminal-1.1.3.tar.gz"},"name":"prettyprinter-ansi-terminal","pinned":{"cabal-sha256":"b00f727b964cf13adff7acf575a71fa7e405f5240aff50b07f10df76ab89f8d3","sha256":"813739308ad6050620578994effe21058a170a341716acf52573fae42b5b1db3","url":["https://hackage.haskell.org/package/prettyprinter-ansi-terminal-1.1.3/prettyprinter-ansi-terminal-1.1.3.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/prettyprinter-ansi-terminal-1.1.3.tar.gz"]},"version":"1.1.3"}, + "primitive": {"dependencies":["base","deepseq","template-haskell","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/primitive-0.8.0.0/primitive-0.8.0.0.tar.gz"},"name":"primitive","pinned":{"cabal-sha256":"d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670","sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","url":["https://hackage.haskell.org/package/primitive-0.8.0.0/primitive-0.8.0.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/primitive-0.8.0.0.tar.gz"]},"version":"0.8.0.0"}, + "process": {"dependencies":[],"location":{"type":"core"},"name":"process","version":"1.6.17.0"}, + "quickcheck-io": {"dependencies":["HUnit","QuickCheck","base"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/quickcheck-io-0.2.0/quickcheck-io-0.2.0.tar.gz"},"name":"quickcheck-io","pinned":{"cabal-sha256":"7bf0b68fb90873825eb2e5e958c1b76126dcf984debb998e81673e6d837e0b2d","sha256":"fb779119d79fe08ff4d502fb6869a70c9a8d5fd8ae0959f605c3c937efd96422","url":["https://hackage.haskell.org/package/quickcheck-io-0.2.0/quickcheck-io-0.2.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/quickcheck-io-0.2.0.tar.gz"]},"version":"0.2.0"}, + "random": {"dependencies":["base","bytestring","deepseq","mtl","splitmix"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/random-1.2.1.1/random-1.2.1.1.tar.gz"},"name":"random","pinned":{"cabal-sha256":"e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789","sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","url":["https://hackage.haskell.org/package/random-1.2.1.1/random-1.2.1.1.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/random-1.2.1.1.tar.gz"]},"version":"1.2.1.1"}, + "smallcheck": {"dependencies":["base","logict","mtl","pretty"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/smallcheck-1.2.1.1/smallcheck-1.2.1.1.tar.gz"},"name":"smallcheck","pinned":{"cabal-sha256":"b976cf0bbab4ba29f61933df10740cc19cd17548b5a3d1f8e0205840a1a89738","sha256":"e043225004071840d1a13f3a2d6fba537144188e7995a978ab82086ce158fe1f","url":["https://hackage.haskell.org/package/smallcheck-1.2.1.1/smallcheck-1.2.1.1.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/smallcheck-1.2.1.1.tar.gz"]},"version":"1.2.1.1"}, + "splitmix": {"dependencies":["base","deepseq"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/splitmix-0.1.0.5/splitmix-0.1.0.5.tar.gz"},"name":"splitmix","pinned":{"cabal-sha256":"bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6","sha256":"9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002","url":["https://hackage.haskell.org/package/splitmix-0.1.0.5/splitmix-0.1.0.5.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/splitmix-0.1.0.5.tar.gz"]},"version":"0.1.0.5"}, + "stm": {"dependencies":[],"location":{"type":"core"},"name":"stm","version":"2.5.1.0"}, + "syb": {"dependencies":["base"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/syb-0.7.2.4/syb-0.7.2.4.tar.gz"},"name":"syb","pinned":{"cabal-sha256":"936d5a92084ad9d88c5a9dd2e622deab57ce48ce85be93e6273b3f8eb64c12ca","sha256":"ec7c1e8822d62ab910386361cdcee40a22a26cd344c34741fadd982302291e60","url":["https://hackage.haskell.org/package/syb-0.7.2.4/syb-0.7.2.4.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/syb-0.7.2.4.tar.gz"]},"version":"0.7.2.4"}, + "tagged": {"dependencies":["base","deepseq","template-haskell","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tagged-0.8.8/tagged-0.8.8.tar.gz"},"name":"tagged","pinned":{"cabal-sha256":"c4fdbd3e1c423af0ccf8eb9e9962620106c34e32ed8e0cc647fb06899a703e04","sha256":"a083fa7835516203c168433a1c8dfc0290a94b05fedab566ad0640fc9137a6a7","url":["https://hackage.haskell.org/package/tagged-0.8.8/tagged-0.8.8.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tagged-0.8.8.tar.gz"]},"version":"0.8.8"}, + "tasty": {"dependencies":["ansi-terminal","base","containers","optparse-applicative","stm","tagged","transformers","unix"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tasty-1.4.3/tasty-1.4.3.tar.gz"},"name":"tasty","pinned":{"cabal-sha256":"5b53fded93109f6704b599c3498eb73c5b0ed1a975f1912dd98b4b19c61f8bc9","sha256":"f420da9560267271dce8a0007a1cb77c06987f0d129eb0f613110ce61f71cb00","url":["https://hackage.haskell.org/package/tasty-1.4.3/tasty-1.4.3.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-1.4.3.tar.gz"]},"version":"1.4.3"}, + "tasty-discover": {"dependencies":["Glob","base","containers","directory","filepath","tasty"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tasty-discover-5.0.0/tasty-discover-5.0.0.tar.gz"},"name":"tasty-discover","pinned":{"cabal-sha256":"2799d2aa77c124e3f842abed9db7e8df260fe3d786549c293a322889c05484a8","sha256":"eeb27da5f928d5043385b114e817cc80b0605de45fd490ed6b2973094d1d7028","url":["https://hackage.haskell.org/package/tasty-discover-5.0.0/tasty-discover-5.0.0.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-discover-5.0.0.tar.gz"]},"version":"5.0.0"}, + "tasty-hspec": {"dependencies":["QuickCheck","base","hspec","hspec-api","hspec-core","tasty","tasty-quickcheck","tasty-smallcheck"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tasty-hspec-1.2.0.4/tasty-hspec-1.2.0.4.tar.gz"},"name":"tasty-hspec","pinned":{"cabal-sha256":"edf72548ba95c6c12d40fda014953d7d422f0ec1738c2c106988d12724ef049f","sha256":"d1a273cbe653c23422c14e99672f7cd64e07f85bb019f95fef095db8e5b461c2","url":["https://hackage.haskell.org/package/tasty-hspec-1.2.0.4/tasty-hspec-1.2.0.4.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-hspec-1.2.0.4.tar.gz"]},"version":"1.2.0.4"}, + "tasty-quickcheck": {"dependencies":["QuickCheck","base","optparse-applicative","random","tagged","tasty"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tasty-quickcheck-0.10.2/tasty-quickcheck-0.10.2.tar.gz"},"name":"tasty-quickcheck","pinned":{"cabal-sha256":"76bf07f500e258903e9a1df6f19788e0ef75e83f33ebe6b6b14b287418e0b7c1","sha256":"b4884c815db26a543ee1062664ee051ac89d51b2c2526d30029c6eb95b36cce2","url":["https://hackage.haskell.org/package/tasty-quickcheck-0.10.2/tasty-quickcheck-0.10.2.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-quickcheck-0.10.2.tar.gz"]},"version":"0.10.2"}, + "tasty-smallcheck": {"dependencies":["base","optparse-applicative","smallcheck","tagged","tasty"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tasty-smallcheck-0.8.2/tasty-smallcheck-0.8.2.tar.gz"},"name":"tasty-smallcheck","pinned":{"cabal-sha256":"b0eeb241a4d34401dbc23790b56989a6089b9b9b2dc07f7b0eece7c485826300","sha256":"d5cbd7a2a7100e4afd3aaac01a8fa1b7814fb074d93aeff1b51240b687e54f33","url":["https://hackage.haskell.org/package/tasty-smallcheck-0.8.2/tasty-smallcheck-0.8.2.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-smallcheck-0.8.2.tar.gz"]},"version":"0.8.2"}, + "template-haskell": {"dependencies":[],"location":{"type":"core"},"name":"template-haskell","version":"2.20.0.0"}, + "temporary": {"dependencies":["base","directory","exceptions","filepath","random","transformers","unix"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/temporary-1.3/temporary-1.3.tar.gz"},"name":"temporary","pinned":{"cabal-sha256":"3a66c136f700dbf42f3c5000ca93e80b26dead51e54322c83272b236c1ec8ef1","sha256":"8c442993694b5ffca823ce864af95bd2841fb5264ee511c61cf48cc71d879890","url":["https://hackage.haskell.org/package/temporary-1.3/temporary-1.3.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/temporary-1.3.tar.gz"]},"version":"1.3"}, + "text": {"dependencies":[],"location":{"type":"core"},"name":"text","version":"2.0.2"}, + "tf-random": {"dependencies":["base","primitive","random","time"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/tf-random-0.5/tf-random-0.5.tar.gz"},"name":"tf-random","pinned":{"cabal-sha256":"14012837d0f0e18fdbbe3d56e67da8622ee5e20b180abce952dd50bd9f36b326","sha256":"2e30cec027b313c9e1794d326635d8fc5f79b6bf6e7580ab4b00186dadc88510","url":["https://hackage.haskell.org/package/tf-random-0.5/tf-random-0.5.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/tf-random-0.5.tar.gz"]},"version":"0.5"}, + "time": {"dependencies":[],"location":{"type":"core"},"name":"time","version":"1.12.2"}, + "transformers": {"dependencies":[],"location":{"type":"core"},"name":"transformers","version":"0.6.1.0"}, + "transformers-compat": {"dependencies":["base","ghc-prim","transformers"],"location":{"type":"hackage","url":"https://hackage.haskell.org/package/transformers-compat-0.7.2/transformers-compat-0.7.2.tar.gz"},"name":"transformers-compat","pinned":{"cabal-sha256":"044fb9955f63ee138fcebedfdcbe54afe741f2d5892a2d0bdf3a8052bd342643","sha256":"b62c7304c9f3cbc9463d0739aa85cb9489f217ea092b9d625d417514fbcc9d6a","url":["https://hackage.haskell.org/package/transformers-compat-0.7.2/transformers-compat-0.7.2.tar.gz","https://s3.amazonaws.com/hackage.fpcomplete.com/package/transformers-compat-0.7.2.tar.gz"]},"version":"0.7.2"}, + "unix": {"dependencies":[],"location":{"type":"core"},"name":"unix","version":"2.8.1.0"} + } +} \ No newline at end of file diff --git a/snapshot-9.6.2.yaml b/snapshot-9.6.2.yaml new file mode 100644 index 0000000..867d3a8 --- /dev/null +++ b/snapshot-9.6.2.yaml @@ -0,0 +1 @@ +resolver: lts-22.0 From 8ddea83ad0a3901514276c24542cdf92d749f6d9 Mon Sep 17 00:00:00 2001 From: Claudio Bley Date: Tue, 2 Jan 2024 14:24:05 +0100 Subject: [PATCH 2/3] Add 9.6 compatibility layer to cabalscan --- cabalscan/src/Cabal/Cabal_9_6.hs | 47 ++++++++++++++++++++++++ cabalscan/src/CabalScan/RuleGenerator.hs | 6 ++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 cabalscan/src/Cabal/Cabal_9_6.hs diff --git a/cabalscan/src/Cabal/Cabal_9_6.hs b/cabalscan/src/Cabal/Cabal_9_6.hs new file mode 100644 index 0000000..ceab9f4 --- /dev/null +++ b/cabalscan/src/Cabal/Cabal_9_6.hs @@ -0,0 +1,47 @@ +{-#LANGUAGE CPP #-} + +#if __GLASGOW_HASKELL__ == 906 + +module Cabal.Cabal_9_6(module Cabal, depLibraries, hsSourceDirs) + +where + +import Distribution.Compiler as Cabal (CompilerFlavor(GHC), perCompilerFlavorToList, unknownCompilerInfo, CompilerId(CompilerId), AbiTag(NoAbiTag)) +import Distribution.ModuleName as Cabal (toFilePath, components) +import Distribution.Package as Cabal () +import Distribution.PackageDescription as Cabal (allLibraries, executables, testSuites, benchmarks, package, dataFiles, Library, libName, exposedModules, libBuildInfo, Executable, exeName, buildInfo, modulePath, TestSuite, testName, testBuildInfo, TestSuiteInterface(TestSuiteExeV10), testInterface, Benchmark, benchmarkName, benchmarkBuildInfo, BenchmarkInterface(BenchmarkExeV10), benchmarkInterface, BuildInfo, buildable, otherModules, extraLibs) +import Distribution.PackageDescription.Configuration as Cabal (finalizePD) +import Distribution.Simple.PackageDescription as Cabal (readGenericPackageDescription) +import Distribution.Types.BuildInfo as Cabal (buildToolDepends, targetBuildDepends, defaultExtensions, cppOptions, ldOptions, options) +import Distribution.Types.ComponentRequestedSpec as Cabal (ComponentRequestedSpec(ComponentRequestedSpec), testsRequested, benchmarksRequested) +import Distribution.Types.Dependency as Cabal (Dependency, depPkgName) +import Distribution.Types.ExeDependency as Cabal (ExeDependency(ExeDependency)) +import Distribution.Types.Library as Cabal (libVisibility) +import Distribution.Types.LibraryName as Cabal (LibraryName(LSubLibName)) +import Distribution.Types.LibraryVisibility as Cabal (LibraryVisibility(LibraryVisibilityPrivate)) +import Distribution.Types.PackageDescription as Cabal (PackageDescription) +import Distribution.Types.PackageId as Cabal (PackageIdentifier, pkgName, pkgVersion) +import Distribution.Types.PackageName as Cabal (PackageName, unPackageName) +import Distribution.Types.UnqualComponentName as Cabal (unUnqualComponentName) +import Distribution.Types.Version as Cabal (mkVersion) +import Distribution.Pretty as Cabal (prettyShow) +import Distribution.System as Cabal (Platform(Platform), buildArch, buildOS) +import Distribution.Verbosity as Cabal (silent) + +import qualified Distribution.Types.Dependency as C (depLibraries) +import qualified Distribution.Compat.NonEmptySet as C (toSet) +import Data.Set.Internal (Set) +import qualified Distribution.PackageDescription as C (hsSourceDirs) +import qualified Distribution.Utils.Path as C (getSymbolicPath) + +depLibraries :: Cabal.Dependency -> Set Cabal.LibraryName +depLibraries = C.toSet . C.depLibraries + +hsSourceDirs :: Cabal.BuildInfo -> [FilePath] +hsSourceDirs = map C.getSymbolicPath . C.hsSourceDirs + +#else + +module Cabal.Cabal_9_6 where + +#endif diff --git a/cabalscan/src/CabalScan/RuleGenerator.hs b/cabalscan/src/CabalScan/RuleGenerator.hs index 2fc4ae2..6613098 100644 --- a/cabalscan/src/CabalScan/RuleGenerator.hs +++ b/cabalscan/src/CabalScan/RuleGenerator.hs @@ -35,10 +35,14 @@ import qualified Cabal.Cabal_9_0 as Cabal import qualified Cabal.Cabal_9_2 as Cabal -#else +#elif __GLASGOW_HASKELL__ == 904 import qualified Cabal.Cabal_9_4 as Cabal +#else + +import qualified Cabal.Cabal_9_6 as Cabal + #endif generateRulesForCabalFile :: FilePath -> IO [RuleInfo] From 73a3de1d0923527d7f1bb70af3d24d8d62428feb Mon Sep 17 00:00:00 2001 From: Claudio Bley Date: Tue, 2 Jan 2024 16:40:05 +0100 Subject: [PATCH 3/3] Use Cabal_9_4 for GHC >= 9.4 The interface is compatible between 9.4 and 9.6 (and probably later). --- cabalscan/src/Cabal/Cabal_9_4.hs | 2 +- cabalscan/src/Cabal/Cabal_9_6.hs | 47 ------------------------ cabalscan/src/CabalScan/RuleGenerator.hs | 4 +- 3 files changed, 3 insertions(+), 50 deletions(-) delete mode 100644 cabalscan/src/Cabal/Cabal_9_6.hs diff --git a/cabalscan/src/Cabal/Cabal_9_4.hs b/cabalscan/src/Cabal/Cabal_9_4.hs index 39635fe..c262924 100644 --- a/cabalscan/src/Cabal/Cabal_9_4.hs +++ b/cabalscan/src/Cabal/Cabal_9_4.hs @@ -1,6 +1,6 @@ {-#LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ == 904 +#if __GLASGOW_HASKELL__ >= 904 module Cabal.Cabal_9_4(module Cabal, depLibraries, hsSourceDirs) diff --git a/cabalscan/src/Cabal/Cabal_9_6.hs b/cabalscan/src/Cabal/Cabal_9_6.hs deleted file mode 100644 index ceab9f4..0000000 --- a/cabalscan/src/Cabal/Cabal_9_6.hs +++ /dev/null @@ -1,47 +0,0 @@ -{-#LANGUAGE CPP #-} - -#if __GLASGOW_HASKELL__ == 906 - -module Cabal.Cabal_9_6(module Cabal, depLibraries, hsSourceDirs) - -where - -import Distribution.Compiler as Cabal (CompilerFlavor(GHC), perCompilerFlavorToList, unknownCompilerInfo, CompilerId(CompilerId), AbiTag(NoAbiTag)) -import Distribution.ModuleName as Cabal (toFilePath, components) -import Distribution.Package as Cabal () -import Distribution.PackageDescription as Cabal (allLibraries, executables, testSuites, benchmarks, package, dataFiles, Library, libName, exposedModules, libBuildInfo, Executable, exeName, buildInfo, modulePath, TestSuite, testName, testBuildInfo, TestSuiteInterface(TestSuiteExeV10), testInterface, Benchmark, benchmarkName, benchmarkBuildInfo, BenchmarkInterface(BenchmarkExeV10), benchmarkInterface, BuildInfo, buildable, otherModules, extraLibs) -import Distribution.PackageDescription.Configuration as Cabal (finalizePD) -import Distribution.Simple.PackageDescription as Cabal (readGenericPackageDescription) -import Distribution.Types.BuildInfo as Cabal (buildToolDepends, targetBuildDepends, defaultExtensions, cppOptions, ldOptions, options) -import Distribution.Types.ComponentRequestedSpec as Cabal (ComponentRequestedSpec(ComponentRequestedSpec), testsRequested, benchmarksRequested) -import Distribution.Types.Dependency as Cabal (Dependency, depPkgName) -import Distribution.Types.ExeDependency as Cabal (ExeDependency(ExeDependency)) -import Distribution.Types.Library as Cabal (libVisibility) -import Distribution.Types.LibraryName as Cabal (LibraryName(LSubLibName)) -import Distribution.Types.LibraryVisibility as Cabal (LibraryVisibility(LibraryVisibilityPrivate)) -import Distribution.Types.PackageDescription as Cabal (PackageDescription) -import Distribution.Types.PackageId as Cabal (PackageIdentifier, pkgName, pkgVersion) -import Distribution.Types.PackageName as Cabal (PackageName, unPackageName) -import Distribution.Types.UnqualComponentName as Cabal (unUnqualComponentName) -import Distribution.Types.Version as Cabal (mkVersion) -import Distribution.Pretty as Cabal (prettyShow) -import Distribution.System as Cabal (Platform(Platform), buildArch, buildOS) -import Distribution.Verbosity as Cabal (silent) - -import qualified Distribution.Types.Dependency as C (depLibraries) -import qualified Distribution.Compat.NonEmptySet as C (toSet) -import Data.Set.Internal (Set) -import qualified Distribution.PackageDescription as C (hsSourceDirs) -import qualified Distribution.Utils.Path as C (getSymbolicPath) - -depLibraries :: Cabal.Dependency -> Set Cabal.LibraryName -depLibraries = C.toSet . C.depLibraries - -hsSourceDirs :: Cabal.BuildInfo -> [FilePath] -hsSourceDirs = map C.getSymbolicPath . C.hsSourceDirs - -#else - -module Cabal.Cabal_9_6 where - -#endif diff --git a/cabalscan/src/CabalScan/RuleGenerator.hs b/cabalscan/src/CabalScan/RuleGenerator.hs index 6613098..6a841af 100644 --- a/cabalscan/src/CabalScan/RuleGenerator.hs +++ b/cabalscan/src/CabalScan/RuleGenerator.hs @@ -35,13 +35,13 @@ import qualified Cabal.Cabal_9_0 as Cabal import qualified Cabal.Cabal_9_2 as Cabal -#elif __GLASGOW_HASKELL__ == 904 +#elif __GLASGOW_HASKELL__ >= 904 import qualified Cabal.Cabal_9_4 as Cabal #else -import qualified Cabal.Cabal_9_6 as Cabal +#error GHC version __GLASGOW_HASKELL__ not supported #endif