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 805700c1 breaks FLORA/MooseX-Method-Signatures-0.36.tar.gz #10757

Closed
p5pRT opened this issue Oct 23, 2010 · 7 comments
Closed

Bleadperl 805700c1 breaks FLORA/MooseX-Method-Signatures-0.36.tar.gz #10757

p5pRT opened this issue Oct 23, 2010 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Oct 23, 2010

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

Searchable as RT78542$

@p5pRT
Copy link
Author

p5pRT commented Oct 23, 2010

From @andk

git bisect​:

  commit 805700c
  Author​: Zefram <zefram@​fysh.org>
  Date​: Wed Oct 13 21​:05​:54 2010 +0100

  avoid side-effecting source held in scalar

perl -V​:

  Summary of my perl5 (revision 5 version 13 subversion 6) configuration​:
  Commit id​: 805700c
  Platform​:
  osname=linux, osvers=2.6.32-2-amd64, archname=x86_64-linux
  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-29-g805700c -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Uuseithreads -Uuselongdouble'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-O2',
  cppflags='-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 -lc -lgdbm_compat
  perllibs=-lnsl -ldl -lm -lcrypt -lutil -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​: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_USE_DEVEL
  USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES
  USE_PERLIO USE_PERL_ATOF
  Built under linux
  Compiled at Oct 23 2010 13​:50​:16
  @​INC​:
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-29-g805700c/lib/site_perl/5.13.6/x86_64-linux
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-29-g805700c/lib/site_perl/5.13.6
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-29-g805700c/lib/5.13.6/x86_64-linux
  /home/src/perl/repoperls/installed-perls/perl/v5.13.6-29-g805700c/lib/5.13.6
  .

--
andreas

@p5pRT
Copy link
Author

p5pRT commented Oct 23, 2010

From zefram@fysh.org

Andreas J. Koenig via RT wrote​:

Subject​: [perl #78542] Bleadperl 805700c breaks
FLORA/MooseX-Method-Signatures-0.36.tar.gz

Actually, it looks like the direct breakee is Devel-Declare. It fails
test suite with "PL_linestr not long enough", which is certainly within
the realm of what could be broken by 805700c. Don't you run the
test suites of dependencies? (You also make no mention of Test​::Warn,
which is a dependency of MX​:M​:S and fails its test suite because of the
(?^​:) change.)

-zefram

@p5pRT
Copy link
Author

p5pRT commented Oct 23, 2010

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

@p5pRT
Copy link
Author

p5pRT commented Oct 23, 2010

From zefram@fysh.org

I wrote​:

Actually, it looks like the direct breakee is Devel-Declare.

And the nature of the breakage is quite clear on inspection. As the
error message indicates, D​:D requires the SV holding the lexer buffer to
have some room for editing (without having to reallocate). For code read
from a file this is achieved by a source filter that resizes the buffer.
What I wasn't previously aware of is that code being evaled is subject
to a different hack​: pp_entereval is wrapped with code that resizes the
SV buffer before it goes off to the lexer. It thus relies on the lexer
using that SV rather than a copy of it.

We don't want to go back on the core fix, but we also very much want
to keep D​:D working. It is entirely acceptable for D​:D to require a
different hack on newer Perls. (We've done this before, when 5.11.2
changed the sequencing relationship between lexer events and op building.)

I suspect that this can be fixed by use of a block hook, triggered by
doeval()'s "CALL_BLOCK_HOOKS(bhk_eval, saveop);". Failing that, the
best option that I see short of core modification is to put something
in ERRSV with a funny destructor, to be triggered by the "CLEAR_ERRSV();".

-zefram

@p5pRT
Copy link
Author

p5pRT commented Oct 24, 2010

From @andk

On Sat, 23 Oct 2010 18​:24​:45 +0100, Zefram <zefram@​fysh.org> said​:

  > Andreas J. Koenig via RT wrote​:

Subject​: [perl #78542] Bleadperl 805700c breaks
FLORA/MooseX-Method-Signatures-0.36.tar.gz

  > Actually, it looks like the direct breakee is Devel-Declare. It fails
  > test suite with "PL_linestr not long enough", which is certainly within
  > the realm of what could be broken by 805700c. Don't you run the
  > test suites of dependencies? (You also make no mention of Test​::Warn,
  > which is a dependency of MX​:M​:S and fails its test suite because of the
  > (?^​:) change.)

When I post a BBC article I always have tested all dependencies OK. In
the case of Test​::Warn I have a patched one according to ticket
https://rt.cpan.org/Ticket/Display.html?id=61649. In the case of
Devel-Declare the tests just pass for me.

--
andreas

@p5pRT
Copy link
Author

p5pRT commented Feb 26, 2011

From @cpansprout

With the new Devel​::Declare (0.006001), the tests now pass.

@p5pRT
Copy link
Author

p5pRT commented Feb 26, 2011

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

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