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