commit 74ec5d2e3316ef998ef63a2bd19f098898fda206
parent f78838133ff4900cc4006379eec542e2f082ab9f
Author: Jared Tobin <jared@jtobin.io>
Date: Sun, 28 Dec 2025 16:18:00 -0330
release: v0.3.1
Diffstat:
5 files changed, 68 insertions(+), 63 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
@@ -1,5 +1,9 @@
# Changelog
+- 0.3.1 (2025-12-28)
+ * Bumps some dependency lower bounds.
+ * Adds an 'llvm' build flag and tests with GHC 9.10.3.
+
- 0.3.0 (2025-06-21)
* The 'mnemonic' and 'seed' function families are now total, returning
'Nothing' when supplied with bad inputs.
diff --git a/README.md b/README.md
@@ -91,16 +91,17 @@ Current benchmark figures on an M4 Silicon MacBook Air look like (use
```
benchmarking ppad-bip39/mnemonic
- time 1.276 μs (1.273 μs .. 1.281 μs)
+ time 813.3 ns (812.4 ns .. 814.2 ns)
1.000 R² (1.000 R² .. 1.000 R²)
- mean 1.275 μs (1.273 μs .. 1.278 μs)
- std dev 8.396 ns (4.677 ns .. 15.17 ns)
+ mean 813.3 ns (810.4 ns .. 823.2 ns)
+ std dev 15.99 ns (5.116 ns .. 32.29 ns)
+ variance introduced by outliers: 23% (moderately inflated)
benchmarking ppad-bip39/seed
- time 2.764 ms (2.753 ms .. 2.773 ms)
+ time 2.057 ms (2.053 ms .. 2.063 ms)
1.000 R² (1.000 R² .. 1.000 R²)
- mean 2.752 ms (2.747 ms .. 2.758 ms)
- std dev 17.73 μs (13.66 μs .. 26.18 μs)
+ mean 2.062 ms (2.059 ms .. 2.067 ms)
+ std dev 12.53 μs (7.614 μs .. 23.28 μs)
```
## Development
diff --git a/flake.lock b/flake.lock
@@ -5,11 +5,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1710146030,
- "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -20,11 +20,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1725910328,
- "narHash": "sha256-n9pCtzGZ0httmTwMuEbi5E78UQ4ZbQMr1pzi5N0LAG8=",
+ "lastModified": 1766840161,
+ "narHash": "sha256-Ss/LHpJJsng8vz1Pe33RSGIWUOcqM1fjrehjUkdrWio=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "5775c2583f1801df7b790bf7f7d710a19bac66f4",
+ "rev": "3edc4a30ed3903fdf6f90c837f961fa6b49582d1",
"type": "github"
},
"original": {
@@ -51,11 +51,11 @@
]
},
"locked": {
- "lastModified": 1741625558,
- "narHash": "sha256-ZBDXRD5fsVqA5bGrAlcnhiu67Eo50q0M9614nR3NBwY=",
+ "lastModified": 1766934151,
+ "narHash": "sha256-BUFpuLfrGXE2xi3Wa9TYCEhhRhFp175Ghxnr0JRbG2I=",
"ref": "master",
- "rev": "fb63457f2e894eda28250dfe65d0fcd1d195ac2f",
- "revCount": 24,
+ "rev": "58dfb7922401a60d5de76825fcd5f6ecbcd7afe0",
+ "revCount": 26,
"type": "git",
"url": "git://git.ppad.tech/base16.git"
},
@@ -93,11 +93,11 @@
]
},
"locked": {
- "lastModified": 1766446326,
- "narHash": "sha256-4uqWsys2juR70nainA6ykVVLmnbVO2nGk2DilIPlYdo=",
+ "lastModified": 1766936673,
+ "narHash": "sha256-OWxKSeRQ0+Wt+Qy62ygGiCNY/1OsejuOnUCLlozIzuM=",
"ref": "master",
- "rev": "9aec2633bffce9944bb9647b58abe5072e5834a8",
- "revCount": 30,
+ "rev": "8de88f527e0c87264aecae4f4f0d13c524abf726",
+ "revCount": 31,
"type": "git",
"url": "git://git.ppad.tech/base58.git"
},
@@ -137,11 +137,11 @@
]
},
"locked": {
- "lastModified": 1766931126,
- "narHash": "sha256-ObTyolja7GbNGu5jglTUfrxxiPi1kSSPEx0kNlCWj/Y=",
+ "lastModified": 1766939362,
+ "narHash": "sha256-Ri+Oq8y/+gcYja5LRW594G2iuYejehby2hP0jMR+lGI=",
"ref": "master",
- "rev": "7ee1f552481582494d5df6beb991ca1d35dcac4c",
- "revCount": 62,
+ "rev": "08229eed913e09d5ab77021906bdbd3148409d57",
+ "revCount": 65,
"type": "git",
"url": "git://git.ppad.tech/bip32.git"
},
@@ -171,11 +171,11 @@
]
},
"locked": {
- "lastModified": 1766929014,
- "narHash": "sha256-wkQYKuwYhVD2xF0wUriFrBpRXX98ezlUfygl8kGpe6g=",
+ "lastModified": 1766933347,
+ "narHash": "sha256-hwBsY4vyefW9qSj0MK0+wr9hIc0OcFuhQD11XGGcO/o=",
"ref": "master",
- "rev": "1d63926222ed984287f57e2ef48e76e5fbc4089f",
- "revCount": 286,
+ "rev": "d7b03362f9d075c505b8c293524f577f7186a647",
+ "revCount": 289,
"type": "git",
"url": "git://git.ppad.tech/fixed.git"
},
@@ -223,11 +223,11 @@
]
},
"locked": {
- "lastModified": 1766436802,
- "narHash": "sha256-cZBaR5zBpguiusf3/BzjwrMY63FoXDVGuas+e8QyjTc=",
+ "lastModified": 1766935294,
+ "narHash": "sha256-hwHadXNxB+mo50EsN9iEbwkzoqiqdobB8QwIjXpqckk=",
"ref": "master",
- "rev": "c23408f69f64d41c3d5478801bb16c0603b4e43b",
- "revCount": 53,
+ "rev": "7557757c32cccb0d95416a21ac832df53cdfdb5d",
+ "revCount": 54,
"type": "git",
"url": "git://git.ppad.tech/hmac-drbg.git"
},
@@ -243,11 +243,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
- "lastModified": 1737297101,
- "narHash": "sha256-EnXnq+JLflbWt+DvaGGnY2gfAqsGNOm5vPgHh3hkfwQ=",
+ "lastModified": 1766932084,
+ "narHash": "sha256-GvVsbTfW+B7IQ9K/QP2xcXJAm1lhBin1jYZWNjOzT+o=",
"ref": "master",
- "rev": "f29823875250bc99b3891f7373535ccde9a29a44",
- "revCount": 1,
+ "rev": "353e61763b959b960a55321a85423501e3e9ed7a",
+ "revCount": 2,
"type": "git",
"url": "git://git.ppad.tech/nixpkgs.git"
},
@@ -283,11 +283,11 @@
]
},
"locked": {
- "lastModified": 1766443383,
- "narHash": "sha256-+FjF8wCtcY5t18PzMWWeiRNbj6x28v/zsOZ/QZ3pPLY=",
+ "lastModified": 1766937455,
+ "narHash": "sha256-8uZufR/jKNCg19wBTtBwxoqGnAtj2JqA4kBnFlThHqo=",
"ref": "master",
- "rev": "f57238108ff1feaa1b7ec95bee3953a5a0236cf7",
- "revCount": 16,
+ "rev": "695d3193614c65e644bfb8d3e05d22bd55aab3d7",
+ "revCount": 17,
"type": "git",
"url": "git://git.ppad.tech/pbkdf.git"
},
@@ -321,11 +321,11 @@
]
},
"locked": {
- "lastModified": 1766442965,
- "narHash": "sha256-wsspQAyMf+vXLpYY/hk05IgsNcb1KPeIxwKzV16zAZM=",
+ "lastModified": 1766937812,
+ "narHash": "sha256-vU0PlTSY3iE0tHiLzAr4P7hXw3wDDvKrJRsohijPpdw=",
"ref": "master",
- "rev": "4fe3998c0d94dea7e059602747413d5825e34330",
- "revCount": 28,
+ "rev": "449d59398770ee5cda2a939cfc6f269b3e49c900",
+ "revCount": 29,
"type": "git",
"url": "git://git.ppad.tech/ripemd160.git"
},
@@ -372,11 +372,11 @@
]
},
"locked": {
- "lastModified": 1766930981,
- "narHash": "sha256-b1oICqCQSSDZrdumNif3gQKiED4edjjaArYO8rMiFls=",
+ "lastModified": 1766938819,
+ "narHash": "sha256-URvfv+I5+deCGR3feXzBF+fEE+s2p0hFM425z1V94Ok=",
"ref": "master",
- "rev": "02a94bd244dfff3daa1450ad7d5f7c862db8e55c",
- "revCount": 231,
+ "rev": "d613a8f51980798b0518551bb45b55c2be28a785",
+ "revCount": 236,
"type": "git",
"url": "git://git.ppad.tech/secp256k1.git"
},
@@ -406,11 +406,11 @@
]
},
"locked": {
- "lastModified": 1766484297,
- "narHash": "sha256-jBXyJeilmp75csTkqsqgNtCUrkdk+wt5TEoWrFaatsM=",
+ "lastModified": 1766938603,
+ "narHash": "sha256-Rh0Zl1evhWpYrstqB1iHvDRzawOzvtE+DtpmFpK0Hk8=",
"ref": "master",
- "rev": "5524b108ff5ebdfb113d77a313fa881f873480c1",
- "revCount": 97,
+ "rev": "a4df6b84a48b7dec984856a37537f21e5eb8648d",
+ "revCount": 99,
"type": "git",
"url": "git://git.ppad.tech/sha256.git"
},
@@ -440,11 +440,11 @@
]
},
"locked": {
- "lastModified": 1766437426,
- "narHash": "sha256-vn0nUVrMqux2PorMOZlx3RAqylf88BTw+jRMXC0gIz8=",
+ "lastModified": 1766938658,
+ "narHash": "sha256-v85D6HZ49a4LHIrn+fLx/2qEk9rYhCu4LyETQ892SsQ=",
"ref": "master",
- "rev": "669c4ffd1cc7826876af2d67661738c2081ea6a9",
- "revCount": 31,
+ "rev": "419d5696a7b2521d53604e370afbaa0325e33f4f",
+ "revCount": 33,
"type": "git",
"url": "git://git.ppad.tech/sha512.git"
},
diff --git a/flake.nix b/flake.nix
@@ -61,7 +61,7 @@
pkgs = import nixpkgs { inherit system; };
hlib = pkgs.haskell.lib;
- llvm = pkgs.llvmPackages_15.llvm;
+ llvm = pkgs.llvmPackages_19.llvm;
bip32 = ppad-bip32.packages.${system}.default;
bip32-llvm =
@@ -87,7 +87,7 @@
(hlib.enableCabalFlag pbkdf "llvm")
[ llvm ];
- hpkgs = pkgs.haskell.packages.ghc981.extend (new: old: {
+ hpkgs = pkgs.haskell.packages.ghc910.extend (new: old: {
ppad-bip32 = bip32-llvm;
ppad-base16 = ppad-base16.packages.${system}.default;
ppad-sha256 = sha256-llvm;
diff --git a/ppad-bip39.cabal b/ppad-bip39.cabal
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ppad-bip39
-version: 0.3.0
+version: 0.3.1
synopsis: BIP39 mnemonic codes.
license: MIT
license-file: LICENSE
@@ -8,7 +8,7 @@ author: Jared Tobin
maintainer: jared@ppad.tech
category: Cryptography
build-type: Simple
-tested-with: GHC == 9.8.1
+tested-with: GHC == 9.10.3
extra-doc-files: CHANGELOG
extra-source-files:
etc/english.txt
@@ -47,9 +47,9 @@ library
build-depends:
base >= 4.9 && < 5
, bytestring >= 0.9 && < 0.13
- , ppad-pbkdf >= 0.2 && < 0.3
- , ppad-sha256 >= 0.2.3 && < 0.3
- , ppad-sha512 >= 0.1.3 && < 0.2
+ , ppad-pbkdf >= 0.2.1 && < 0.3
+ , ppad-sha256 >= 0.2.4 && < 0.3
+ , ppad-sha512 >= 0.1.4 && < 0.2
, primitive >= 0.8 && < 0.10
, text >= 2.1 && < 2.2
, text-icu >= 0.8 && < 0.9