Releases: wallach-game/bashumerate
Releases · wallach-game/bashumerate
Release list
v0.2.2-hotfix003
v0.2.2-hotfix003
Release date: 2026-07-22 11:28 UTC
SHA256: d985d6b93ac9ae56de5974ab332f4e9cfbee5955f98257af82250ca98414c92e
v0.2.2-hotfix002
v0.2.2-hotfix002
Release date: 2026-07-21 09:51 UTC
SHA256: 4329131c5582eb3e9abfd3eaf2610c081e24ff2da4d8d25c653970fa5ce41bc7
v0.2.2-hotfix001
v0.2.2-hotfix001
Release date: 2026-07-21 09:37 UTC
SHA256: 8368b7130d0febf989143b27e647559694eb85abdef0e7c05b7d7372dd60f152
Fixes
- Version detection now handles tagless clones (basher shallow checkouts).
- Falls back to
VERSIONfile when git tags unavailable. - Also tries
git tag -l(all tags) before giving up.
Usage
basher install wallach-game/bashumerate@0.2.2-hotfix001
enumerate -vv0.2.2
v0.2.2
Release date: 2026-07-21 09:37 UTC
- Clean version art (braille only).
- Benchmark scripts.
v0.2.1
v0.2.1 — Speed mode & optimizations
Release date: 2026-07-21 09:37 UTC
SHA256: 909bd5e3585121c07bf9acf88cc77d4cbf9bb13e86eda455a52708c5777b40ab
New
-v/--version: ASCII art version display with toilet-style banner.-s/--speedflag: inlined execution path, no function call overhead, skips filters/dry-run/parallel.- List source fast path: iterates directly over items instead of subprocess → printf → pipe → read.
- No-op command detection:
:andtrueskip eval entirely.
Performance
- Speed mode (
-s) is 2.4x faster than normal mode for no-op, 2.25x faster forecho {}. - enumerate is 11-27x faster than xargs -I{} for real workloads.
- Synthetic no-op overhead reduced from ~1500x to ~17x vs bare for loop with
-s.
Other
- Benchmark scripts in
bench/(uses hyperfine). - 50 tests total (up from 45).
v0.2.0
What's new
- Streaming: Eliminated temp file I/O — items stream directly via process substitution. O(1) memory, zero disk overhead.
- Performance: Removed per-item
bash -cfork. Single-template commands now useeval(builtin, no subprocess). - Parallel execution:
-p/--parallelruns commands concurrently.-P N/--max-procs Nlimits concurrency (default: all CPUs). - Dry-run:
-n/--dry-runprints commands without executing them. - NUL input:
-0now also makes-l(--lines) read NUL-delimited input. - Bug fixes: Filenames with spaces and filenames starting with
-now work correctly with-f.
Full changelog
- Streaming (process substitution) instead of temp file — no disk I/O, true pipelining
bash -creplaced witheval— no fork per item, dramatically faster for large sets-n/--dry-runflag added-p/--parallel+-P/--max-procsflags added-0now affects-linput (NUL-delimited line reading)-fno longer treats arguments starting with-as flags — only--terminates glob listfiles.sh: literal filenames with spaces are now handled correctly- 11 new tests (45 total)
v0.1.0
Initial release of bashumerate - a programmable iterator for bash.
-f, --files- enumerate files matching glob patterns-l, --lines- enumerate lines from a file or stdin-r, --range- enumerate integers from start to end-L, --list- enumerate literal items--include/--excludefilters- NUL-delimited output with
-0 - 34 bats tests passing