Revision history for Data-SortedSet-Shared

0.07      2026-09-26
          - A writer killed mid add, incr, remove or pop is repaired: the set
            is as before or after that write.
          - Segments are reserved, so a full filesystem fails the constructor;
            DATA_SORTEDSET_SHARED_SPARSE=1 skips the reservation.
          - A failed create no longer leaves a full-size file behind.

0.06      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.05      2026-08-12
          - A file left by an interrupted create is recovered, not refused.
          - freeze()/new_readonly(): sealed read-only mode, lock-free.
          - Refuse a header whose root names a free node while the tree is
            empty.

0.04      2026-07-23
          - An insert is refused when the node pool cannot cover a worst-case
            split, instead of writing out of bounds; writes validate indices.
          - A corrupt member index fails instead of spinning.
          - On-disk format change (v1 -> v2): recreate 0.03 files.
          - Document that a writer crash can corrupt the set.

0.03      2026-07-03
          - Security and robustness hardening; backing files now created mode
            0600 (pass a file-mode argument to new() for cross-user sharing).

0.02      2026-06-24
          - Bundle Data::SortedSet::Shared::Strings (string members) with a
            new_strings() constructor; new prerequisite Data::Intern::Shared.
          - DESTROY nulls the handle first: use after destroy croaks, double
            DESTROY is a no-op.
          - stats computes index_load directly; range_by_score descends once.

0.01      2026-06-22
          - Initial release.
