In perl.git, the branch smoke-me/davem/cybers_methop_stuff2 has been created
<http://perl5.git.perl.org/perl.git/commitdiff/6eba13c8212ac47e860c34dec3463111fe2c2790?hp=0000000000000000000000000000000000000000> at 6eba13c8212ac47e860c34dec3463111fe2c2790 (commit) - Log ----------------------------------------------------------------- commit 6eba13c8212ac47e860c34dec3463111fe2c2790 Author: David Mitchell <da...@iabyn.com> Date: Wed Sep 17 20:26:31 2014 +0100 fix B::METHOP::first, B::METHOP::meth_sv for METHOPs, op_first and op_meth_sv are in a union, so only one can be valid a time. Decide which based on op type. Previously it was interpreting an SV pointer as an OP pointer and vice versa. Also, remove some vestigal code from Concise.pm that handled method_named, in a branch no longer called for method ops M ext/B/B.xs M ext/B/B/Concise.pm commit 2ba663482ba002eee231e4acf94f56fbe09cf947 Author: David Mitchell <da...@iabyn.com> Date: Mon Sep 15 14:17:43 2014 +0100 fixups to adding METHOP: * the new regen/op_private needed to be told about the new op; * an op.c assert needed to be told the METHOPs can have a child. * remove trailing whitespace in the new S_newMETHOP_internal() function * add a comment about alignment of methop.op_u.op_first and op_meth_sv M ext/B/B/Concise.pm M lib/B/Op_private.pm M op.c M op.h M opcode.h M regen/op_private commit 759c90ecd64e768793caeb08d48dad07402844b8 Author: syber <sy...@crazypanda.ru> Date: Sat Sep 6 02:59:42 2014 +0400 Add new METHOP class for OP_METHOD* ops Change op structure for OP_METHOD and OP_METHOD_NAMED from UNOP/SVOP to METHOP. METHOP is a new structure for method ops, which holds class/method related info needed at runtime to improve perfomance of class/object method calls. Nothing changed in functionality and/or perfomance by this commit. It just introduces new structure which will be extended with extra fields and used in next commits. Added METHOP constructors: - newMETHOP() for method ops with dynamic method names. The only optype for this op is OP_METHOD. - newMETHOP_named() for method ops with constant method names. Optypes for this op are: OP_METHOD_NAMED (currently) and (later) OP_METHOD_SUPER, OP_METHOD_REDIR, OP_METHOD_NEXT, OP_METHOD_NEXTCAN, OP_METHOD_MAYBENEXT Changed perly.y, op.c and others to use METHOP instead of UNOP/SVOP Changed opcodes, B.xs, B::Concise, B::Deparse, B::Deparse's tests, docs New op class character is '.' Conflicts: ext/B/t/optree_specials.t M dump.c M ext/B/B.pm M ext/B/B.xs M ext/B/B/Concise.pm M ext/B/t/optree_specials.t M lib/B/Deparse.pm M op.c M op.h M opcode.h M perl.c M regen/opcode.pl M regen/opcodes commit ba1440a8cf62ff927a7c9c52724a2a4d56f089fa Author: syber <sy...@crazypanda.ru> Date: Thu Sep 4 22:08:59 2014 +0400 Change op structure for OP_METHOD and OP_METHOD_NAMED from UNOP/SVOP to METHOP. METHOP is a new structure for method ops, which holds class/method related info needed at runtime to improve perfomance of class/object method calls. Nothing changed in functionality and/or perfomance by this commit. It just introduces new structure which will be extended with extra fields and used in next commits. METHOP is binary compatible with both UNOP and SVOP, so that things like B::Deparse and so on remain working. Added METHOP constructors: - newMETHOP() for method ops with dynamic method names. The only optype for this op is OP_METHOD. - newMETHOP_named() for method ops with constant method names. Optypes for this op are: OP_METHOD_NAMED (currently) and (later) OP_METHOD_SUPER, OP_METHOD_REDIR, OP_METHOD_NEXT, OP_METHOD_NEXTCAN, OP_METHOD_MAYBENEXT Changed perly.y, op.c and others to use METHOP instead of UNOP/SVOP M embed.fnc M embed.h M op.c M op.h M perl.c M perl.h M perly.act M perly.h M perly.tab M perly.y M pp_hot.c M proto.h ----------------------------------------------------------------------- -- Perl5 Master Repository