From 62f11188a1c04691197a04a0497892619d827c9b Mon Sep 17 00:00:00 2001 From: Stefan Wehr Date: Wed, 1 Jul 2026 08:30:49 +0200 Subject: [PATCH 1/4] remove unused dependencies --- large-hashable.cabal | 7 +------ stack-ghc-9.10.yaml | 7 +++++++ 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 stack-ghc-9.10.yaml diff --git a/large-hashable.cabal b/large-hashable.cabal index d859a90..4883e29 100644 --- a/large-hashable.cabal +++ b/large-hashable.cabal @@ -36,25 +36,20 @@ library build-depends: aeson , base >= 4.8 && < 5 , base16-bytestring - , bytes , bytestring , containers - , crypton - , memory , scientific , strict , template-haskell , text , time - , transformers , unordered-containers , vector - , void build-tool-depends: cpphs:cpphs default-language: Haskell2010 ghc-options: -optc -O3 -W -fwarn-unused-imports -fwarn-unused-binds -fwarn-unused-matches -fwarn-unused-do-bind -fwarn-wrong-do-bind - -fno-warn-name-shadowing + -fno-warn-name-shadowing -Wunused-packages -fwarn-missing-signatures -O2 benchmark large-hashable-benchmark diff --git a/stack-ghc-9.10.yaml b/stack-ghc-9.10.yaml new file mode 100644 index 0000000..95eab5b --- /dev/null +++ b/stack-ghc-9.10.yaml @@ -0,0 +1,7 @@ +resolver: lts-24.3 +require-stack-version: ">= 1.0.0" + +packages: +- '.' + +flags: {} From df68f22058ba67c8836512a41e5ddc4e2798af4c Mon Sep 17 00:00:00 2001 From: Stefan Wehr Date: Wed, 1 Jul 2026 08:32:34 +0200 Subject: [PATCH 2/4] drop support for ghc 9.2 and 9.4, and 9.10 --- .github/workflows/haskell-ci.yml | 3 +-- large-hashable.cabal | 3 +-- stack-ghc-9.2.yaml | 10 ---------- stack-ghc-9.2.yaml.lock | 19 ------------------- stack-ghc-9.4.yaml | 7 ------- stack-ghc-9.4.yaml.lock | 12 ------------ stack.yaml | 2 +- stack.yaml.lock | 10 +++++----- 8 files changed, 8 insertions(+), 58 deletions(-) delete mode 100644 stack-ghc-9.2.yaml delete mode 100644 stack-ghc-9.2.yaml.lock delete mode 100644 stack-ghc-9.4.yaml delete mode 100644 stack-ghc-9.4.yaml.lock diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index cc5b83b..ca3786b 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -17,10 +17,9 @@ jobs: strategy: matrix: include: + - compiler: ghc-9.10 - compiler: ghc-9.8 - compiler: ghc-9.6 - - compiler: ghc-9.4 - - compiler: ghc-9.2 fail-fast: false steps: - name: Set PATH and environment variables diff --git a/large-hashable.cabal b/large-hashable.cabal index 4883e29..a10b90c 100644 --- a/large-hashable.cabal +++ b/large-hashable.cabal @@ -18,10 +18,9 @@ extra-source-files: default.nix stack.yaml test/bigfile.txt - stack-ghc-9.2.yaml - stack-ghc-9.4.yaml stack-ghc-9.6.yaml stack-ghc-9.8.yaml + stack-ghc-9.10.yaml library hs-source-dirs: src diff --git a/stack-ghc-9.2.yaml b/stack-ghc-9.2.yaml deleted file mode 100644 index 629daf8..0000000 --- a/stack-ghc-9.2.yaml +++ /dev/null @@ -1,10 +0,0 @@ -resolver: lts-20.21 -require-stack-version: ">= 1.0.0" - -packages: -- '.' - -flags: {} - -extra-deps: - - crypton-1.0.1@sha256:f41316fbc6ad878396e476355e27b70ac35c344d74e3eefafe709e03b192be9e,14527 diff --git a/stack-ghc-9.2.yaml.lock b/stack-ghc-9.2.yaml.lock deleted file mode 100644 index f6ffa29..0000000 --- a/stack-ghc-9.2.yaml.lock +++ /dev/null @@ -1,19 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: -- completed: - hackage: crypton-1.0.1@sha256:f41316fbc6ad878396e476355e27b70ac35c344d74e3eefafe709e03b192be9e,14527 - pantry-tree: - sha256: b8f0a33755a0871d325300024592cd9306e393941248184e9c4faf417d4adfcd - size: 23276 - original: - hackage: crypton-1.0.1@sha256:f41316fbc6ad878396e476355e27b70ac35c344d74e3eefafe709e03b192be9e,14527 -snapshots: -- completed: - sha256: 401a0e813162ba62f04517f60c7d25e93a0f867f94a902421ebf07d1fb5a8c46 - size: 650044 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/21.yaml - original: lts-20.21 diff --git a/stack-ghc-9.4.yaml b/stack-ghc-9.4.yaml deleted file mode 100644 index 97ab9f3..0000000 --- a/stack-ghc-9.4.yaml +++ /dev/null @@ -1,7 +0,0 @@ -resolver: lts-21.25 -require-stack-version: ">= 1.0.0" - -packages: -- '.' - -flags: {} diff --git a/stack-ghc-9.4.yaml.lock b/stack-ghc-9.4.yaml.lock deleted file mode 100644 index dd24ff8..0000000 --- a/stack-ghc-9.4.yaml.lock +++ /dev/null @@ -1,12 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: [] -snapshots: -- completed: - sha256: 0a8278a8c9f33fbdaa40167e035065a7ca8ed61d89fec21236b888c470dab3f0 - size: 625218 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2023/5/8.yaml - original: nightly-2023-05-08 diff --git a/stack.yaml b/stack.yaml index 6a6541f..e461067 120000 --- a/stack.yaml +++ b/stack.yaml @@ -1 +1 @@ -stack-ghc-9.6.yaml \ No newline at end of file +stack-ghc-9.10.yaml \ No newline at end of file diff --git a/stack.yaml.lock b/stack.yaml.lock index 401a580..881149d 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -1,12 +1,12 @@ # This file was autogenerated by Stack. # You should not edit this file by hand. # For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files +# https://docs.haskellstack.org/en/stable/topics/lock_files packages: [] snapshots: - completed: - sha256: edbd50d7e7c85c13ad5f5835ae2db92fab1e9cf05ecf85340e2622ec0a303df1 - size: 720020 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/34.yaml - original: lts-22.34 + sha256: aa97dce5253937e4aa56100a0a9dc1f79a554cf543ad7cfab0afe6ed42de2f31 + size: 724941 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/3.yaml + original: lts-24.3 From b974d7756f5f27f6245d32958da6291ada2773c0 Mon Sep 17 00:00:00 2001 From: Stefan Wehr Date: Wed, 1 Jul 2026 08:32:54 +0200 Subject: [PATCH 3/4] bump version and copyright year --- large-hashable.cabal | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/large-hashable.cabal b/large-hashable.cabal index a10b90c..378da08 100644 --- a/large-hashable.cabal +++ b/large-hashable.cabal @@ -1,5 +1,5 @@ name: large-hashable -version: 0.1.2.0 +version: 0.1.3.0 synopsis: Efficiently hash (large) Haskell values description: Please see README.md homepage: https://github.com/factisresearch/large-hashable @@ -7,7 +7,8 @@ license: BSD3 license-file: LICENSE author: Stefan Wehr, Lukas Epple maintainer: Stefan Wehr -copyright: 2015 - 2017 factis research GmbH, 2018 - 2023 medilyse GmbH, 2024 - 2025 MEQO GmbH +copyright: 2015 - 2017 factis research GmbH, 2018 - 2023 medilyse GmbH, + 2024 - 2026 MEQO GmbH category: Web build-type: Simple cabal-version: 2.0 From 6daf361c8d8761cbdb51642276bcb4445bb4c269 Mon Sep 17 00:00:00 2001 From: Stefan Wehr Date: Wed, 1 Jul 2026 09:05:11 +0200 Subject: [PATCH 4/4] remove last use of the bytes library --- src/Data/LargeHashable/Class.hs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Data/LargeHashable/Class.hs b/src/Data/LargeHashable/Class.hs index 68ffd2b..87ae6e6 100644 --- a/src/Data/LargeHashable/Class.hs +++ b/src/Data/LargeHashable/Class.hs @@ -31,6 +31,7 @@ import Data.Void (Void) import Data.Word import Foreign.C.Types import Foreign.Ptr +import GHC.Float (castDoubleToWord64, castFloatToWord32) import GHC.Generics import qualified Data.Aeson as J #if MIN_VERSION_aeson(2,0,0) @@ -317,16 +318,12 @@ instance LargeHashable Integer where updateHash = updateHashInteger updateHashStable = updateHash -foreign import ccall doubleToWord64 :: Double -> Word64 - instance LargeHashable Double where - updateHash = updateHash . doubleToWord64 + updateHash = updateHash . castDoubleToWord64 updateHashStable = updateHash -foreign import ccall floatToWord32 :: Float -> Word32 - instance LargeHashable Float where - updateHash = updateHash . floatToWord32 + updateHash = updateHash . castFloatToWord32 updateHashStable = updateHash {-# INLINE updateHashFixed #-}