Changes for version 0.112 - 2026-09-05

  • Extend first-class cached constructor callbacks to Kernel::Event, Kernel::Timer, Kernel::Signal, Kernel::Process, and IO::Sock::Dgram. Public leaves can now be used directly while subclass methods retain the cached fast path and may be overridden per object.
  • Document subclassing prominently as the declarative home for native framers, TLS, socket policy, and Stream, Datagram, and Process tuning. Add live delivery, override, lexical-retention, validation, and terminal callback-release tests for the expanded constructor API.
  • Add first-class constructor callbacks for ordered-byte input and lifecycle events on Pipe, TTY, connected Stream, and accepted Stream objects. Constructor callbacks override same-named class methods for that instance.
  • Cache the effective raw, framed, and batched input callback directly in native stream state, preserving direct CV dispatch and compatible instance callbacks across protocol transitions.
  • Let Listener constructors provide one shared callback set for every accepted Stream, without allocating per-connection wrapper closures.
  • Add lifecycle, transition, teardown, Listener propagation, and callback retention coverage plus permanent construction, raw-dispatch, and framed-dispatch regression benchmarks.
  • Add a high-level Stream comparison harness for raw and delimiter-framed Linux::Event, AnyEvent, UV, IO::Async, and Mojo adapters. Keep this optional-dependency benchmark outside the CPAN distribution and installation test suite.
  • Document callback signatures, mode validation, class-policy boundaries, Listener template reuse, and cached-CV dispatch throughout public POD and design documents. Compile every public POD SYNOPSIS and execute the Pipe and connected-Stream callback examples during testing.

Modules

Linux-native reactor, I/O, and kernel event facilities
lazy socket-address value
structured Linux::Event failure details
native framing for ordered-byte I/O
native decimal-length framing declaration
native delimiter framing declaration
native fixed-size framing declaration
native binary length framing declaration
native netstring framing declaration
native 32-bit big-endian framing declaration
native unsigned LEB128 framing declaration
application data I/O namespace
asynchronous ordered-byte I/O for pipes and FIFOs
Linux socket I/O namespace
asynchronous Linux SOCK_DGRAM I/O
asynchronous listening SOCK_STREAM socket
asynchronous Linux SOCK_STREAM connections
asynchronous ordered-byte I/O for terminals and PTYs
kernel event and state namespace
eventfd-backed Loop notification
pidfd process lifecycle and asynchronous stdio
synchronous signalfd delivery on a Loop
monotonic one-shot and recurring Loop timers
Linux-native epoll event loop
declare OpenSSL TLS policy for stream-socket subclasses