This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove Devel::DProf from the core distribution. Get it from CPAN now.
authorNicholas Clark <nick@ccl4.org>
Fri, 18 Feb 2011 18:19:45 +0000 (18:19 +0000)
committerNicholas Clark <nick@ccl4.org>
Fri, 18 Feb 2011 18:21:12 +0000 (18:21 +0000)
Recommend Devel::NYTProf over Devel::DProf.

[Devel::DProf isn't actually on CPAN quite yet, but will be well before 5.14.0
"escapes"]

ext/Devel-DProf/DProf.pm
ext/Devel-DProf/bin/dprofpp
pod/perldelta.pod

index 384158a..7f6d4cc 100644 (file)
@@ -235,6 +235,8 @@ use XSLoader ();
 $Devel::DProf::VERSION = '20110217.00';  # this version not authorized by
                                         # Dean Roehrich. See "Changes" file.
 
+use if $] >= 5.013, 'deprecate';
+
 sub import {
     XSLoader::load 'Devel::DProf', $Devel::DProf::VERSION;
 }
index 47b9bf5..f529b8c 100644 (file)
@@ -12,6 +12,14 @@ BEGIN {
     }
 }
 
+require Devel::DProf;
+require deprecate;
+
+if(deprecate::__loaded_from_core('Devel::DProf', $INC{'Devel/DProf.pm'},
+                                'Devel/DProf.pm')) {
+    warn "dprofpp will be removed from the Perl core distribution in the next major release. Please install Devel::DProf from CPAN.\n";
+}
+
 =head1 NAME
 
 dprofpp - display perl profile data
@@ -356,7 +364,6 @@ Setup: {
         }
 
        if( defined $opt_V ){
-               require Devel::DProf;
                my $fh = 'main::fh';
                print "$0 version: $Devel::DProf::VERSION\n";
                open( $fh, "<$Monfile" ) && do {
index 351d8df..4dc0b52 100644 (file)
@@ -141,9 +141,44 @@ deadlocks. It returns true in such cases.
 
 =head1 Deprecations
 
-XXX Any deprecated features, syntax, modules etc. should be listed here.
-In particular, deprecated modules should be listed here even if they are
-listed as an updated module in the L</Modules and Pragmata> section.
+=over
+
+=item Deprecated Modules
+
+The following modules will be removed from the core distribution in a
+future release, and should be installed from CPAN instead. Distributions
+on CPAN which require these should add them to their prerequisites. The
+core versions of these modules warnings will issue a deprecation warning.
+
+If you ship a packaged version of Perl, either alone or as part of a
+larger system, then you should carefully consider the repercussions of
+core module deprecations. You may want to consider shipping your default
+build of Perl with packages for some or all deprecated modules which
+install into C<vendor> or C<site> perl library directories. This will
+inhibit the deprecation warnings.
+
+Alternatively, you may want to consider patching F<lib/deprecate.pm>
+to provide deprecation warnings specific to your packaging system
+or distribution of Perl, consistent with how your packaging system
+or distribution manages a staged transition from a release where the
+installation of a single package provides the given functionality, to
+a later release where the system administrator needs to know to install
+multiple packages to get that same functionality.
+
+You can silence these deprecation warnings by installing the modules
+in question from CPAN.  To install the latest version of all of them,
+just install C<Task::Deprecations::5_12>.
+
+=over
+
+=item L<Devel::DProf>
+
+We strongly recommend that you install and used L<Devel::NYTProf> in
+preference, as it offers significantly improved profiling and reporting.
+
+=back
+
+=back
 
 =head2 User-defined case-mapping
 
@@ -257,6 +292,11 @@ Merely loading C<Devel::DProf> now no longer triggers profiling to start.
 C<use Devel::DProf> and C<perl -d:DProf ...> still behave as before and start
 the profiler.
 
+NOTE: C<Devel::DProf> is deprecated and will be removed from a future
+version of Perl. We strongly recommend that you install and used
+L<Devel::NYTProf> in preference, as it offers significantly improved
+profiling and reporting.
+
 =item *
 
 C<DynaLoader> has been upgraded from version 1.12 to 1.13.