develooper Front page | perl.perl5.porters | Postings from January 2003

Re: [PATCH] Re: change #9754: 5 x slowdown for perl -d

From:
Rafael Garcia-Suarez
Date:
January 26, 2003 06:31
Subject:
Re: [PATCH] Re: change #9754: 5 x slowdown for perl -d
Message ID:
20030126153700.2c61fadf.rgarciasuarez@free.fr
Dave Mitchell wrote:
> 
> Here's a second shot, using OPf_SPECIAL in op_flags rather than a spare
> hints bit in op_private.

Thanks, applied as #18589.

> It still doesn't solve the problem of ENTERSUB() expecting op_private

s/ENTER/PUSH/

> to have valid flags rather than hints bits. I'm a bit out of my depth
> on this one (eg - are the hints bits for compile-time or runtime???), but
> my vague suggestions would be:

The hint bits in cop->op_private are for runtime. At compile-time,
they're in PL_hints.

Are those flags actually useful ?

OPpENTERSUB_INARGS is only for OP_RV2CV, while PUSHSUB is only used with ops
OP_ENTERSUB, OP_DBSTATE, and OP_SORT.

And OPpLVAL_INTRO doesn't seem to be set on COPs (?).

> a) make PUSHSUB check for OP_DBSTATE - bad, because its in a critical
> path
> b) zero out the OP_DBSTATE's op_private before doing an PUSHSUB - assuming
> that its only needed for compile time
> c) as b), but restore after, if needed for runtime
> d) fake up an OP with null op_private,and op_next pointing to the
> OP_DBSTATE, then point PL_op to this.

or e) use a version of PUSHSUB that doesn't look for flags in
PL_op->op_private in pp_dbstate.



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About