This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pjf: dual life modules
authorPaul Fenwick <pjf@perltraining.com.au>
Mon, 29 Jun 2009 02:21:01 +0000 (12:21 +1000)
committerH.Merijn Brand <h.m.brand@xs4all.nl>
Mon, 29 Jun 2009 06:31:25 +0000 (08:31 +0200)
commit9b657a623c3928518095c706c37ba6315469a48e
treefae4263cf832211dd0441646fc8b6ba114f855c8
parent23837600fa52ecf2e9c76a913a327497b353e685
pjf: dual life modules

G'day Dave / p5p,

Attached is a patch that brings blead up to autodie 2.0, providing the new
hinting interface, and matching what's out there on the CPAN.

Cheerio,

Paul

--
Paul Fenwick <pjf@perltraining.com.au> | http://perltraining.com.au/
Director of Training                   | Ph:  +61 3 9354 6001
Perl Training Australia                | Fax: +61 3 9354 2681

From 41441253d22a31e4942ae0949102fada56b15343 Mon Sep 17 00:00:00 2001
From: Paul Fenwick <pjf@perltraining.com.au>
Date: Mon, 29 Jun 2009 12:08:21 +1000
Subject: [PATCH] Merge autodie 2.00 into CORE.

2.00  Mon Jun 29 01:24:49 AUSEST 2009

        * FEATURE: autodie can now accept hints regarding how
          user and module subroutines should be handled.  See
          autodie::hints for more information.

        * INTERFACE: The calls to the internal subroutines
          one_invocation() and write_invocation() have changed.
          An additional argument (the user subroutine reference) is
          passed as the second-last argument.  This may break code
          that previously tried to call these subroutines directly.

        * BUGFIX: Calls to subroutines to File::Copy should now
          correctly throw exceptions when called in a list context.

        * BUGFIX: An internal error where autodie could potentially
          fail to correctly report a dying function's name has been
          fixed.

        * BUGFIX: autodie will no longer clobber package scalars when
          a format has the same name as an autodying function.
          (Thanks to Ben Morrow)

        * INTERFACE: The internal interfaces for fill_protos(),
          one_invocation(), write_invocation() are now once again
          backward compatible with legacy versions of Fatal.  It is
          still strongly recommended these interfaces are NOT called
          directly.  The _make_fatal() subroutine is not backwards
          compatible.

        * TEST: Added internal-backcompat.t to test backwards
          compatibility of internal interfaces.

        * DOCUMENTATION: Expanded documentation regarding how
          autodie changes calls to system(), and how this must be
          explicitly enabled.

        * BUGFIX: A situation where certain compile-time diagnostics
          and errors from autodie would not be displayed has been
          fixed.

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
51 files changed:
MANIFEST
lib/Fatal.pm
lib/autodie.pm
lib/autodie/exception.pm
lib/autodie/exception/system.pm
lib/autodie/hints.pm [new file with mode: 0644]
lib/autodie/t/00-load.t [changed mode: 0644->0755]
lib/autodie/t/Fatal.t [changed mode: 0644->0755]
lib/autodie/t/autodie.t [changed mode: 0644->0755]
lib/autodie/t/backcompat.t [changed mode: 0644->0755]
lib/autodie/t/basic_exceptions.t [changed mode: 0644->0755]
lib/autodie/t/binmode.t [changed mode: 0644->0755]
lib/autodie/t/caller.t [changed mode: 0644->0755]
lib/autodie/t/context.t [changed mode: 0644->0755]
lib/autodie/t/context_lexical.t [changed mode: 0644->0755]
lib/autodie/t/crickey.t [changed mode: 0644->0755]
lib/autodie/t/dbmopen.t [changed mode: 0644->0755]
lib/autodie/t/exception_class.t [changed mode: 0644->0755]
lib/autodie/t/exceptions.t [changed mode: 0644->0755]
lib/autodie/t/exec.t [changed mode: 0644->0755]
lib/autodie/t/filehandles.t [changed mode: 0644->0755]
lib/autodie/t/fileno.t [changed mode: 0644->0755]
lib/autodie/t/flock.t [changed mode: 0644->0755]
lib/autodie/t/format-clobber.t [new file with mode: 0755]
lib/autodie/t/hints.t [new file with mode: 0755]
lib/autodie/t/hints_insist.t [new file with mode: 0755]
lib/autodie/t/hints_pod_examples.t [new file with mode: 0755]
lib/autodie/t/hints_provider_does.t [new file with mode: 0755]
lib/autodie/t/hints_provider_easy_does_it.t [new file with mode: 0755]
lib/autodie/t/hints_provider_isa.t [new file with mode: 0755]
lib/autodie/t/internal-backcompat.t [new file with mode: 0755]
lib/autodie/t/internal.t [changed mode: 0644->0755]
lib/autodie/t/lethal.t [changed mode: 0644->0755]
lib/autodie/t/lib/Hints_pod_examples.pm [new file with mode: 0644]
lib/autodie/t/lib/Hints_provider_does.pm [new file with mode: 0644]
lib/autodie/t/lib/Hints_provider_easy_does_it.pm [new file with mode: 0644]
lib/autodie/t/lib/Hints_provider_isa.pm [new file with mode: 0644]
lib/autodie/t/lib/Hints_test.pm [new file with mode: 0644]
lib/autodie/t/lib/OtherTypes.pm [new file with mode: 0644]
lib/autodie/t/mkdir.t [changed mode: 0644->0755]
lib/autodie/t/open.t [changed mode: 0644->0755]
lib/autodie/t/recv.t [changed mode: 0644->0755]
lib/autodie/t/repeat.t [changed mode: 0644->0755]
lib/autodie/t/scope_leak.t [changed mode: 0644->0755]
lib/autodie/t/sysopen.t [changed mode: 0644->0755]
lib/autodie/t/truncate.t [changed mode: 0644->0755]
lib/autodie/t/unlink.t [changed mode: 0644->0755]
lib/autodie/t/user-context.t [changed mode: 0644->0755]
lib/autodie/t/usersub.t [changed mode: 0644->0755]
lib/autodie/t/version.t [changed mode: 0644->0755]
lib/autodie/t/version_tag.t [changed mode: 0644->0755]