Revision history for Data-Buffer-Shared

0.06      2026-07-22
          - On-disk format change (v2 -> v3): an existing 0.05 file is
            refused; recreate it.
          - Release a lock still held when its handle is destroyed.
          - Keep the parent's locks when a forked child's handle is destroyed:
            the close path now releases only locks the exiting process took
            itself (pid + fork-generation check, same guard as the reader-slot
            release).
          - End the seqlock write section when destroying a handle that holds
            lock_wr; wrunlock alone left seq odd forever and hung every bulk
            reader (slice/get_raw/Str get).
          - 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 type variants: I8/U8/I16/U16/I32/U32/I64/U64/F32/F64/Str
    - File-backed, anonymous, and memfd constructors
    - Lock-free atomic get/set for numeric types
    - Atomic counters: incr/decr/add/cas/cmpxchg
    - Atomic bitwise: and/or/xor
    - Seqlock-guarded bulk: slice/set_slice/get_raw/set_raw/fill/clear
    - Batch atomic add_slice
    - Zero-copy as_scalar (mmap-aliased scalar ref)
    - Raw pointer access: ptr/ptr_at
    - Explicit locking: lock_wr/unlock_wr/lock_rd/unlock_rd
    - fd passing: new_memfd/new_from_fd/fd
    - eventfd notifications: create_eventfd/attach_eventfd/notify/wait_notify
    - Futex-based rwlock with stale-lock recovery
    - Keyword API via XS::Parse::Keyword
