Revision history for Data-Fenwick-Shared
0.03 2026-08-12
- Recover a file left behind by an interrupted create instead of
leaving the path unopenable.
- Frozen read-only mode: freeze() seals a file-backed structure;
new_readonly() maps it O_RDONLY and queries it lock-free.
- Documentation and test-harness corrections.
- unlink() reports a removal that failed; one already gone is not an
error.
0.02 2026-07-22
- Fix a use-after-free in merge(): sv_isobject on the peer argument
runs get-magic, so a tied argument can destroy this object before
its handle is used again. Such a call now croaks.
- Add range-update mode (new_range / range_add; O(log n) range queries).
- Resolve argument magic before capturing the path string.
- Correct the POD: 0.02 cannot open a 0.01 file.
0.01 2026-07-10
- Initial release. Shared-memory Fenwick tree (binary indexed tree):
O(log n) point update and prefix-sum query over n signed int64
positions, plus range/point/total, set, and a find (binary-lifting
rank / weighted-sample lookup). Backed by a file, anonymous mapping,
or memfd; write-preferring rwlock with dead-process recovery;
element-wise merge. Linux, 64-bit Perl.