RELEASE CODENAME: "Aristotle", in thanks for the many
long and detailed discussions about the autodie interface
and how it should interact with Fatal. Aristotle was
instrumental in ensuring autodie has the clean and
simple interface that it does now.FEATURE: 5.8 now has the ability to differentiate between calls
that return false to indicate failure, and those that
only return undef to indicate failure. CORE::send and
CORE::recv are examples of these.FEATURE: You can now 'use autodie qw(fork)' to make sure your
forks are successful (they must return defined).TEST: t/todo.t removed. We have passing tests (recv.t)
for the reminder I had stuffed into here.TEST: t/fork.t added, for testing autodying fork.
INTERNAL: The internal subroutine _remove_lexical_subs has been
renamed to a much less misleading name of _install_subs,
since that's what it actually does now.BUGFIX: Found and fixed a nasty bug where autodie's internal
subroutine cache was being too agressive. This could result in
handles from the incorrect package being used. Scalar filehandles
have never been affected by this bug.BUGFIX: Autodying subroutines will no longer leak into other
files if they are used/required/done in the same lexical scope.BUILD: Fatal and autodie now install themselves with a
INSTALLDIRS=perl target, meaning they will now correctly
override (and possibly overwrite) your installed Fatal.pm
on 'make install'.DOCUMENTATION: Documented the 'used only once' bug when
using Fatal/autodie with package filehandles. This has
always existed in Fatal, and as far as I know it incurable
(but harmless).FEATURE: autodie and its exceptions can now be subclassed!
TEST: Added t/crickey.t as an example of using fair dinkum
subclasses of autodie. Mate, I reckon it's time for a beer.INTERNAL: Moved exception architecture from inside-out
objects (which need lots of extra work under 5.8) to
regular hashes (which don't need extra work).INTERNAL: Inlined relevant portions of Scope::Guard, meaning
autodie can be installed with no dependencies. (It still
recommends IPC::System::Simple.)