commit 5909ce98c22a1a82465b4f806e70df426f89f070
parent ac53d4ef9aebd4ce0687d108d4e365bc689175fa
Author: Jared Tobin <jared@jtobin.io>
Date: Sat, 21 Jun 2025 14:13:18 +0400
release: v0.2.3
Diffstat:
3 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
@@ -1,5 +1,8 @@
# Changelog
+- 0.2.3 (2025-06-21)
+ * Minor performance improvements and internal housekeeping.
+
- 0.2.2 (2025-02-28)
* Various optimizations, including roughly 2x faster decoding
performance.
diff --git a/README.md b/README.md
@@ -47,30 +47,27 @@ The aim is best-in-class performance for pure, highly-auditable Haskell
code. At present we're a little over twice as fast as the official
BIP173 reference implementation.
-Current benchmark figures on a relatively-beefy NixOS VPS look like (use
+Current benchmark figures on a M4 Silicon MacBook Air look like (use
`cabal bench` to run the benchmark suite):
```
benchmarking benchmarks/ppad-bech32/bech32 encode/120b
- time 1.126 μs (1.115 μs .. 1.136 μs)
- 0.999 R² (0.999 R² .. 1.000 R²)
- mean 1.132 μs (1.125 μs .. 1.140 μs)
- std dev 26.29 ns (21.47 ns .. 31.93 ns)
- variance introduced by outliers: 29% (moderately inflated)
+ time 783.5 ns (781.4 ns .. 786.6 ns)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 791.1 ns (788.7 ns .. 793.5 ns)
+ std dev 8.193 ns (7.461 ns .. 8.973 ns)
benchmarking benchmarks/ppad-bech32/bech32 decode/120b
- time 1.293 μs (1.281 μs .. 1.308 μs)
- 0.999 R² (0.999 R² .. 1.000 R²)
- mean 1.280 μs (1.274 μs .. 1.290 μs)
- std dev 24.47 ns (18.39 ns .. 33.71 ns)
- variance introduced by outliers: 21% (moderately inflated)
+ time 944.0 ns (943.1 ns .. 944.7 ns)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 942.4 ns (941.7 ns .. 943.1 ns)
+ std dev 2.197 ns (1.838 ns .. 2.669 ns)
benchmarking benchmarks/reference/bech32 encode/120b
- time 2.897 μs (2.865 μs .. 2.920 μs)
- 0.999 R² (0.999 R² .. 1.000 R²)
- mean 2.828 μs (2.806 μs .. 2.856 μs)
- std dev 81.33 ns (70.94 ns .. 97.46 ns)
- variance introduced by outliers: 36% (moderately inflated)
+ time 1.282 μs (1.281 μs .. 1.283 μs)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 1.282 μs (1.282 μs .. 1.283 μs)
+ std dev 1.338 ns (996.0 ps .. 1.881 ns)
```
## Security
diff --git a/ppad-bech32.cabal b/ppad-bech32.cabal
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ppad-bech32
-version: 0.2.2
+version: 0.2.3
synopsis: bech32 and bech32m encoding/decoding, per BIPs 173 & 350.
license: MIT
license-file: LICENSE