# pperl 0.6.8 *2026-07-27 to 2026-07-28, 3 commits.* - **`--cpan`** installs pure-Perl CPAN distributions for pperl. Modules built into pperl count as installed at pperl's own version, not at the host perl's, so they are never rebuilt. - **ExtUtils::MakeMaker**: a distribution's `Makefile.PL` runs and writes the same Makefile as on perl5. `B::svref_2object(\$v)->MAGIC` died for lack of a `B::MAGIC` class, which stopped every `Makefile.PL`; `B::MAGIC` now exists with its accessors. `$Config{eunicefix}` is `:` as on perl5, so MakeMaker no longer executes the Makefile it has just written. - **The daemon**: `pperl --via-daemon script.pl` runs the script from its cached compiled image, as `PPERL_DAEMON=2` does; the reduced mode that a bare `--via-daemon` used to select is now `--via-daemon=trunk`, and any other value is refused with the accepted forms. `--via-daemon=script` and `PPERL_DAEMON=2`, documented as the same request, kept separate caches, so a script run both ways was never served from its cached image again; they now share one. - **Safe**: a subroutine signature inside a `Safe` compartment was denied, because `Opcode` took its op tags from the host perl's `Opcode.pm`, which lacks the signature ops of perl 5.44. The tag table is now part of pperl, and the host perl's `Opcode.pm` is no longer loaded. - **Encode**: an encoding alias registered at run time works with `encode` and `decode`, not only with `resolve_alias`. - **PDL**: slicing a slice no longer checks bounds against an unset shape, `sever` detaches an ndarray from its parent, and operations with a scalar on a `flowing` ndarray no longer leave empty results or crash. - **Daemon guide**: the chapter "Fast start-up: the daemon" gains a worked example (about 24 ms per cold run against about 4 ms from the cached image, on the machine it was written on), how to check whether a run was served, how to opt in from a shebang line or a shell function, a systemd user unit, and an exact description of `--daemon-idle`.