From: George Greer
Smoke logs available at http://m-l.org/~perl/smoke/perl/linux/blead_clang_sanitize=address/log142d80b351477c820f8213eb22356efa91928968.log.gz
Automated smoke report for 5.18.0 patch 142d80b351477c820f8213eb22356efa91928968 v5.18.0-RC4-2-g142d80b
zwei: Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz (GenuineIntel 1600MHz) (x86_64/8 cpu)
on linux - 3.5.0-24-generic [debian]
using clang version 4.2.1 Compatible Clang 3.3 (trunk 177842)
smoketime 1 day 23 hours 9 minutes (average 1 hour 57 minutes)
Summary: FAIL(XM)
O = OK F = Failure(s), extended report at the bottom
X = Failure(s) under TEST but not under harness
? = still running or test results not (yet) available
Build failures during: - = unknown or N/A
c = Configure, m = make, M = make (after miniperl), t = make test-prep
v5.18.0-RC4-2-g142d80b Configuration (common) -Accflags="-fsanitize=address" -Aldflags="-fsanitize=address" -Dcc=clang -Doptimize="-O1"
----------- ---------------------------------------------------------
O O O O O O
O O O O O O -Accflags=-DPERL_POISON
O O O O O O -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
O O O O O O -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
O O O O O O -Dmad
O O O O O O -Accflags=-DPERL_NEW_COPY_ON_WRITE
O O O O O O -Duseithreads
O O O O O O -Duseithreads -Accflags=-DPERL_POISON
O X X X X X -Duseithreads -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
M - - M - - -Duseithreads -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
O O O O O O -Duseithreads -Dmad
O O O O O O -Duseithreads -Accflags=-DPERL_NEW_COPY_ON_WRITE
| | | | | +- LC_ALL = en_US.utf8 -DDEBUGGING
| | | | +--- PERLIO = perlio -DDEBUGGING
| | | +----- PERLIO = stdio -DDEBUGGING
| | +------- LC_ALL = en_US.utf8
| +--------- PERLIO = perlio
+----------- PERLIO = stdio
Locally applied patches:
RC4
uncommitted-changes
SMOKE142d80b351477c820f8213eb22356efa91928968
Failures: (common-args) -Accflags="-fsanitize=address" -Aldflags="-fsanitize=address" -Dcc=clang -Doptimize="-O1"
[perlio/en_US.utf8] -Duseithreads -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
[stdio/perlio/en_US.utf8] -DDEBUGGING -Duseithreads -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
Inconsistent test results (between TEST and harness):
../t/op/threads.t....................... ................................................. FAILED at test 5
[minitest] -Duseithreads -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
[minitest] -DDEBUGGING -Duseithreads -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
t/base/cond .................... FAILED--non-zero wait status: 256
Compiler messages(gcc):
Call.xs:63:11: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:63:31: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:100:13: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:156:11: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:175:14: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Storable.xs:4068:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Storable.xs:4255:10: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Storable.xs:5550:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Storable.xs:5613:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Collate.xs:616:2: warning: expression result unused [-Wunused-value]
Collate.xs:606:2: warning: expression result unused [-Wunused-value]
util.c:3668:12: warning: returning 'const MGVTBL *' (aka 'const struct mgvtbl *') from a function with result type 'MGVTBL *' (aka 'struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3525:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3526:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3527:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3528:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3529:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3530:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3531:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3532:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3533:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3534:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3535:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3536:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3537:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3538:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3539:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3540:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3541:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3542:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3543:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3544:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3545:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3546:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3547:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3549:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3551:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3552:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
--
Report by Test::Smoke v1.53 build 1374 running on perl 5.14.2
(Reporter v0.050 / Smoker v0.045)
From: Shlomi Fish via RT
Hi all,
any news about applying this patch?
Regards,
-- Shlomi Fish
---
via perlbug: queue: perl5 status: open
https://rt.perl.org:443/rt3/Ticket/Display.html?id=114444
From: Ronald J Kimball
On Sat, May 18, 2013 at 01:00:20PM +0200, Aristotle Pagaltzis wrote:
> diff --git a/pod/perldiag.pod b/pod/perldiag.pod
> index 2dc5514..d3cf0a8 100644
> --- a/pod/perldiag.pod
> +++ b/pod/perldiag.pod
> @@ -3083,11 +3083,13 @@ local() if you want to localize a package variable.
>
> (W once) Typographical errors often show up as unique variable names.
> If you had a good reason for having a unique name, then just mention it
> -again somehow to suppress the message. The C<our> declaration is
> +again somehow to suppress the message. The C<our> declaration is also
> provided for this purpose.
>
> -NOTE: This warning detects symbols that have been used only once so $c, @c,
> -%c, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered
> +NOTE: This warning detects package symbols that have been used only once. This
> +means lexical variables will never trigger this warnings. It also means that
> +that all of the package variables $c, @c, %c as well as *c, &c, sub c{}, c(),
s/this warnings/this warning/
s/that that/that/
Ronald
From: Ricardo Signes
* Nicholas Clark <nick@ccl4.org> [2013-05-18T10:12:19]
> On Sat, May 18, 2013 at 09:35:13AM -0400, Ricardo Signes wrote:
>
> > We expect to release v5.19.0 on Monday, May 20th, 2013. The next major
> > stable release of Perl 5, version 20, should appear in May 2014.
>
> And the plan is that we hold off committing on blead until after that's
> tagged? At least for anything more major than doc patches?
Blead is now open again, but:
I'd like to see all our slated-for-removal modules removed for 5.19.0. BinGOs
has done most of them, leaving me the honor of removing File-CheckTree and
Text-Soundex. If there are other things to be deleted or made fatal, that's
good, too. Doc fixes or compiler warning fixes can be applied.
Other than that, let's leave the major surgery to start on Tuesday. :)
--
rjbs
From: Nicholas Clark
On Sat, May 18, 2013 at 09:35:13AM -0400, Ricardo Signes wrote:
> We are excited to announce perl v5.18.0, the first stable release of version
> 18 of Perl 5.
Yay!
Thanks Ricardo for all your hard work cat herding.
(And the other stuff too. But everyone underestimates the reluctance of
cats to be herded.)
> We expect to release v5.19.0 on Monday, May 20th, 2013. The next major
> stable release of Perl 5, version 20, should appear in May 2014.
And the plan is that we hold off committing on blead until after that's
tagged? At least for anything more major than doc patches?
Nicholas Clark
From: John Imrie
On 18/05/2013 14:35, Ricardo Signes wrote:
> It is an error to divide people into the living and the dead:
> there are people who are dead-alive, and people who are
> alive-alive. The dead-alive also write, walk, speak, act. But they
> make no mistakes; only machines make no mistakes, and they produce
> only dead things. The alive-alive are constantly in error, in
> search, in questions, in torment.
>
> -- Yevgeny Zamyatin
>
> We are excited to announce perl v5.18.0, the first stable release of version
> 18 of Perl 5.
>
Thanks for all your hard work, especially for the Unicode Set Opprertors
John
From: Aristotle Pagaltzis
* Ricardo SIGNES via RT <perlbug-comment@perl.org> [2013-05-18 03:40]:
> We can continue to improve it over time.
I guess it needs a mention in the RMG? Someone has to remember to comb
through it.
From: Aristotle Pagaltzis
Woops. Typo.
---
pod/perldiag.pod | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
From: Aristotle Pagaltzis
* Nicholas Clark <nick@ccl4.org> [2013-05-18 10:40]:
> The documentation doesn't say clearly that it doesn't apply to
> lexicals.
>
> A documentation patch is desirable. But anyone could write it. But not
> everyone can hack the C code or the build system, so I prioritise my
> time on that.
>
> I would welcome a documentation patch that said that the warning
> doesn't apply to lexicals. (Or someone to tell me where the fine
> manual already says this)
Will this do?
---
pod/perldiag.pod | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
From: Nicholas Clark
On Thu, May 16, 2013 at 10:26:42AM -0600, Karl Williamson wrote:
> /* Within locales, an NOK scalar isn't considered POK, thus forcing
> * re-stringification. This is because the locale (and hence the current
> * proper radix character stringification) can change at any time */
> #define SvPOK(sv) ((SvFLAGS(sv) & SVf_POK) \
> && (! SvNOK(sv) || LIKELY(! IN_LOCALE_RUNTIME)))
That approach starts to make me feel very uncomfortable.
Whilst it doesn't contradict the documentation for SvPOK()
=for apidoc Am|U32|SvPOK|SV* sv
Returns a U32 value indicating whether the SV contains a character
string.
it does change behaviour since 5.000, and contradicts this comment:
#define SVf_POK 0x00000400 /* has valid public pointer value */
> That forces the SVPV macros to call sv_2pv_flags() each time the
> stringification is needed of an NOK scalar, within the scope of 'use
> locale'. With that, the code above works.
Yes, one has to end up with that approach. The alternative, which at the
moment I think I'm liking better, is to *not* set SvPOK() on stringification
of NVs. (Or at least, NVs which aren't integers). Which would retain the
current meaning of SVf_POK, leave SvPOK() unchanged, and cause the logic
about what to return to be in one place. This also reduces the code size.
However, the cost is more function calls.
I can't see a way of doing this without more complexity.
Nicholas Clark
From: Nicholas Clark
On Fri, May 17, 2013 at 05:31:39PM -0700, James E Keenan via RT wrote:
> On Sat Jan 05 11:20:05 2013, rjbs wrote:
> > On Fri Dec 14 07:36:17 2012, nicholas wrote:
> > > On Wed, Dec 12, 2012 at 01:15:39PM -0500, Peter Martini wrote:
> > >
> > > > Right. Can the ticket be closed for that reason then? There is
> > an
> > > > implementation of a module to do this on cpan, and a note on this
> > warning
> > > > in the docs wouldn't hurt.
> > >
> > > I think fix the documentation to be clear on the "what" and the
> > "why", then
> > > close the ticket.
> >
> > When I wrote about this todo a while ago, I suggested that assigning
> > to a lexical was enough
> > to indicate that it was used. For example, "my $exit = Scope::Guard-
> > >..." is useful, even if
> > you don't mention $exit again. Similarly, "my ($self, @x) = @_" is
> > not madness.
> >
> > This does mean that we're detecting fewer actually bogus cases. We'd
> > only get variables
> > declared and use never, rather than used once. (my $x;)
> >
> > Is that sufficiently useful to pursue? I'm not sure.
>
> This is the sort of ticket where, the more people think out loud about
> it, the farther we get from closing it.
>
> My reading of the ticket leads me to believe:
>
> * No one is convinced we need any changes in Perl's behavior here.
>
> * No one is convinced of the necessity of a documentation patch -- as no
> one has submitted one since the idea was first floated.
I don't agree with this reasoning. Specifically treating "necessity" as
implying "lack of desirability" and hence "reason to close".
By that reasoning, we would close all wishlist tickets that no-one works on.
> It's time to try, once again, to put this ticket out of its 13-year-old
> misery. I am taking this ticket for the purpose of closing it and will
> do so in 7 days unless someone submits a documentation patch.
I don't agree with this.
The documentation doesn't say clearly that it doesn't apply to lexicals.
A documentation patch is desirable. But anyone could write it. But not
everyone can hack the C code or the build system, so I prioritise my time
on that.
I would welcome a documentation patch that said that the warning doesn't
apply to lexicals. (Or someone to tell me where the fine manual already says
this)
Nicholas Clark
From: Tony Cook via RT
On Fri May 17 17:06:38 2013, jkeenan wrote:
> The segmentation fault -- or, perhaps more precisely, the *report* of a
> segmentation fault -- is something specific to your operating
> system/platform. I was able to get the same error message and notice of
> segfault that you did when I ran it on Linux/i386.
>
> However, when I ran it on Darwin/PPC, I got only the error message -- no
> notice of segfault.
>
> But, IMO, the segfault is irrelevant. Your code fails to compile:
A segmentation fault when failing to compile perl code is relevant, and
is still a bug in perl.
That said, this has been fixed in blead, in:
commit 8be227ab5eaa23f2d21fd15f70190e494496dcbe
Author: Father Chrysostomos <sprout@cpan.org>
Date: Sat Jun 23 09:54:31 2012 -0700
CV-based slab allocation for ops
This addresses bugs #111462 and #112312 and part of #107000.
When a longjmp occurs during lexing, parsing or compilation, any ops
in C autos that are not referenced anywhere are leaked.
...
This is unlikely to be backported to maint-5.16.
Tony
---
via perlbug: queue: perl5 status: rejected
https://rt.perl.org:443/rt3/Ticket/Display.html?id=118043
From: Ricardo SIGNES via RT
Thanks. I have applied this locally as fe8d267, which SHA1 may change.
I have read this patch and believe it to be correct. If it introduces a mistake or two, I still think it
is a marked improvement to the document. We can continue to improve it over time.
--
rjbs
From: Neil Bowers
> This is utterly messy and seems to be in OS code called by gdbm called by us.
> Frustratingly, it looks like "their" bug. But I don't see how to fix it.
>
> Sadly it seems like the best thing to do is to skip the test on this
> platform/compiler combination.
>
> Actually, which version of libgdbm? I'm not *sure* how to answer that.
> On an ELF system I'd "just" use ldd to find out what the .so was linking to.
> But darwin isn't ELF enough, and I don't know what the analogous tool is, if
> any.
I think this might be what you're after:
otool -L GDBM_File.bundle
Neil
From: gjungwirth @ sipwise . com
# New Ticket Created by gjungwirth@sipwise.com
# Please include the string: [perl #118035]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118035 >
This is a bug report for perl from gjungwirth@sipwise.com,
generated with the help of perlbug 1.39 running under perl 5.14.2.
-----------------------------------------------------------------
The example as it is shown on cpan (
https://metacpan.org/module/I18N::Langinfo ) does not work for me.
The second line should be like:
my ($abday_1, $yesstr, $nostr) = map { langinfo } (ABDAY_1, YESSTR, NOSTR);
instead of:
my ($abday_1, $yesstr, $nostr) = map { langinfo } qw(ABDAY_1 YESSTR NOSTR);
(the qw() removed)
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=library
severity=low
module=I18N::Langinfo
---
Site configuration information for perl 5.14.2:
Configured by Debian Project at Mon Mar 18 19:04:34 UTC 2013.
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=linux, osvers=2.6.42-37-generic,
archname=i686-linux-gnu-thread-multi-64int
uname='linux aatxe 2.6.42-37-generic #58-ubuntu smp thu jan 24
15:28:10 utc 2013 i686 i686 i386 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-Dcccdlflags=-fPIC -Darchname=i686-linux-gnu -Dprefix=/usr
-Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14
-Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local
-Dsitelib=/usr/local/share/perl/5.14.2
-Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1
-Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm
-Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib
-Dlibperl=libperl.so.5.14.2 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-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 -DDEBIAN -fno-strict-aliasing
-pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.6.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib
/usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.14.2
gnulibc_version='2.15'
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'
Locally applied patches:
---
@INC for perl 5.14.2:
/etc/perl
/usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.14
/usr/share/perl/5.14
/usr/local/lib/site_perl
.
---
Environment for perl 5.14.2:
HOME=/home/gerhard
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/gerhard/bin:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PERL_BADLANG (unset)
SHELL=/bin/bash
From: Sebastien Aperghis-Tramoni
# New Ticket Created by Sebastien Aperghis-Tramoni
# Please include the string: [perl #118039]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118039 >
Please find attached a small patch to perldelta
From: Sebastien Aperghis-Tramoni
# New Ticket Created by Sebastien Aperghis-Tramoni
# Please include the string: [perl #118041]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118041 >
Hello all,
As each year, I carefully read perldelta to prepare a talk and present the features in the new version of Perl at the French Perl Workshop, which usefully happens little time after the release (in June).
Doing so, I saw a reference to perlexperiment at the very top of it; reading this documentation as well, I found it with pretty outdated information. Ricardo said a patch would be welcome, so here it is.
From: gjungwirth @ sipwise . com
# New Ticket Created by gjungwirth@sipwise.com
# Please include the string: [perl #118033]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118033 >
This is a bug report for perl from gjungwirth@sipwise.com,
generated with the help of perlbug 1.39 running under perl 5.14.2.
-----------------------------------------------------------------
The example as it is shown on cpan (
https://metacpan.org/module/I18N::Langinfo ) does not work for me.
The second line should be like:
my ($abday_1, $yesstr, $nostr) = map { langinfo } (ABDAY_1, YESSTR, NOSTR);
instead of:
my ($abday_1, $yesstr, $nostr) = map { langinfo } qw(ABDAY_1 YESSTR NOSTR);
(the qw() removed)
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=library
severity=low
module=I18N::Langinfo
---
Site configuration information for perl 5.14.2:
Configured by Debian Project at Mon Mar 18 19:04:34 UTC 2013.
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=linux, osvers=2.6.42-37-generic,
archname=i686-linux-gnu-thread-multi-64int
uname='linux aatxe 2.6.42-37-generic #58-ubuntu smp thu jan 24
15:28:10 utc 2013 i686 i686 i386 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-Dcccdlflags=-fPIC -Darchname=i686-linux-gnu -Dprefix=/usr
-Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14
-Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local
-Dsitelib=/usr/local/share/perl/5.14.2
-Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1
-Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm
-Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib
-Dlibperl=libperl.so.5.14.2 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-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 -DDEBIAN -fno-strict-aliasing
-pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.6.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib
/usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.14.2
gnulibc_version='2.15'
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'
Locally applied patches:
---
@INC for perl 5.14.2:
/etc/perl
/usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.14
/usr/share/perl/5.14
/usr/local/lib/site_perl
.
---
Environment for perl 5.14.2:
HOME=/home/gerhard
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/gerhard/bin:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PERL_BADLANG (unset)
SHELL=/bin/bash
From: Paul Boyd
# New Ticket Created by Paul Boyd
# Please include the string: [perl #118043]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118043 >
This is a bug report for perl from boyd.paul2@gmail.com,
generated with the help of perlbug 1.39 running under perl 5.16.3.
-----------------------------------------------------------------
I'm not sure how to explain this in words, here's the code:
sub a(&&) {};
sub b(&) {};
a {} b { delete $x };
[pboyd@pboyd ~]$ perl -E 'sub a(&&) {}; sub b(&) {}; a {} b { delete $x };'
delete argument is not a HASH or ARRAY element or slice at -e line 1.
Segmentation fault
I've tried this on v5.12.1, v5.16.1 and v5.16.3, perl segfaults on all of
them.
It seems to be related to the prototypes, specifically using sub {} make the
segfault go away. Also just a single prototyped call ("a { delete $x }"),
doesn't segfault either.
I ran into this with Try::Tiny, when I mistakenly did a "delete $foo" inside
the catch block, something like this:
perl -E 'use Try::Tiny; try {} catch { delete $x }'
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
Site configuration information for perl 5.16.3:
Configured by nobody at Thu Apr 18 17:35:32 CEST 2013.
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
Platform:
osname=linux, osvers=3.8.7-1-arch, archname=i686-linux-thread-multi
uname='linux flo32 3.8.7-1-arch #1 smp preempt sat apr 13 09:01:47 cest
2013 i686 gnulinux '
config_args='-des -Dusethreads -Duseshrplib -Doptimize=-march=i686
-mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4
-Dprefix=/usr -Dvendorprefix=/usr -Dprivlib=/usr/share/perl5/core_perl
-Darchlib=/usr/lib/perl5/core_perl -Dsitelib=/usr/share/perl5/site_perl
-Dsitearch=/usr/lib/perl5/site_perl
-Dvendorlib=/usr/share/perl5/vendor_perl
-Dvendorarch=/usr/lib/perl5/vendor_perl -Dscriptdir=/usr/bin/core_perl
-Dsitescript=/usr/bin/site_perl -Dvendorscript=/usr/bin/vendor_perl
-Dinc_version_list=none -Dman1ext=1perl -Dman3ext=3perl -Dlddlflags=-shared
-Wl,-O1,--sort-common,--as-needed,-z,relro
-Dldflags=-Wl,-O1,--sort-common,--as-needed,-z,relro'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, 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='-march=i686 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.8.0 20130411 (prerelease)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags ='-Wl,-O1,--sort-common,--as-needed,-z,relro
-fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
-lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.17.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.17'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib/perl5/core_perl/CORE'
cccdlflags='-fPIC', lddlflags='-shared
-Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib
-fstack-protector'
Locally applied patches:
---
@INC for perl 5.16.3:
/home/pboyd/perl5/lib/perl5/i686-linux-thread-multi
/home/pboyd/perl5/lib/perl5/i686-linux-thread-multi
/home/pboyd/perl5/lib/perl5
/usr/lib/perl5/site_perl
/usr/share/perl5/site_perl
/usr/lib/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib/perl5/core_perl
/usr/share/perl5/core_perl
.
---
Environment for perl 5.16.3:
HOME=/home/pboyd
LANG=C
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/pboyd/bin:/home/pboyd/perl5/bin:/home/pboyd/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/site_perl:/usr/bin/core_perl
PERL5LIB=/home/pboyd/perl5/lib/perl5/i686-linux-thread-multi:/home/pboyd/perl5/lib/perl5
PERL_BADLANG (unset)
PERL_LOCAL_LIB_ROOT=/home/pboyd/perl5
PERL_MB_OPT=--install_base /home/pboyd/perl5
PERL_MM_OPT=INSTALL_BASE=/home/pboyd/perl5
SHELL=/bin/bash
From: Andrew Gregory
# New Ticket Created by Andrew Gregory
# Please include the string: [perl #118025]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118025 >
Subject: [PATCH] 969832d corelist: use case-sensitive option parsing
Message-Id: <5.16.3_9939_1368750526@b42-desktop.local>
Reply-To: andrew.gregory.8@gmail.com
To: perlbug@perl.org
From: andrew.gregory.8@gmail.com
This is a bug report for perl from andrew.gregory.8@gmail.com,
generated with the help of perlbug 1.39 running under perl 5.16.3.
>From 969832db963564d03e41c942478e533dbfa11978 Mon Sep 17 00:00:00 2001
From: Andrew Gregory <andrew.gregory.8@gmail.com>
Date: Thu, 16 May 2013 20:16:50 -0400
Subject: [PATCH] corelist: use case-sensitive option parsing
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.8.2.3"
This is a multi-part message in MIME format.
--------------1.8.2.3
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
Case insensitive parsing causes -d to be incorrectly parsed as -D, the
short option for --diff.
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
---
dist/Module-CoreList/corelist | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--------------1.8.2.3
Content-Type: text/x-patch; name="0001-corelist-use-case-sensitive-option-parsing.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-corelist-use-case-sensitive-option-parsing.patch"
diff --git a/dist/Module-CoreList/corelist b/dist/Module-CoreList/corelist
index b012c5e..448b77b 100644
--- a/dist/Module-CoreList/corelist
+++ b/dist/Module-CoreList/corelist
@@ -131,7 +131,7 @@ requested perl versions.
=cut
use Module::CoreList;
-use Getopt::Long;
+use Getopt::Long qw(:config no_ignore_case);
use Pod::Usage;
use strict;
use warnings;
--------------1.8.2.3--
---
Flags:
category=library
severity=low
module=Module::CoreList
---
Site configuration information for perl 5.16.3:
Configured by nobody at Thu Apr 18 17:28:35 CEST 2013.
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
Platform:
osname=linux, osvers=3.8.7-1-arch, archname=x86_64-linux-thread-multi
uname='linux flo64 3.8.7-1-arch #1 smp preempt sat apr 13 09:01:47 cest 2013 x86_64 gnulinux '
config_args='-des -Dusethreads -Duseshrplib -Doptimize=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -Dprefix=/usr -Dvendorprefix=/usr -Dprivlib=/usr/share/perl5/core_perl -Darchlib=/usr/lib/perl5/core_perl -Dsitelib=/usr/share/perl5/site_perl -Dsitearch=/usr/lib/perl5/site_perl -Dvendorlib=/usr/share/perl5/vendor_perl -Dvendorarch=/usr/lib/perl5/vendor_perl -Dscriptdir=/usr/bin/core_perl -Dsitescript=/usr/bin/site_perl -Dvendorscript=/usr/bin/vendor_perl -Dinc_version_list=none -Dman1ext=1perl -Dman3ext=3perl -Dcccdlflags='-fPIC' -Dlddlflags=-shared -Wl,-O1,--sort-common,--as-needed,-z,relro -Dldflags=-Wl,-O1,--sort-common,--as-needed,-z,relro'
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='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.8.0 20130411 (prerelease)', 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 ='-Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/../lib /usr/lib/../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.17.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.17'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE'
cccdlflags='-fPIC', lddlflags='-shared -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -fstack-protector'
Locally applied patches:
---
@INC for perl 5.16.3:
/usr/lib/perl5/site_perl
/usr/share/perl5/site_perl
/usr/lib/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib/perl5/core_perl
/usr/share/perl5/core_perl
.
---
Environment for perl 5.16.3:
HOME=/home/b42
LANG=en_US.UTF-8
LANGUAGE (unset)
LC_COLLATE=C
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/b42/bin:/home/b42/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/vendor_perl:/usr/bin/core_perl
PERL_BADLANG (unset)
SHELL=/bin/zsh
From: Ricardo SIGNES via RT
Thanks, applied to my private repo for inclusion in the release.
--
rjbs
From: Côme BERNIGAUD
Is there any way to avoid this crash with perl<5.16?
Maybe by adding something in the perl code before the end of the program?
From: Neil Bowers
This still fails in exactly the same way on RC3.
I re-installed libgdbm, so it was compiled with the same compiler etc as everything else.
No-one else with a Mac seems to be getting this though, which makes me think it's probably something buggered in my setup. That said, I just rebuilt 5.16.3 with the same setup, and everything built & tested fine.
Neil
From: James E Keenan via RT
On Sat Jan 05 11:20:05 2013, rjbs wrote:
> On Fri Dec 14 07:36:17 2012, nicholas wrote:
> > On Wed, Dec 12, 2012 at 01:15:39PM -0500, Peter Martini wrote:
> >
> > > Right. Can the ticket be closed for that reason then? There is
> an
> > > implementation of a module to do this on cpan, and a note on this
> warning
> > > in the docs wouldn't hurt.
> >
> > I think fix the documentation to be clear on the "what" and the
> "why", then
> > close the ticket.
>
> When I wrote about this todo a while ago, I suggested that assigning
> to a lexical was enough
> to indicate that it was used. For example, "my $exit = Scope::Guard-
> >..." is useful, even if
> you don't mention $exit again. Similarly, "my ($self, @x) = @_" is
> not madness.
>
> This does mean that we're detecting fewer actually bogus cases. We'd
> only get variables
> declared and use never, rather than used once. (my $x;)
>
> Is that sufficiently useful to pursue? I'm not sure.
This is the sort of ticket where, the more people think out loud about
it, the farther we get from closing it.
My reading of the ticket leads me to believe:
* No one is convinced we need any changes in Perl's behavior here.
* No one is convinced of the necessity of a documentation patch -- as no
one has submitted one since the idea was first floated.
It's time to try, once again, to put this ticket out of its 13-year-old
misery. I am taking this ticket for the purpose of closing it and will
do so in 7 days unless someone submits a documentation patch.
Thank you very much.
Jim Keenan
---
via perlbug: queue: perl5 status: open
https://rt.perl.org:443/rt3/Ticket/Display.html?id=5087
From: James E Keenan via RT
On Fri May 17 16:52:56 2013, boyd.paul2@gmail.com wrote:
> This is a bug report for perl from boyd.paul2@gmail.com,
> generated with the help of perlbug 1.39 running under perl 5.16.3.
>
>
> -----------------------------------------------------------------
> I'm not sure how to explain this in words, here's the code:
>
> sub a(&&) {};
> sub b(&) {};
> a {} b { delete $x };
>
> [pboyd@pboyd ~]$ perl -E 'sub a(&&) {}; sub b(&) {}; a {} b { delete
> $x };'
> delete argument is not a HASH or ARRAY element or slice at -e line 1.
> Segmentation fault
>
> I've tried this on v5.12.1, v5.16.1 and v5.16.3, perl segfaults on all
> of
> them.
>
> It seems to be related to the prototypes, specifically using sub {}
> make the
> segfault go away. Also just a single prototyped call ("a { delete $x
> }"),
> doesn't segfault either.
>
> I ran into this with Try::Tiny, when I mistakenly did a "delete $foo"
> inside
> the catch block, something like this:
>
> perl -E 'use Try::Tiny; try {} catch { delete $x }'
>
The segmentation fault -- or, perhaps more precisely, the *report* of a
segmentation fault -- is something specific to your operating
system/platform. I was able to get the same error message and notice of
segfault that you did when I ran it on Linux/i386.
However, when I ran it on Darwin/PPC, I got only the error message -- no
notice of segfault.
But, IMO, the segfault is irrelevant. Your code fails to compile:
#####
$ cat 118043-proto.pl
use 5.010_001;
sub a(&&) {};
sub b(&) {};
a {} b { delete $x };
$ perl -c 118043-proto.pl
delete argument is not a HASH or ARRAY element or slice at
118043-proto.pl line 5.
#####
This is not a bug in Perl.
Closing ticket.
Thank you very much.
Jim Keenan
---
via perlbug: queue: perl5 status: new
https://rt.perl.org:443/rt3/Ticket/Display.html?id=118043
From: Andrew Gregory
On 05/17/13 at 04:44pm, James E Keenan via RT wrote:
> On Thu May 16 17:26:07 2013, agregory wrote:
> > Subject: [PATCH] 969832d corelist: use case-sensitive option parsing
> > Message-Id: <5.16.3_9939_1368750526@b42-desktop.local>
> > Reply-To: andrew.gregory.8@gmail.com
> > To: perlbug@perl.org
> > From: andrew.gregory.8@gmail.com
> >
> >
> > This is a bug report for perl from andrew.gregory.8@gmail.com,
> > generated with the help of perlbug 1.39 running under perl 5.16.3.
> >
> [snip]
> >
> >
> > Case insensitive parsing causes -d to be incorrectly parsed as -D, the
> > short option for --diff.
> >
> > Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
> > ---
> > dist/Module-CoreList/corelist | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >
> [snip]
> >
> > diff --git a/dist/Module-CoreList/corelist b/dist/Module-
> > CoreList/corelist
> > index b012c5e..448b77b 100644
> > --- a/dist/Module-CoreList/corelist
> > +++ b/dist/Module-CoreList/corelist
> > @@ -131,7 +131,7 @@ requested perl versions.
> > =cut
> >
> > use Module::CoreList;
> > -use Getopt::Long;
> > +use Getopt::Long qw(:config no_ignore_case);
> > use Pod::Usage;
> > use strict;
> > use warnings;
> >
>
> Can you provide an example of the problem which your patch seeks to correct?
>
> Thank you very much.
> Jim Keenan
corelist includes both -d and -D flags, but Getopt::Long defaults to
case insensitive parsing, making it impossible to actually use the -d
flag as it gets parsed as being -D:
GetOptions(
\%Opts,
qw[ help|?! man! r|release:s v|version:s a! d diff|D feature|f u|upstream ]
);
$ corelist -d
provide exactly two perl core versions to diff with --diff
apg
From: James E Keenan via RT
On Fri May 17 16:08:02 2013, Maddingue_ wrote:
> Please find attached a small patch to perldelta
+1 to applying this -- but we're so close to release that I now defer to
rjbs on all commits to blead until after 5.18.0 is released.
Thank you very much.
Jim Keenan
---
via perlbug: queue: perl5 status: new
https://rt.perl.org:443/rt3/Ticket/Display.html?id=118039
From: James E Keenan via RT
On Thu May 16 17:26:07 2013, agregory wrote:
> Subject: [PATCH] 969832d corelist: use case-sensitive option parsing
> Message-Id: <5.16.3_9939_1368750526@b42-desktop.local>
> Reply-To: andrew.gregory.8@gmail.com
> To: perlbug@perl.org
> From: andrew.gregory.8@gmail.com
>
>
> This is a bug report for perl from andrew.gregory.8@gmail.com,
> generated with the help of perlbug 1.39 running under perl 5.16.3.
>
[snip]
>
>
> Case insensitive parsing causes -d to be incorrectly parsed as -D, the
> short option for --diff.
>
> Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
> ---
> dist/Module-CoreList/corelist | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>
[snip]
>
> diff --git a/dist/Module-CoreList/corelist b/dist/Module-
> CoreList/corelist
> index b012c5e..448b77b 100644
> --- a/dist/Module-CoreList/corelist
> +++ b/dist/Module-CoreList/corelist
> @@ -131,7 +131,7 @@ requested perl versions.
> =cut
>
> use Module::CoreList;
> -use Getopt::Long;
> +use Getopt::Long qw(:config no_ignore_case);
> use Pod::Usage;
> use strict;
> use warnings;
>
Can you provide an example of the problem which your patch seeks to correct?
Thank you very much.
Jim Keenan
---
via perlbug: queue: perl5 status: new
https://rt.perl.org:443/rt3/Ticket/Display.html?id=118025
From: James E Keenan via RT
I believe this is the same problem originally reported in
https://rt.perl.org/rt3/Ticket/Display.html?id=116919. This has been fixed in bleed as
reported here:
https://rt.perl.org/rt3/Ticket/Display.html?id=116919#txn-1202021
So the problem should be fully corrected when Perl 5.18.0 is issued in the coming week.
Thank you very much.
Jim Keenan
---
via perlbug: queue: perl5 status: new
https://rt.perl.org:443/rt3/Ticket/Display.html?id=118033
From: Dave Mitchell
On Fri, May 10, 2013 at 12:13:38PM +0100, Dave Mitchell wrote:
> > The previous sentence might need to be another
> > ticket. perlguts in blead says nothing about SvPV is not SvPVX and says
> > nothing about COW.
>
> Currently near the top of my things to do prior to 5.18 is to add some
> notes about that issue to perlguts.
It won't be in time for perl 5.18.0 now, but in terms of what we need to add
to perlguts, my feeling is that the general outline should be something
like the following. I'm happy to be corrected however; this isn't an
area I work with much. In particular, I'm not sure whether we need to
mention SV_CHECK_THINKFIRST/SvTHINKFIRST/sv_force_normal_flags(), SvIsCOW
etc?
Given an arbitrary SV,
1) if you want to *read* its string value, use SvPV (or one of it's many
variants such as SvPV_nomg, SvPV_nolen etc, depending on circumstances).
This will give you a string representation of the SV in a char buffer
(which may or may not match the SvPVX of the string).
Note that this preserves the original content of the SV. For example if
the SV is a reference, then after the call to SvPV(), it's still a
reference, it's not SvPOK, and the return value points to a temporary
buffer containing a string like "ARRAY(0x12345678)".
As a shortcut, if you've already done any get magic processing that was
required, and if the SV is SvPOK, then its okay to use SvCUR and to
directly read from the SvPVX buffer.
2) If you want to *modify* the string value of an SV by writing into its
string buffer (for example if you wanted to implement an in-place version
of the ucfirst() function), then you need to first call SvPV_force (or one
of its variants like SvPV_force_nomg, SvPVutf8_force etc). This will
coerce the SV into a PV-compatible type regardless of its previous
contents (or croak with "Can't coerce HASH to string" or similar, if it's
something not convertible).
Note that this may destroy the original content of the SV. For example if
the SV was a reference, then after the call to SvPV(), it's no longer
a reference, and is instead a plain SvPOK string with a value like
"ARRAY(0x12345678)"
After modifying the buffer, you will need to do SvSETMAGIC for the
changes to potentially take effect (for example if the variable is
tied).
As a shortcut, if you've already done any get magic processing that was
required, and if the SV is SvPOK, then its okay to use SvCUR and to
directly read from and write to the SvPVX buffer, and to use SvGROW()
if you want to write beyond the end of the string. You'll still need
to call SvSETMAGIC afterwards.
3) if an XS sub is declared as having a 'char *' or similar argument,
then the standard typemap will do the equivalent of calling SvPV on
the passed SV to retrieve a string buffer. Note that this means that
the buffer should be treated as read-only, and not passed to any C
function which might modify it. If your XS sub needs to modify the
string, then declare the arg as type 'SV *' and manually perform your
own SvPV_force and (later SvSETMAGIC) on it.
--
Overhead, without any fuss, the stars were going out.
-- Arthur C Clarke
From: Nicholas Clark
On Mon, May 13, 2013 at 08:35:34PM +0100, Neil Bowers wrote:
>
> On 13 May 2013, at 19:52, "Nicholas Clark via RT" <perlbug-followup@perl.org> wrote:
> >
> > I can't replicate this (on an earlier OS X, or anywhere else)
> > This is a new test (new since v5.16.0).
> >
> > It's crashing after the last OK
> >
> >
> > What happens running it under valgrind? Or if valgrind is not available,
> > under a debugger - eg
> >
> > $ gdb --args ./perl -MTestInit ext/GDBM_File/t/fatal.t
> > ...
> > (gdb) run
>
>
> Here's the gdb output:
>
> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand.
> [Switching to process 16033 thread 0x1503]
> 0x00007fff9880fe29 in _dispatch_mgr_invoke ()
> (gdb) where
> #0 0x00007fff9880fe29 in _dispatch_mgr_invoke ()
> #1 0x00007fff9880f9ee in _dispatch_mgr_thread ()
>
> I'm not at all familiar with valgrind, so here's all the output I got. Let me know if you want me to run it a different way:
No, this was exactly what I'd hoped for.
> % valgrind ./perl -MTestInit ext/GDBM_File/t/fatal.t
> ok 3 - Check that we cannot open fileno 3. $! is Bad file descriptor
> ==43474== Syscall param write(buf) points to uninitialised byte(s)
> ==43474== at 0x2574AA: write (in /usr/lib/system/libsystem_kernel.dylib)
> ==43474== by 0x74278F: gdbm_open (in /opt/local/lib/libgdbm.4.dylib)
> ==43474== by 0x73C5E1: XS_GDBM_File_TIEHASH (in /usr/local/src/perl-5.18.0-RC2/lib/auto/GDBM_File/GDBM_File.bundle)
> ==43474== by 0x10008933E: Perl_pp_entersub (in ./perl)
> ==43474== by 0x10001CA95: Perl_call_sv (in ./perl)
> ==43474== by 0x1000C0841: Perl_pp_tie (in ./perl)
> ==43474== by 0x100082462: Perl_runops_standard (in ./perl)
> ==43474== by 0x10001C361: perl_run (in ./perl)
> ==43474== by 0x100000FE7: main (in ./perl)
> ==43474== Address 0x1007331e4 is 4 bytes inside a block of size 4,096 alloc'd
This is what I'd seen on Linux too. I think that it's a "bug" in libgdbm.
It might not even be a bug, in as much as they are knowingly instructing
the OS to write out a large block of memory, including bits that they
are never going to read. But yes, it's a distraction.
> valgrind: m_syswrap/syswrap-amd64-darwin.c:460 (wqthread_hijack): Assertion 'VG_(is_valid_tid)(tid)' failed.
> ==43474== at 0x23803A7AB: ???
> ==43474== by 0x23803AA7F: ???
> ==43474== by 0x2380D465C: ???
>
> sched status:
> running_tid=0
>
> Thread 1: status = VgTs_WaitSys
> ==43474== at 0x2546C2: semaphore_wait_trap (in /usr/lib/system/libsystem_kernel.dylib)
> ==43474== by 0x2FFE1E: xpc_connection_send_message_with_reply_sync (in /usr/lib/system/libxpc.dylib)
> ==43474== by 0x9D27E3: __block_global_11 (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x9D2726: withDaemonConnection (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x9D2687: ___CFPreferencesIsManaged_block_invoke_0 (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x6E0B5: _dispatch_client_callout (in /usr/lib/system/libdispatch.dylib)
> ==43474== by 0x6E040: dispatch_once_f (in /usr/lib/system/libdispatch.dylib)
> ==43474== by 0x8C7ACB: _CFPreferencesIsManaged (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x9D7277: -[CFPrefsManagedSource initWithDomain:user:byHost:] (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x9D716A: +[CFPrefsManagedSource withSourceForIdentifier:user:perform:] (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x9D45FB: -[CFPrefsSearchListSource addManagedSourceForIdentifier:user:] (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x9D4124: +[CFPrefsSearchListSource withSnapshotSearchList:] (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x8C82C8: __CFXPreferencesCopyCurrentApplicationState (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x8C7EEF: CFLocaleCopyCurrent (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
> ==43474== by 0x74EEB0: _nl_locale_name_default (in /opt/local/lib/libintl.8.dylib)
> ==43474== by 0x74D073: libintl_dcigettext (in /opt/local/lib/libintl.8.dylib)
> ==43474== by 0x742F3B: gdbm_store (in /opt/local/lib/libgdbm.4.dylib)
> ==43474== by 0x73D15B: XS_GDBM_File_STORE (in /usr/local/src/perl-5.18.0-RC2/lib/auto/GDBM_File/GDBM_File.bundle)
> ==43474== by 0x10008933E: Perl_pp_entersub (in ./perl)
> ==43474== by 0x100082462: Perl_runops_standard (in ./perl)
> ==43474== by 0x10001CAB1: Perl_call_sv (in ./perl)
> ==43474== by 0x100072097: Perl_magic_methcall (in ./perl)
> ==43474== by 0x100072357: S_magic_methcall1 (in ./perl)
> ==43474== by 0x100072289: Perl_magic_setpack (in ./perl)
> ==43474== by 0x10006F756: Perl_mg_set (in ./perl)
> ==43474== by 0x100082B2E: Perl_pp_sassign (in ./perl)
> ==43474== by 0x100082462: Perl_runops_standard (in ./perl)
> ==43474== by 0x10001C361: perl_run (in ./perl)
> ==43474== by 0x100000FE7: main (in ./perl)
This is utterly messy and seems to be in OS code called by gdbm called by us.
Frustratingly, it looks like "their" bug. But I don't see how to fix it.
Sadly it seems like the best thing to do is to skip the test on this
platform/compiler combination.
Actually, which version of libgdbm? I'm not *sure* how to answer that.
On an ELF system I'd "just" use ldd to find out what the .so was linking to.
But darwin isn't ELF enough, and I don't know what the analogous tool is, if
any.
Nicholas Clark
From: George Greer
Smoke logs available at http://m-l.org/~perl/smoke/perl/linux/blead_clang_sanitize=address/log55c6e7a8d6cf0b496596c66f110d3984a2b500c3.log.gz
Automated smoke report for 5.18.0 patch 55c6e7a8d6cf0b496596c66f110d3984a2b500c3 v5.18.0-RC3-3-g55c6e7a
zwei: Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz (GenuineIntel 2668MHz) (x86_64/8 cpu)
on linux - 3.5.0-24-generic [debian]
using clang version 4.2.1 Compatible Clang 3.3 (trunk 177842)
smoketime 2 days 9 hours 11 minutes (average 2 hours 22 minutes)
Summary: FAIL(XM)
O = OK F = Failure(s), extended report at the bottom
X = Failure(s) under TEST but not under harness
? = still running or test results not (yet) available
Build failures during: - = unknown or N/A
c = Configure, m = make, M = make (after miniperl), t = make test-prep
v5.18.0-RC3-3-g55c6e7a Configuration (common) -Accflags="-fsanitize=address" -Aldflags="-fsanitize=address" -Dcc=clang -Doptimize="-O1"
----------- ---------------------------------------------------------
O O O O O O
O O O O O O -Accflags=-DPERL_POISON
O O O O O O -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
O O O O O O -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
O O O O O O -Dmad
O O O O O O -Accflags=-DPERL_NEW_COPY_ON_WRITE
O O O O O O -Duseithreads
O O O O O O -Duseithreads -Accflags=-DPERL_POISON
X O X X X X -Duseithreads -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
M - - M - - -Duseithreads -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
O O O O O O -Duseithreads -Dmad
O O O O O O -Duseithreads -Accflags=-DPERL_NEW_COPY_ON_WRITE
| | | | | +- LC_ALL = en_US.utf8 -DDEBUGGING
| | | | +--- PERLIO = perlio -DDEBUGGING
| | | +----- PERLIO = stdio -DDEBUGGING
| | +------- LC_ALL = en_US.utf8
| +--------- PERLIO = perlio
+----------- PERLIO = stdio
Locally applied patches:
RC3
uncommitted-changes
SMOKE55c6e7a8d6cf0b496596c66f110d3984a2b500c3
Failures: (common-args) -Accflags="-fsanitize=address" -Aldflags="-fsanitize=address" -Dcc=clang -Doptimize="-O1"
[stdio/en_US.utf8] -Duseithreads -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
[stdio/perlio/en_US.utf8] -DDEBUGGING -Duseithreads -Duse64bitall -Accflags=-DPERL_GLOBAL_STRUCT
Inconsistent test results (between TEST and harness):
../t/op/threads.t....................... ................................................. FAILED at test 5
[minitest] -Duseithreads -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
[minitest] -DDEBUGGING -Duseithreads -Dusemorebits -Accflags=-DPERL_GLOBAL_STRUCT_PRIVATE
t/base/cond .................... FAILED--non-zero wait status: 256
Compiler messages(gcc):
Call.xs:63:11: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:63:31: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:100:13: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:156:11: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Call.xs:175:14: warning: format specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
Storable.xs:4068:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Storable.xs:4255:10: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Storable.xs:5550:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Storable.xs:5613:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]
Collate.xs:616:2: warning: expression result unused [-Wunused-value]
Collate.xs:606:2: warning: expression result unused [-Wunused-value]
util.c:3668:12: warning: returning 'const MGVTBL *' (aka 'const struct mgvtbl *') from a function with result type 'MGVTBL *' (aka 'struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3525:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3526:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3527:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3528:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3529:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3530:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3531:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3532:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3533:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3534:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3535:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3536:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3537:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3538:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3539:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3540:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3541:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3542:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3543:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3544:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3545:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3546:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3547:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3549:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3551:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
APItest.xs:3552:2: warning: assigning to 'MGVTBL *' (aka 'struct mgvtbl *') from 'const MGVTBL *' (aka 'const struct mgvtbl *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
--
Report by Test::Smoke v1.53 build 1374 running on perl 5.14.2
(Reporter v0.050 / Smoker v0.045)
From: Steve Hay
Steve Hay wrote on 2013-05-17:
> Steve Hay wrote on 2013-05-17:
>> Ricardo Signes wrote on 2013-05-16:
>>> Clevinger was dead. That was the basic flaw in his philosophy.
>>>
>>> -- Joseph Heller, Catch-22
>>> We are pleased to announce perl v5.18.0-RC4, the fourth release
>>> candidate of the first stable release of version 18 of Perl 5.
>>>
>>
>> Having tested multiple compilers and multiple build configurations
>> too, I've now started testing modules that I use and I'm finding
>> that the current Tk release (804.030) doesn't build (using VC++ 2010
>> and a default build of 5.18.0-RC4):
>>
>> [...]
>> cp IO.pm ..\blib\lib\Tk\IO.pm
>> D:\temp\perlinst\bin\perl.exe
>> D:\temp\perlinst\lib\ExtUtils\xsubpp -typemap
>> D:\temp\perlinst\lib\ExtUtils\typemap -typemap D:/temp/Tk-
>> 804.030/Tk/typemap IO.xs > IO.xsc && D:\temp\perlinst\bin\perl.exe
>> - MExtUtils::Command -e mv -- IO.xsc IO.c
>> Warning: Found a 'CODE' section which seems to be using 'RETVAL' but
>> no 'OUTPUT' section. in IO.xs, line 235
>> cl -c -I.. -I.. -I../pTk/mTk/xlib -nologo -GF -W3 -O1 -MD
>> -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -
D_CRT_SECURE_NO_DEPRECATE
>> - D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -
>> DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -O1 -MD -Zi
>> -DNDEBUG -DVERSION=\"804.03\" -DXS_VERSION=\"804.03\"
>> "-ID:\temp\perlinst\lib\CORE" IO.c IO.c
>> d:\temp\tk-804.030\ptk\Lang.h(33) : warning C4117: macro name
>> '__FUNCTION__' is reserved, '#define' ignored IO.xs(210) : error
C2171:
>> '!' : illegal on operands of type 'void' IO.xs(210) : error C2180:
>> controlling expression has type 'void' IO.xs(210) : error C2180:
>> controlling expression has type 'void' NMAKE : fatal error U1077:
>> '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.EXE"'
:
>> return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files
>> (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.EXE"' : return code
>> '0x2' Stop.
>>
>> Is anyone else seeing this?
>>
>> The same version of Tk works with 5.16.x (with the same compiler,
also
>> a default build configuration).
>
> IO.xs line 210 is
>
> if (!SvUPGRADE(buf, SVt_PV))
> In 5.16.x SvUPGRADE was
>
> #define SvUPGRADE(sv, mt) (SvTYPE(sv) >= (mt) || (sv_upgrade(sv, mt),
1))
>
> but it is now
>
> /* this is defined in this peculiar way to avoid compiler warnings.
> * See the <20121213131428.GD1842@iabyn.com> thread in p5p */ #define
> SvUPGRADE(sv, mt) \
> ((void)(SvTYPE(sv) >= (mt) || (sv_upgrade(sv, mt),1)))
Ok, so it's Tk which is at fault, and needs fixing. I see there's
already a ticket filed for it:
https://rt.cpan.org/Public/Bug/Display.html?id=82677
(Sorry for the noise... Just trying to report problems sooner rather
than later!)