]> git.vpit.fr Git - perl/modules/Lexical-Types.git/blobdiff - README
This is 0.13
[perl/modules/Lexical-Types.git] / README
diff --git a/README b/README
index 919e0afe5d8cda6269335e27e72deae4b9c87fbf..ce2b7f745f4fc874e8e3c99e4b3516e051096ee3 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ NAME
     Lexical::Types - Extend the semantics of typed lexicals.
 
 VERSION
-    Version 0.12
+    Version 0.13
 
 SYNOPSIS
         { package Str; }
@@ -46,12 +46,16 @@ DESCRIPTION
 
     This pragma is not implemented with a source filter.
 
-FUNCTIONS
-  "import [ as => [ $prefix | $mangler ] ]"
-    Magically called when writing "use Lexical::Types". All the occurences
-    of "my Str $x" in the current lexical scope will be changed to call at
-    each run a given method in a given package. The method and package are
-    determined by the parameter 'as' :
+METHODS
+  "import"
+        use Lexical::Types;
+        use Lexical::Types as => $prefix;
+        use Lexical::Types as => sub { ... }; # = $mangler
+
+    Magically called when "use Lexical::Types" is encountered. All the
+    occurences of "my Str $x" in the current lexical scope will be changed
+    to call at each run a given method in a given package. The method and
+    package are determined by the parameter 'as' :
 
     *   If it's left unspecified, the "TYPEDSCALAR" method in the "Str"
         package will be called.
@@ -73,7 +77,9 @@ FUNCTIONS
             definition will be skipped (thus it won't be altered to trigger
             a run-time hook) ;
 
-                use Lexical::Types as => sub { return $_[0] =~ /Str/ ? @_ : () };
+                use Lexical::Types as => sub {
+                 return $_[0] =~ /Str/ ? @_ : ()
+                };
                 my Str $y; # calls Str->TYPEDSCALAR
                 my Int $x; # nothing special
 
@@ -96,7 +102,10 @@ FUNCTIONS
         $_[0].
 
   "unimport"
-    Magically called when writing "no Lexical::Types". Turns the pragma off.
+        no Lexical::Types;
+
+    Magically called when "no Lexical::Types" is encountered. Turns the
+    pragma off.
 
 RUN-TIME INITIALIZER METHOD
     The initializer method receives an alias to the pad slot of the
@@ -182,6 +191,11 @@ CONSTANTS
     perl 5.10.0 and below .
 
 CAVEATS
+    Using this pragma will cause a slight global slowdown of any subsequent
+    compilation phase that happens anywere in your code - even outside of
+    the scope of use of "use Lexical::Types" - which may become noticeable
+    if you rely heavily on numerous calls to "eval STRING".
+
     The restrictions on the type (being either a defined package name or a
     constant) apply even if you use the 'as' option to redirect to another
     package, and are unlikely to find a workaround as this happens deep
@@ -190,6 +204,11 @@ CAVEATS
     Only one mangler or prefix can be in use at the same time in a given
     scope.
 
+    Typed lexicals declarations that appear in code "eval"'d during the
+    global destruction phase of a spawned thread or pseudo-fork (the
+    processes used internally for the "fork" emulation on Windows) are
+    ignored.
+
     The implementation was tweaked to work around several limitations of
     vanilla "perl" pragmas : it's thread safe, and doesn't suffer from a
     "perl 5.8.x-5.10.0" bug that causes all pragmas to propagate into
@@ -205,7 +224,7 @@ DEPENDENCIES
     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).
+    XSLoader (standard since perl 5.6.0).
 
 SEE ALSO
     fields.
@@ -238,7 +257,8 @@ ACKNOWLEDGEMENTS
     Thanks Florian Ragwitz for suggesting the use of constants for types.
 
 COPYRIGHT & LICENSE
-    Copyright 2009,2010,2011 Vincent Pit, all rights reserved.
+    Copyright 2009,2010,2011,2012,2013,2014 Vincent Pit, all rights
+    reserved.
 
     This program is free software; you can redistribute it and/or modify it
     under the same terms as Perl itself.