Hi, I have made a branch topic/unified-method-generation-w-xs, and it is ready to merge. It makes Class:MOP significantly faster. In my environment, perl v5.10.1 on i686-linux, it takes 0.150s, while C::MOP v0.89 takes 0.210s in startup.
It is tested with Moose, KiokuDB, Catalyst, and various MX modules including MX::Types, MX::Traits, MX::Role::Parameterized, etc. Therefore, I believe this is compatible with the master branch. It is because this branch includes only the change in the meta object protocol level, so it probably does not affect the Moose level. This is a major change in MOP internals. Here is a list of features: * MOP generates accessors only once as Moose does (the branch name "unified-method-generation" comes form this feature) * almost all the MOP built-in accessors are implemented in XS * MOP generates accessors in XS, instead of use of eval-based generators. * various optimization in XS Currently I'm trying the next step, Moose XS (topic/xs-accessor). This will make Moose applications significantly faster. There is a result of a benchmark: - http://gist.github.com/178357 In short, this provides the perfomace of Class::XSAccessor even if you use lazy stuff and type constraints. However, the topic/xs-accessor branch needs more discussions, so it is not ready to merge. Regards, -- Goro Fuji (藤 吾郎)