Skip to content
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

Bleadperl eae48c89 breaks TIMB/Devel-NYTProf-4.05.tar.gz #10764

Closed
p5pRT opened this issue Oct 27, 2010 · 9 comments
Closed

Bleadperl eae48c89 breaks TIMB/Devel-NYTProf-4.05.tar.gz #10764

p5pRT opened this issue Oct 27, 2010 · 9 comments

Comments

@p5pRT
Copy link

p5pRT commented Oct 27, 2010

Migrated from rt.perl.org#78586 (status was 'resolved')

Searchable as RT78586$

@p5pRT
Copy link
Author

p5pRT commented Oct 27, 2010

From @andk

git bisect​:

  commit eae48c8
  Author​: Zefram <zefram@​fysh.org>
  Date​: Tue Oct 19 21​:16​:11 2010 +0100

  refactor and regularise label/statement grammar

perl -V​:

  Summary of my perl5 (revision 5 version 13 subversion 6) configuration​:
  Commit id​: eae48c8
  Platform​:
  osname=linux, osvers=2.6.32-2-amd64, archname=x86_64-linux-thread-multi
  uname='linux k81 2.6.32-2-amd64 #1 smp fri feb 12 00​:01​:47 utc 2010 x86_64 gnulinux '
  config_args='-Dprefix=/home/src/perl/repoperls/installed-perls/perl/v5.13.6-130-geae48c8 -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Duseithreads -Uuselongdouble'
  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',
  cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
  ccversion='', gccversion='4.4.4', 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 /usr/lib /lib64 /usr/lib64
  libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
  perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
  libc=/lib/libc-2.11.2.so, so=so, useshrplib=false, libperl=libperl.a
  gnulibc_version='2.11.2'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
  cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'

  Characteristics of this binary (from libperl)​:
  Compile-time options​: MULTIPLICITY PERL_DONT_CREATE_GVSV
  PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_USE_DEVEL
  USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
  USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
  USE_REENTRANT_API
  Built under linux
  Compiled at Oct 27 2010 06​:18​:01
  @​INC​:
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-130-geae48c8/lib/site_perl/5.13.6/x86_64-linux-thread-multi
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-130-geae48c8/lib/site_perl/5.13.6
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-130-geae48c8/lib/5.13.6/x86_64-linux-thread-multi
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-130-geae48c8/lib/5.13.6
  .

--
andreas

@p5pRT
Copy link
Author

p5pRT commented Oct 30, 2010

From @timbunce

There's something odd happening here.

Just before eae48c8 (at ff0c75a)​:

$ perl -d​:Trace <<END
warn "1";
{
  warn "3";
}
warn "5";
END

-​:1​: warn "1";
1 at - line 1.
-​:3​: warn "3";}
-​:3​: warn "3";}
3 at - line 3.
-​:4​: warn "5";
5 at - line 4.

but at eae48c8 this happens​:

-​:1​: warn "1";
1 at - line 1.
-​:5​: warn "5"; <== wrong
-​:3​: warn "3";
3 at - line 3.
-​:5​: warn "5";
5 at - line 5.

Tim.

@p5pRT
Copy link
Author

p5pRT commented Oct 30, 2010

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Nov 4, 2010

From @timbunce

Zefram, any thoughts on this?

Tim.

On Sat, Oct 30, 2010 at 01​:50​:39PM +0100, Tim Bunce wrote​:

There's something odd happening here.

Just before eae48c8 (at ff0c75a)​:

$ perl -d​:Trace <<END
warn "1";
{
warn "3";
}
warn "5";
END

-​:1​: warn "1";
1 at - line 1.
-​:3​: warn "3";}
-​:3​: warn "3";}
3 at - line 3.
-​:4​: warn "5";
5 at - line 4.

but at eae48c8 this happens​:

-​:1​: warn "1";
1 at - line 1.
-​:5​: warn "5"; <== wrong
-​:3​: warn "3";
3 at - line 3.
-​:5​: warn "5";
5 at - line 5.

Tim.

@p5pRT
Copy link
Author

p5pRT commented Nov 4, 2010

From zefram@fysh.org

Tim Bunce wrote​:

Zefram, any thoughts on this?

Going to look at it, haven't had time yet.

-zefram

@p5pRT
Copy link
Author

p5pRT commented Nov 6, 2010

From zefram@fysh.org

Tim Bunce wrote​:

-​:5​: warn "5"; <== wrong

I believe this is fixed by a one line change (plus `make regen_perly`)​:

Inline Patch
diff --git a/perly.y b/perly.y
index 7407b21..ed844d9 100644
--- a/perly.y
+++ b/perly.y
@@ -448,7 +448,6 @@ barestmt:	PLUGSTMT
 			  /* a block is a loop that happens once */
 			  $$ = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
 				  (OP*)NULL, $1, $2, 0);
-			  PL_parser->copline = NOLINE;
 			}
 	|	PACKAGE WORD WORD '{' remember
 			{

Can you put together a test for this?

Looking at related constructs, there's a change to the line number
attached to the initialisation expression in a for(;;) loop, which I
believe is an improvement​: it now indicates the line the for loop starts
on, where previously it indicated the line that the loop body ends on.

The nature of the changes in eae48c8 render it relatively at risk
of changing the line numbers in state ops. The way line numbers are
processed is somewhat fragile. So please watch out for anything similar
that the tests have missed.

-zefram

@p5pRT
Copy link
Author

p5pRT commented Nov 11, 2010

From @cpansprout

On Sat Nov 06 09​:26​:43 2010, zefram@​fysh.org wrote​:

Tim Bunce wrote​:

-​:5​: warn "5"; <== wrong

I believe this is fixed by a one line change (plus `make regen_perly`)​:

diff --git a/perly.y b/perly.y
index 7407b21..ed844d9 100644
--- a/perly.y
+++ b/perly.y
@​@​ -448,7 +448,6 @​@​ barestmt​: PLUGSTMT
/* a block is a loop that happens once */
$$ = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
(OP*)NULL, $1, $2, 0);
- PL_parser->copline = NOLINE;
}
| PACKAGE WORD WORD '{' remember
{

Thank you. Applied as 166f120.

Can you put together a test for this?

Tim Bunce’s tests from
nntp​://nntp.perl.org/20101110050706.GL2903@​timac.local have been applied
as fc6b470.

@p5pRT
Copy link
Author

p5pRT commented Nov 11, 2010

@cpansprout - Status changed from 'open' to 'resolved'

@p5pRT p5pRT closed this as completed Nov 11, 2010
@p5pRT
Copy link
Author

p5pRT commented Nov 11, 2010

From @cpansprout

Tim Bunce said​:

I've attached a basic test script that seems to work well enough
and be easily extensible.

Thank you. Applied, with some adjustments, as fc6b470.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant