Revision history for Data::Deque::Shared

0.10      2026-09-26
          - Segments are reserved, so a full filesystem fails the constructor;
            DATA_DEQUE_SHARED_SPARSE=1 skips the reservation.
          - A failed create no longer leaves a full-size file behind.
          - Checking a half-created file no longer allocates it on tmpfs.
          - Long paths no longer cut the reason from error messages.

0.09      2026-09-15
          - Fix a blocked push_wait missing a slot freed by crash recovery.
          - The recoveries stat also counts pop and push recoveries.

0.08      2026-08-12
          - A file left by an interrupted create is recovered, not refused.
          - Hardening against tied and overloaded arguments.
          - unlink() reports a failed removal; a missing file is no error.

0.07      2026-07-21
          - Fix push/pop hanging on a slot abandoned by a killed peer.
          - Resolve argument magic before capturing the path string.

0.06  2026-07-03
    - Security and robustness hardening; backing files now created mode
      0600 (pass a file-mode argument to new() for cross-user sharing).
    - Str variant now preserves the UTF-8 flag on round-trip; Str max_len
      must be < 2 GiB.

0.05  2026-06-01
    - Str pop paths: free temp buffer via SAVEFREEPV (leak on OOM-croak)

0.04  2026-05-26
    - drain recovers a slot stuck after a crashed pusher (~2s), counted in
      stats recoveries.
    - Slot publish is a CAS, so a stalled pusher cannot clobber a recovered
      slot.
    - Headers with an elem_size invalid for the variant are refused.

0.03  2026-04-26
    - MPMC per-slot state machine + file format v2
    - strict fd validation
    - Str variant (fixed-max-length strings)
    - idempotent eventfd; drain() test coverage
    - aarch64 CI matrix


0.02  2026-04-12
    - Add drain() -- concurrency-safe alternative to clear()

0.01  2026-04-11
    - Initial release
