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 v5.19.11-90-gd3f8a93 breaks ZEFRAM/Sub-Mutate-0.005.tar.gz #13841

Closed
p5pRT opened this issue May 15, 2014 · 9 comments
Closed

Bleadperl v5.19.11-90-gd3f8a93 breaks ZEFRAM/Sub-Mutate-0.005.tar.gz #13841

p5pRT opened this issue May 15, 2014 · 9 comments

Comments

@p5pRT
Copy link

p5pRT commented May 15, 2014

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

Searchable as RT121876$

@p5pRT
Copy link
Author

p5pRT commented May 15, 2014

From @andk

git bisect


commit d3f8a93
Author​: Ævar Arnfjörð Bjarmason <avar@​cpan.org>
Date​: Wed May 7 12​:09​:40 2014 +0000

  Revert "[perl #79908] Stop sub inlining from breaking closures"

diagnostics


http​://www.cpantesters.org/cpan/report/7301af04-dba8-11e3-a971-af1773305bfd

rt.cpan ticket


https://rt.cpan.org/Ticket/Display.html?id=95649

perl -V


Summary of my perl5 (revision 5 version 19 subversion 12) configuration​:
  Commit id​: cb07e2f
  Platform​:
  osname=linux, osvers=3.13-1-amd64, archname=x86_64-linux-thread-multi-ld
  uname='linux k83 3.13-1-amd64 #1 smp debian 3.13.7-1 (2014-03-25) x86_64 gnulinux '
  config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/perl/v5.19.11-93-gcb07e2f/a2da -Dmyhostname=k83 -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Duseithreads -Duselongdouble -DDEBUGGING=-g'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=define, usemultiplicity=define
  use64bitint=define, use64bitall=define, uselongdouble=define
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -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 -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
  ccversion='', gccversion='4.8.2', 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='long double', nvsize=16, Off_t='off_t', lseeksize=8
  alignbytes=16, prototype=define
  Linker and Libraries​:
  ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
  libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
  libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
  perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
  libc=libc-2.18.so, so=so, useshrplib=false, libperl=libperl.a
  gnulibc_version='2.18'
  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_HASH_FUNC_ONE_AT_A_TIME_HARD
  PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
  PERL_NEW_COPY_ON_WRITE 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_LONG_DOUBLE USE_PERLIO
  USE_PERL_ATOF USE_REENTRANT_API
  Built under linux
  Compiled at May 12 2014 22​:26​:07

--
andreas

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2014

From @jkeenan

On Wed May 14 19​:35​:16 2014, andreas.koenig.7os6VVqR@​franz.ak.mind.de wrote​:

git bisect
----------
commit d3f8a93
Author​: Ævar Arnfjörð Bjarmason <avar@​cpan.org>
Date​: Wed May 7 12​:09​:40 2014 +0000

Revert "[perl #79908] Stop sub inlining from breaking closures"

diagnostics
-----------
http​://www.cpantesters.org/cpan/report/7301af04-dba8-11e3-a971-
af1773305bfd

rt.cpan ticket
--------------
https://rt.cpan.org/Ticket/Display.html?id=95649

perl -V
-------
Summary of my perl5 (revision 5 version 19 subversion 12)
configuration​:
Commit id​: cb07e2f
Platform​:
osname=linux, osvers=3.13-1-amd64, archname=x86_64-linux-thread-
multi-ld
uname='linux k83 3.13-1-amd64 #1 smp debian 3.13.7-1 (2014-03-25)
x86_64 gnulinux '
config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-
perls/perl/v5.19.11-93-gcb07e2f/a2da -Dmyhostname=k83
-Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db
-Duseithreads -Duselongdouble -DDEBUGGING=-g'

[snip]

I tried this on blead (commit 097675b) with khw's test program. I did not even get as far as Andreas got with 5.19.11.

#####

$ ./Build
Building Sub-Mutate
cc -I/home/jkeenan/testing/blead/lib/perl5/5.21.1/x86_64-linux/CORE -DVERSION="0.005" -DXS_VERSION="0.005" -fPIC -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o lib/Sub/Mutate.o lib/Sub/Mutate.c
lib/Sub/Mutate.xs​: In function ‘THX_sv_unbless’​:
lib/Sub/Mutate.xs​:47​: error​: ‘PL_sv_objcount’ undeclared (first use in this function)
lib/Sub/Mutate.xs​:47​: error​: (Each undeclared identifier is reported only once
lib/Sub/Mutate.xs​:47​: error​: for each function it appears in.)
error building lib/Sub/Mutate.o from 'lib/Sub/Mutate.c' at /home/jkeenan/testing/blead/lib/perl5/5.21.1/ExtUtils/CBuilder/Base.pm line 175.

#####

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2014

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

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2014

From @khwilliamson

On 6/9/2014 7​:11 PM, James E Keenan via RT wrote​:

On Wed May 14 19​:35​:16 2014, andreas.koenig.7os6VVqR@​franz.ak.mind.de wrote​:

git bisect
----------
commit d3f8a93
Author​: Ævar Arnfjörð Bjarmason <avar@​cpan.org>
Date​: Wed May 7 12​:09​:40 2014 +0000

Revert "[perl #79908] Stop sub inlining from breaking closures"

diagnostics
-----------
http​://www.cpantesters.org/cpan/report/7301af04-dba8-11e3-a971-
af1773305bfd

rt.cpan ticket
--------------
https://rt.cpan.org/Ticket/Display.html?id=95649

perl -V
-------
Summary of my perl5 (revision 5 version 19 subversion 12)
configuration​:
Commit id​: cb07e2f
Platform​:
osname=linux, osvers=3.13-1-amd64, archname=x86_64-linux-thread-
multi-ld
uname='linux k83 3.13-1-amd64 #1 smp debian 3.13.7-1 (2014-03-25)
x86_64 gnulinux '
config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-
perls/perl/v5.19.11-93-gcb07e2f/a2da -Dmyhostname=k83
-Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db
-Duseithreads -Duselongdouble -DDEBUGGING=-g'

[snip]

I tried this on blead (commit 097675b) with khw's test program. I did not even get as far as Andreas got with 5.19.11.

#####

$ ./Build
Building Sub-Mutate
cc -I/home/jkeenan/testing/blead/lib/perl5/5.21.1/x86_64-linux/CORE -DVERSION="0.005" -DXS_VERSION="0.005" -fPIC -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o lib/Sub/Mutate.o lib/Sub/Mutate.c
lib/Sub/Mutate.xs​: In function ‘THX_sv_unbless’​:
lib/Sub/Mutate.xs​:47​: error​: ‘PL_sv_objcount’ undeclared (first use in this function)
lib/Sub/Mutate.xs​:47​: error​: (Each undeclared identifier is reported only once
lib/Sub/Mutate.xs​:47​: error​: for each function it appears in.)
error building lib/Sub/Mutate.o from 'lib/Sub/Mutate.c' at /home/jkeenan/testing/blead/lib/perl5/5.21.1/ExtUtils/CBuilder/Base.pm line 175.

#####

---
via perlbug​: queue​: perl5 status​: new
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=121876

just remove the PL_sv_objcount. It is no longer used by the core.

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2014

From @nwc10

On Mon, Jun 09, 2014 at 07​:52​:43PM -0600, Karl Williamson wrote​:

On 6/9/2014 7​:11 PM, James E Keenan via RT wrote​:

$ ./Build
Building Sub-Mutate
cc -I/home/jkeenan/testing/blead/lib/perl5/5.21.1/x86_64-linux/CORE -DVERSION="0.005" -DXS_VERSION="0.005" -fPIC -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o lib/Sub/Mutate.o lib/Sub/Mutate.c
lib/Sub/Mutate.xs​: In function ‘THX_sv_unbless’​:
lib/Sub/Mutate.xs​:47​: error​: ‘PL_sv_objcount’ undeclared (first use in this function)
lib/Sub/Mutate.xs​:47​: error​: (Each undeclared identifier is reported only once
lib/Sub/Mutate.xs​:47​: error​: for each function it appears in.)
error building lib/Sub/Mutate.o from 'lib/Sub/Mutate.c' at /home/jkeenan/testing/blead/lib/perl5/5.21.1/ExtUtils/CBuilder/Base.pm line 175.

#####

---
via perlbug​: queue​: perl5 status​: new
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=121876

just remove the PL_sv_objcount. It is no longer used by the core.

This isn't quite correct. It was in use prior to this commit​:

commit ddf23d4
Author​: Steffen Mueller <smueller@​cpan.org>
Date​: Thu Feb 28 18​:23​:32 2013 +0100

  Prepare PL_sv_objcount removal

  This used to keep track of all objects. At least by now, that is
  for no particularly good reason. Just because it could avoid a
  bit of work during global destruction if no objects remained.
  Let's do less work at run-time instead.

  The interpreter global will remain for one deprecation cycle.

So the pedantically correct approach would be to wrap the code that accesses
it with​:

#if PERL_VERSION < 18
...
#endif

(Not tested)
(And that ought to be the response for all tickets about this)

*However*, I think that it won't make any behaviour difference just removing
it. All that matters at global destruction time is that PL_sv_objcount is
non-zero. The side effects of loading DynaLoader are going to be enough to
ensure that.

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Sep 14, 2014

From @jkeenan

On Mon Jun 09 23​:50​:18 2014, nicholas wrote​:

On Mon, Jun 09, 2014 at 07​:52​:43PM -0600, Karl Williamson wrote​:

On 6/9/2014 7​:11 PM, James E Keenan via RT wrote​:

$ ./Build
Building Sub-Mutate
cc -I/home/jkeenan/testing/blead/lib/perl5/5.21.1/x86_64-linux/CORE
-DVERSION="0.005" -DXS_VERSION="0.005" -fPIC -c -fwrapv -fno-
strict-aliasing -pipe -fstack-protector -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -o lib/Sub/Mutate.o
lib/Sub/Mutate.c
lib/Sub/Mutate.xs​: In function ‘THX_sv_unbless’​:
lib/Sub/Mutate.xs​:47​: error​: ‘PL_sv_objcount’ undeclared (first use
in this function)
lib/Sub/Mutate.xs​:47​: error​: (Each undeclared identifier is
reported only once
lib/Sub/Mutate.xs​:47​: error​: for each function it appears in.)
error building lib/Sub/Mutate.o from 'lib/Sub/Mutate.c' at
/home/jkeenan/testing/blead/lib/perl5/5.21.1/ExtUtils/CBuilder/Base.pm
line 175.

#####

---
via perlbug​: queue​: perl5 status​: new
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=121876

just remove the PL_sv_objcount. It is no longer used by the core.

This isn't quite correct. It was in use prior to this commit​:

commit ddf23d4
Author​: Steffen Mueller <smueller@​cpan.org>
Date​: Thu Feb 28 18​:23​:32 2013 +0100

Prepare PL_sv_objcount removal

This used to keep track of all objects. At least by now, that is
for no particularly good reason. Just because it could avoid a
bit of work during global destruction if no objects remained.
Let's do less work at run-time instead.

The interpreter global will remain for one deprecation cycle.

So the pedantically correct approach would be to wrap the code that
accesses
it with​:

#if PERL_VERSION < 18
...
#endif

(Not tested)
(And that ought to be the response for all tickets about this)

*However*, I think that it won't make any behaviour difference just
removing
it. All that matters at global destruction time is that PL_sv_objcount
is
non-zero. The side effects of loading DynaLoader are going to be
enough to
ensure that.

Nicholas Clark

I'm confused as to what action, if any, P5P needs to take with respect to the issues raised in this ticket. Can anyone clarify? How do we move the ticket toward resolution?

Thank you very much.

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

@p5pRT
Copy link
Author

p5pRT commented Sep 15, 2014

From @iabyn

On Sun, Sep 14, 2014 at 05​:33​:34AM -0700, James E Keenan via RT wrote​:

I'm confused as to what action, if any, P5P needs to take with respect
to the issues raised in this ticket. Can anyone clarify? How do we
move the ticket toward resolution?

The conclusion seems to be that its not a perl bug, and that the module
in the ticket (and any other similarly affected modules) need to
wrap access to the removed PL_sv_objcount variable in

  #if PERL_VERSION < 18
  ...
  #endif

--
Never work with children, animals, or actors.

@p5pRT
Copy link
Author

p5pRT commented Sep 15, 2014

From @jkeenan

Marking ticket resolved per comment from Dave M.
--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Sep 15, 2014

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

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