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