Class::MOP::Method::WrappedのXS化

コメントによれば,Class::MOP::Method::Wrapped->add_around_modifier()も最適化の候補らしいので,今XSで書いてます。
今のところサブルーチンの生成で50%以上,実行でも20-50%ほど高速化できた。ところが!PerlMagicを駆使したコードなのでメンテナンス性が異常に低い!なので,これはまずData::Utilの機能として公開する予定です。
コードはこんな感じ。

use Data::Util 0.30 qw(:all);
my $f = wrap_subroutine(\&f, [\&before], [\&around], [\&after]);