X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLexical%2FTypes.pm;h=a8be1c4bb72b1582ce61f005879896803a5493fb;hb=2217d97ba313979a7103df908a936b36a8c3f457;hp=e935d3880a124e6b1ce213f2a6b4575f78d37b7e;hpb=e969ec4cc563f70e92f4428bfc01528de9b8ceb9;p=perl%2Fmodules%2FLexical-Types.git diff --git a/lib/Lexical/Types.pm b/lib/Lexical/Types.pm index e935d38..a8be1c4 100644 --- a/lib/Lexical/Types.pm +++ b/lib/Lexical/Types.pm @@ -1,6 +1,6 @@ package Lexical::Types; -use 5.008; +use 5.008001; use strict; use warnings; @@ -13,13 +13,13 @@ Lexical::Types - Extend the semantics of typed lexicals. =head1 VERSION -Version 0.04 +Version 0.09 =cut our $VERSION; BEGIN { - $VERSION = '0.04'; + $VERSION = '0.09'; } =head1 SYNOPSIS @@ -155,7 +155,7 @@ sub import { croak "Invalid $r reference for 'as'"; } } else { - $hint = _tag(0); + $hint = _tag(sub { @_ }); } $^H |= 0x020000; @@ -245,29 +245,31 @@ If you prefer to use constants rather than creating empty packages, you can repl sub new { ... } -=head1 CAVEATS +=head1 CONSTANTS -For C to be able to parse C, you need : +=head2 C -=over 4 +True iff the module could have been built with thread-safety features enabled. -=item * +=head1 CAVEATS -either the C package to be defined ; +The restrictions on the type (being either a defined package name or a constant) apply even if you use the C<'as'> option to redirect to another package, and are unlikely to find a workaround as this happens deep inside the lexer - far from the reach of an extension. -=item * +Only one mangler or prefix can be in use at the same time in a given scope. -or for C to be a constant sub returning a valid defined package. +The implementation was tweaked to work around several limitations of vanilla C pragmas : it's thread safe, and doesn't suffer from a C bug that causes all pragmas to propagate into Cd scopes. -=back +With 5.8 perls, the pragma does not propagate into C. +This is due to a shortcoming in the way perl handles the hints hash, which is addressed in perl 5.10. -The restrictions on the type (being either a defined package name or a constant) apply even if you use the C<'as'> option to redirect to another package, and are unlikely to find a workaround as this happens deep inside the lexer - far from the reach of an extension. +=head1 DEPENDENCIES -Only one mangler or prefix can be in use at the same time in a given scope. +L 5.8.1. -=head1 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. -L 5.8, L. +L (standard since perl 5.006). =head1 SEE ALSO @@ -301,7 +303,7 @@ Thanks Florian Ragwitz for suggesting the use of constants for types. =head1 COPYRIGHT & LICENSE -Copyright 2009 Vincent Pit, all rights reserved. +Copyright 2009,2010,2011 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.