Revision history for autovivification
 
+0.07    2010-12-31 16:20 UTC
+        + Chg : perl 5.8.3 is required.
+        + Doc : Complements and clarifications.
+        + Fix : Segmentation faults and misbehaviours in threaded applications.
+        + Fix : Compatibility with perl 5.13.7.
+                Thanks Andreas J. König for reporting and Andrew Main for
+                providing a fix.
+        + Fix : Broken linkage on Windows with gcc 3.4, which appears in
+                particular when using ActivePerl's default compiler suite.
+                For those setups, the autovivification shared library will now
+                be linked against the perl dll directly (instead of the import
+                library).
+        + Opt : The pragma takes slightly more time at compile-time, but is
+                slightly faster at run-time.
+        + Tst : Lengthy tests have been ported to Test::Leaner, making the
+                whole test suite about 50% faster.
+        + Tst : Threads tests are now only run on perl 5.13.4 and higher.
+                They could segfault randomly because of what seems to be an
+                internal bug of Perl, which has been addressed in 5.13.4.
+                There is also an environment variable that allows you to
+                forcefully run those tests, but it should be set only for
+                author testing and not for end users.
+
 0.06    2010-04-24 17:40 UTC
         + Add : The A_THREADSAFE and A_FORKSAFE constants.
         + Fix : [RT #56870] : "no autovivification" vs Regexp::Common.
 
     autovivification - Lexically disable autovivification.
 
 VERSION
-    Version 0.06
+    Version 0.07
 
 SYNOPSIS
         no autovivification;
 
 METHODS
   "unimport @opts"
-    Magically called when "no autovivification" is encountered. Enables the
-    features given in @opts, which can be :
+    Magically called when "no autovivification @opts" is encountered.
+    Enables the features given in @opts, which can be :
 
     *   'fetch'
 
-        Turn off autovivification for rvalue dereferencing expressions, such
-        as "$value = $hashref->{key}[$idx]{$field}", "keys
-        %{$hashref->{key}}" or "values %{$hashref->{key}}". Starting from
-        perl 5.11, it also covers "keys" and "values" on array references.
+        Turns off autovivification for rvalue dereferencing expressions,
+        such as :
+
+            $value = $arrayref->[$idx]
+            $value = $hashref->{$key}
+            keys %$hashref
+            values %$hashref
+
+        Starting from perl 5.11, it also covers "keys" and "values" on array
+        references :
+
+            keys @$arrayref
+            values @$arrayref
+
         When the expression would have autovivified, "undef" is returned for
         a plain fetch, while "keys" and "values" return 0 in scalar context
         and the empty list in list context.
 
     *   'exists'
 
-        Turn off autovivification for dereferencing expressions that are
-        parts of an "exists", such as "exists
-        $hashref->{key}[$idx]{$field}". '' is returned when the expression
-        would have autovivified.
+        Turns off autovivification for dereferencing expressions that are
+        parts of an "exists", such as :
+
+            exists $arrayref->[$idx]
+            exists $hashref->{$key}
+
+        '' is returned when the expression would have autovivified.
 
     *   'delete'
 
-        Turn off autovivification for dereferencing expressions that are
-        parts of a "delete", such as "delete $hashref->{key}[$idx]{$field}".
+        Turns off autovivification for dereferencing expressions that are
+        parts of a "delete", such as :
+
+            delete $arrayref->[$idx]
+            delete $hashref->{$key}
+
         "undef" is returned when the expression would have autovivified.
 
     *   'store'
 
-        Turn off autovivification for lvalue dereferencing expressions, such
-        as "$hashref->{key}[$idx]{$field} = $value" or "for
-        ($hashref->{key}[$idx]{$field}) { ... }". An exception is thrown if
-        vivification is needed to store the value, which means that
-        effectively you can only assign to levels that are already defined
-        (in the example, this would require "$hashref->{key}[$idx]" to
-        already be a hash reference).
+        Turns off autovivification for lvalue dereferencing expressions,
+        such as :
+
+            $arrayref->[$idx] = $value
+            $hashref->{$key} = $value
+            for ($arrayref->[$idx]) { ... }
+            for ($hashref->{$key}) { ... }
+            function($arrayref->[$idx])
+            function($hashref->{$key})
+
+        An exception is thrown if vivification is needed to store the value,
+        which means that effectively you can only assign to levels that are
+        already defined In the example, this would require $arrayref (resp.
+        $hashref) to already be an array (resp. hash) reference.
 
     *   'warn'
 
-        Emit a warning when an autovivification is avoided.
+        Emits a warning when an autovivification is avoided.
 
     *   'strict'
 
-        Throw an exception when an autovivification is avoided.
+        Throws an exception when an autovivification is avoided.
 
     Each call to "unimport" adds the specified features to the ones already
     in use in the current lexical scope.
     When @opts is empty, it defaults to "qw/fetch exists delete/".
 
   "import @opts"
-    Magically called when "use autovivification" is encountered. Disables
-    the features given in @opts, which can be the same as for "unimport".
+    Magically called when "use autovivification @opts" is encountered.
+    Disables the features given in @opts, which can be the same as for
+    "unimport".
 
     Each call to "import" removes the specified features to the ones already
     in use in the current lexical scope.
     slices.
 
 DEPENDENCIES
-    perl 5.8.
+    perl 5.8.3.
+
+    A C compiler. This module may happen to build with a C++ compiler as
+    well, but don't rely on it, as no guarantee is made in this regard.
 
     XSLoader (standard since perl 5.006).