X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLexical%2FTypes.pm;h=112c04236baa6956ca9fe48215b7e82f33178e1f;hb=418197898e73f85448f28aa1236f205f6a3cff5d;hp=be4d71c26d30c2a484d6ae9b2688bb05b345b7a2;hpb=e5180e775fa6b3bef100a42bd7899aba3627df8b;p=perl%2Fmodules%2FLexical-Types.git diff --git a/lib/Lexical/Types.pm b/lib/Lexical/Types.pm index be4d71c..112c042 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.03 +Version 0.07 =cut our $VERSION; BEGIN { - $VERSION = '0.03'; + $VERSION = '0.07'; } =head1 SYNOPSIS @@ -155,7 +155,7 @@ sub import { croak "Invalid $r reference for 'as'"; } } else { - $hint = _tag(0); + $hint = _tag(sub { @_ }); } $^H |= 0x020000; @@ -245,26 +245,23 @@ If you prefer to use constants rather than creating empty packages, you can repl sub new { ... } -=head1 CAVEATS - -For C to be able to parse C, you need : - -=over 4 - -=item * - -either the C package to be defined ; +=head1 CONSTANTS -=item * +=head2 C -or for C to be a constant sub returning a valid defined package. +True iff the module could have been built with thread-safety features enabled. -=back +=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.