Revision history for Data::Graph::Shared
0.06 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.
- Hardening: re-entrancy with tied and overloaded arguments, and
DESTROY on an invocant that is not one of ours.
- Documentation and test-harness corrections.
- unlink() reports a removal that failed; one already gone is not an
error.
- Document which methods return false for an id whose node is gone and
which croak; add_edge naming a removed node adds nothing and reports
it only through its return value.
0.05 2026-07-22
- Fix a use-after-free in add_edge(): an overloaded or tied weight
argument runs Perl that can destroy the graph, after which the
already-captured handle was still used. Such a call now croaks.
- Cache mapping geometry from one validated snapshot at attach.
- Reject node indexes >= 2^32 instead of truncating them.
0.04 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.03 2026-06-01
- new/new_memfd: reject max_nodes/max_edges > 2^32 instead of silently
truncating the uint32 cast to a tiny graph
0.02 2026-04-26
- atomic RMW + lifecycle parity
- REQUIRE NODE macro; notify() returns bool
- eventfd consume returns SV*
- hoist Perl alloc out of neighbors mutex
- idempotent eventfd; aarch64 CI matrix
0.01 2026-04-12
- Initial release