Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^4: ref to read-only alias ... why? (notabug)

by dk (Chaplain)
on Jan 06, 2012 at 17:46 UTC ( #946636=note: print w/ replies, xml ) Need Help??


in reply to Re^3: ref to read-only alias ... why? (not consistent)
in thread ref to read-only alias ... why?

Heh, it's a 8-year old (!!!!) bug: https://rt.perl.org/rt3/Public/Bug/Display.html?id=21979 . With resolution that it's indeed a bug ... well, that situation doesn't seem good to me, when noone wants to touch a bug in 8 years. I wonder why.


Comment on Re^4: ref to read-only alias ... why? (notabug)
Re^5: ref to read-only alias ... why? (notabug)
by LanX (Canon) on Jan 06, 2012 at 17:49 UTC
    Thats what I expected.

    > I wonder why.

    IMHO legacy code would break if you die here.

    But a warning would be great.

    Cheers Rolf

      I agree on a warning, it would be a practical thing, after all. And after that, a real fix with 'die' a couple versions later should help the legacy code.

      Well anyway, I found the code suggested by ikegami, so would you guys review the patch please?

      --- pp.c.0 2012-01-06 01:07:34.511988700 +0100 +++ pp.c 2012-01-06 19:04:06.311428300 +0100 @@ -515,9 +515,11 @@ SvTEMP_off(sv); SvREFCNT_inc_void_NN(sv); } - else if (SvPADTMP(sv) && !IS_PADGV(sv)) + else if (SvPADTMP(sv) && !IS_PADGV(sv)) { + Perl_ck_warner(aTHX_ packWARN(WARN_MISC), + "Implicit copy of a read-only scalar due to aliasing"); sv = newSVsv(sv); - else { + } else { SvTEMP_off(sv); SvREFCNT_inc_void_NN(sv); }

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2015-07-06 05:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls