In perl.git, the branch smoke-me/davem/cybers_methop_stuff has been created
<http://perl5.git.perl.org/perl.git/commitdiff/4211760d07a548454a39edadb6da877e0de4be18?hp=0000000000000000000000000000000000000000> at 4211760d07a548454a39edadb6da877e0de4be18 (commit) - Log ----------------------------------------------------------------- commit 4211760d07a548454a39edadb6da877e0de4be18 Author: David Mitchell <[email protected]> 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 d8c87cd1535d6d2f862063e9d68969aae71cdaad Author: David Mitchell <[email protected]> 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 lib/B/Op_private.pm M op.c M op.h M opcode.h M regen/op_private commit e167de6ca53db71a96e8e9e1487498963167ea61 Author: syber <[email protected]> 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 393b172e26a760f12cf9f5553f54786f78c1e69f Author: syber <[email protected]> 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
