Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Why isn't return removed from optree?

by ccn (Vicar)
on Dec 29, 2008 at 06:45 UTC ( [id://732963]=note: print w/replies, xml ) Need Help??


in reply to Why isn't return removed from optree?

What is the reason to make an optimization if there is no speed nor memory gain in result?
  • Comment on Re: Why isn't return removed from optree?

Replies are listed 'Best First'.
Re^2: Why isn't return removed from optree?
by ikegami (Patriarch) on Dec 29, 2008 at 06:56 UTC

    Don't know, but it wouldn't be the only one. For example, list is a no-op in list context

    PP(pp_list) { dVAR; dSP; dMARK; if (GIMME != G_ARRAY) { if (++MARK <= SP) *MARK = *SP; /* unwanted list, return last item */ else *MARK = &PL_sv_undef; SP = MARK; } RETURN; }

    so why is it optimized away for being used in list context?

    >perl -MO=Concise -e"$x = (1,2)" 8 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 7 <2> sassign vKS/2 ->8 5 <@> list sKP ->6 3 <0> pushmark v ->4 - <0> ex-const v ->4 4 <$> const[IV 2] s ->5 - <1> ex-rv2sv sKRM*/1 ->7 6 <#> gvsv[*x] s ->7 -e syntax OK >perl -MO=Concise -e"@x = (1,2)" a <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 9 <2> aassign[t3] vKS ->a - <1> ex-list lKP ->6 3 <0> pushmark s ->4 4 <$> const[IV 1] s ->5 5 <$> const[IV 2] s ->6 - <1> ex-list lK ->9 6 <0> pushmark s ->7 8 <1> rv2av[t2] lKRM*/1 ->9 7 <#> gv[*x] s ->8 -e syntax OK

    I would expect some consistency.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://732963]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-19 02:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found