r48397 - in /branches/upstream/libmouse-perl/current: ./ benchmarks/ lib/ lib/Mouse/ lib/Mouse/Meta/ lib/Mouse/Meta/Method/ lib/Mouse/Meta/Role/ lib/Mouse/Util/ t/001_mouse/ tool/ xs-src/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Mon Dec 7 22:32:46 UTC 2009


Author: jawnsy-guest
Date: Mon Dec  7 22:32:38 2009
New Revision: 48397

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=48397
Log:
[svn-upgrade] Integrating new upstream version, libmouse-perl (0.43)

Added:
    branches/upstream/libmouse-perl/current/benchmarks/vs_caf_w_destructors.pl   (with props)
    branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod
Removed:
    branches/upstream/libmouse-perl/current/t/001_mouse/062-package-symbol.t
Modified:
    branches/upstream/libmouse-perl/current/Changes
    branches/upstream/libmouse-perl/current/MANIFEST
    branches/upstream/libmouse-perl/current/META.yml
    branches/upstream/libmouse-perl/current/benchmarks/modifiers.pl
    branches/upstream/libmouse-perl/current/lib/Mouse.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm
    branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod
    branches/upstream/libmouse-perl/current/lib/ouse.pm
    branches/upstream/libmouse-perl/current/tool/generate-mouse-tiny.pl
    branches/upstream/libmouse-perl/current/xs-src/Mouse.xs

Modified: branches/upstream/libmouse-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/Changes?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/Changes (original)
+++ branches/upstream/libmouse-perl/current/Changes Mon Dec  7 22:32:38 2009
@@ -1,4 +1,11 @@
 Revision history for Mouse
+
+0.43 Mon Dec  7 14:21:59 2009
+    * Improve documents
+
+    * Mouse::Meta::Module
+        - Remove undocumented has_package_symbol and get_package_symbol (gfx)
+            (They are introduced in 0.41, but seem useless in Mouse)
 
 0.42 Sat Dec  5 16:05:06 2009
     * Fix a PAUSE indexing issue (gfx)

Modified: branches/upstream/libmouse-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/MANIFEST?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/MANIFEST (original)
+++ branches/upstream/libmouse-perl/current/MANIFEST Mon Dec  7 22:32:38 2009
@@ -8,6 +8,7 @@
 benchmarks/subtype.pl
 benchmarks/type_constraints.pl
 benchmarks/vs_caf.pl
+benchmarks/vs_caf_w_destructors.pl
 Changes
 example/point.pl
 inc/Module/Install.pm
@@ -39,6 +40,7 @@
 lib/Mouse/PurePerl.pm
 lib/Mouse/Role.pm
 lib/Mouse/Spec.pm
+lib/Mouse/Tiny.pod
 lib/Mouse/TypeRegistry.pm
 lib/Mouse/Util.pm
 lib/Mouse/Util/MetaRole.pm
@@ -127,7 +129,6 @@
 t/001_mouse/059-weak-with-default.t
 t/001_mouse/060-threads.t
 t/001_mouse/061-metaclass-compatibility.t
-t/001_mouse/062-package-symbol.t
 t/001_mouse/063-meta-of-metaclasses.t
 t/001_mouse/064-class-c3.t
 t/001_mouse/100-meta-class.t

Modified: branches/upstream/libmouse-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/META.yml?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/META.yml (original)
+++ branches/upstream/libmouse-perl/current/META.yml Mon Dec  7 22:32:38 2009
@@ -31,4 +31,4 @@
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://git.moose.perl.org/Mouse.git
-version: 0.42
+version: 0.43

Modified: branches/upstream/libmouse-perl/current/benchmarks/modifiers.pl
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/benchmarks/modifiers.pl?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/benchmarks/modifiers.pl (original)
+++ branches/upstream/libmouse-perl/current/benchmarks/modifiers.pl Mon Dec  7 22:32:38 2009
@@ -54,7 +54,7 @@
 {
     package MouseClass;
     use parent -norequire => qw(Base);
-    use Moose;
+    use Mouse;
 
     before f => sub{ $i++ };
     around g => \&main::around;

Added: branches/upstream/libmouse-perl/current/benchmarks/vs_caf_w_destructors.pl
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/benchmarks/vs_caf_w_destructors.pl?rev=48397&op=file
==============================================================================
--- branches/upstream/libmouse-perl/current/benchmarks/vs_caf_w_destructors.pl (added)
+++ branches/upstream/libmouse-perl/current/benchmarks/vs_caf_w_destructors.pl Mon Dec  7 22:32:38 2009
@@ -1,0 +1,43 @@
+#!perl
+
+### MODULES
+
+
+{
+    package PlainMoose;
+    use Moose;
+    has foo => (is => 'rw');
+
+    sub DEMOLISH { }
+    __PACKAGE__->meta->make_immutable();
+}
+{
+    package PlainMouse;
+    use Mouse;
+    has foo => (is => 'rw');
+
+    sub DEMOLISH { }
+    __PACKAGE__->meta->make_immutable();
+}
+{
+    package ClassAccessorFast;
+    use warnings;
+    use strict;
+    use base 'Class::Accessor::Fast';
+    __PACKAGE__->mk_accessors(qw(foo));
+
+    sub DESTROY { }
+}
+
+use Benchmark qw(cmpthese);
+
+my $moose                = PlainMoose->new;
+my $mouse                = PlainMouse->new;
+my $caf                  = ClassAccessorFast->new;
+
+print "\nCREATION AND DESTRUCTION\n";
+cmpthese(-1, {
+    Moose                       => sub { my $x = PlainMoose->new(foo => 23) },
+    Mouse                       => sub { my $x = PlainMouse->new(foo => 23) },
+    ClassAccessorFast           => sub { my $x = ClassAccessorFast->new({foo => 23}) },
+}, 'noc');

Propchange: branches/upstream/libmouse-perl/current/benchmarks/vs_caf_w_destructors.pl
------------------------------------------------------------------------------
    svn:executable = *

Modified: branches/upstream/libmouse-perl/current/lib/Mouse.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse.pm Mon Dec  7 22:32:38 2009
@@ -3,7 +3,7 @@
 
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '0.42';
+our $VERSION = '0.43';
 
 use Carp         qw(confess);
 use Scalar::Util qw(blessed);
@@ -166,7 +166,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SYNOPSIS
 
@@ -256,9 +256,11 @@
 =head2 C<< after (method|methods) => CodeRef >>
 
 Installs an "after" method modifier. See L<Moose/after>.
+
 =head2 C<< around (method|methods) => CodeRef >>
 
 Installs an "around" method modifier. See L<Moose/around>.
+
 =head2 C<< has (name|names) => parameters >>
 
 Adds an attribute (or if passed an arrayref of names, multiple attributes) to
@@ -268,10 +270,16 @@
 
 =item C<< is => ro|rw|bare >>
 
-If specified, inlines a read-only/read-write accessor with the same name as
+The I<is> option accepts either I<rw> (for read/write), I<ro> (for read
+only) or I<bare> (for nothing). These will create either a read/write accessor
+or a read-only accessor respectively, using the same name as the C<$name> of
 the attribute.
 
-=item C<< isa => TypeConstraint >>
+If you need more control over how your accessors are named, you can
+use the C<reader>, C<writer> and C<accessor> options, however if you
+use those, you won't need the I<is> option.
+
+=item C<< isa => TypeName | ClassName >>
 
 Provides type checking in the constructor and accessor. The following types are
 supported. Any unknown type is taken to be a class check
@@ -283,6 +291,17 @@
 
 For more documentation on type constraints, see L<Mouse::Util::TypeConstraints>.
 
+=item C<< does => RoleName >>
+
+This will accept the name of a role which the value stored in this attribute
+is expected to have consumed.
+
+=item C<< coerce => Bool >>
+
+This will attempt to use coercion with the supplied type constraint to change
+the value passed into any accessors or constructors. You B<must> have supplied
+a type constraint in order for this to work. See L<Moose::Cookbook::Basics::Recipe5>
+for an example.
 
 =item C<< required => Bool >>
 
@@ -319,12 +338,12 @@
 the attribute's value from the instance. On the next read, lazy or builder will
 be invoked.
 
-=item C<< handles => HashRef|ArrayRef >>
+=item C<< handles => HashRef|ArrayRef|Regexp >>
 
 Lets you specify methods to delegate to the attribute. ArrayRef forwards the
 given method names to method calls on the attribute. HashRef maps local method
 names to remote method names called on the attribute. Other forms of
-L</handles>, such as regular expression and coderef, are not yet supported.
+L</handles>, such as RoleName and CodeRef, are not yet supported.
 
 =item C<< weak_ref => Bool >>
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Exporter.pm Mon Dec  7 22:32:38 2009
@@ -261,7 +261,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Attribute.pm Mon Dec  7 22:32:38 2009
@@ -10,7 +10,6 @@
 
 sub _process_options{
     my($class, $name, $args) = @_;
-
 
     # XXX: for backward compatibility (with method modifiers)
     if($class->can('canonicalize_args') != \&canonicalize_args){
@@ -431,7 +430,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 METHODS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Class.pm Mon Dec  7 22:32:38 2009
@@ -458,7 +458,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 METHODS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method.pm Mon Dec  7 22:32:38 2009
@@ -41,7 +41,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Accessor.pm Mon Dec  7 22:32:38 2009
@@ -176,7 +176,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Constructor.pm Mon Dec  7 22:32:38 2009
@@ -197,7 +197,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Delegation.pm Mon Dec  7 22:32:38 2009
@@ -34,7 +34,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Method/Destructor.pm Mon Dec  7 22:32:38 2009
@@ -53,7 +53,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Module.pm Mon Dec  7 22:32:38 2009
@@ -311,7 +311,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role.pm Mon Dec  7 22:32:38 2009
@@ -330,7 +330,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Composite.pm Mon Dec  7 22:32:38 2009
@@ -120,7 +120,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/Role/Method.pm Mon Dec  7 22:32:38 2009
@@ -23,7 +23,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Meta/TypeConstraint.pm Mon Dec  7 22:32:38 2009
@@ -210,7 +210,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 DESCRIPTION
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Object.pm Mon Dec  7 22:32:38 2009
@@ -47,7 +47,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 METHODS
 
@@ -86,7 +86,7 @@
 This will check if the invocant's class B<does> a given C<$role_name>.
 This is similar to "isa" for object, but it checks the roles instead.
 
-=head2 C<<dump ($maxdepth) -> Str >>
+=head2 C<< dump ($maxdepth) -> Str >>
 
 From the Moose POD:
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/PurePerl.pm Mon Dec  7 22:32:38 2009
@@ -203,78 +203,6 @@
     *{ $pkg . '::' . $name } = $code;
     return;
 }
-
-my %SIGIL_MAP = (
-    '$' => 'SCALAR',
-    '@' => 'ARRAY',
-    '%' => 'HASH',
-    '&' => 'CODE',
-    '*' => 'GLOB',
-);
-
-sub _deconstruct_variable_name {
-    my($self, $variable) = @_;
-
-    (defined $variable)
-        || $self->throw_error("You must pass a variable name");
-
-    my $sigil = substr($variable, 0, 1, '');
-
-    (defined $sigil)
-        || $self->throw_error("The variable name must include a sigil");
-
-    (exists $SIGIL_MAP{$sigil})
-        || $self->throw_error("I do not recognize that sigil '$sigil'");
-
-    return ($variable, $SIGIL_MAP{$sigil});
-}
-
-sub has_package_symbol {
-    my($self, $variable) = @_;
-
-    my($name, $type) = $self->_deconstruct_variable_name($variable);
-
-    my $namespace = $self->namespace;
-
-    return 0 unless exists $namespace->{$name};
-
-    my $entry_ref = \$namespace->{$name};
-    if ( ref($entry_ref) eq 'GLOB' ) {
-        return defined( *{$entry_ref}{$type} );
-    }
-    else {
-        # a symbol table entry can be -1 (stub), string (stub with prototype),
-        # or reference (constant)
-        return $type eq 'CODE';
-    }
-}
-
-sub get_package_symbol {
-    my ($self, $variable) = @_;
-
-    my($name, $type) = $self->_deconstruct_variable_name($variable);
-
-    my $namespace = $self->namespace;
-
-    return undef
-        unless exists $namespace->{$name};
-
-    my $entry_ref = \$namespace->{$name};
-
-    if ( ref($entry_ref) eq 'GLOB' ) {
-        return *{$entry_ref}{$type};
-    }
-    else {
-        if ( $type eq 'CODE' ) {
-            no strict 'refs';
-            return \&{ $self->name . '::' . $name };
-        }
-        else {
-            return undef;
-        }
-    }
-}
-
 
 package
     Mouse::Meta::Class;
@@ -568,7 +496,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Role.pm Mon Dec  7 22:32:38 2009
@@ -1,7 +1,7 @@
 package Mouse::Role;
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '0.42';
+our $VERSION = '0.43';
 
 use Carp         qw(confess);
 use Scalar::Util qw(blessed);
@@ -148,7 +148,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Spec.pm Mon Dec  7 22:32:38 2009
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '0.42';
+our $VERSION = '0.43';
 
 our $MouseVersion = $VERSION;
 our $MooseVersion = '0.93';
@@ -19,7 +19,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 SYNOPSIS
 
@@ -30,16 +30,21 @@
 
 =head1 DESCRIPTION
 
-(TODO)
+Mouse is a subset of Moose. This document describes to what extend Mouse is
+compatible with Moose.
 
 =head2 Compatibility with Moose
+
+The sugary API is highly compatible with Moose.
 
 =head2 Incompatibility with Moose
 
 =head3 Meta object protocols
 
-Any MOP has no attributes, so
-C<< $metaclass->meta->make_immutable() >> does not yet work as you expect.
+Any MOP in Mouse has no attributes.
+
+And C<< $metaclass->meta->make_immutable() >> does not yet work as you expect.
+B<Don not make metaclasses immutalbe>.
 
 =head3 Mouse::Meta::Instance
 
@@ -49,10 +54,10 @@
 
 Role exclusion, C<exclude()>, is not implemented.
 
-=head3 -traits and -metaclass in Mouse::Exporter
+=head3 -metaclass in Mouse::Exporter
 
-C<< use Mouse -traits => ... >> and C<< use Mouse -metaclass => ... >> are not
-yet implemented.
+C<< use Mouse -metaclass => ... >> are not implemented.
+Use C<< use Mouse -traits => ... >> instead.
 
 =head2 Notes about Moose::Cookbook
 

Added: branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod?rev=48397&op=file
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod (added)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Tiny.pod Mon Dec  7 22:32:38 2009
@@ -1,0 +1,22 @@
+
+=head1 NAME
+
+Mouse::Tiny - Mouse in a single file
+
+=head1 VERSION
+
+This document describes Mouse version 0.43
+
+=head1 DESCRIPTION
+
+Mouse::Tiny is Mouse, but it is in a single file.
+
+This is B<not> tiny. In fact, it requires a little more memory and time than Mouse.
+
+Use Mouse unless you know what you are doing.
+
+=head1 SEE ALSO
+
+L<Mouse>
+
+=cut

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Util.pm Mon Dec  7 22:32:38 2009
@@ -38,7 +38,7 @@
     # Because Mouse::Util is loaded first in all the Mouse sub-modules,
     # XS loader is placed here, not in Mouse.pm.
 
-    our $VERSION = '0.42';
+    our $VERSION = '0.43';
 
     my $xs = !(exists $INC{'Mouse/PurePerl.pm'} || $ENV{MOUSE_PUREPERL});
 
@@ -345,7 +345,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 IMPLEMENTATIONS FOR
 

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/Util/TypeConstraints.pm Mon Dec  7 22:32:38 2009
@@ -350,7 +350,7 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head2 SYNOPSIS
 
@@ -418,18 +418,18 @@
 This module also provides a simple hierarchy for Perl 5 types, here is
 that hierarchy represented visually.
 
-  Any
+ Any
   Item
       Bool
       Maybe[`a]
       Undef
       Defined
           Value
-              Num
-                Int
               Str
-                ClassName
-                RoleName
+                  Num
+                      Int
+                  ClassName
+                  RoleName
           Ref
               ScalarRef
               ArrayRef[`a]
@@ -437,7 +437,7 @@
               CodeRef
               RegexpRef
               GlobRef
-                FileHandle
+                  FileHandle
               Object
 
 B<NOTE:> Any type followed by a type parameter C<[`a]> can be

Modified: branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod (original)
+++ branches/upstream/libmouse-perl/current/lib/Mouse/XS.pod Mon Dec  7 22:32:38 2009
@@ -5,12 +5,13 @@
 
 =head1 VERSION
 
-This document describes Mouse version 0.42
+This document describes Mouse version 0.43
 
 =head1 DESCRIPTION
 
 Mouse has an optional XS implementation, which is automatically built
-and used if available.
+and used if available. Accoding to benchmarks, this is about 2 times
+faster than Mouse::PurePerl.
 
 =head2 INSTALL
 
@@ -28,7 +29,13 @@
 
 It can be used to enable the use of Mouse::PurePerl.
 
+=head1 DEPENDENCIES
+
+The XS implementation requires Perl 5.8.1 or later, and a C compiler.
+
 =head1 SEE ALSO
+
+L<Mouse>
 
 L<Mouse::PurePerl>
 

Modified: branches/upstream/libmouse-perl/current/lib/ouse.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/lib/ouse.pm?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/lib/ouse.pm (original)
+++ branches/upstream/libmouse-perl/current/lib/ouse.pm Mon Dec  7 22:32:38 2009
@@ -1,7 +1,6 @@
 package ouse;
 
-use strict;
-use warnings;
+use Mouse::Util; # enables strict and warnings
 
 BEGIN {
     my $package;
@@ -9,7 +8,7 @@
         $package = $_[1] || 'Class';
         if ($package =~ /^\+/) {
             $package =~ s/^\+//;
-            eval "require $package; 1" or die;
+            Mouse::Util::load_class($package);
         }
     }
     use Filter::Simple sub { s/^/package $package;\nuse Mouse;\n/; }

Modified: branches/upstream/libmouse-perl/current/tool/generate-mouse-tiny.pl
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/tool/generate-mouse-tiny.pl?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/tool/generate-mouse-tiny.pl (original)
+++ branches/upstream/libmouse-perl/current/tool/generate-mouse-tiny.pl Mon Dec  7 22:32:38 2009
@@ -99,26 +99,6 @@
 Mouse::Exporter->setup_import_methods(also => 'Mouse');
 
 1;
-__END__
-
-=head1 NAME
-
-Mouse::Tiny - Mouse in a single file
-
-=head1 DESCRIPTION
-
-Mouse::Tiny is Mouse, but it is in a single file.
-
-This is B<not> tiny. In fact, it requires a little more memory and time than Mouse.
-
-Use Mouse directly unless you know what you do.
-
-=head1 SEE ALSO
-
-L<Mouse>
-
-=cut
-
 EOF
 
 close $handle;

Modified: branches/upstream/libmouse-perl/current/xs-src/Mouse.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmouse-perl/current/xs-src/Mouse.xs?rev=48397&op=diff
==============================================================================
--- branches/upstream/libmouse-perl/current/xs-src/Mouse.xs (original)
+++ branches/upstream/libmouse-perl/current/xs-src/Mouse.xs Mon Dec  7 22:32:38 2009
@@ -335,122 +335,6 @@
     return meta;
 }
 
-
-/* copied from Class-MOP/topic/symbol-manipluator */
-static GV*
-mouse_get_gv(pTHX_ SV* const self, svtype const type, const char* const var_name, I32 const var_name_len, I32 const flags){
-    SV* package_name;
-    STRLEN len;
-    const char* pv;
-
-    if(!flags){
-        SV* const ns = mcall0(self, mouse_namespace);
-        GV** gvp;
-        if(!(SvROK(ns) && SvTYPE(SvRV(ns)) == SVt_PVHV)){
-            croak("namespace() did not return a hash reference");
-        }
-        gvp = (GV**)hv_fetch((HV*)SvRV(ns), var_name, var_name_len, FALSE);
-        if(gvp && isGV_with_GP(*gvp)){
-            return *gvp;
-        }
-    }
-
-    package_name = get_slot(self, mouse_package);
-
-    if(!(package_name && SvOK(package_name))){
-        croak("No package name defined");
-    }
-
-    pv = SvPV_const(package_name, len);
-
-    return gv_fetchpvn_flags(Perl_form(aTHX_ "%s::%s", pv, var_name), (len + var_name_len + 2), flags, type);
-}
-
-/* copied from Class-MOP/topic/symbol-manipluator */
-static SV*
-mouse_gv_elem(pTHX_ GV* const gv, svtype const type, I32 const add){
-    SV* sv;
-
-    if(!gv){
-        return NULL;
-    }
-
-    assert(isGV_with_GP(gv));
-
-    switch(type){
-    case SVt_PVAV:
-        sv = (SV*)(add ? GvAVn(gv) : GvAV(gv));
-        break;
-    case SVt_PVHV:
-        sv = (SV*)(add ? GvHVn(gv) : GvHV(gv));
-        break;
-    case SVt_PVCV:
-        sv = (SV*)GvCV(gv);
-        break;
-    case SVt_PVIO:
-        sv = (SV*)(add ? GvIOn(gv) : GvIO(gv));
-        break;
-    case SVt_PVGV:
-        sv = (SV*)gv;
-        break;
-    default: /* SCALAR */
-        sv =       add ? GvSVn(gv) : GvSV(gv);
-        break;
-    }
-
-    return sv;
-}
-
-/* copied from Class-MOP/topic/symbol-manipluator */
-static void
-mouse_deconstruct_variable_name(pTHX_ SV* const variable,
-    const char** const var_name, STRLEN* const var_name_len,
-    svtype* const type,
-    const char** const type_name) {
-
-    STRLEN len;
-    const char* pv;
-
-    /* e.g. variable = '$foo' */
-
-    if(!SvOK(variable)) {
-        croak("You must pass a variable name");
-    }
-    pv = SvPV_const(variable, len);
-    if(len < 2){
-        croak("You must pass a variable name including a sigil");
-    }
-
-    *var_name     = pv  + 1;
-    *var_name_len = len - 1;
-
-    switch(pv[0]){
-    case '$':
-        *type      = SVt_PV; /* for all the types of scalars */
-        *type_name = "SCALAR";
-        break;
-    case '@':
-        *type      = SVt_PVAV;
-        *type_name = "ARRAY";
-        break;
-    case '%':
-        *type      = SVt_PVHV;
-        *type_name = "HASH";
-        break;
-    case '&':
-        *type      = SVt_PVCV;
-        *type_name = "CODE";
-        break;
-    case '*':
-        *type      = SVt_PVGV;
-        *type_name = "GLOB";
-        break;
-    default:
-        croak("I do not recognize that sigil '%c'", pv[0]);
-    }
-}
-
-
 MODULE = Mouse  PACKAGE = Mouse
 
 PROTOTYPES: DISABLE
@@ -546,41 +430,6 @@
         }
     }
 }
-
-bool
-has_package_symbol(SV* self, SV* variable)
-PREINIT:
-    svtype type;
-    const char* type_name;
-    const char* var_name;
-    STRLEN var_name_len;
-    GV* gv;
-CODE:
-    mouse_deconstruct_variable_name(aTHX_ variable, &var_name, &var_name_len, &type, &type_name);
-    gv = mouse_get_gv(aTHX_ self, type, var_name, var_name_len, 0);
-    RETVAL = mouse_gv_elem(aTHX_ gv, type, FALSE) ? TRUE : FALSE;
-OUTPUT:
-    RETVAL
-
-SV*
-get_package_symbol(SV* self, SV* variable)
-PREINIT:
-    svtype type;
-    const char* type_name;
-    const char* var_name;
-    STRLEN var_name_len;
-    I32 flags = 0;
-    GV* gv;
-    SV* sv;
-CODE:
-    mouse_deconstruct_variable_name(aTHX_ variable, &var_name, &var_name_len, &type, &type_name);
-    gv = mouse_get_gv(aTHX_ self, type, var_name, var_name_len, flags);
-    sv = mouse_gv_elem(aTHX_ gv, type, FALSE);
-
-    RETVAL = sv ? newRV_inc(sv) : &PL_sv_undef;
-OUTPUT:
-    RETVAL
-
 
 MODULE = Mouse  PACKAGE = Mouse::Meta::Class
 
@@ -761,10 +610,10 @@
         SAVESPTR(GvSV(statusvalue)); /* local $? */
         SAVESPTR(ERRSV); /* local $@ */
 
-        GvSV(statusvalue) = sv_2mortal(newSViv(0));
-        ERRSV             = sv_2mortal(newSVpvs(""));
+        GvSV(statusvalue) = sv_newmortal();
+        ERRSV             = newSVpvs_flags("", SVs_TEMP);
         for(i = 0; i < len; i++){
-            dSP;
+            SPAGAIN;
 
             PUSHMARK(SP);
             XPUSHs(object);




More information about the Pkg-perl-cvs-commits mailing list