Changes for version 0.02 - 2026-09-11
- FIXES the Windows FAIL in 0.01. Three test files forked without skipping on MSWin32, where fork is emulated with threads: a child calling exit ends the whole file, so every assertion passed, no plan was printed, and the harness called it a FAIL.
- FIXES a test that failed 9 runs in 12 on a two-processor container and 0 in 12 here. It had four children write 2000 churn keys into a 512-entry cache to force eviction, then asserted an entry written before that churn had survived it. The children report through a pipe now; eviction is still asserted, where it belongs.
- FIXES carving a region being refused under contention. The stripe lock is a pure spin, so with more carvers than cores the budget burned while the holder was not scheduled
- FIXES a test using pack('Q<'), which is a fatal "Invalid type" on a perl built with ivsize=4.
Modules
memory two processes can both read, without a syscall
a shared set that answers "no" exactly and "yes" probably
a shared cache that evicts instead of refusing
how often a key has been seen, in fixed space
one structure, published once and read in place by every process
read a published block without copying it
a distribution every process adds to at once
a fixed-capacity map several processes share
a token bucket per key, shared by every worker
a record queue several processes can write at once
one reader's position in a ring
one record to one member of the pool