Changes for version v0.6.6 - 2026-05-03
- Bug Fixes
- Corrected fallback handler. XSLoader fallback to pure-Perl was not triggered on platforms with old compilers (such as FreeBSD 9.2 with GCC 4.2) that emit an "Undefined symbol" error for __builtin_unreachable. The error filter regex has been tuned to cover this case.
- Added, or corrected the following missing or broken methods to the pure-Perl fallback (PERL_DATETIME_LITE_PP=1):
- clone(): fallback was added in DateTime::Lite.
- _compare(): in DateTime::Lite, moved is_infinite() check before the floating-zone clone block to prevent incorrect behaviour when comparing Infinite objects in pure-Perl.
- _posix_tz_lookup(): in DateTime::Lite::TimeZone, corrected to add pure-Perl fallback.
- DateTime::Lite::PP: removed dependency on DateTime::LeapSecond (part of the DateTime distribution). The leap second table is now inlined directly from leap_seconds.h, making the pure-Perl fallback fully self-contained.
- DateTime::Lite::PP: _normalize_tai_seconds() and _normalize_leap_seconds() did not short-circuit on non-finite values (Inf/-Inf), causing DateTime::Lite::Infinite::Future and DateTime::Lite::Infinite::Past objects to be constructed with corrupted utc_rd_days (-2 instead of Inf). Both functions now return immediately when the seconds argument is not a finite number, mirroring the dtl_isfinite() guard in the XS implementation.
- CI
- Added a new job in the CI pipeline: perl-5.38-pure-perl to verify the full test suite passes on every release with PERL_DATETIME_LITE_PP=1.
Documentation
Compare DateTime and DateTime::Lite performance
Build the DateTime::Lite::TimeZone SQLite database
Generate leap_seconds.h for DateTime::Lite XS
Modules
Lightweight, low-dependency drop-in replacement for DateTime
Duration objects for use with DateTime::Lite
Exception object for DateTime::Lite
Infinite past and future DateTime::Lite objects
Pure-Perl fallback for the DateTime::Lite XS layer
Lightweight timezone support for DateTime::Lite
Provides
in lib/DateTime/Lite/Infinite.pm
in lib/DateTime/Lite/Infinite.pm
in lib/DateTime/Lite/Infinite.pm
in lib/DateTime/Lite.pm