X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLexical%2FTypes.pm;h=f59d8af02d3dc686fcb088cccb4a15975e7e59a7;hb=10f2056e8e60beb34bab8d23b0bbd316afc9cb0b;hp=7cc33e7c25294f796262ed08b09b276bff7fd9fe;hpb=f2c60b20f25085c43896f01a69e779c57100bc7d;p=perl%2Fmodules%2FLexical-Types.git diff --git a/lib/Lexical/Types.pm b/lib/Lexical/Types.pm index 7cc33e7..f59d8af 100644 --- a/lib/Lexical/Types.pm +++ b/lib/Lexical/Types.pm @@ -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,12 +245,23 @@ If you prefer to use constants rather than creating empty packages, you can repl sub new { ... } +=head1 CONSTANTS + +=head2 C + +True iff the module could have been built with thread-safety features enabled. + =head1 CAVEATS 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. Only one mangler or prefix can be in use at the same time in a given scope. +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. + +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. + =head1 DEPENDENCIES L 5.8, L. @@ -287,7 +298,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 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.