commit f40766056e463a82a06eec66d7b08cba1dbcf2d4
parent 10c667ad8dc7583407fd1545259dc140497e2b17
Author: Jared Tobin <jared@jtobin.io>
Date: Sat, 21 Jun 2025 14:06:02 +0400
release: v0.2.1
Diffstat:
4 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
@@ -1,5 +1,8 @@
# Changelog
+- 0.2.1 (2025-06-21)
+ * Minor performance improvements and internal housekeeping.
+
- 0.2.0 (2025-02-18)
* The base58check encode and decode functions no longer treat version
bytes (of which there may now be several) in any special fashion.
diff --git a/README.md b/README.md
@@ -45,33 +45,33 @@ Haddocks (API documentation, etc.) are hosted at
The aim is best-in-class performance for pure, highly-auditable Haskell
code.
-Current benchmark figures on my mid-2020 MacBook Air look like (use
+Current benchmark figures on a M4 Silicon MacBook Air look like (use
`cabal bench` to run the benchmark suite):
```
benchmarking ppad-base58/base58/encode/hello world
- time 667.4 ns (661.2 ns .. 674.5 ns)
- 0.999 R² (0.999 R² .. 1.000 R²)
- mean 673.5 ns (669.5 ns .. 678.8 ns)
- std dev 15.91 ns (13.00 ns .. 21.13 ns)
+ time 356.9 ns (355.7 ns .. 359.2 ns)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 357.4 ns (356.7 ns .. 359.4 ns)
+ std dev 3.439 ns (1.609 ns .. 6.911 ns)
benchmarking ppad-base58/base58/decode/StV1DL6CwTryKyV
- time 741.2 ns (731.5 ns .. 752.5 ns)
- 0.999 R² (0.998 R² .. 0.999 R²)
- mean 748.3 ns (741.8 ns .. 757.2 ns)
- std dev 24.98 ns (20.60 ns .. 31.28 ns)
+ time 397.7 ns (397.2 ns .. 398.1 ns)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 397.3 ns (397.1 ns .. 397.6 ns)
+ std dev 942.3 ps (752.8 ps .. 1.232 ns)
benchmarking ppad-base58/base58check/encode/0x00, hello world
- time 5.411 μs (5.349 μs .. 5.472 μs)
- 0.999 R² (0.999 R² .. 1.000 R²)
- mean 5.389 μs (5.352 μs .. 5.439 μs)
- std dev 142.5 ns (119.5 ns .. 184.4 ns)
+ time 2.430 μs (2.428 μs .. 2.431 μs)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 2.433 μs (2.432 μs .. 2.434 μs)
+ std dev 4.715 ns (3.868 ns .. 5.971 ns)
benchmarking ppad-base58/base58check/decode/13vQB7B6MrGQZaxCqW9KER
- time 5.825 μs (5.722 μs .. 5.930 μs)
- 0.998 R² (0.997 R² .. 0.999 R²)
- mean 5.718 μs (5.655 μs .. 5.792 μs)
- std dev 228.0 ns (190.7 ns .. 275.4 ns)
+ time 2.500 μs (2.497 μs .. 2.504 μs)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 2.506 μs (2.503 μs .. 2.510 μs)
+ std dev 9.919 ns (7.444 ns .. 14.66 ns)
```
## Security
diff --git a/flake.lock b/flake.lock
@@ -71,11 +71,11 @@
]
},
"locked": {
- "lastModified": 1737298572,
- "narHash": "sha256-iAo6GFH1FLNi0wt0FczbqPCmVzCm9gfMEjk1oakExt0=",
+ "lastModified": 1740802974,
+ "narHash": "sha256-GTD9UrxwMa5zY7hxzDSXjKXKUwMK4r3FBHLG0nvgapk=",
"ref": "master",
- "rev": "abc984dc65f0df9bd958c0bc8f390c68e660f710",
- "revCount": 87,
+ "rev": "ab0957e305dff0243dcab11e381470585849fd20",
+ "revCount": 94,
"type": "git",
"url": "git://git.ppad.tech/sha256.git"
},
diff --git a/ppad-base58.cabal b/ppad-base58.cabal
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ppad-base58
-version: 0.2.0
+version: 0.2.1
synopsis: base58 and base58check encoding/decoding.
license: MIT
license-file: LICENSE