Revision history for Data-Reservoir-Shared 0.06 2026-10-16 - Use logarithmic weighted sampling keys; recreate older weighted files (v3). - Keep uniform backing files compatible and reject unsupported reservation. - Remove relative backing paths after chdir; link threading dependencies. 0.05 2026-09-26 - A writer killed mid add no longer loses, duplicates or misorders an item: the next lock holder finishes it. - DATA_RESERVOIR_SHARED_SPARSE=0 reserves segments up front, so a full filesystem fails the constructor, not a later write. - A failed create no longer leaves a full-size file behind. 0.04 2026-09-15 - Recover a lock left ownerless by a corrupt file instead of hanging. - Fix a writer stall on ARM64 after readers release. 0.03 2026-08-12 - Recover a file left behind by an interrupted create instead of leaving the path unopenable. - Documentation and test-harness corrections. - unlink() reports a removal that failed; one already gone is not an error. 0.02 2026-07-22 - Add weighted (A-Res) sampling: new_weighted / add(item, weight). - Fix a use-after-free in add_many() when tied or overloaded arguments destroy the reservoir; it now croaks. 0.01 2026-07-10 - Initial release: shared-memory reservoir sampler (Algorithm R) with one shared RNG across producers; file, anonymous or memfd; rwlock with dead-process recovery.