Changes for version v1.8.0 - 2026-09-25
- Bug fixes
- Fixed Module::Generic::SharedMemXS and Module::Generic::SharedMem string-key handling to derive stable 31-bit System V IPC keys directly from the configured path and key, instead of reducing arbitrary string keys to the limited project-id space used by ftok(). This substantially reduces avoidable shared-memory key collisions.
- Fixed shared-memory open() handling so read/write key prefixes are normalised before the IPC key is derived, and numeric modes are passed correctly to flags().
- Fixed Module::Generic::SharedMem exists() to build non-creating flags explicitly instead of toggling IPC_CREAT with XOR.
- Fixed Module::Generic::SharedMem open() fallback behaviour that could advance the stored serial after a successful shmget(), causing the shared-memory segment and its semaphore to use different keys.
- Fixed handling of valid shared-memory and semaphore identifier 0 in several code paths.
- Fixed DESTROY cleanup in Module::Generic::SharedMemXS and Module::Generic::SharedMem so cleanup is no longer skipped for a valid shared-memory id and semaphore removal respects destroy_semaphore.
- Fixed explicit mode 0 handling in flags(), which was previously replaced by the default mode 0666.
- Improvements
- Shared-memory objects returned by open() now preserve relevant object state such as exclusive, destroy_semaphore, and base64 where applicable.
- Updated SharedMem documentation to describe the revised string-key derivation and shared-memory key semantics.
Documentation
An Enhanced DateTime::Duration Object
An Array Iterator Element Object Class
A Regexp Result Object
Shared Memory Manipulation
Modules
Generic Module to inherit from
An Array Manipulation Object Class
Boolean Representation Class
A DateTime wrapper for enhanced features
Dynamic Object Class
Generic Module Exception Class
File Object Abstraction Class
File-based Cache
File IO Object Wrapper
File type and MIME detection with 3-level backend cascade
MMap File Class
File Info Object Class
Contextual global storage by namespace, class or object
Hash Manipulation Object Class
Generic Header Value Parser
An Array Iterator Object Class
A thin and reliable wrapper around JSON
Null Value Chaining Object Class
Number Manipulation Object Class
Locale-aware number formatting for Module::Generic::Number
String Manipulation Object Class
Generic Module Scalar IO Class
Shared Memory Manipulation
Shared Memory Manipulation with XS API
Object Access Control Class
Generic Tie Hash Mechanism for Object Oriented Hashes
Provides
in lib/Module/Generic/DateTime.pm
in lib/Module/Generic/Number.pm
in lib/Module/Generic/Iterator.pm
in lib/Module/Generic/Number.pm
in lib/Module/Generic/Number.pm