Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Perl: porters

[perl #113670] Bleadperl v5.17.0-451-gf6033a9 breaks SBECK/Date-Manip-6.32.tar.gz

 

 

Perl porters RSS feed   Index | Next | Previous | View Threaded


perlbug-followup at perl

Jun 16, 2012, 1:08 AM

Post #1 of 2 (48 views)
Permalink
[perl #113670] Bleadperl v5.17.0-451-gf6033a9 breaks SBECK/Date-Manip-6.32.tar.gz

# New Ticket Created by (Andreas J. Koenig)
# Please include the string: [perl #113670]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113670 >


git bisect
----------
f6033a9d6c91e0c29d5aa5049361a529b5d7cdc4 is the first bad commit
commit f6033a9d6c91e0c29d5aa5049361a529b5d7cdc4
Author: David Mitchell <davem [at] iabyn>
Date: Fri May 25 15:03:29 2012 +0100

$+ and $^N not always correct on backtracking

sample fail report
------------------
http://www.cpantesters.org/cpan/report/2e25f9e2-b762-11e1-95bf-d8583af89482

Running test verbose gives:

not ok 38
# Arguments: [ 'Mar/5 2009' ]
# Results : [ 1920030500:00:00 1920030505:00:00 ]
# Expected : [ 2009030500:00:00 2009030505:00:00 ]
[...]
not ok 16
# Arguments: [ 'Mar/5 2009' ]
# Results : [ 1920030500:00:00 1920030505:00:00 ]
# Expected : [ 2009030500:00:00 2009030505:00:00 ]


perl -V
-------
Summary of my perl5 (revision 5 version 17 subversion 0) configuration:
Commit id: f6033a9d6c91e0c29d5aa5049361a529b5d7cdc4
Platform:
osname=linux, osvers=3.2.0-2-amd64, archname=x86_64-linux-thread-multi
uname='linux k83 3.2.0-2-amd64 #1 smp mon may 21 17:45:41 utc 2012 x86_64 gnulinux '
config_args='-Dprefix=/home/src/perl/repoperls/installed-perls/perl/v5.17.0-451-gf6033a9/9980 -Dmyhostname=k83 -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Duseithreads -Uuselongdouble -DDEBUGGING=-g'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.7.0', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.13'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_USE_DEVEL
USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
USE_PERL_ATOF USE_REENTRANT_API
Built under linux
Compiled at Jun 16 2012 06:00:23
@INC:
/home/src/perl/repoperls/installed-perls/perl/v5.17.0-451-gf6033a9/9980/lib/site_perl/5.17.0/x86_64-linux-thread-multi
/home/src/perl/repoperls/installed-perls/perl/v5.17.0-451-gf6033a9/9980/lib/site_perl/5.17.0
/home/src/perl/repoperls/installed-perls/perl/v5.17.0-451-gf6033a9/9980/lib/5.17.0/x86_64-linux-thread-multi
/home/src/perl/repoperls/installed-perls/perl/v5.17.0-451-gf6033a9/9980/lib/5.17.0
.


--
andreas


davem at iabyn

Jun 16, 2012, 6:11 AM

Post #2 of 2 (41 views)
Permalink
Re: [perl #113670] Bleadperl v5.17.0-451-gf6033a9 breaks SBECK/Date-Manip-6.32.tar.gz [In reply to]

On Sat, Jun 16, 2012 at 01:08:17AM -0700, Andreas J. Koenig via RT wrote:
> # New Ticket Created by (Andreas J. Koenig)
> # Please include the string: [perl #113670]
> # in the subject line of all future correspondence about this issue.
> # <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113670 >
>
>
> git bisect
> ----------
> f6033a9d6c91e0c29d5aa5049361a529b5d7cdc4 is the first bad commit
> commit f6033a9d6c91e0c29d5aa5049361a529b5d7cdc4
> Author: David Mitchell <davem [at] iabyn>
> Date: Fri May 25 15:03:29 2012 +0100
>
> $+ and $^N not always correct on backtracking
>
> sample fail report
> ------------------
> http://www.cpantesters.org/cpan/report/2e25f9e2-b762-11e1-95bf-d8583af89482
>
> Running test verbose gives:
>
> not ok 38
> # Arguments: [ 'Mar/5 2009' ]
> # Results : [ 1920030500:00:00 1920030505:00:00 ]
> # Expected : [ 2009030500:00:00 2009030505:00:00 ]
> [...]
> not ok 16
> # Arguments: [ 'Mar/5 2009' ]
> # Results : [ 1920030500:00:00 1920030505:00:00 ]
> # Expected : [ 2009030500:00:00 2009030505:00:00 ]

Fixed with the following:

commit a8d1f4b493af3113b5d10ade9f824f102b7b040b
Author: David Mitchell <davem [at] iabyn>
AuthorDate: Sat Jun 16 13:56:50 2012 +0100
Commit: David Mitchell <davem [at] iabyn>
CommitDate: Sat Jun 16 14:09:41 2012 +0100

fix paren unwinding with CURLYN, CURLYM

Historically, CURLYN and CURLYM didn't restore lastparen ($+) nor
invalidate higher numbered paren slots (reg->offs[n].end = -1)
when backtracking.

Recent commit f6033a9d6c91e0c29d5aa5049361a529b5d7cdc4 fixed the lastparen
issue, but then exposed the offs[n].end issue, which had previously been
masked by the too-high lastparen value causing a previous state (such as a
branch) to conveniently wipe out the offending parens on further
backtracking.

Or to put it another way, each backtracker should be expected to clean up
his own mess, not hope that someone previous to him will do it for him.

Fix this by doing the .end = 1 stuff on CURLYN,M failure as well as
BRANCH/TRIE. For consistency, define a new macro to do it.

M regexec.c
M t/re/re_tests


--
"Procrastination grows to fill the available time"
-- Mitchell's corollary to Parkinson's Law

Perl porters RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.