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

base/lex test 41 failure under "make minitest" in some platforms #15480

Closed
p5pRT opened this issue Jul 27, 2016 · 19 comments
Closed

base/lex test 41 failure under "make minitest" in some platforms #15480

p5pRT opened this issue Jul 27, 2016 · 19 comments

Comments

@p5pRT
Copy link

p5pRT commented Jul 27, 2016

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

Searchable as RT128747$

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jhi

This one test in line 191 of t/base/lex.t
 
  T('^main​:\(eval \d+\)​:6$', $test++);

fails in some (not all) platforms under "make minitest" like this

...
t/base/lex ..................... FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

(all other tests in the file pass) or if run explicitly like this​:

(cd t && ./perl -Ilib TEST -v base/lex.t)
...
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

So the difference is two source code lines.

What is mystifying is two things​:

(1) the test fails only on a seemingly random selection of platforms​: AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing fine on e.g. Solaris on x86, and Ubuntu on x86. [*]

(2) the test has been there from time immemorial (Sarathy) -- so something recentish on the lexer/parser? I know for a fact that some months ago the test must have been passing, I just haven't done a wide testing recently.

[*] The CPU is a red herring, I hope. It just reflects the selection of platforms I have access to. I hope.

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

On Wed Jul 27 04​:44​:43 2016, jhi wrote​:

This one test in line 191 of t/base/lex.t

T('^main​:\(eval \d+\)​:6$', $test++);

fails in some (not all) platforms under "make minitest" like this

...
t/base/lex ..................... FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

(all other tests in the file pass) or if run explicitly like this​:

(cd t && ./perl -Ilib TEST -v base/lex.t)
...
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

So the difference is two source code lines.

What is mystifying is two things​:

(1) the test fails only on a seemingly random selection of platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

(2) the test has been there from time immemorial (Sarathy) -- so
something recentish on the lexer/parser? I know for a fact that some
months ago the test must have been passing, I just haven't done a wide
testing recently.

[*] The CPU is a red herring, I hope. It just reflects the selection
of platforms I have access to. I hope.

I can reproduce this on my old iBook G4 -- Darwin/PPC. Since I cannot recall ever running 'make minitest' on this machine, I can't say when the problem first appeared.

I'll attach the 'perl -V' for the full build of the commit at which I tested blead as well as the individual test failures.

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

Summary of my perl5 (revision 5 version 25 subversion 4) configuration​:
  Commit id​: a316481
  Platform​:
  osname=darwin
  osvers=8.11.0
  archname=darwin-2level
  uname='darwin macintosh-9.local 8.11.0 darwin kernel version 8.11.0​: wed oct 10 18​:26​:00 pdt 2007; root​:xnu-792.24.17~1release_ppc power macintosh powerpc '
  config_args='-des -Dusedevel'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=undef
  usemultiplicity=undef
  use64bitint=undef
  use64bitall=undef
  uselongdouble=undef
  usemymalloc=n
  bincompat5005=undef
  Compiler​:
  cc='cc'
  ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include -D_FORTIFY_SOURCE=2 -DPERL_USE_SAFE_PUTENV'
  optimize='-O3'
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include'
  ccversion=''
  gccversion='4.0.1 (Apple Computer, Inc. build 5250)'
  gccosandvers=''
  intsize=4
  longsize=4
  ptrsize=4
  doublesize=8
  byteorder=4321
  doublekind=4
  d_longlong=define
  longlongsize=8
  d_longdbl=define
  longdblsize=16
  longdblkind=6
  ivtype='long'
  ivsize=4
  nvtype='double'
  nvsize=8
  Off_t='off_t'
  lseeksize=8
  alignbytes=8
  prototype=define
  Linker and Libraries​:
  ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc'
  ldflags =' -L/usr/local/lib -L/opt/local/lib'
  libpth=/usr/local/lib /usr/lib /opt/local/lib
  libs=-lpthread -ldbm -ldl -lm -lc
  perllibs=-lpthread -ldl -lm -lc
  libc=
  so=dylib
  useshrplib=false
  libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs
  dlext=bundle
  d_dlsymun=undef
  ccdlflags=' '
  cccdlflags=' '
  lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  PERL_USE_DEVEL
  PERL_USE_SAFE_PUTENV
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  Built under darwin
  Compiled at Jul 27 2016 08​:31​:20
  %ENV​:
  PERLBREW_BASHRC_VERSION="0.59"
  PERLBREW_HOME="/Users/jimk/.perlbrew"
  PERLBREW_ROOT="/Users/jimk/perl5/perlbrew"
  PERL_WORKDIR="gitwork/perl"
  @​INC​:
  lib
  /usr/local/lib/perl5/site_perl/5.25.4/darwin-2level
  /usr/local/lib/perl5/site_perl/5.25.4
  /usr/local/lib/perl5/5.25.4/darwin-2level
  /usr/local/lib/perl5/5.25.4
  /usr/local/lib/perl5/site_perl
  .

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

t/base/lex ... 1..107
#1 :x​: eq :x​:
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12 - make sure single quotes are honored \nnot ok
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18 - was the test for the deprecated use of bare << to mean <<""
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
ok 36
ok 37
ok 38
ok 39
# uggedaboudit
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @cpansprout

On Wed Jul 27 04​:44​:43 2016, jhi wrote​:

This one test in line 191 of t/base/lex.t

T('^main​:\(eval \d+\)​:6$', $test++);

Which is inside an eval, and is on line 6 of that eval. T() checks the caller’s line number.

fails in some (not all) platforms under "make minitest" like this

...
t/base/lex ..................... FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

(all other tests in the file pass) or if run explicitly like this​:

(cd t && ./perl -Ilib TEST -v base/lex.t)
...
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

So the difference is two source code lines.

It does seem odd that the line number would be off only on some platforms. The last commit in toke.c to touch line numbers was b3dd0ab. Can you check whether that was it?

Also, if you reduce the amount of code in that string eval leading up to the T() in question, does the problem persist?

--

Father Chrysostomos

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

On Wed Jul 27 06​:17​:48 2016, jkeenan wrote​:

On Wed Jul 27 04​:44​:43 2016, jhi wrote​:

This one test in line 191 of t/base/lex.t

T('^main​:\(eval \d+\)​:6$', $test++);

fails in some (not all) platforms under "make minitest" like this

...
t/base/lex ..................... FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

(all other tests in the file pass) or if run explicitly like this​:

(cd t && ./perl -Ilib TEST -v base/lex.t)
...
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

So the difference is two source code lines.

What is mystifying is two things​:

(1) the test fails only on a seemingly random selection of platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing
fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

(2) the test has been there from time immemorial (Sarathy) -- so
something recentish on the lexer/parser? I know for a fact that some
months ago the test must have been passing, I just haven't done a
wide
testing recently.

[*] The CPU is a red herring, I hope. It just reflects the selection
of platforms I have access to. I hope.

I can reproduce this on my old iBook G4 -- Darwin/PPC. Since I cannot
recall ever running 'make minitest' on this machine, I can't say when
the problem first appeared.

I'll attach the 'perl -V' for the full build of the commit at which I
tested blead as well as the individual test failures.

Thank you very much.

Note​: On this same system, when I attempt a full 'make test_harness', I am getting failures in t/comp/parser.t which I have not previously gotten (e.g., which I didn't get when testing 5.24.0). These test failures all relate to heredocs -- which, given recent work in that area -- may explain the recency of these failures.

I am re-testing and will post relevant findings.

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

Prompted by Jarkko's reports of failures in t/base/lex.t during 'make minitest' (https://rt.perl.org/Public/Bug/Display.html?id=128747), I ran 'make minitest' for the first time ever and confirmed his failures reports for Darwin/PPC. I then ran a regular 'make test_harness' on that machine and was surprised to see failures in both t/base/lex.t and t/comp/parser.t.

I reconfigured and rebuilt and got the following 5 failures in t/comp/parser.t​:

#####
cd t && ./perl harness -v comp/parser.t && cd -
...
not ok 172 - after here-doc in quotes
not ok 173 - first line of interp in here-doc
not ok 174 - second line of interp in here-doc
not ok 175 - first line of interp in second here-doc on same line
not ok 176 - second line of interp in second heredoc on same line
#####

I know that 'make test' ran successfully on this machine when I went to install 5.24.0. I'm fairly certain that I built and tested blead on this machine about a month ago. Hence, my suspicion is that these failures are due to whatever work has recently been merged into blead related to heredocs.

With the same build as above I am also getting a test failure in t/base/lex.t even outside of 'make minitest'​:

#####
cd t && ./perl harness -v base/lex.t && cd -
...
ok 40
not ok 41
ok 42
#####

This is the same failure as reported by Jarkko in RT #128747, so the problem is not confined to 'make minitest'. I stress again that this failure is new; all tests for the installation of 5.24.0 passed.

Thank you very much.
Jim Keenan

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

Summary of my perl5 (revision 5 version 25 subversion 4) configuration​:
  Commit id​: a316481
  Platform​:
  osname=darwin
  osvers=8.11.0
  archname=darwin-2level
  uname='darwin macintosh-9.local 8.11.0 darwin kernel version 8.11.0​: wed oct 10 18​:26​:00 pdt 2007; root​:xnu-792.24.17~1release_ppc power macintosh powerpc '
  config_args='-des -Dusedevel'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=undef
  usemultiplicity=undef
  use64bitint=undef
  use64bitall=undef
  uselongdouble=undef
  usemymalloc=n
  bincompat5005=undef
  Compiler​:
  cc='cc'
  ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include -D_FORTIFY_SOURCE=2 -DPERL_USE_SAFE_PUTENV'
  optimize='-O3'
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include'
  ccversion=''
  gccversion='4.0.1 (Apple Computer, Inc. build 5250)'
  gccosandvers=''
  intsize=4
  longsize=4
  ptrsize=4
  doublesize=8
  byteorder=4321
  doublekind=4
  d_longlong=define
  longlongsize=8
  d_longdbl=define
  longdblsize=16
  longdblkind=6
  ivtype='long'
  ivsize=4
  nvtype='double'
  nvsize=8
  Off_t='off_t'
  lseeksize=8
  alignbytes=8
  prototype=define
  Linker and Libraries​:
  ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc'
  ldflags =' -L/usr/local/lib -L/opt/local/lib'
  libpth=/usr/local/lib /usr/lib /opt/local/lib
  libs=-lpthread -ldbm -ldl -lm -lc
  perllibs=-lpthread -ldl -lm -lc
  libc=
  so=dylib
  useshrplib=false
  libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs
  dlext=bundle
  d_dlsymun=undef
  ccdlflags=' '
  cccdlflags=' '
  lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  PERL_USE_DEVEL
  PERL_USE_SAFE_PUTENV
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  Built under darwin
  Compiled at Jul 27 2016 08​:31​:20
  %ENV​:
  PERLBREW_BASHRC_VERSION="0.59"
  PERLBREW_HOME="/Users/jimk/.perlbrew"
  PERLBREW_ROOT="/Users/jimk/perl5/perlbrew"
  PERL_WORKDIR="gitwork/perl"
  @​INC​:
  lib
  /usr/local/lib/perl5/site_perl/5.25.4/darwin-2level
  /usr/local/lib/perl5/site_perl/5.25.4
  /usr/local/lib/perl5/5.25.4/darwin-2level
  /usr/local/lib/perl5/5.25.4
  /usr/local/lib/perl5/site_perl
  .

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

On Wed Jul 27 09​:41​:10 2016, jkeenan wrote​:

Prompted by Jarkko's reports of failures in t/base/lex.t during 'make
minitest' (https://rt.perl.org/Public/Bug/Display.html?id=128747), I
ran 'make minitest' for the first time ever and confirmed his failures
reports for Darwin/PPC. I then ran a regular 'make test_harness' on
that machine and was surprised to see failures in both t/base/lex.t
and t/comp/parser.t.

I reconfigured and rebuilt and got the following 5 failures in
t/comp/parser.t​:

#####
cd t && ./perl harness -v comp/parser.t && cd -
...
not ok 172 - after here-doc in quotes
not ok 173 - first line of interp in here-doc
not ok 174 - second line of interp in here-doc
not ok 175 - first line of interp in second here-doc on same line
not ok 176 - second line of interp in second heredoc on same line
#####

I know that 'make test' ran successfully on this machine when I went
to install 5.24.0. I'm fairly certain that I built and tested blead
on this machine about a month ago. Hence, my suspicion is that these
failures are due to whatever work has recently been merged into blead
related to heredocs.

With the same build as above I am also getting a test failure in
t/base/lex.t even outside of 'make minitest'​:

#####
cd t && ./perl harness -v base/lex.t && cd -
...
ok 40
not ok 41
ok 42
#####

This is the same failure as reported by Jarkko in RT #128747, so the
problem is not confined to 'make minitest'. I stress again that this
failure is new; all tests for the installation of 5.24.0 passed.

Thank you very much.
Jim Keenan

I have built both perl-5.25.2 and perl-5.25.3 on Darwin/PPC. I can confirm that *neither* of these test failures occurs in *either* of those tags. Hence, I infer that the test failures have been introduced since perl-5.25.3.

Thank you very much.
--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @cpansprout

On Wed Jul 27 11​:52​:49 2016, jkeenan wrote​:

I have built both perl-5.25.2 and perl-5.25.3 on Darwin/PPC. I can
confirm that *neither* of these test failures occurs in *either* of
those tags. Hence, I infer that the test failures have been
introduced since perl-5.25.3.

Thank you. That saved me time.

I do have access to a G4, but it doesn’t have git, so I did a manual ‘bisect’ and it led to v5.25.3-28-g6745174​:

commit 6745174
Author​: Father Chrysostomos <sprout@​cpan.org>
Date​: Tue Jul 26 00​:47​:16 2016 -0700

  parser.h​: Use UV for string delims

I don’t understand why that would throw line numbers off. I’ll look into it.

--

Father Chrysostomos

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jhi

(1) the test fails only on a seemingly random selection of platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

The CPU may not be a red herring, given that James Keenan is seeing the same in darwin/ppc.

PPC... Sparc... Endianness? Are we storing the line number somewhere and then reading it through a wrong cast, or something?

Trying to think when did I last test all these platforms ... I am not certain ... but quite certain all worked at 5.24.0.

@p5pRT
Copy link
Author

p5pRT commented Jul 27, 2016

From @jkeenan

On Wed Jul 27 08​:50​:43 2016, jkeenan wrote​:

On Wed Jul 27 06​:17​:48 2016, jkeenan wrote​:

On Wed Jul 27 04​:44​:43 2016, jhi wrote​:

This one test in line 191 of t/base/lex.t

T('^main​:\(eval \d+\)​:6$', $test++);

fails in some (not all) platforms under "make minitest" like this

...
t/base/lex ..................... FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

(all other tests in the file pass) or if run explicitly like this​:

(cd t && ./perl -Ilib TEST -v base/lex.t)
...
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

So the difference is two source code lines.

What is mystifying is two things​:

(1) the test fails only on a seemingly random selection of
platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing
fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

(2) the test has been there from time immemorial (Sarathy) -- so
something recentish on the lexer/parser? I know for a fact that
some
months ago the test must have been passing, I just haven't done a
wide
testing recently.

[*] The CPU is a red herring, I hope. It just reflects the
selection
of platforms I have access to. I hope.

I can reproduce this on my old iBook G4 -- Darwin/PPC. Since I
cannot
recall ever running 'make minitest' on this machine, I can't say when
the problem first appeared.

I'll attach the 'perl -V' for the full build of the commit at which I
tested blead as well as the individual test failures.

Thank you very much.

Note​: On this same system, when I attempt a full 'make test_harness',
I am getting failures in t/comp/parser.t which I have not previously
gotten (e.g., which I didn't get when testing 5.24.0). These test
failures all relate to heredocs -- which, given recent work in that
area -- may explain the recency of these failures.

I am re-testing and will post relevant findings.

Thank you very much.

As noted in https://rt-archive.perl.org/perl5/Ticket/Display.html?id=128753, on Darwin/PPC this test failure started to appear after tag v5.25.3.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jul 28, 2016

From @cpansprout

On Wed Jul 27 16​:16​:41 2016, jhi wrote​:

(1) the test fails only on a seemingly random selection of platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing
fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

The CPU may not be a red herring, given that James Keenan is seeing
the same in darwin/ppc.

PPC... Sparc... Endianness? Are we storing the line number somewhere
and then reading it through a wrong cast, or something?

Trying to think when did I last test all these platforms ... I am not
certain ... but quite certain all worked at 5.24.0.

As I noted in ticket #128753, it was commit 6745174.

This is getting confusing, so I am going to merge the tickets, since the failures they describe (though in different tickets) are the same (line numbers screwy after s//<<end/e).

--

Father Chrysostomos

@p5pRT
Copy link
Author

p5pRT commented Jul 28, 2016

From @cpansprout

On Wed Jul 27 17​:16​:08 2016, sprout wrote​:

On Wed Jul 27 16​:16​:41 2016, jhi wrote​:

(1) the test fails only on a seemingly random selection of
platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing
fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

The CPU may not be a red herring, given that James Keenan is seeing
the same in darwin/ppc.

PPC... Sparc... Endianness? Are we storing the line number
somewhere
and then reading it through a wrong cast, or something?

Pretty close to that.

Trying to think when did I last test all these platforms ... I am not
certain ... but quite certain all worked at 5.24.0.

As I noted in ticket #128753, it was commit 6745174.

which changed PL_multi_close to UV, but failed to change

  SAVEI8(PL_multi_close);

in S_sublex_done.

I’ll have a fix pushed within a few hours (I hope).

--

Father Chrysostomos

@p5pRT
Copy link
Author

p5pRT commented Jul 28, 2016

From @cpansprout

On Wed Jul 27 18​:28​:04 2016, sprout wrote​:

On Wed Jul 27 17​:16​:08 2016, sprout wrote​:

On Wed Jul 27 16​:16​:41 2016, jhi wrote​:

(1) the test fails only on a seemingly random selection of
platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing
fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

The CPU may not be a red herring, given that James Keenan is seeing
the same in darwin/ppc.

PPC... Sparc... Endianness? Are we storing the line number
somewhere
and then reading it through a wrong cast, or something?

Pretty close to that.

No, actually it was *exactly* that.

Trying to think when did I last test all these platforms ... I am not
certain ... but quite certain all worked at 5.24.0.

As I noted in ticket #128753, it was commit 6745174.

which changed PL_multi_close to UV, but failed to change

SAVEI8\(PL\_multi\_close\);

in S_sublex_done.

I’ll have a fix pushed within a few hours (I hope).

Fixed in 2ca4363.

--

Father Chrysostomos

@p5pRT p5pRT closed this as completed Jul 28, 2016
@p5pRT
Copy link
Author

p5pRT commented Jul 28, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Jul 28, 2016

From @jkeenan

On Wed Jul 27 08​:50​:43 2016, jkeenan wrote​:

On Wed Jul 27 06​:17​:48 2016, jkeenan wrote​:

On Wed Jul 27 04​:44​:43 2016, jhi wrote​:

This one test in line 191 of t/base/lex.t

T('^main​:\(eval \d+\)​:6$', $test++);

fails in some (not all) platforms under "make minitest" like this

...
t/base/lex ..................... FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

(all other tests in the file pass) or if run explicitly like this​:

(cd t && ./perl -Ilib TEST -v base/lex.t)
...
ok 40
# main​:(eval 7)​:4 vs /^main​:\(eval \d+\)​:6$/
not ok 41
FAILED at test 41
Failed a basic test (base/lex.t) under minitest -- cannot continue.

So the difference is two source code lines.

What is mystifying is two things​:

(1) the test fails only on a seemingly random selection of
platforms​:
AIX 5 on PPC, Debian on PPC, and Solaris on Sparc. While passing
fine
on e.g. Solaris on x86, and Ubuntu on x86. [*]

(2) the test has been there from time immemorial (Sarathy) -- so
something recentish on the lexer/parser? I know for a fact that
some
months ago the test must have been passing, I just haven't done a
wide
testing recently.

[*] The CPU is a red herring, I hope. It just reflects the
selection
of platforms I have access to. I hope.

I can reproduce this on my old iBook G4 -- Darwin/PPC. Since I
cannot
recall ever running 'make minitest' on this machine, I can't say when
the problem first appeared.

I'll attach the 'perl -V' for the full build of the commit at which I
tested blead as well as the individual test failures.

Thank you very much.

Note​: On this same system, when I attempt a full 'make test_harness',
I am getting failures in t/comp/parser.t which I have not previously
gotten (e.g., which I didn't get when testing 5.24.0). These test
failures all relate to heredocs -- which, given recent work in that
area -- may explain the recency of these failures.

I am re-testing and will post relevant findings.

Thank you very much.

On Darwin/PPC, both these tests are passing as of commit 555e2b1.

Marking ticket resolved.

Thank you very much.
--
James E Keenan (jkeenan@​cpan.org)

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

No branches or pull requests

1 participant