Revision history for Data-Buffer-Shared

0.09      2026-09-26
          - DATA_BUFFER_SHARED_SPARSE=0 reserves segments up front, so a full
            filesystem fails the constructor, not a later write.
          - Checking a half-created file no longer allocates it on tmpfs.
          - Long paths no longer cut the reason from error messages.

0.08      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.07      2026-08-11
          - Fix a reader-lock leak and an unbalanced unlock_rd that could
            block every writer.
          - Refuse a truncated file; recover an interrupted create's file.
          - Str set/fill clamp lengths; tied/overloaded argument hardening.
          - unlink() reports a failed removal.

0.06      2026-07-22
          - On-disk format change (v2 -> v3): recreate 0.05 files.
          - Destroying a handle releases only its own locks, never a forked
            parent's, and no longer hangs bulk readers.
          - Reject Str lengths above 2^32.

0.05  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.04  2026-05-26
    - Dead-reader rwlock recovery: SIGKILL'd reader no longer pins the counter;
      1024-slot per-process mirror drains dead contributions on wrlock timeout
    - BUF_VERSION 1 -> 2 (header adds reader_slots_off); existing 0.03 maps
      must be recreated

0.03  2026-04-26
    - new from fd dups fd; sync/stats/memfd aliases
    - rwlock writers waiting split + crash recovery
    - idempotent eventfd; unlink croaks on failure
    - aarch64 CI matrix


0.02  2026-04-12
    - Fix DESTROY ordering (zero IV before free)
    - Add SEE ALSO cross-links to family modules


0.01  2026-04-05
    - Initial release: 11 typed variants on file, anonymous or memfd memory.
    - Lock-free atomics, seqlock-guarded bulk ops, zero-copy as_scalar/ptr.
    - Explicit locks, fd passing, eventfd notify; futex rwlock with stale-lock
      recovery.
    - Keyword API via XS::Parse::Keyword.
