commit c4f2e85ab52aca49460bd3bd261bf4e9e94061ca
parent 0f9aa55cd8cbe342b66ec2891bbee5cb7ca9c233
Author: Jared Tobin <jared@jtobin.io>
Date: Fri, 20 Jun 2025 17:48:08 +0400
meta: update docs
Diffstat:
2 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/README.md b/README.md
@@ -86,23 +86,21 @@ security@ppad.tech.
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 an M4 Silicon MacBook Air look like (use
`cabal bench` to run the benchmark suite):
```
benchmarking ppad-bip39/mnemonic
- time 4.222 μs (4.055 μs .. 4.380 μs)
- 0.992 R² (0.990 R² .. 0.995 R²)
- mean 4.220 μs (4.118 μs .. 4.332 μs)
- std dev 366.1 ns (318.3 ns .. 427.9 ns)
- variance introduced by outliers: 84% (severely inflated)
+ time 1.986 μs (1.982 μs .. 1.988 μs)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 1.973 μs (1.969 μs .. 1.978 μs)
+ std dev 13.61 ns (12.14 ns .. 15.64 ns)
benchmarking ppad-bip39/seed
- time 12.91 ms (12.64 ms .. 13.35 ms)
- 0.994 R² (0.989 R² .. 0.997 R²)
- mean 12.87 ms (12.62 ms .. 13.16 ms)
- std dev 699.8 μs (568.8 μs .. 938.4 μs)
- variance introduced by outliers: 25% (moderately inflated)
+ time 7.017 ms (7.008 ms .. 7.027 ms)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 7.010 ms (7.006 ms .. 7.015 ms)
+ std dev 13.95 μs (11.37 μs .. 18.55 μs)
```
## Development
diff --git a/lib/Crypto/KDF/BIP39.hs b/lib/Crypto/KDF/BIP39.hs
@@ -140,7 +140,7 @@ words wlist bs = L.unfoldr coalg (bs, 0, 0) where
-- >>> let mnem = "coral maze mimic half fat breeze thought club give brass bone snake"
-- >> let pass = "hunter2"
-- >>> seed mnem pass
--- <512-bit long seed>
+-- Just <512-bit long seed>
seed
:: T.Text -- ^ mnemonic
-> T.Text -- ^ passphrase (use e.g. "" or 'mempty' if not required)
@@ -156,7 +156,7 @@ seed = _seed english
-- >>> let mnem = "coral maze mimic half fat breeze thought club give brass bone snake"
-- >> let pass = "hunter2"
-- >>> _seed english mnem pass
--- <512-bit long seed>
+-- Just <512-bit long seed>
_seed
:: Wordlist -- ^ wordlist
-> T.Text -- ^ mnemonic
@@ -177,7 +177,7 @@ _seed wlist mnem pass = do
-- >>> let mnem = "coral maze mimic half fat breeze thought club give brass bone snake"
-- >> let pass = "hunter2"
-- >>> seed_unsafe mnem pass
--- <512-bit long seed>
+-- Just <512-bit long seed>
seed_unsafe
:: T.Text -- ^ mnemonic
-> T.Text -- ^ passphrase (use e.g. "" or 'mempty' if not required)