Changes for version 0.07 - 2026-08-11
- Fix a reader-lock leak and an unbalanced unlock_rd that underflowed a reader slot; either could block every writer indefinitely.
- Refuse a non-empty file too small to hold a header, including one this process created.
- Recover a file left behind by an interrupted create.
- Create leaves the backing file sparse.
- Str set()/fill(): clamp the value length to the element size.
- Str get(): size the scratch buffer as size_t.
- slice(): validate count against capacity before allocating.
- unlink() reports a removal that failed; one already gone is not an error.
- Makefile.PL: Shared.c depends on xs/*.xs and buf_*.h; declare the repository and bugtracker in META.
- Hardening: re-entrancy with tied and overloaded arguments, and DESTROY on an invocant that is not one of ours.
- Documentation and test-harness corrections.
Modules
Type-specialized shared-memory buffers for multiprocess access
Provides
in lib/Data/Buffer/Shared/F32.pm
in lib/Data/Buffer/Shared/F64.pm
in lib/Data/Buffer/Shared/I16.pm
in lib/Data/Buffer/Shared/I32.pm
in lib/Data/Buffer/Shared/I64.pm
in lib/Data/Buffer/Shared/I8.pm
in lib/Data/Buffer/Shared/Str.pm
in lib/Data/Buffer/Shared/U16.pm
in lib/Data/Buffer/Shared/U32.pm
in lib/Data/Buffer/Shared/U64.pm
in lib/Data/Buffer/Shared/U8.pm
Examples
- eg/audio_waveform.pl
- eg/basic.pl
- eg/bitflags.pl
- eg/double_buffer.pl
- eg/ev_eventfd.pl
- eg/eventfd_notify.pl
- eg/gl_compute_shader.pl
- eg/gl_indexed_mesh.pl
- eg/gl_particle_sim.pl
- eg/gl_ssbo.pl
- eg/gl_texture_upload.pl
- eg/gl_transform_feedback.pl
- eg/gl_uniform_buffer.pl
- eg/histogram.pl
- eg/memfd_share.pl
- eg/metrics.pl
- eg/multiprocess.pl
- eg/opengl_vbo.pl
- eg/pdl_image_pipeline.pl
- eg/pdl_interop.pl
- eg/persistent_reopen.pl
- eg/point_cloud.pl
- eg/ring_buffer.pl
- eg/semaphore.pl
- eg/shared_config.pl
- eg/shared_log.pl