On Tue, Nov 10, 2009 at 03:37:54PM -0600, Jesse Luehrs wrote:
> 1) Attributes in roles aren't real objects, and there is no attribute
> metaclass for roles. This makes it impossible to automatically apply
> attribute traits through ::MetaRole.
> 
> 2) Metaclass compatibility code in Moose/CMOP is pretty broken. It
> happens to work reasonably in most cases because it can generally figure
> things out if there are class or instance (??) meta-traits applied, but
> this isn't always the case. I have a branch in cmop for better metaclass
> incompatibility detection, but it breaks all kinds of things in Moose,
> since Moose doesn't currently fix metaclasses entirely correctly. I
> started trying to fix it in Moose as well, but got a bit overwhelmed.
> (An example of the failure: when a superclass has a class metaclass
> trait applied, and something subclasses it and tries to apply an
> attribute metaclass trait without also applying a class metaclass
> trait, Moose decides that it doesn't know how to resolve that).
> 
> 3) Going into more detail on the OMG EVIL CODE GENERATION topic,
> ::Constructor is reasonably separated out so that parts of it are easy
> to override, but ::Destructor is not, which is keeping me from adding
> actual support for that to MooseX::NonMoose.

Oh, and:

4) lazy_build is nice, but it really doesn't feel like it fits in normal
Moose - it should probably be a special case of some more general
feature (similar in concept to MooseX::Attributes::Curried, except
triggered by an option rather than a separate attribute declarer sub).
Also, the clearer and predicate it defines should probably default to
private.

-doy

Reply via email to