]> git.vpit.fr Git - perl/modules/Variable-Magic.git/commitdiff
This is 0.39 v0.39
authorVincent Pit <vince@profvince.com>
Tue, 1 Dec 2009 00:00:22 +0000 (01:00 +0100)
committerVincent Pit <vince@profvince.com>
Tue, 1 Dec 2009 00:00:22 +0000 (01:00 +0100)
Changes
META.yml
README
lib/Variable/Magic.pm

diff --git a/Changes b/Changes
index c1e98e93dd45a963c14d797fd72761642fefe5e6..60eb5485c05371766b3b605a42f187b455009ac3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,20 @@
 Revision history for Variable-Magic
 
+0.39    2009-12-01 00:05 UTC
+        + Add : You can use a function name as a callback by passing a string
+                reference to wizard() instead of a code reference.
+        + Fix : Compatiblity with perl 5.11.1 and 5.11.2.
+        + Fix : Scalars stored into the data slot no longer leak.
+        + Fix : Thread destruction should not segfault anymore.
+        + Opt : As a result of removing the deprecated features, less memory is
+                used for both threaded (a pointer table is used instead of a
+                hash) and non-threaded (no global structure is needed anymore)
+                perls.
+        + Rem : As advertised in the precendent version, all the signature
+                related features were removed. This includes the 'sig' option
+                to wizard(), the getsig() and gensig() functions, and the SIG_*
+                constants.
+
 0.38    2009-10-04 16:10 UTC
         + Dep : All the signature-related features are DEPRECATED and will be
                 removed in december 2009. This includes the 'sig' option to
index 37672c24f163bb84ba7d238ed4bb6478fb16eace..fe86c5bef3c11dbbec2e61931330f71120ab0dfa 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Variable-Magic
-version:            0.38
+version:            0.39
 abstract:           Associate user-defined magic to variables from Perl.
 author:
     - Vincent Pit <perl@profvince.com>
diff --git a/README b/README
index 778e4fb8feb30ef43ad43439d03b5b6bbee97451..0f2d45931bb6c5ac0286db032e98c10e1a8daa6b 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ NAME
     Variable::Magic - Associate user-defined magic to variables from Perl.
 
 VERSION
-    Version 0.38
+    Version 0.39
 
 SYNOPSIS
         use Variable::Magic qw/wizard cast VMG_OP_INFO_NAME/;
@@ -178,30 +178,23 @@ FUNCTIONS
     information. It takes a list of keys / values as argument, whose keys
     can be :
 
-    *   "sig"
-
-        The numerical signature. If not specified or undefined, a random
-        signature is generated. If the signature matches an already defined
-        magic, then the existant magic object is returned.
-
-        This option is deprecated and will be removed in december 2009.
-
     *   "data"
 
-        A code reference to a private data constructor. It is called each
-        time this magic is cast on a variable, and the scalar returned is
-        used as private data storage for it. $_[0] is a reference to the
-        magic object and @_[1 .. @_-1] are all extra arguments that were
-        passed to "cast".
+        A code (or string) reference to a private data constructor. It is
+        called each time this magic is cast on a variable, and the scalar
+        returned is used as private data storage for it. $_[0] is a
+        reference to the magic object and @_[1 .. @_-1] are all extra
+        arguments that were passed to "cast".
 
     *   "get", "set", "len", "clear", "free", "copy", "local", "fetch",
         "store", "exists" and "delete"
 
-        Code references to the corresponding magic callbacks. You don't have
-        to specify all of them : the magic associated with undefined entries
-        simply won't be hooked. In those callbacks, $_[0] is always a
-        reference to the magic object and $_[1] is always the private data
-        (or "undef" when no private data constructor was supplied).
+        Code (or string) references to the corresponding magic callbacks.
+        You don't have to specify all of them : the magic associated with
+        undefined entries simply won't be hooked. In those callbacks, $_[0]
+        is always a reference to the magic object and $_[1] is always the
+        private data (or "undef" when no private data constructor was
+        supplied).
 
         Moreover, when you pass "op_info => $num" to "wizard", the last
         element of @_ will be the current op name if "$num ==
@@ -240,34 +233,19 @@ FUNCTIONS
         straight to the perl magic API. However, only the return value of
         the "len" callback currently holds a meaning.
 
-        # A simple scalar tracer
-        my $wiz = wizard get  => sub { print STDERR "got ${$_[0]}\n" },
-                         set  => sub { print STDERR "set to ${$_[0]}\n" },
-                         free => sub { print STDERR "${$_[0]} was deleted\n" }
+    Each callback can be specified as a code or a string reference, in which
+    case the function denoted by the string will be used as the callback.
 
     Note that "free" callbacks are *never* called during global destruction,
     as there's no way to ensure that the wizard and the "free" callback
     weren't destroyed before the variable.
 
-  "gensig"
-    With this tool, you can manually generate random magic signature between
-    SIG_MIN and SIG_MAX inclusive. That's the way "wizard" creates them when
-    no signature is supplied.
-
-        # Generate a signature
-        my $sig = gensig;
-
-    This function is deprecated and will be removed in december 2009.
-
-  "getsig"
-        getsig $wiz
-
-    This accessor returns the magic signature of this wizard.
+    Here's a simple usage example :
 
-        # Get $wiz signature
-        my $sig = getsig $wiz;
-
-    This function is deprecated and will be removed in december 2009.
+        # A simple scalar tracer
+        my $wiz = wizard get  => sub { print STDERR "got ${$_[0]}\n" },
+                         set  => sub { print STDERR "set to ${$_[0]}\n" },
+                         free => sub { print STDERR "${$_[0]} was deleted\n" }
 
   "cast"
         cast [$@%&*]var, $wiz, ...
@@ -318,21 +296,6 @@ FUNCTIONS
         die 'no such magic in $x' unless dispell $x, $wiz;
 
 CONSTANTS
-  "SIG_MIN"
-    The minimum integer used as a signature for user-defined magic.
-
-    This constant is deprecated and will be removed in december 2009.
-
-  "SIG_MAX"
-    The maximum integer used as a signature for user-defined magic.
-
-    This constant is deprecated and will be removed in december 2009.
-
-  "SIG_NBR"
-        SIG_NBR = SIG_MAX - SIG_MIN + 1
-
-    This constant is deprecated and will be removed in december 2009.
-
   "MGf_COPY"
     Evaluates to true iff the 'copy' magic is available.
 
@@ -511,9 +474,9 @@ PERL MAGIC HISTORY
         magical array in non-void context.
 
 EXPORT
-    The functions "wizard", "gensig", "getsig", "cast", "getdata" and
-    "dispell" are only exported on request. All of them are exported by the
-    tags ':funcs' and ':all'.
+    The functions "wizard", "cast", "getdata" and "dispell" are only
+    exported on request. All of them are exported by the tags ':funcs' and
+    ':all'.
 
     All the constants are also only exported on request, either individually
     or by the tags ':consts' and ':all'.
index 05fb3642bf72cc27a16ebd61021b9d23550d518d..f599b7239861954b5d538368039f6b6c4a960956 100644 (file)
@@ -13,13 +13,13 @@ Variable::Magic - Associate user-defined magic to variables from Perl.
 
 =head1 VERSION
 
-Version 0.38
+Version 0.39
 
 =cut
 
 our $VERSION;
 BEGIN {
- $VERSION = '0.38';
+ $VERSION = '0.39';
 }
 
 =head1 SYNOPSIS