]> git.vpit.fr Git - perl/modules/indirect.git/commitdiff
This is 0.12 v0.12
authorVincent Pit <vince@profvince.com>
Sun, 3 May 2009 14:26:40 +0000 (16:26 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 3 May 2009 14:26:40 +0000 (16:26 +0200)
Changes
META.yml
README
lib/indirect.pm

diff --git a/Changes b/Changes
index 97a4930c973e164704be5236668ec97862967972..20755cf4273aa512e48e5a5fd02558a725a97aa4 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,18 @@
 Revision history for indirect
 
 Revision history for indirect
 
+0.12    2009-05-03 14:30 UTC
+        + Add : You can specify the action to execute for each indirect
+                construct encountered with the new "hook => $coderef" unimport()
+                option.
+        + Chg : A ptable is now used internally for the op => position mapping.
+        + Fix : The pragma is now built with thread safety features enabled
+                whenever possible (a notable exception is perl 5.8.x on Win32,
+                as something seems wrong with its context handling).
+                The new indirect::I_THREADSAFE() constant reflects this.
+        + Fix : A negation precedence nit in indirect_ck_entersub().
+        + Tst : "use/no indirect" while parsing an indirect construct.
+        + Tst : Thread safety.
+
 0.11    2009-02-08 18:35 UTC
         + Fix : Potential collisions by hashing pointers with a wrong format.
         + Upd : Resources in META.yml.
 0.11    2009-02-08 18:35 UTC
         + Fix : Potential collisions by hashing pointers with a wrong format.
         + Upd : Resources in META.yml.
index 12f98e82732d118d1222ff2dfa93993b11fa3832..d2dc20a2d249dd011ebd8b5a546fac635798f152 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               indirect
 --- #YAML:1.0
 name:               indirect
-version:            0.11
+version:            0.12
 abstract:           Lexically warn about using the indirect object syntax.
 author:
     - Vincent Pit <perl@profvince.com>
 abstract:           Lexically warn about using the indirect object syntax.
 author:
     - Vincent Pit <perl@profvince.com>
@@ -18,12 +18,12 @@ resources:
     bugtracker:  http://rt.cpan.org/NoAuth/ReportBug.html?Queue=indirect
     homepage:    http://search.cpan.org/dist/indirect/
     license:     http://dev.perl.org/licenses/
     bugtracker:  http://rt.cpan.org/NoAuth/ReportBug.html?Queue=indirect
     homepage:    http://search.cpan.org/dist/indirect/
     license:     http://dev.perl.org/licenses/
-    repository:  http://git.profvince.com/perl/modules/indirect.git
+    repository:  http://git.profvince.com/?p=perl%2Fmodules%2Findirect.git
 no_index:
     directory:
         - t
         - inc
 no_index:
     directory:
         - t
         - inc
-generated_by:       ExtUtils::MakeMaker version 6.48
+generated_by:       ExtUtils::MakeMaker version 6.50
 meta-spec:
     url:      http://module-build.sourceforge.net/META-spec-v1.4.html
     version:  1.4
 meta-spec:
     url:      http://module-build.sourceforge.net/META-spec-v1.4.html
     version:  1.4
diff --git a/README b/README
index e1c879f449af30cb2a894e62e899d1ed867725db..c8d4438069cd48b8c935dbfb0066d55407211097 100644 (file)
--- a/README
+++ b/README
@@ -2,18 +2,30 @@ NAME
     indirect - Lexically warn about using the indirect object syntax.
 
 VERSION
     indirect - Lexically warn about using the indirect object syntax.
 
 VERSION
-    Version 0.11
+    Version 0.12
 
 SYNOPSIS
 
 SYNOPSIS
+        # In a script
         no indirect;
         my $x = new Apple 1, 2, 3; # warns
         {
          use indirect;
          my $y = new Pear; # ok
         no indirect;
         my $x = new Apple 1, 2, 3; # warns
         {
          use indirect;
          my $y = new Pear; # ok
+         {
+          no indirect hook => sub { die "You really wanted $_[0]\->$_[1]" };
+          my $z = new Pineapple 'fresh'; # croaks 'You really wanted Pineapple->new'
+         }
         }
         no indirect ':fatal';
         if (defied $foo) { ... } # croaks, note the typo
 
         }
         no indirect ':fatal';
         if (defied $foo) { ... } # croaks, note the typo
 
+        # From the command-line
+        perl -M-indirect -e 'my $x = new Banana;' # warns
+
+        # Or each time perl is ran
+        export PERL5OPT="-M-indirect"
+        perl -e 'my $y = new Coconut;' # warns
+
 DESCRIPTION
     When enabled (or disabled as some may prefer to say, since you actually
     turn it on by calling "no indirect"), this pragma warns about indirect
 DESCRIPTION
     When enabled (or disabled as some may prefer to say, since you actually
     turn it on by calling "no indirect"), this pragma warns about indirect
@@ -30,14 +42,26 @@ DESCRIPTION
     This module is not a source filter.
 
 METHODS
     This module is not a source filter.
 
 METHODS
-  "unimport @opts"
+  "unimport [ hook => $hook | ':fatal' ]"
     Magically called when "no indirect @opts" is encountered. Turns the
     Magically called when "no indirect @opts" is encountered. Turns the
-    module on. If @opts contains ':fatal', the module will croak on the
-    first indirect syntax met.
+    module on. The policy to apply depends on what is first found in @opts :
+
+    *   If it's the string ':fatal', the compilation will croak on the first
+        indirect syntax met.
+
+    *   If the key/value pair "hook => $hook" comes first, $hook will be
+        called for each error with the object name as $_[0] and the method
+        name as $_[1].
+
+    *   Otherwise, a warning will be emitted for each indirect construct.
 
   "import"
     Magically called at each "use indirect". Turns the module off.
 
 
   "import"
     Magically called at each "use indirect". Turns the module off.
 
+CONSTANTS
+  "I_THREADSAFE"
+    True iff the module could have been built when thread-safety features.
+
 CAVEATS
     "meth $obj" (no semicolon) at the end of a file won't be seen as an
     indirect object syntax, although it will as soon as there is another
 CAVEATS
     "meth $obj" (no semicolon) at the end of a file won't be seen as an
     indirect object syntax, although it will as soon as there is another
index 3efbb808971990248c016ce19e757ecccbfcf531..1b7b0e059a98436c4fac086c94a4899b2614293e 100644 (file)
@@ -11,13 +11,13 @@ indirect - Lexically warn about using the indirect object syntax.
 
 =head1 VERSION
 
 
 =head1 VERSION
 
-Version 0.11
+Version 0.12
 
 =cut
 
 our $VERSION;
 BEGIN {
 
 =cut
 
 our $VERSION;
 BEGIN {
- $VERSION = '0.11';
+ $VERSION = '0.12';
 }
 
 =head1 SYNOPSIS
 }
 
 =head1 SYNOPSIS