Changes for version 0.17 - 2026-02-03

  • object: Add DEMOLISH support for destructor callbacks
    • Define DEMOLISH method in class, auto-wrapped DESTROY installed
    • Zero overhead: wrapper only installed if DEMOLISH exists
  • object: Add Role system for reusable slot/method bundles
    • object::role($name, @slots) - define a role with slots
    • object::requires($role, @methods) - declare required methods
    • object::with($class, @roles) - compose roles into class
    • object::does($obj, $role) - check role consumption
    • Copies slots and methods, validates required methods
  • object: Add Method Modifiers (before/after/around)
    • object::before('Class::method', \&callback)
    • object::after('Class::method', \&callback)
    • object::around('Class::method', sub { my ($orig, $self) = @_; ... })
    • Multiple modifiers stack correctly
    • Zero overhead: wrapper only installed when modifier added
  • object: Add lazy/builder support for deferred slot initialization
    • 'slot:Type:lazy:builder(_build_method)' syntax
    • Value computed on first access, cached thereafter
  • object: Add clearer/predicate support
    • 'slot:Type:clearer' installs clear_slot() method
    • 'slot:Type:predicate' installs has_slot() method
  • Add GvCV_set, HvNAMELEN, newXS_flags compat macros for Perl 5.10
  • All new features have zero overhead when not used
  • Updated POD documentation for all new features

Modules

Post-Apocalyptic Perl
fast read-only constants with compile-time optimization
doubly linked list
Fast IO operations using direct system calls
Binary heap (priority queue) with O(log n) operations
lru
LRU cache with O(1) operations
A no-operation function, optimized to a single custom op
Experimental SIMD accelerated numeric vectors
objects with prototype chains
global reactive state slots with optional watchers
Functional programming utilities with XS acceleration