Hi folks,

I didn't attach a patch for Moose::Util.  I pasted it.  That's because you 
shouldn't apply it, but we (BBC) have to as a temporary fix until we can 
understand exactly what's going on and how to better fix this.

Basically, the patch changes &Moose::Util::resolve_metaclass_alias to actually 
use *our* metaclass name if it contains the string 'Pips3'.  This more than 
*doubles* the speed of our test suite.  However, 'Pips3' probably isn't 
terribly useful for most folks :)

We tried to do this:

        if ($metaclass_name !~ /^Moose/) {

But our test suite fell down and went BOOM!

This is deeply mysterious to us, so if anyone can offer insight into this, we'd 
be grateful.

Cheers,
Ovid
--
Buy the book         - http://www.oreilly.com/catalog/perlhks/
Tech blog            - http://use.perl.org/~Ovid/journal/
Twitter              - http://twitter.com/OvidPerl
Official Perl 6 Wiki - http://www.perlfoundation.org/perl6

===================================================================
--- Util.pm     (revision 11775)
+++ Util.pm     (working copy)
@@ -126,9 +126,17 @@
 sub resolve_metaclass_alias {
     my ( $type, $metaclass_name, %options ) = @_;
 
+
+
     if ( my $resolved = eval {
-        my $possible_full_name = 'Moose::Meta::' . $type . '::Custom::' . ( 
$options{trait} ? "Trait::" : "" ) . $metaclass_name;
+        my $possible_full_name;
 
+        if ($metaclass_name =~ /Pips3/) {
+           $possible_full_name = $metaclass_name;
+        } else {
+
+           $possible_full_name = 'Moose::Meta::' . $type . '::Custom::' . ( 
$options{trait} ? "Trait::" : "" ) . $metaclass_name;
+        }
         Class::MOP::load_class($possible_full_name);
 
         $possible_full_name->can('register_implementation')

Reply via email to