Changes for version v1.5.9 - 2026-06-05

  • Bug fixes
    • Fixed a thread-safety defect in Module::Generic::Finfo::_datetime() that caused atime(), ctime() and mtime() to return a false value under ithreads in a non-deterministic, scheduling-dependent manner. The shared local_tz capability flag was resolved under a lock, but the DateTime::Lite object was built only inside that same locked initialisation block. Any thread that acquired the lock after another thread had already populated the flag skipped the block and left the object undefined, which then died on set_formatter(). The lock now resolves only the boolean capability flag, and the DateTime::Lite object is always built afterwards, outside the initialisation block, so every thread produces its own object regardless of which thread won the initialisation race. This clears the intermittent t/11.finfo.t "All threads accessed datetime successfully" failure observed on perl 5.18.2 smokers.
    • Hardened _datetime() to treat an undefined return from DateTime::Lite->from_epoch() as a failure even when no exception is raised, both when probing for local time zone support and when building the final object. Previously a quiet undef return could set the local_tz flag to true incorrectly, or fall through to set_formatter() on an undefined object.

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
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