Front page | perl.perl5.porters |
Postings from March 2007
Re: MAINT30598 segfaults
Thread Previous
From:
Nicholas Clark
Date:
March 19, 2007 16:22
Subject:
Re: MAINT30598 segfaults
Message ID:
20070319174921.GL5748@plum.flirble.org
On Mon, Mar 19, 2007 at 10:14:08AM +0300, Alexey Tourbin wrote:
> Hello,
>
> Upgrading from MAINT29163 to MAINT30598 introduces beautiful
> segmentation fault:
>
> $ perl -e 'local($var=1)'
> zsh: segmentation fault perl -e 'local($var=1)'
> $
>
> Reported by Ivan Adzhubey from Harward early in the morning. :)
Interesting.
a: How come that's not spotted by the regression tests?
b: How come blead doesn't suffer it?
It was introduced in maint with:
Change 29785 by nicholas@nicholas-saigo on 2007/01/13 16:56:44
Integrate:
[ 26446]
Add an optimisation to allow proxy constant subroutines to be copied
as proxy constant subroutines in a new symbol table where possible.
(Rather than converting them to full blown constant subroutines and
instantiating 2 typeglobs)
[ 26448]
Regression tests for proxy subroutine glob assignment.
Fix a bug (it turns out that a typeglob isn't SvOK())
Remove stray debugging code.
[ 26470]
Now that proxy subroutines can be unproxied in 2 places without
becoming the same newCONSTSUB, need an explicit check to avoid a
warning about subroutines being redefined, as there has never been
a warning when you assing the same subroutine to a glob's GvCV()
[ 26482]
Unless the peephole optimiser already knows that we're in void context,
avoid even attempting the whole proxy constant sub copying
optimisation.
It turns out that blead isn't effected because of the localise logic of
Change 19588 by rgs@rgs-home on 2003/05/21 21:03:04
New warning "Useless localization of %s", based on
Subject: [PATCH] new warning "Useless localization of %s is deprecated"
From: Dave Mitchell <davem@fdgroup.com>
Date: Wed, 30 Apr 2003 21:17:38 +0100
Message-ID: <20030430201738.GA22054@fdgroup.com>
The proposed patch added this warning in the 'deprecated' category ;
I think this category is for things that exist and will be removed,
rather than for things that don't exist and that will maybe be added.
(of all things). I merged that logic, but not the warning it adds, into maint,
which solves the SEGV.
Nicholas Clark
Thread Previous