New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault on ISA push after symbol table delete #9265
Comments
From @pjscottThe last time I can find this being addressed here was in 2003 in $ perl -e 'delete $main::{"foo::"}; push @foo::ISA, "bar"' Summary of my perl5 (revision 5 version 10 subversion 0) configuration: Characteristics of this binary (from libperl): |
From @TuxOn Tue, 25 Mar 2008 05:03:56 -0700, Peter Scott (via RT)
Still segfaults in blead. Doctor says: well, don't do that both are right I'd be worried if some extra check on existence of named variables on every -- |
The RT System itself - Status changed from 'new' to 'open' |
From @nwc10On Tue, Mar 25, 2008 at 02:08:25PM +0100, H.Merijn Brand wrote:
But doesn't segfault in 5.8.8 (or later) It now seems to be a 5.10.0 regression, as it's happening in the MRO code: Program received signal EXC_BAD_ACCESS, Could not access memory. Nicholas Clark |
From @rgsOn 25/03/2008, via RT Peter Scott <perlbug-followup@perl.org> wrote:
Change #33684 fixes that : Change 33684 by rgs@stcosmo on 2008/04/15 08:36:48 Fix for [perl #52074] Segfault on ISA push after symbol table delete This restores the 5.8.8 behaviour. The deleted stash is not vivified More generally, what should perl do when asked to act on a deleted |
@rgs - Status changed from 'open' to 'resolved' |
From @nwc10On Tue, Apr 15, 2008 at 10:41:54AM +0200, Rafael Garcia-Suarez wrote:
I'm in two minds. The counter argument is "Why should there be any difference perl -e 'delete $main::{"foo::"}; push @foo::ISA, "bar"' Nicholas Clark |
From @rgsOn 15/04/2008, Nicholas Clark <nick@ccl4.org> wrote:
What difference do you see ? $ ./perl -le 'delete $main::{"foo::"}; push @foo::ISA, "bar"; print (same with 5.8.8) |
From @nwc10On Tue, Apr 15, 2008 at 11:02:08AM +0200, Rafael Garcia-Suarez wrote:
Oh. I assumed that there was a difference. Not following my own advice of But there does seem to be one: $ perl -le 'sub bar::pie {print "Pie!"}; delete $main::{"foo::"}; eval q{push @foo::ISA, "bar"}; foo->pie' (that was 5.8.8, same results with blead) That failure example smells of "implementation detail poking through" Nicholas Clark |
From @rgsOn 15/04/2008, Nicholas Clark <nick@ccl4.org> wrote:
Maybe. Since eval-string starts a new compilation phase, creation of |
From @gbarrOn Apr 15, 2008, at 4:25 AM, Rafael Garcia-Suarez wrote:
Because @foo::ISA is resolved at compile time before the delete perl -le 'sub bar::pie {print "Pie!"}; BEGIN { delete $main:: perl -le 'sub bar::pie {print "Pie!"}; delete $main::{"foo::"}; Graham. |
Migrated from rt.perl.org#52074 (status was 'resolved')
Searchable as RT52074$
The text was updated successfully, but these errors were encountered: