[perl.git] branch smoke-me/tonyc/post-5.22, created. v5.21.11-114-g8d55333

2015-05-10 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been created



at  8d553334382f1a98d9af7529e7fc367aeee0b051 (commit)

- Log -
commit 8d553334382f1a98d9af7529e7fc367aeee0b051
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
implemented to support each platform, just remove the 2 macros.

Since perl.h's fallback defaults for PERL_CALLCONV are very late in perl.h,
they need to be moved up before function declarations start in perlio.h
(perlio.h is included from iperlsys.h).

win32iop.h contains the "PerlIO" and SV" tokens, so perlio.h must be
included before win32iop.h is. Including perlio.h so early in win32.h,
causes PERL_CALLCONV not be defined since Win32 platform uses the
fallback in perl.h, since win32.h doesn't always define PERL_CALLCONV and
sometimes relies on the fallback. Since win32iop.h contains alot of
declarations, it belongs with other declarations such as those in proto.h
so move it from win32.h to perl.h.

the "free" token in struct regexp_engine conflicts with win32iop's
"#define free   win32_free" so rename that member.

M   handy.h
M   perl.h
M   perlio.h
M   perliol.h
M   regexp.h
M   symbian/symbianish.h
M   win32/win32.h

commit ebf6f9d3d2d1e45628766abd929c3d8e459aab06
Author: Peter John Acklam 
Date:   Tue Apr 28 13:07:43 2015 +0200

Fix bug in Math::BigFloat's bceil() and bint() methods.

- When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
  returns -0. Negative zero is never used by Math::Big(Int|Float), and care 
has
  been taken to avoid it, so this bug is surely an oversight.

- This patch fixes CPAN RT #104012.

M   dist/Math-BigInt/lib/Math/BigFloat.pm
M   dist/Math-BigInt/t/bare_mbf.t
M   dist/Math-BigInt/t/bigfltpm.inc
M   dist/Math-BigInt/t/bigfltpm.t
M   dist/Math-BigInt/t/sub_mbf.t
M   dist/Math-BigInt/t/with_sub.t

commit e0b8df1751f8620083680aa7155569ef11942f1a
Author: Peter John Acklam 
Date:   Fri Apr 24 15:13:33 2015 +0200

Speed up Math::BigFloat -> blog().

- Intermediate computations in blog() increases the number of digits
  significantly in some cases. Reduce the number of digits by rounding.
  However, keep some extra digits for remaining intermediate computations
  before the final rounding.

- This patch fixes CPAN RT #43924.

M   dist/Math-BigInt/lib/Math/BigFloat.pm

commit fc8ade30efb60910741500b1f24ea1517f7f665d
Author: Reini Urban 
Date:   Thu Apr 23 12:42:40 2015 +0200

lib/vars_carp.t: fix wrong test

actually load vars to test its new sideeffect

M   lib/vars_carp.t

commit bac7a07343f73cfc155ca92eede9c941e45f84c5
Author: Niko Tyni 
Date:   Sat Apr 18 18:59:07 2015 +0300

Fix quote() function to escape backslashes but not minus signs

The delimiter character isn't special in character square brackets,
and neither is the backslash. So '\-\' means just a range of backslash
to backslash, and the minus sign isn't included at all.

Substitution tested with GNU Solaris 9 sed programs.

Originally noticed by Kristoffer Grundstr?m.

Bug-Debian: https://bugs.debian.org/754057

M   Makefile.SH

commit 6286af637be0136c85afe45e19164262bcc36d6b
Author: Peter John Acklam 
Date:   Fri Apr 17 21:28:37 2015 +0200

Correct Math::BigInt -> new() for non-integer input.

The documentation in Math::BigInt says about input values that "Non-integer
values result in NaN." The actual behaviour doesn't comply with this.

- All input values in the range (-1,1) written as a decimal number, e.g.,
  -0.75 and 0.5, now return NaN, not 0.

- Input values with a large (

[perl.git] branch smoke-me/tonyc/post-5.22, updated. v5.21.11-115-g18827a3

2015-05-10 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been updated



- Log -
commit 18827a3b367759fb62305290e175715f6cd0ff8e
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55
---

Summary of changes:
 ext/POSIX/POSIX.xs | 25 -
 ext/POSIX/lib/POSIX.pm |  2 +-
 ext/POSIX/typemap  | 14 --
 3 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index 43fad83..a81df95 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -1660,7 +1660,6 @@ MODULE = POSIXPACKAGE = POSIX
 BOOT:
 {
 CV *cv;
-const char *file = __FILE__;
 
 
 /* silence compiler warning about not_here() defined but not used */
@@ -1669,37 +1668,37 @@ BOOT:
 /* Ensure we get the function, not a macro implementation. Like the C89
standard says we can...  */
 #undef isalnum
-cv = newXS("POSIX::isalnum", is_common, file);
+cv = newXS_deffile("POSIX::isalnum", is_common);
 XSANY.any_dptr = (any_dptr_t) &isalnum;
 #undef isalpha
-cv = newXS("POSIX::isalpha", is_common, file);
+cv = newXS_deffile("POSIX::isalpha", is_common);
 XSANY.any_dptr = (any_dptr_t) &isalpha;
 #undef iscntrl
-cv = newXS("POSIX::iscntrl", is_common, file);
+cv = newXS_deffile("POSIX::iscntrl", is_common);
 XSANY.any_dptr = (any_dptr_t) &iscntrl;
 #undef isdigit
-cv = newXS("POSIX::isdigit", is_common, file);
+cv = newXS_deffile("POSIX::isdigit", is_common);
 XSANY.any_dptr = (any_dptr_t) &isdigit;
 #undef isgraph
-cv = newXS("POSIX::isgraph", is_common, file);
+cv = newXS_deffile("POSIX::isgraph", is_common);
 XSANY.any_dptr = (any_dptr_t) &isgraph;
 #undef islower
-cv = newXS("POSIX::islower", is_common, file);
+cv = newXS_deffile("POSIX::islower", is_common);
 XSANY.any_dptr = (any_dptr_t) &islower;
 #undef isprint
-cv = newXS("POSIX::isprint", is_common, file);
+cv = newXS_deffile("POSIX::isprint", is_common);
 XSANY.any_dptr = (any_dptr_t) &isprint;
 #undef ispunct
-cv = newXS("POSIX::ispunct", is_common, file);
+cv = newXS_deffile("POSIX::ispunct", is_common);
 XSANY.any_dptr = (any_dptr_t) &ispunct;
 #undef isspace
-cv = newXS("POSIX::isspace", is_common, file);
+cv = newXS_deffile("POSIX::isspace", is_common);
 XSANY.any_dptr = (any_dptr_t) &isspace;
 #undef isupper
-cv = newXS("POSIX::isupper", is_common, file);
+cv = newXS_deffile("POSIX::isupper", is_common);
 XSANY.any_dptr = (any_dptr_t) &isupper;
 #undef isxdigit
-cv = newXS("POSIX::isxdigit", is_common, file);
+cv = newXS_deffile("POSIX::isxdigit", is_common);
 XSANY.any_dptr = (any_dptr_t) &isxdigit;
 }
 
@@ -1974,7 +1973,7 @@ WEXITSTATUS(status)
 #endif
break;
default:
-   Perl_croak(aTHX_ "Illegal alias %d for POSIX::W*", (int)ix);
+   croak("Illegal alias %d for POSIX::W*", (int)ix);
}
 OUTPUT:
RETVAL
diff --git a/ext/POSIX/lib/POSIX.pm b/ext/POSIX/lib/POSIX.pm
index 96156bf..15eb5d6 100644
--- a/ext/POSIX/lib/POSIX.pm
+++ b/ext/POSIX/lib/POSIX.pm
@@ -4,7 +4,7 @@ use warnings;
 
 our ($AUTOLOAD, %SIGRT);
 
-our $VERSION = '1.53';
+our $VERSION = '1.54';
 
 require XSLoader;
 
diff --git a/ext/POSIX/typemap b/ext/POSIX/typemap
index e6a82dc..32cd17b 100644
--- a/ext/POSIX/typemap
+++ b/ext/POSIX/typemap
@@ -17,13 +17,15 @@ POSIX::SigActionT_HVREF
 
 INPUT
 T_OPAQUEPTROBJ
-   if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) {
-   $var = ($type)SvPV_nolen(SvRV($arg));
+   {
+   SV * sv = $arg;
+   if (SvROK(sv) && sv_derived_from(sv, \"${ntype}\"))
+   $var = ($type)SvPV_nolen(SvRV(sv));
+   else
+   croak(\"%s: %s is not of type %s\",
+   ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
+   \"$var\", \"$ntype\");
}
-   else
-   Perl_croak(aTHX_ \"%s: %s is not of type %s\",
-   ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\

[perl.git] branch smoke-me/tonyc/eumm-locale-update, created. v5.21.11-114-gf406a6f

2015-05-12 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/eumm-locale-update has been created

<http://perl5.git.perl.org/perl.git/commitdiff/f406a6f62821dcd889c4c75c3a7a94e9bfc35b90?hp=>

at  f406a6f62821dcd889c4c75c3a7a94e9bfc35b90 (commit)

- Log -
commit f406a6f62821dcd889c4c75c3a7a94e9bfc35b90
Author: Tony Cook 
Date:   Wed May 13 10:28:22 2015 +1000

backport 1e2f0871 from the EUMM repository
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.21.11-124-g17fcdc4

2015-05-13 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/17fcdc49a77dea71bcd3cc46ee73aa0984532a0b?hp=f1c9eac6b4a76ae0c1abb3617f645cd0e14e1563>

- Log -
commit 17fcdc49a77dea71bcd3cc46ee73aa0984532a0b
Author: Tony Cook 
Date:   Thu May 14 12:01:55 2015 +1000

make minitest on win32

M   pod/perldelta.pod

commit 73663383b15a26fc5f91bfaffee59bfaf699
Author: Tony Cook 
Date:   Thu May 14 11:41:09 2015 +1000

test-prep-gcc was broken and fixed within 5.21

M   pod/perldelta.pod

commit 18f4cc8ebd3a4e0e23e40f70238ce37da2bc9162
Author: Tony Cook 
Date:   Thu May 14 11:37:24 2015 +1000

list form of pipe open didn't work on Win32 at all in 5.20

M   pod/perldelta.pod

commit caa16dbd1b72a3fbffbff2d0719d0f7d36f0a4dd
Author: Tony Cook 
Date:   Thu May 14 10:32:14 2015 +1000

add the second variation of the "unable to close" warning, and the 
description

M   pod/perldelta.pod
---

Summary of changes:
 pod/perldelta.pod | 15 ---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 19f0375..2e79a9c 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -1460,8 +1460,13 @@ to alert you to that risk.
 
 =item *
 
+L
+
 L
 
+(S io) An error occurred when Perl implicitly closed a filehandle.  This
+usually indicates your file system ran out of disk space.
+
 =item *
 
 L
@@ -1834,8 +1839,10 @@ L<[perl 
#123976]|https://rt.perl.org/Ticket/Display.html?id=123976>
 
 =item *
 
-C again depends on C for GCC builds.
-L<[perl #124221]|https://rt.perl.org/Ticket/Display.html?id=124221>
+C now works on Win32.  Due to dependency issues you
+need to build C first, and a small number of the
+tests fail.
+L<[perl #123394]|https://rt.perl.org/Ticket/Display.html?id=123394>
 
 =item *
 
@@ -1844,7 +1851,9 @@ C to the value "define".
 
 =item *
 
-List form pipe open no longer falls back to the shell.
+List form of pipe open has been implemented for Win32.  Note: unlike
+C< system LIST >> this does not fall back to the shell.
+L<[perl #121159]|https://rt.perl.org/Ticket/Display.html?id=121159>
 
 =item *
 

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/eumm-locale-update, deleted. v5.21.11-114-gf406a6f

2015-05-13 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/eumm-locale-update has been deleted



   was  f406a6f62821dcd889c4c75c3a7a94e9bfc35b90

---
f406a6f62821dcd889c4c75c3a7a94e9bfc35b90 backport 1e2f0871 from the EUMM 
repository
---

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/eumm-locale-update, created. v5.21.11-126-g3c05f06

2015-05-13 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/eumm-locale-update has been created

<http://perl5.git.perl.org/perl.git/commitdiff/3c05f06f7f2c4ba36d1c3a883253a79019693854?hp=>

at  3c05f06f7f2c4ba36d1c3a883253a79019693854 (commit)

- Log -
commit 3c05f06f7f2c4ba36d1c3a883253a79019693854
Author: Tony Cook 
Date:   Thu May 14 13:09:36 2015 +1000

backport 37c49881 from the EUMM repository

M   cpan/ExtUtils-MakeMaker/t/basic.t

commit 2ccaf833082e59de2893a465824c80dcec70cfcc
Author: Tony Cook 
Date:   Wed May 13 10:28:22 2015 +1000

backport 1e2f0871 from the EUMM repository

M   Porting/Maintainers.pl
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
M   t/porting/customized.dat
---

--
Perl5 Master Repository


[perl.git] branch tonyc/eumm-locale-update, created. v5.21.11-129-g13549e8

2015-05-14 Thread Tony Cook
In perl.git, the branch tonyc/eumm-locale-update has been created

<http://perl5.git.perl.org/perl.git/commitdiff/13549e8c7afd3e1f442f8eb25930f7f96b04964c?hp=>

at  13549e8c7afd3e1f442f8eb25930f7f96b04964c (commit)

- Log -
commit 13549e8c7afd3e1f442f8eb25930f7f96b04964c
Author: Tony Cook 
Date:   Fri May 15 11:47:11 2015 +1000

bump all of the EUMM module versions to avoid confusion

and the customized housekeeping to match

M   Porting/Maintainers.pl
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/vpp.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
M   t/porting/customized.dat

commit 23ff16de19cbd6ba37c687dab842d9493227d642
Author: Tony Cook 
Date:   Thu May 14 13:09:36 2015 +1000

backport 37c49881 from the EUMM repository

M   cpan/ExtUtils-MakeMaker/t/basic.t

commit 18fe62667c7b9e1cc19201a7075e74e31b6ae16b
Author: Tony Cook 
Date:   Wed May 13 10:28:22 2015 +1000

backport 1e2f0871 from the EUMM repository

M   Porting/Maintainers.pl
M   cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
M   t/porting/customized.dat
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.21.11-130-g5cd35aa

2015-05-14 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/5cd35aacb089b4664fa6607cdd410c814dc8065e?hp=30aa8e3f58555e9f59c77b031038678310f01473>

- Log -
commit 5cd35aacb089b4664fa6607cdd410c814dc8065e
Merge: 30aa8e3 13549e8
Author: Tony Cook 
Date:   Fri May 15 14:06:45 2015 +1000

[perl #123998] prevent a missing chcp causing failures and noise on Win32
---

Summary of changes:
 Porting/Maintainers.pl | 35 ++-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm|  2 +-
 .../ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm|  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm  |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm  |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm   |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm|  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm|  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm   |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm   |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm  |  2 +-
 .../lib/ExtUtils/MakeMaker/Config.pm   |  2 +-
 .../lib/ExtUtils/MakeMaker/FAQ.pod |  2 +-
 .../lib/ExtUtils/MakeMaker/Locale.pm   | 72 +++---
 .../lib/ExtUtils/MakeMaker/Tutorial.pod|  2 +-
 .../lib/ExtUtils/MakeMaker/version.pm  |  2 +-
 .../lib/ExtUtils/MakeMaker/version/regex.pm|  2 +-
 .../lib/ExtUtils/MakeMaker/version/vpp.pm  |  2 +-
 .../ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm |  2 +-
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm|  2 +-
 cpan/ExtUtils-MakeMaker/t/basic.t  | 22 ++-
 t/porting/customized.dat   | 33 ++
 35 files changed, 167 insertions(+), 57 deletions(-)

diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index d31e190..9f02ff7 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -474,7 +474,40 @@ use File::Glob qw(:case);
 'README.packaging',
 ],
 # Applied upstream remove customisation when updating EUMM
-'CUSTOMIZED'   => [ qw[ t/pm_to_blib.t ] ],
+'CUSTOMIZED'   => [ qw[ t/pm_to_blib.t
+t/basic.t
+lib/ExtUtils/Command/MM.pm
+lib/ExtUtils/Liblist.pm
+lib/ExtUtils/Liblist/Kid.pm
+lib/ExtUtils/MM.pm
+lib/ExtUtils/MM_AIX.pm
+lib/ExtUtils/MM_Any.pm
+lib/ExtUtils/MM_BeOS.pm
+lib/ExtUtils/MM_Cygwin.pm
+lib/ExtUtils/MM_DOS.pm
+lib/ExtUtils/MM_Darwin.pm
+lib/ExtUtils/MM_MacOS.pm
+lib/ExtUtils/MM_NW5.pm
+lib/ExtUtils/MM_OS2.pm
+lib/ExtUtils/MM_QNX.pm
+lib/ExtUtils/MM_UWIN.pm
+lib/ExtUtils/MM_Unix.pm
+lib/ExtUtils/MM_VMS.pm
+lib/ExtUtils/MM_VOS.pm
+lib/ExtUtils/MM_Win32.pm
+lib/ExtUtils/MM_Win95.pm
+lib/ExtUtils/MY.pm
+lib/ExtUtils/MakeMaker.pm
+lib/ExtUtils/MakeMaker/Config.pm
+lib/ExtUtils/MakeMaker/FAQ.pod
+lib/ExtUtils/MakeMaker/Locale.pm
+lib/ExtUtils/MakeMaker/Tutorial.pod
+lib/ExtUtils/MakeMaker/version.pm
+lib/ExtUtils/MakeMaker/version/regex.pm
+lib/ExtUtils/MakeMaker/version/vpp.pm
+ 

[perl.git] branch blead, updated. v5.21.11-131-g6af9372

2015-05-14 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/6af93725d6b3e88baf9f6eb6c5a1658fe243a1f3?hp=5cd35aacb089b4664fa6607cdd410c814dc8065e>

- Log -
commit 6af93725d6b3e88baf9f6eb6c5a1658fe243a1f3
Author: Tony Cook 
Date:   Fri May 15 14:14:05 2015 +1000

perldelta for 5cd35aacb089
---

Summary of changes:
 pod/perldelta.pod | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index ec215df..50a4c7e 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -681,7 +681,11 @@ XXX
 
 =item *
 
-L has been upgraded from version A.xx to B.yy.
+L has been upgraded from version 6.98 to 7.04_01.
+
+Some changes from github have been backported to prevent failures and
+noise on Win32 when C is missing or unavailable.
+L<[perl #123998]|https://rt.perl.org/Ticket/Display.html?id=123998>
 
 =back
 

--
Perl5 Master Repository


[perl.git] branch tonyc/eumm-locale-update, deleted. v5.21.11-129-g13549e8

2015-05-17 Thread Tony Cook
In perl.git, the branch tonyc/eumm-locale-update has been deleted



   was  13549e8c7afd3e1f442f8eb25930f7f96b04964c

---
13549e8c7afd3e1f442f8eb25930f7f96b04964c bump all of the EUMM module versions 
to avoid confusion
---

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/eumm-locale-update, deleted. v5.21.11-126-g3c05f06

2015-05-17 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/eumm-locale-update has been deleted



   was  3c05f06f7f2c4ba36d1c3a883253a79019693854

---
3c05f06f7f2c4ba36d1c3a883253a79019693854 backport 37c49881 from the EUMM 
repository
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-RC1-3-g726f20d

2015-05-19 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/726f20d22827e8e7c842dd5282226ef7f856fd0c?hp=00eebae1d2d6e5485f8608e70a8f58b135bc0294>

- Log -
commit 726f20d22827e8e7c842dd5282226ef7f856fd0c
Author: Tony Cook 
Date:   Wed May 20 10:22:39 2015 +1000

use the piconv tool to convert source files, not the encoding pragma
---

Summary of changes:
 pod/perldelta.pod | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index b3c92f3..b14a9b6 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -424,7 +424,7 @@ This variable allows Perl scripts to be written in an 
encoding other than
 ASCII or UTF-8.  However, it affects all modules globally, leading
 to wrong answers and segmentation faults.  New scripts should be written
 in UTF-8; old scripts should be converted to UTF-8, which is easily done
-with the L pragma.
+with the L utility.
 
 =head2 Use of non-graphic characters in single-character variable names
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-RC1-4-g6ba7438

2015-05-19 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/6ba7438b76ebc640062605bd71e4d862fece9112?hp=726f20d22827e8e7c842dd5282226ef7f856fd0c>

- Log -
commit 6ba7438b76ebc640062605bd71e4d862fece9112
Author: Tony Cook 
Date:   Wed May 20 11:40:24 2015 +1000

perlapi was updated to refer to Newx, not NewX
---

Summary of changes:
 pod/perldelta.pod | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index b14a9b6..ec03317 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -698,7 +698,7 @@ Note that C doesn't do set magic.
 
 =item *
 
-C - fix documentation to mention the use of C instead of
+C - fix documentation to mention the use of C instead of
 C.
 
 L<[perl #121869]|https://rt.perl.org/Ticket/Display.html?id=121869>

--
Perl5 Master Repository


[perl.git] branch tonyc/utf8-UTF8-UTF-8, created. v5.22.0-RC1-5-g7e0603d

2015-05-19 Thread Tony Cook
In perl.git, the branch tonyc/utf8-UTF8-UTF-8 has been created

<http://perl5.git.perl.org/perl.git/commitdiff/7e0603d5d5ec616dae2c65984cd8114e53fdd35c?hp=>

at  7e0603d5d5ec616dae2c65984cd8114e53fdd35c (commit)

- Log -
commit 7e0603d5d5ec616dae2c65984cd8114e53fdd35c
Author: Tony Cook 
Date:   Wed May 20 11:42:15 2015 +1000

call UTF-8 "UTF-8" except when referring to the namespace
---

--
Perl5 Master Repository


[perl.git] branch tonyc/cygwin-fixes, deleted. v5.21.4-550-gf095462

2015-05-19 Thread Tony Cook
In perl.git, the branch tonyc/cygwin-fixes has been deleted



   was  f095462e34b22920726c6bdd6b1140fdb9a5ae39

---
f095462e34b22920726c6bdd6b1140fdb9a5ae39 these permissions appear to be handled 
correctly in current cygwin
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-RC1-5-g50ea474

2015-05-19 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 50ea4745c8ab3dc6c2e7bfcf895c892b27dae6b4
Author: Dagfinn Ilmari Mannsåker 
Date:   Wed May 20 02:00:59 2015 +0100

Use "UTF-8" consistently in perldelta

Except when referring to actual names of things.
Also update the diagnostic description in perldiag.
---

Summary of changes:
 pod/perldelta.pod | 24 
 pod/perldiag.pod  |  2 +-
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index ec03317..f2371d2 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -116,10 +116,10 @@ C,
 and
 C.
 
-=head2 Better heuristics on older platforms for determining locale UTF8ness
+=head2 Better heuristics on older platforms for determining locale UTF-8ness
 
 On platforms that implement neither the C99 standard nor the POSIX 2001
-standard, determining if the current locale is UTF8 or not depends on
+standard, determining if the current locale is UTF-8 or not depends on
 heuristics.  These are improved in this release.
 
 =head2 Aliasing via reference
@@ -1174,7 +1174,7 @@ L<\C is deprecated in regex|perldiag/"\C is deprecated in 
regex; marked by <-- H
 (D deprecated) The C<< /\C/ >> character class was deprecated in v5.20, and
 now emits a warning. It is intended that it will become an error in v5.24.
 This character class matches a single byte even if it appears within a
-multi-byte character, breaks encapsulation, and can corrupt utf8
+multi-byte character, breaks encapsulation, and can corrupt UTF-8
 strings.
 
 =item *
@@ -1468,7 +1468,7 @@ L
 
 (W locale) While in a single-byte locale (I, a non-UTF-8
 one), a multi-byte character was encountered.   Perl considers this
-character to be the specified Unicode code point.  Combining non-UTF8
+character to be the specified Unicode code point.  Combining non-UTF-8
 locales and Unicode is dangerous.  Almost certainly some characters
 will have two different representations.  For example, in the ISO 8859-7
 (Greek) locale, the code point 0xC3 represents a Capital Gamma.  But so
@@ -2133,7 +2133,7 @@ David Mitchell for future work on vtables.
 =item *
 
 The C function accepts C and C
-flags, which specify whether the appended string is bytes or utf8,
+flags, which specify whether the appended string is bytes or UTF-8,
 respectively. (These flags have in fact been present since 5.16.0, but
 were formerly not regarded as part of the API.)
 
@@ -2240,7 +2240,7 @@ L<[perl 
#123223]|https://rt.perl.org/Ticket/Display.html?id=123223>.
 
 =item *
 
-Pad names are now always UTF8.  The C macro always returns
+Pad names are now always UTF-8.  The C macro always returns
 true.  Previously, this was effectively the case already, but any support
 for two different internal representations of pad names has now been
 removed.
@@ -2525,9 +2525,9 @@ L<[perl 
#108276]|https://rt.perl.org/Ticket/Display.html?id=108276>.
 
 =item *
 
-In Perl 5.20.0, C<$^N> accidentally had the internal UTF8 flag turned off
+In Perl 5.20.0, C<$^N> accidentally had the internal UTF-8 flag turned off
 if accessed from a code block within a regular expression, effectively
-UTF8-encoding the value.  This has been fixed.
+UTF-8-encoding the value.  This has been fixed.
 L<[perl #123135]|https://rt.perl.org/Ticket/Display.html?id=123135>.
 
 =item *
@@ -2653,8 +2653,8 @@ contrary to the documentation,  Now C always 
prevents inlining.
 =item *
 
 On some systems, such as VMS, C can return a non-ASCII string.  If a
-scalar assigned to had contained a UTF8 string previously, then C
-would not turn off the UTF8 flag, thus corrupting the return value.  This
+scalar assigned to had contained a UTF-8 string previously, then C
+would not turn off the UTF-8 flag, thus corrupting the return value.  This
 would happen with C<$lexical = crypt ...>.
 
 =item *
@@ -2749,7 +2749,7 @@ mirror character.
 
 =item *
 
-C<< s///e >> on tainted utf8 strings corrupted C<< pos() >>. This bug,
+C<< s///e >> on tainted UTF-8 strings corrupted C<< pos() >>. This bug,
 introduced in 5.20, is now fixed.
 L<[perl #122148]|https://rt.perl.org/Ticket/Display.html?id=122148>.
 
@@ -2903,7 +2903,7 @@ false at compile time and true at run time.
 
 =item *
 
-Loading UTF8 tables during a regular expression match could cause assertion
+Loading UTF-8 tables during a regular expression match could cause assertion
 failures under debugging builds if the previous match used the very same
 regular expression.
 L<[perl #122747]|https://rt.perl.org/Ticket/Display.html?id=122747>
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index ab95152..93ae13b 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -7105,7 +7105,7 @@ filehandle wit

[perl.git] branch tonyc/post-5.22, created. v5.22.0-RC1-26-g2fc3536

2015-05-20 Thread Tony Cook
In perl.git, the branch tonyc/post-5.22 has been created



at  2fc35361cd9bf695c1959aec6b8c288544186319 (commit)

- Log -
commit 2fc35361cd9bf695c1959aec6b8c288544186319
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55

M   ext/POSIX/POSIX.xs
M   ext/POSIX/lib/POSIX.pm
M   ext/POSIX/typemap

commit 82d687ae3f4d8eaf3f791fe8a03911b0028bd5b5
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
implemented to support each platform, just remove the 2 macros.

Since perl.h's fallback defaults for PERL_CALLCONV are very late in perl.h,
they need to be moved up before function declarations start in perlio.h
(perlio.h is included from iperlsys.h).

win32iop.h contains the "PerlIO" and SV" tokens, so perlio.h must be
included before win32iop.h is. Including perlio.h so early in win32.h,
causes PERL_CALLCONV not be defined since Win32 platform uses the
fallback in perl.h, since win32.h doesn't always define PERL_CALLCONV and
sometimes relies on the fallback. Since win32iop.h contains alot of
declarations, it belongs with other declarations such as those in proto.h
so move it from win32.h to perl.h.

the "free" token in struct regexp_engine conflicts with win32iop's
"#define free   win32_free" so rename that member.

M   handy.h
M   perl.h
M   perlio.h
M   perliol.h
M   regexp.h
M   symbian/symbianish.h
M   win32/win32.h

commit 087125f7599467d7876b8aefe2326ee2a9673085
Author: Peter John Acklam 
Date:   Tue Apr 28 13:07:43 2015 +0200

Fix bug in Math::BigFloat's bceil() and bint() methods.

- When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
  returns -0. Negative zero is never used by Math::Big(Int|Float), and care 
has
  been taken to avoid it, so this bug is surely an oversight.

- This patch fixes CPAN RT #104012.

M   dist/Math-BigInt/lib/Math/BigFloat.pm
M   dist/Math-BigInt/t/bare_mbf.t
M   dist/Math-BigInt/t/bigfltpm.inc
M   dist/Math-BigInt/t/bigfltpm.t
M   dist/Math-BigInt/t/sub_mbf.t
M   dist/Math-BigInt/t/with_sub.t

commit 430b2db421927bd403c32c3b6cd217e2fd5972e3
Author: Peter John Acklam 
Date:   Fri Apr 24 15:13:33 2015 +0200

Speed up Math::BigFloat -> blog().

- Intermediate computations in blog() increases the number of digits
  significantly in some cases. Reduce the number of digits by rounding.
  However, keep some extra digits for remaining intermediate computations
  before the final rounding.

- This patch fixes CPAN RT #43924.

M   dist/Math-BigInt/lib/Math/BigFloat.pm

commit ce23aef49bf1fb3628ec95c3df100bd5dce6677f
Author: Reini Urban 
Date:   Thu Apr 23 12:42:40 2015 +0200

lib/vars_carp.t: fix wrong test

actually load vars to test its new sideeffect

M   lib/vars_carp.t

commit 74ebe7551c5c918cf9e8e83ed6bc43b099f8696e
Author: Niko Tyni 
Date:   Sat Apr 18 18:59:07 2015 +0300

Fix quote() function to escape backslashes but not minus signs

The delimiter character isn'

[perl.git] branch blead, updated. v5.22.0-RC1-13-g1e45139

2015-05-20 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/1e45139af476904e63bf8dd6b89c6c107989b90b?hp=d22fb6ca0a489331fea369e4ab9a5d4013de1bb0>

- Log -
commit 1e45139af476904e63bf8dd6b89c6c107989b90b
Author: Tony Cook 
Date:   Thu May 21 14:32:30 2015 +1000

They're Unicode tables, not UTF-8 tables
---

Summary of changes:
 pod/perldelta.pod | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index ab2bdfc..422eb9f 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -3035,7 +3035,7 @@ false at compile time and true at run time.
 
 =item *
 
-Loading UTF-8 tables during a regular expression match could cause assertion
+Loading Unicode tables during a regular expression match could cause assertion
 failures under debugging builds if the previous match used the very same
 regular expression.
 L<[perl #122747]|https://rt.perl.org/Ticket/Display.html?id=122747>

--
Perl5 Master Repository


[perl.git] branch tonyc/post-5.22, updated. v5.22.0-RC1-27-gb54c7af

2015-05-20 Thread Tony Cook
In perl.git, the branch tonyc/post-5.22 has been updated



- Log -
commit b54c7af525da0a5ff876a493cd35817c39473eb3
Author: Daniel Dragan 
Date:   Mon May 18 18:07:29 2015 -0400

let Visual C 2013 builds run on WinXP

-keep the idea of -subsystem being specified only in the master makefile
 and not in XS building makefiles
---

Summary of changes:
 pod/perldelta.pod |  5 +
 win32/Makefile| 39 ---
 win32/makefile.mk | 37 +++--
 3 files changed, 56 insertions(+), 25 deletions(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index ab2bdfc..34a3b8b 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -1990,6 +1990,11 @@ a fix for legacy feature checking status.
 
 =item *
 
+Visual C++ 2013 builds will now execute on XP and higher. Previously they would
+only execute on Vista and higher.
+
+=item *
+
 F is now built with C<-fno-strict-aliasing>, allowing 64-bit
 builds to complete on GCC 4.8.
 L<[perl #123976]|https://rt.perl.org/Ticket/Display.html?id=123976>
diff --git a/win32/Makefile b/win32/Makefile
index 6d41e16..01d614a 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -441,7 +441,6 @@ INCLUDES= -I$(COREDIR) -I.\include -I. -I..
 #PCHFLAGS  = -Fpc:\temp\vcmoduls.pch -YX
 DEFINES= -DWIN32 -D_CONSOLE -DNO_STRICT
 LOCDEFS= -DPERLDLL -DPERL_CORE
-SUBSYS = console
 CXX_FLAG   = -TP -EHsc
 
 LIBC   = msvcrt.lib
@@ -553,6 +552,24 @@ LINK_FLAGS = $(LINK_FLAGS) 
"/manifestdependency:type='Win32' name='Microsoft.Win
 RSC_FLAGS  = -DINCLUDE_MANIFEST
 !ENDIF
 
+# For XP support in >= 2013, subsystem is always in Config.pm LINK_FLAGS
+# else subsystem is only needed for EXE building, not XS DLL building
+# Console vs GUI makes no difference for DLLs, so use default for cleaner
+# building cmd lines
+!IF "$(CCTYPE)" == "MSVC120" || "$(CCTYPE)" == "MSVC120FREE" \
+|| "$(CCTYPE)" == "MSVC150" || "$(CCTYPE)" == "MSVC150FREE"
+!  IF "$(WIN64)" == "define"
+LINK_FLAGS = $(LINK_FLAGS) -subsystem:console,"5.02"
+!  ELSE
+LINK_FLAGS = $(LINK_FLAGS) -subsystem:console,"5.01"
+!  ENDIF
+PRIV_LINK_FLAGS=
+
+!ELSE
+PRIV_LINK_FLAGS= -subsystem:console
+!ENDIF
+
+BLINK_FLAGS= $(PRIV_LINK_FLAGS) $(LINK_FLAGS)
 
  do not edit below this line ###
 # NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##
@@ -578,8 +595,8 @@ o = .obj
$(NOOP)
 
 $(o).dll:
-   $(LINK32) -dll -subsystem:windows -implib:$(*B).lib -def:$(*B).def \
-   -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
+   $(LINK32) -dll -implib:$(*B).lib -def:$(*B).def \
+   -out:$@ $(BLINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
$(EMBED_DLL_MANI)
 
 .rc.res:
@@ -867,7 +884,7 @@ static: $(PERLEXESTATIC)
 #
 
 $(GLOBEXE) : perlglob$(o)
-   $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \
+   $(LINK32) $(BLINK_FLAGS) $(LIBFILES) -out:$@ \
perlglob$(o) setargv$(o)
$(EMBED_EXE_MANI)
 
@@ -1003,8 +1020,8 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL
 $(MINIPERL) : ..\lib\buildcustomize.pl 
 
 ..\lib\buildcustomize.pl : $(MINIDIR) $(MINI_OBJ) ..\write_buildcustomize.pl
-   $(LINK32) -subsystem:console -out:$(MINIPERL) @<<
-   $(LINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(MINI_OBJ)
+   $(LINK32) -out:$(MINIPERL) @<<
+   $(BLINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(MINI_OBJ)
 <<
$(EMBED_EXE_MANI:..\lib\buildcustomize.pl=..\miniperl.exe)
$(MINIPERL) -I..\lib -f ..\write_buildcustomize.pl ..
@@ -1041,7 +1058,7 @@ perldll.def : $(MINIPERL) $(CONFIGPM) ..\embed.fnc 
..\makedef.pl create_perllibs
 
 $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES) Extensions_static
$(LINK32) -dll -def:perldll.def -base:0x2800 -out:$@ 
@Extensions_static @<<
-   $(LINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(PERLDLL_OBJ) 
$(PERLDLL_RES)
+   $(BLINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(PERLDLL_OBJ) 
$(PERLDLL_RES)
 <<
$(EMBED_DLL_MANI)
$(XCOPY) $(PERLIMPLIB) $(COREDIR)
@@ -1064,8 +1081,8 @@ $(BITCOUNT_H) : $(GENUUDMAP)
 $(GENUUDMAP_OBJ) : ..\mg_raw.h
 
 $(GENUUDMAP) : $(GENUUDMAP_OBJ)
-   $(LINK32) -subsystem:console -out:$@ @<<
-   $(LINK_FLAGS) $(LIBFILES) $(GENUUDMAP_OBJ)
+   $(LINK32) -out:$@ @<<
+   $(BLINK_FLAGS) $(LIBFILES) $(GENUUDMAP_OBJ)
 <<
$(EMBED_EXE_MANI)
 
@@ -1082,14 +1099,14 @@ perlmainst$(o) : perlmainst.c
$(CC) $(CFLAGS_O) $(OBJOUT_FLAG)$@ -c perlmainst.c
 
 $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE

[perl.git] branch smoke-me/tonyc/post-5.22, deleted. v5.21.11-115-g18827a3

2015-05-20 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been deleted



   was  18827a3b367759fb62305290e175715f6cd0ff8e

---
18827a3b367759fb62305290e175715f6cd0ff8e Perl_croak->croak and misc C 
optimizing in POSIX.pm
---

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/post-5.22, created. v5.22.0-RC1-28-g193b427

2015-05-20 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been created



at  193b427d7c336c28d1fec9d4b2b7e93060099d8c (commit)

- Log -
commit 193b427d7c336c28d1fec9d4b2b7e93060099d8c
Author: Daniel Dragan 
Date:   Mon May 18 18:07:29 2015 -0400

let Visual C 2013 builds run on WinXP

-keep the idea of -subsystem being specified only in the master makefile
 and not in XS building makefiles

M   pod/perldelta.pod
M   win32/Makefile
M   win32/makefile.mk

commit 0ef7bbd40ca7f8f522fe4f7de2f357519d946db7
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55

M   ext/POSIX/POSIX.xs
M   ext/POSIX/lib/POSIX.pm
M   ext/POSIX/typemap

commit fe5a4e7a146693b739bf2a7543043086e9258a9c
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
implemented to support each platform, just remove the 2 macros.

Since perl.h's fallback defaults for PERL_CALLCONV are very late in perl.h,
they need to be moved up before function declarations start in perlio.h
(perlio.h is included from iperlsys.h).

win32iop.h contains the "PerlIO" and SV" tokens, so perlio.h must be
included before win32iop.h is. Including perlio.h so early in win32.h,
causes PERL_CALLCONV not be defined since Win32 platform uses the
fallback in perl.h, since win32.h doesn't always define PERL_CALLCONV and
sometimes relies on the fallback. Since win32iop.h contains alot of
declarations, it belongs with other declarations such as those in proto.h
so move it from win32.h to perl.h.

the "free" token in struct regexp_engine conflicts with win32iop's
"#define free   win32_free" so rename that member.

M   handy.h
M   perl.h
M   perlio.h
M   perliol.h
M   regexp.h
M   symbian/symbianish.h
M   win32/win32.h

commit 556cba88f06c359c72d022fcc4619361538db205
Author: Peter John Acklam 
Date:   Tue Apr 28 13:07:43 2015 +0200

Fix bug in Math::BigFloat's bceil() and bint() methods.

- When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
  returns -0. Negative zero is never used by Math::Big(Int|Float), and care 
has
  been taken to avoid it, so this bug is surely an oversight.

- This patch fixes CPAN RT #104012.

M   dist/Math-BigInt/lib/Math/BigFloat.pm
M   dist/Math-BigInt/t/bare_mbf.t
M   dist/Math-BigInt/t/bigfltpm.inc
M   dist/Math-BigInt/t/bigfltpm.t
M   dist/Math-BigInt/t/sub_mbf.t
M   dist/Math-BigInt/t/with_sub.t

commit a27fe5ac0201f7b3378fcb85fe73ff25b9032e93
Author: Peter John Acklam 
Date:   Fri Apr 24 15:13:33 2015 +0200

Speed up Math::BigFloat -> blog().

- Intermediate computations in blog() increases the number of digits
  significantly in some cases. Reduce the number of digits by rounding.
  However, keep some extra digits for remaining intermediate computations
  before the final rounding.

- This patch fixes CPAN RT #43924.

M   dist/Math-BigInt/lib/Math/BigFloat.pm

commit 1e89a8495aee7ea9c9678b4885b0b96cbefe1ac4
Author: Reini Urban 
Date:   T

[perl.git] branch smoke-me/tonyc/post-5.22, deleted. v5.22.0-RC1-28-g193b427

2015-05-25 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been deleted



   was  193b427d7c336c28d1fec9d4b2b7e93060099d8c

---
193b427d7c336c28d1fec9d4b2b7e93060099d8c let Visual C 2013 builds run on WinXP
---

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/post-5.22, created. v5.22.0-RC2-17-g43a3010

2015-05-25 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been created



at  43a301048faeb3fddc60347e99e5d5c46215971d (commit)

- Log -
commit 43a301048faeb3fddc60347e99e5d5c46215971d
Author: Shlomi Fish 
Date:   Mon May 25 20:56:23 2015 +0300

Fix RT#71678 (-d a command after exit) with a test.

Credits to Heiko Eissfeldt for the reported bug, the test program and a
proposed fix.

M   MANIFEST
M   lib/perl5db.pl
M   lib/perl5db.t
A   lib/perl5db/t/test-a-statement-2

commit 04463eb0aca0eaec51bd8ecc6c01237f441325a7
Author: Daniel Dragan 
Date:   Mon May 18 18:07:29 2015 -0400

let Visual C 2013 builds run on WinXP

-keep the idea of -subsystem being specified only in the master makefile
 and not in XS building makefiles

M   pod/perldelta.pod
M   win32/Makefile
M   win32/makefile.mk

commit 71aa131f039b40c2b90bf1f216ab8f9a4acbeea1
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55

M   ext/POSIX/POSIX.xs
M   ext/POSIX/lib/POSIX.pm
M   ext/POSIX/typemap

commit 3f119eb391372f31409d90f0452b3109a7fa37f0
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
implemented to support each platform, just remove the 2 macros.

Since perl.h's fallback defaults for PERL_CALLCONV are very late in perl.h,
they need to be moved up before function declarations start in perlio.h
(perlio.h is included from iperlsys.h).

win32iop.h contains the "PerlIO" and SV" tokens, so perlio.h must be
included before win32iop.h is. Including perlio.h so early in win32.h,
causes PERL_CALLCONV not be defined since Win32 platform uses the
fallback in perl.h, since win32.h doesn't always define PERL_CALLCONV and
sometimes relies on the fallback. Since win32iop.h contains alot of
declarations, it belongs with other declarations such as those in proto.h
so move it from win32.h to perl.h.

the "free" token in struct regexp_engine conflicts with win32iop's
"#define free   win32_free" so rename that member.

M   handy.h
M   perl.h
M   perlio.h
M   perliol.h
M   regexp.h
M   symbian/symbianish.h
M   win32/win32.h

commit 2d24f3c0052f5f2416eac7cefd906b5937585f3b
Author: Peter John Acklam 
Date:   Tue Apr 28 13:07:43 2015 +0200

Fix bug in Math::BigFloat's bceil() and bint() methods.

- When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
  returns -0. Negative zero is never used by Math::Big(Int|Float), and care 
has
  been taken to avoid it, so this bug is surely an oversight.

- This patch fixes CPAN RT #104012.

M   dist/Math-BigInt/lib/Math/BigFloat.pm
M   dist/Math-BigInt/t/bare_mbf.t
M   dist/Math-BigInt/t/bigfltpm.inc
M   dist/Math-BigInt/t/bigfltpm.t
M   dist/Math-BigInt/t/sub_mbf.t
M   dist/Math-BigInt/t/with_sub.t

commit bb7a84adc17216f3f1f702876e7bbf5732a7b131
Author: Peter John Acklam 
Date:   Fri Apr 24 15:13:33 2015 +0200

Speed up Math::BigFloat -> blog().

- Intermediate computations in blog() increases the numbe

[perl.git] branch smoke-me/tonyc/post-5.22, updated. v5.22.0-RC2-18-g90d22fd

2015-05-25 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been updated



- Log -
commit 90d22fd4a13a0db675b85c5bf9e6f4c5c9368053
Author: Daniel Dragan 
Date:   Thu May 21 17:06:27 2015 -0400

refactor win32_get_*lib() funcs to match rest of PERL_IMPLICIT_SYS API

The front end of PERL_IMPLICIT_SYS is PerlEnv_*/PerlSock_*/PerlProc_*/etc
macros. These are either macroed to C vtable calls when PERL_IMPLICIT_SYS
is on, or to the backend raw win32_*() functions when PERL_IMPLICIT_SYS
is off.

win32_get_*() were not following this convention. All this code looks like
a hack as if someone didn't have perms to edit perl.c, but they did have
perms to edit /win32, so they devise a scheme of hooking "unhooked"
win32_get_*() functions with win32.h macros for win32_get_*() to call the
Perl*() virutalization macros, and rename the original function bodies in
win32.c to g_win32_get_*() as to not make a macro loop.

Undo all of this hack by having perl.c call correct PerlEnv_* macro. This
refactoring will be useful for a future patch in #123658 to disable
win32 registry lookups.
---

Summary of changes:
 perl.c| 6 +++---
 win32/config_H.ce | 4 ++--
 win32/config_H.gc | 4 ++--
 win32/config_H.vc | 4 ++--
 win32/config_h.PL | 7 ++-
 win32/perlhost.h  | 9 +++--
 win32/win32.c | 6 --
 win32/win32.h | 3 ---
 win32/wince.c | 6 --
 9 files changed, 18 insertions(+), 31 deletions(-)

diff --git a/perl.c b/perl.c
index af5ca51..b6a3d87 100644
--- a/perl.c
+++ b/perl.c
@@ -4385,7 +4385,7 @@ S_init_perllib(pTHX)
 #ifdef SITELIB_EXP
 #  if defined(WIN32)
 /* this picks up sitearch as well */
-   s = win32_get_sitelib(PERL_FS_VERSION, &len);
+   s = PerlEnv_sitelib_path(PERL_FS_VERSION, &len);
if (s)
incpush_use_sep(s, len, INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOCATE);
 #  else
@@ -4405,7 +4405,7 @@ S_init_perllib(pTHX)
 #ifdef PERL_VENDORLIB_EXP
 #  if defined(WIN32)
 /* this picks up vendorarch as well */
-   s = win32_get_vendorlib(PERL_FS_VERSION, &len);
+   s = PerlEnv_vendorlib_path(PERL_FS_VERSION, &len);
if (s)
incpush_use_sep(s, len, INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOCATE);
 #  else
@@ -4423,7 +4423,7 @@ S_init_perllib(pTHX)
 #endif
 
 #if defined(WIN32)
-s = win32_get_privlib(PERL_FS_VERSION, &len);
+s = PerlEnv_lib_path(PERL_FS_VERSION, &len);
 if (s)
incpush_use_sep(s, len, INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOCATE);
 #else
diff --git a/win32/config_H.ce b/win32/config_H.ce
index 196f419..1938d5f 100644
--- a/win32/config_H.ce
+++ b/win32/config_H.ce
@@ -3382,7 +3382,7 @@
  * in programs that are not prepared to deal with ~ expansion at run-time.
  */
 #define PRIVLIB "\\Storage Card\\perl58m\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib(PERL_VERSION_STRING, NULL)) /**/
+#define PRIVLIB_EXP (PerlEnv_lib_path(PERL_VERSION_STRING, NULL))  /**/
 
 /* PTRSIZE:
  * This symbol contains the size of a pointer, so that the C preprocessor
@@ -3513,7 +3513,7 @@
  * be tacked onto this variable to generate a list of directories to 
search.
  */
 #define SITELIB "\\Storage Card\\perl58m\\site\\lib"   /**/
-#define SITELIB_EXP (win32_get_sitelib(PERL_VERSION_STRING, NULL)) /**/
+#define SITELIB_EXP (PerlEnv_sitelib_path(PERL_VERSION_STRING, NULL))  /**/
 #define SITELIB_STEM ""/**/
 
 /* Size_t_size:
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 40ce6c7..a51bee6 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -3064,7 +3064,7 @@
  * in programs that are not prepared to deal with ~ expansion at run-time.
  */
 #define PRIVLIB "c:\\perl\\lib"/**/
-#define PRIVLIB_EXP (win32_get_privlib(PERL_VERSION_STRING, NULL)) /**/
+#define PRIVLIB_EXP (PerlEnv_lib_path(PERL_VERSION_STRING, NULL))  /**/
 
 /* CAN_PROTOTYPE:
  * If defined, this macro indicates that the C compiler can handle
@@ -3231,7 +3231,7 @@
  * be tacked onto this variable to generate a list of directories to 
search.
  */
 #define SITELIB "c:\\perl\\site\\lib"  /**/
-#define SITELIB_EXP (win32_get_sitelib(PERL_VERSION_STRING, NULL)) /**/
+#define SITELIB_EXP (PerlEnv_sitelib_path(PERL_VERSION_STRING, NULL))  /**/
 #define SITELIB_STEM ""/**/
 
 /* Size_t_size:
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 1253e75..3444bce 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -3056,7 +3056,7 @@
  * in programs that are not prepared to deal with ~ expansion at run-time.
  */
 #define PRIVLIB "c:\\perl\\lib"/**/
-#define PRIVLIB_EXP (win32_get_privlib(PERL_VERS

[perl.git] branch smoke-me/tonyc/post-5.22, updated. v5.22.0-RC2-19-g6ca26df

2015-05-25 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/6ca26df979d733f3c9eadca6141ee685955b9dad?hp=90d22fd4a13a0db675b85c5bf9e6f4c5c9368053>

- Log -
commit 6ca26df979d733f3c9eadca6141ee685955b9dad
Author: Tony Cook 
Date:   Tue May 26 16:03:31 2015 +1000

[perl #125115] don't create file GLOB(...) when dupping a closed handle
---

Summary of changes:
 doio.c  |  7 +--
 t/io/open.t | 10 +-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/doio.c b/doio.c
index 5f29a6b..2630252 100644
--- a/doio.c
+++ b/doio.c
@@ -438,8 +438,11 @@ Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len,
else if (IoTYPE(thatio) == IoTYPE_SOCKET)
IoTYPE(io) = IoTYPE_SOCKET;
}
-   else
-   wanted_fd = -1;
+else {
+SETERRNO(EBADF, RMS_IFI);
+fp = NULL;
+goto say_false;
+}
}
if (!num_svs)
type = NULL;
diff --git a/t/io/open.t b/t/io/open.t
index 3817bdd..cffef14 100644
--- a/t/io/open.t
+++ b/t/io/open.t
@@ -10,7 +10,7 @@ $|  = 1;
 use warnings;
 use Config;
 
-plan tests => 153;
+plan tests => 156;
 
 my $Perl = which_perl();
 
@@ -476,6 +476,14 @@ pass("no crash when open autovivifies glob in freed 
package");
 is((stat $temp)[9], $final_mtime, "nothing changes its mtime");
 }
 
+# [perl #125115] Dup to closed filehandle creates file named GLOB(0x...)
+{
+ok(open(my $fh, "<", "TEST"), "open a handle");
+ok(close $fh, "and close it again");
+ok(!open(my $fh2,  ">&", $fh), "should fail to dup the closed handle");
+# clean up if we failed
+unlink "$fh";
+}
 
 package OverloadTest;
 use overload '""' => sub { ${$_[0]} };

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/post-5.22, deleted. v5.22.0-RC2-19-g6ca26df

2015-05-31 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been deleted



   was  6ca26df979d733f3c9eadca6141ee685955b9dad

---
6ca26df979d733f3c9eadca6141ee685955b9dad [perl #125115] don't create file 
GLOB(...) when dupping a closed handle
---

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/post-5.22, created. v5.22.0-RC2-44-g59a2fd9

2015-05-31 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/post-5.22 has been created

<http://perl5.git.perl.org/perl.git/commitdiff/59a2fd94e16529238f355b6b118d043c093cd74f?hp=>

at  59a2fd94e16529238f355b6b118d043c093cd74f (commit)

- Log -
commit 59a2fd94e16529238f355b6b118d043c093cd74f
Author: Tony Cook 
Date:   Mon Jun 1 11:15:08 2015 +1000

bump $feature::VERSION

M   lib/feature.pm
M   regen/feature.pl

commit c4754521e53028bc1e367d339d3db0d19cc35a61
Author: Daniel Dragan 
Date:   Fri May 29 01:48:11 2015 -0400

feature.pm remove unused lexicals

M   lib/feature.pm
M   regen/feature.pl

commit 8014951820b84bc557b38d662eb26df9ad71fc04
Author: Tony Cook 
Date:   Tue May 26 16:03:31 2015 +1000

[perl #125115] don't create file GLOB(...) when dupping a closed handle

M   doio.c
M   t/io/open.t

commit 1084a02213006a6f946abf17462a4af170b94940
Author: Daniel Dragan 
Date:   Thu May 21 17:06:27 2015 -0400

refactor win32_get_*lib() funcs to match rest of PERL_IMPLICIT_SYS API

The front end of PERL_IMPLICIT_SYS is PerlEnv_*/PerlSock_*/PerlProc_*/etc
macros. These are either macroed to C vtable calls when PERL_IMPLICIT_SYS
is on, or to the backend raw win32_*() functions when PERL_IMPLICIT_SYS
is off.

win32_get_*() were not following this convention. All this code looks like
a hack as if someone didn't have perms to edit perl.c, but they did have
perms to edit /win32, so they devise a scheme of hooking "unhooked"
win32_get_*() functions with win32.h macros for win32_get_*() to call the
Perl*() virutalization macros, and rename the original function bodies in
win32.c to g_win32_get_*() as to not make a macro loop.

Undo all of this hack by having perl.c call correct PerlEnv_* macro. This
refactoring will be useful for a future patch in #123658 to disable
win32 registry lookups.

M   perl.c
M   win32/config_H.ce
M   win32/config_H.gc
M   win32/config_H.vc
M   win32/config_h.PL
M   win32/perlhost.h
M   win32/win32.c
M   win32/win32.h
M   win32/wince.c

commit 9bd8e60786fe1e1c25c3f779b9d7dee8940b4eb0
Author: Shlomi Fish 
Date:   Mon May 25 20:56:23 2015 +0300

Fix RT#71678 (-d a command after exit) with a test.

Credits to Heiko Eissfeldt for the reported bug, the test program and a
proposed fix.

M   MANIFEST
M   lib/perl5db.pl
M   lib/perl5db.t
A   lib/perl5db/t/test-a-statement-2

commit aad56e1a25cd1834c46287ac31c526fd668c1f02
Author: Daniel Dragan 
Date:   Mon May 18 18:07:29 2015 -0400

let Visual C 2013 builds run on WinXP

-keep the idea of -subsystem being specified only in the master makefile
 and not in XS building makefiles

M   pod/perldelta.pod
M   win32/Makefile
M   win32/makefile.mk

commit 46ef3155a95688a803c7e897be168c7356e9bd68
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55

M   ext/POSIX/POSIX.xs
M   ext/POSIX/lib/POSIX.pm
M   ext/POSIX/typemap

commit 8266b516d9a0cb4dbd3eb6e9bf8cdd89864d11a5
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
   

[perl.git] branch smoke-me/tonyc/maint-5.20-test, created. v5.20.2-17-g06947d2

2015-05-31 Thread Tony Cook
f300c9d46ec8ace48cff0477dd2866cfe10f79)

M   hints/darwin.sh

commit ec228ab5ae3ff3640a2f67e0a99292405c292947
Author: Father Chrysostomos 
Date:   Mon Nov 10 18:22:43 2014 -0800

Don’t treat setpgrp($nonzero) as setpgrp(1)

This was broken inadvertently by 92f2ac5f (5.15.3).

I really have no idea how to test this.  I only confirmed the bug and
its fix via a temporary warn statement in pp_setpgrp (obviously not
included in this commit).
(cherry picked from commit bae8cfc6926f9b04d8adac6a9ee6d563cc18263f)

M   pp_sys.c

commit adaa236f2042a1c83288c466bcff2c775a62cbf7
Author: Petr Písař 
Date:   Tue Feb 17 13:11:00 2015 +0100

lib/h2ph.t to test generated t/_h2ph_pre.ph instead of the system one

The lib/h2ph.t test executes a t/lib/h2ph.pht which requires
'_h2ph_pre.ph'.  This should find and exercise generated t/_h2ph_pre.ph
file. However, it found a loaded _h2ph_pre.ph from system because the
interpreter has the './' directory after the system paths in the @INC by
default.

This patch adds '-I./' to the runperl() invocation to prefer the
_h2ph_pre.ph generated at build time.

Signed-off-by: Petr Písař 
(cherry picked from commit 33593911f214382b592d05aa902655301915e666)

M   lib/h2ph.t

commit 9587169ea614d1714a75266c627b679287741b3f
Author: Tony Cook 
Date:   Mon Feb 16 15:57:00 2015 +1100

h2ph: correct handling of hex constants for the preamble

Previously they were treated as identifiers resulting in code
generated like C< &0xFFF >.

We also try to prevent compile-time warnings from large hex integers,
the user isn't responsible for the generated code, so we delay those
warnings to run-time.
(cherry picked from commit 3bea78d24634e630b610f59957e7a019205a67b2)

M   utils/h2ph.PL

commit 68d93c1506cc1c09fc3bbfe82591d09f1225c6c0
Author: Petr Písař 
Date:   Wed Feb 11 15:46:37 2015 +0100

Fix Errno.pm generation for gcc-5.0

gcc-5.0 -E interleaves now line numbers with expended macros, so that
the generated errno.c will be preprocessed to

EBFONT => [[
   59
]]

which is hard to parse in in line-based reader.

So use -P option with gcc >= 5.0. Global -P usage would break makedepend,
global -ftrack-macro-expansion=0 would break lib/h2ph.t.

RT#123784
(cherry picked from commit 816b056ffb99ae54642320e20dc30a59fd1effef)

M   ext/Errno/Errno_pm.PL

commit c4e096e7746bc0c82f7601948c5ff8417833a187
Author: Tony Cook 
Date:   Tue Apr 21 16:13:13 2015 +1000

don't leak the temp utf8 copy of namepv

M   pad.c
---

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-3-g44958b9

2015-05-31 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/44958b9e6d28b17816b96744384f629926f96c20?hp=d8fb1650dba2e6ec20359fcc9c0c5adaf9b68a33>

- Log -
commit 44958b9e6d28b17816b96744384f629926f96c20
Author: Tony Cook 
Date:   Mon Jun 1 16:01:06 2015 +1000

perldelta for fddbd7860397

M   pod/perldelta.pod

commit fddbd7860397641a9f336211b07bd51902a70e55
Author: Father Chrysostomos 
Date:   Sat Jan 24 17:14:58 2015 -0800

[perl #123652] eval {label:} crash

As of v5.13.6-130-geae48c8, the block consists solely of a
nextstate op.

The code in ck_eval that distinguished between eval-block and eval-
string was checking the type of the kid op (looking for lineseq or
stub) instead of simply checking the type of the op itself (entertry/
entereval).

The lexer was already making the distinction between the two but op.c
was ignoring the information provided by the lexer.

Usually

  entertry(unop)
kid

gets converted into

  leavetry
entertry(logop)
kid

with the entertry reallocated as a larger-sized op, but that was not
happening.  The peephole optimiser assumed it had happened, and fol-
lowed the cLOGOPo->op_other pointer, which is unrelated junk beyond
the end of the unop struct.  Hence the crash.
(cherry picked from commit 2f465e08eb39981706429873d24e3bcc18015bfb)

M   op.c
M   t/comp/parser.t
---

Summary of changes:
 op.c  | 2 +-
 pod/perldelta.pod | 3 ++-
 t/comp/parser.t   | 3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/op.c b/op.c
index 7337f23..7038526 100644
--- a/op.c
+++ b/op.c
@@ -8865,7 +8865,7 @@ Perl_ck_eval(pTHX_ OP *o)
SVOP * const kid = (SVOP*)cUNOPo->op_first;
assert(kid);
 
-   if (kid->op_type == OP_LINESEQ || kid->op_type == OP_STUB) {
+   if (o->op_type == OP_ENTERTRY) {
LOGOP *enter;
 #ifdef PERL_MAD
OP* const oldo = o;
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index bc359bb..fa7397b 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -338,7 +338,8 @@ files in F and F are best summarized in 
L.
 
 =item *
 
-XXX
+Perl 5.14.0 introduced a bug whereby C would crash.  This
+has been fixed.  [rt.perl.org #123652]
 
 =back
 
diff --git a/t/comp/parser.t b/t/comp/parser.t
index 584a473..755b5c5 100644
--- a/t/comp/parser.t
+++ b/t/comp/parser.t
@@ -502,6 +502,9 @@ like $@, "^No such class a1b at ", 'TYPE of my of for 
statement';
 # Used to crash [perl #123542]
 eval 's /${<>{}) //';
 
+# Also used to crash [perl #123652]
+eval{$1=eval{a:}};
+
 # Add new tests HERE (above this line)
 
 # bug #74022: Loop on characters in \p{OtherIDContinue}

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-94-g8969caa

2015-05-31 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/8969caac2a7a650cebae25bd59b6ecd64862fc7f?hp=623994dfae3cf30a83690082143af088ba5be89b>

- Log -
commit 8969caac2a7a650cebae25bd59b6ecd64862fc7f
Author: Tony Cook 
Date:   Mon Jun 1 16:02:41 2015 +1000

third vote for 2f465e08eb3
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index d983d48..f9254f3 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -42,7 +42,7 @@ This fix has a problem with it that needs to be solved before 
we can backport it
 
 
 
-
+
 
 
 

--
Perl5 Master Repository


[perl.git] branch tonyc/maint-5.20, created. v5.20.2-4-g1e674e8

2015-05-31 Thread Tony Cook
In perl.git, the branch tonyc/maint-5.20 has been created



at  1e674e8854590c911f4685ccfe93a70bcc91303c (commit)

- Log -
commit 1e674e8854590c911f4685ccfe93a70bcc91303c
Author: Jarkko Hietaniemi 
Date:   Fri Oct 17 21:54:06 2014 -0400

After Yosemite there's no /usr/include.

(The headers are under /Applications/Xcode.app/...)
(cherry picked from commit c4f300c9d46ec8ace48cff0477dd2866cfe10f79)
---

--
Perl5 Master Repository


[perl.git] branch tonyc/maint-5.20, deleted. v5.20.2-4-g1e674e8

2015-05-31 Thread Tony Cook
In perl.git, the branch tonyc/maint-5.20 has been deleted



   was  1e674e8854590c911f4685ccfe93a70bcc91303c

---
1e674e8854590c911f4685ccfe93a70bcc91303c After Yosemite there's no /usr/include.
---

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-4-g1e674e8

2015-05-31 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated



- Log -
commit 1e674e8854590c911f4685ccfe93a70bcc91303c
Author: Jarkko Hietaniemi 
Date:   Fri Oct 17 21:54:06 2014 -0400

After Yosemite there's no /usr/include.

(The headers are under /Applications/Xcode.app/...)
(cherry picked from commit c4f300c9d46ec8ace48cff0477dd2866cfe10f79)
---

Summary of changes:
 hints/darwin.sh | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/hints/darwin.sh b/hints/darwin.sh
index 276695a..e1f20af 100644
--- a/hints/darwin.sh
+++ b/hints/darwin.sh
@@ -123,9 +123,11 @@ ccflags="${ccflags} -fno-common -DPERL_DARWIN"
 # stdint.h defining INT32_MIN as (-INT32_MAX-1)
 # -- Edward Moy
 #
-case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" in
+if test -f /usr/include/stdint.h; then
+  case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" in
   *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;;
-esac
+  esac
+fi
 
 # Avoid Apple's cpp precompiler, better for extensions
 if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1 >/dev/null`" = "X" ]; then

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-96-gc9ae64f

2015-05-31 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/c9ae64f377ea4f04f423a4c8305a03e94ad5dfb6?hp=f54f2d34187e3dd9cdc8b23f4c8fa83c1b15916d>

- Log -
commit c9ae64f377ea4f04f423a4c8305a03e94ad5dfb6
Author: Tony Cook 
Date:   Mon Jun 1 16:54:03 2015 +1000

third vote for c4f300c9d46
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index 9264ebe..360ae36 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -58,7 +58,7 @@ This fix has a problem with it that needs to be solved before 
we can backport it
 
 Configure and hints Fixes (Consider whether these in particular would 
break binary compatibility)
 
-
+
 
 
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-12-ga33e5a9

2015-06-01 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit a33e5a9d6ea92122a718147da18425b38257c6f5
Author: Dagfinn Ilmari Mannsåker 
Date:   Fri Mar 20 17:49:12 2015 +

Handle fcntl(F_GETPIPE_SZ) failure in t/io/eintr.t

Even if the F_GETPIPE_SZ constant is defined, the fcntl() call can
fail (e.g. with EINVAL), so fall back to the default in that case.
---

Summary of changes:
 t/io/eintr.t | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/t/io/eintr.t b/t/io/eintr.t
index ca15232..1a81cdf 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@@ -102,10 +102,10 @@ ok(close($in), 'read/die: close status');
 # consistently failing. At exactly 0x10 it started passing
 # again. Now we're asking the kernel what the pipe buffer is, and if
 # that fails, hoping this number is bigger than any pipe buffer.
-my $surely_this_arbitrary_number_is_fine = eval {
+my $surely_this_arbitrary_number_is_fine = (eval {
 use Fcntl qw(F_GETPIPE_SZ);
-fcntl($out, F_GETPIPE_SZ, 0) + 1;
-} || 0x10;
+fcntl($out, F_GETPIPE_SZ, 0);
+} || 0xf) + 1;
 
 # close during print
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-13-g402582c

2015-06-01 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 402582ca0d74f5f2900a453deea6c71d170479eb
Author: Daniel Dragan 
Date:   Fri Mar 27 03:02:58 2015 -0400

remove obsolete VOL in S_parse_body

commit 312caa8e97 removed dJMPENV from perl_parse_body (former perl_parse)
when it created perl_parse_body and perl_parse kept the dJMPENV, but this
commit forgot to remove the VOL tag on var dosearch. Since the VOL is
only required when the function has a setjmp in it, and this function
doesn't have a setjmp in it anymore, remove the VOL tag.
---

Summary of changes:
 perl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/perl.c b/perl.c
index 086645b..af5ca51 100644
--- a/perl.c
+++ b/perl.c
@@ -1833,7 +1833,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 int argc = PL_origargc;
 char **argv = PL_origargv;
 const char *scriptname = NULL;
-VOL bool dosearch = FALSE;
+bool dosearch = FALSE;
 char c;
 bool doextract = FALSE;
 const char *cddir = NULL;

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-18-g669bc51

2015-06-01 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 669bc51035a1b1496b037803cb2be274eefacb6b
Author: Peter John Acklam 
Date:   Tue Apr 28 13:07:43 2015 +0200

Fix bug in Math::BigFloat's bceil() and bint() methods.

- When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
  returns -0. Negative zero is never used by Math::Big(Int|Float), and care 
has
  been taken to avoid it, so this bug is surely an oversight.

- This patch fixes CPAN RT #104012.

M   dist/Math-BigInt/lib/Math/BigFloat.pm
M   dist/Math-BigInt/t/bare_mbf.t
M   dist/Math-BigInt/t/bigfltpm.inc
M   dist/Math-BigInt/t/bigfltpm.t
M   dist/Math-BigInt/t/sub_mbf.t
M   dist/Math-BigInt/t/with_sub.t

commit 0d2463eb22fbb125f7263f45083116de1b5e18ab
Author: Peter John Acklam 
Date:   Fri Apr 24 15:13:33 2015 +0200

Speed up Math::BigFloat -> blog().

- Intermediate computations in blog() increases the number of digits
  significantly in some cases. Reduce the number of digits by rounding.
  However, keep some extra digits for remaining intermediate computations
  before the final rounding.

- This patch fixes CPAN RT #43924.

M   dist/Math-BigInt/lib/Math/BigFloat.pm

commit 8db2973476ea7c9589a9b6eaae6d61cc38818978
Author: Peter John Acklam 
Date:   Fri Apr 17 21:28:37 2015 +0200

Correct Math::BigInt -> new() for non-integer input.

The documentation in Math::BigInt says about input values that "Non-integer
values result in NaN." The actual behaviour doesn't comply with this.

- All input values in the range (-1,1) written as a decimal number, e.g.,
  -0.75 and 0.5, now return NaN, not 0.

- Input values with a large (absolute value) negative exponent, e.g.,
  1e-999, now return NaN. The former behaviour was to die with the
  message "Quantifier in {,} bigger than 32766 in regex; marked by ..."

- This patch fixes CPAN RT #61887 and CPAN RT #63038.

M   dist/Math-BigInt/lib/Math/BigInt.pm
M   dist/Math-BigInt/t/bigintpm.inc

commit 3f185657f2eb35da6f8934675daca4f33356c976
Author: Peter John Acklam 
Date:   Tue Apr 14 20:56:40 2015 +0200

Correct bdiv() and bmod() in Math::BigRat

- Added support for bdiv() in list context. Added corresponding tests.

- Changed bmod() so the result corresponds to Perl's % operator, as well as
  the second output argument of bdiv() in list contest. Modified tests
  correspondingly. Now the behaviour of bmod() is consistent between
  Math::BigInt, Math::BigFloat, and Math::BigRat.

- Clearer POD for the bdiv() and bmod() methods.

M   dist/Math-BigRat/lib/Math/BigRat.pm
M   dist/Math-BigRat/t/bigratpm.inc
M   dist/Math-BigRat/t/bigratpm.t

commit b4a10d33925c921a1cacc15a612f2afe75eb4492
Author: Peter John Acklam 
Date:   Tue Apr 14 15:20:14 2015 +0200

Correct bdiv() and bmod() in Math::BigInt and Math::BigFloat

- The POD documentation, as well as the comments in the code, say that
  $x->bdiv($y) in list context should return quotient $q and remainder $r
  so that $x = $q * $y + $r, and that the remainder (modulo) $r should
  correspond to Perl's % operator as well as the bmod() method. This has
  not been the actual behaviour. This patch fixes this.

- Clearer POD documentation for the bdiv() and bmod() methods.

- Changed test files to match corrected behaviour.

- Removed some duplicated tests.

M   dist/Math-BigInt/lib/Math/BigFloat.pm
M   dist/Math-BigInt/lib/Math/BigInt.pm
M   dist/Math-BigInt/lib/Math/BigInt/Calc.pm
M   dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
M   dist/Math-BigInt/t/bare_mbf.t
M   dist/Math-BigInt/t/bare_mbi.t
M   dist/Math-BigInt/t/bigfltpm.inc
M   dist/Math-BigInt/t/bigfltpm.t
M   dist/Math-BigInt/t/bigintpm.inc
M   dist/Math-BigInt/t/bigintpm.t
M   dist/Math-BigInt/t/inf_nan.t
M   dist/Math-BigInt/t/sub_mbf.t
M   dist/Math-BigInt/t/sub_mbi.t
M   dist/Math-BigInt/t/upgrade.inc
M   dist/Math-BigInt/t/upgrade.t
M   dist/Math-BigInt/t/with_sub.t
---

Summary of changes:
 dist/Math-BigInt/lib/Math/BigFloat.pm   | 176 ---
 dist/Math-BigInt/lib/Math/BigInt.pm | 321 +++-
 dist/Math-BigInt/lib/Math/BigInt/Calc.pm|   2 +-
 dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm |   2 +-
 dist/Math-BigInt/t/bare_mbf.t   |   2 +-
 dist/Math-BigInt/t/bare_mbi.t   |   2 +-
 dist/Math-BigInt/t/bigfltpm.inc |  20 +-
 dist/Math-BigInt/t/bigfltpm.t   |   2 +-
 dist/Math-BigInt/t/bigintpm.inc |  62 ++

[perl.git] branch blead, updated. v5.22.0-24-gb7b593d

2015-06-01 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/b7b593d8697a09eae6b17d6b39f66a0664b2bafb?hp=20a240dfe5d19d7b8af8e2dc4b7ac9ff560de86b>

- Log -
commit b7b593d8697a09eae6b17d6b39f66a0664b2bafb
Author: Tony Cook 
Date:   Tue Jun 2 11:42:22 2015 +1000

perldelta for b4a10d33, 3f185657, 8db29734, 0d2463eb, 669bc510
---

Summary of changes:
 pod/perldelta.pod | 16 +++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index be44b23..db19141 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -116,7 +116,21 @@ XXX
 
 =item *
 
-L has been upgraded from version A.xx to B.yy.
+L has been upgraded from version 1.9997 to 1.999701.
+
+Correct the behaviour of bdiv() and bmod() in list context. [perl #124300]
+
+Correct C<< Math::BigInt->new() >> for non-integer input.  [perl #124325]
+
+Speed up Math::BigFloat -> blog(). [perl #124382]
+
+Fix bug in Math::BigFloat's bceil() and bint() methods. [perl #124412]
+
+=item *
+
+L has been upgraded from version 0.2608 to 0.260801.
+
+Correct the behaviour of bdiv() and bmod() in list context. [perl #124303]
 
 =back
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-26-g31ada1f

2015-06-01 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 31ada1fbe5f99b57f19d888d2681aa42d8b87898
Author: Jim Cromie 
Date:   Sat Apr 4 12:49:27 2015 -0600

fix XXX on DEBUG_TOP_FLAG comment

DEBUG_TOP_FLAG is ORd into PL_debug when -D option is used, so that
"if (PL_debug)" can be used, w/o also enabling (or requiring) any
specific DEBUG_(.)_FLAGs.  It is used in Perl_runops_debug to
short-circuit several DEBUG_(.)_TESTs.

M   perl.h

commit 440568ac3ea48995957904d59ba142ce1ae72d90
Author: Jim Cromie 
Date:   Wed Dec 3 10:34:36 2014 -0700

perl_clone_using: Zero -DPERL_TRACE_OPS mem for sub-threads

perl_clone_using() is missing Zero init of PL_op_exec_cnt[].  This
causes sub-threads in threaded -DPERL_TRACE_OPS builds to spew
exceedingly large op-counts at destruct.  These counts would print %x
as "ABABABAB", clearly a mem-poison value.

M   sv.c
---

Summary of changes:
 perl.h | 3 +--
 sv.c   | 3 +++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/perl.h b/perl.h
index dcb184b..0f6f679 100644
--- a/perl.h
+++ b/perl.h
@@ -4007,8 +4007,7 @@ Gid_t getegid (void);
 #define DEBUG_MASK 0x07FFEFFF /* mask of all the standard flags */
 
 #define DEBUG_DB_RECURSE_FLAG  0x4000
-#define DEBUG_TOP_FLAG 0x8000 /* XXX what's this for ??? Signal
- that something was done? */
+#define DEBUG_TOP_FLAG 0x8000 /* -D was given --> PL_debug |= FLAG 
*/
 
 #  define DEBUG_p_TEST_ (PL_debug & DEBUG_p_FLAG)
 #  define DEBUG_s_TEST_ (PL_debug & DEBUG_s_FLAG)
diff --git a/sv.c b/sv.c
index 8440763..f2f86d0 100644
--- a/sv.c
+++ b/sv.c
@@ -14447,6 +14447,9 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
 #  ifdef DEBUG_LEAKING_SCALARS
 PL_sv_serial = (((UV)my_perl >> 2) & 0xfff) * 100;
 #  endif
+#  ifdef PERL_TRACE_OPS
+Zero(PL_op_exec_cnt, OP_max+2, UV);
+#  endif
 #else  /* !DEBUGGING */
 Zero(my_perl, 1, PerlInterpreter);
 #endif /* DEBUGGING */

--
Perl5 Master Repository


[perl.git] branch tonyc/chdir-nul, created. v5.22.0-27-g8acfce0

2015-06-02 Thread Tony Cook
In perl.git, the branch tonyc/chdir-nul has been created

<http://perl5.git.perl.org/perl.git/commitdiff/8acfce0771b8340dd0fc9301a5b8d975854b34ed?hp=>

at  8acfce0771b8340dd0fc9301a5b8d975854b34ed (commit)

- Log -
commit 8acfce0771b8340dd0fc9301a5b8d975854b34ed
Author: Tony Cook 
Date:   Wed Jun 3 10:28:23 2015 +1000

[perl #125305] chdir("") no longer behaves like chdir()
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-27-gc53481e

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit c53481e75d6e6f7e5c3c838b3545b07a959c67cc
Author: Niko Tyni 
Date:   Wed Apr 15 18:41:57 2015 +0300

Make t/run/locale.t survive missing locales masked by LC_ALL

If LC_ALL is set to a valid locale but another LC_* setting like LC_CTYPE
isn't, t/run/locale.t would fail because it explicitly unsets LC_ALL,
unmasking the problem underneath. All the other tests survive such
a scenario.

While this is clearly an error in the build environment, it's easy to make
the test more robust by first clearing all the locale relevant variables.

Bug-Debian: https://bugs.debian.org/782068
---

Summary of changes:
 t/run/locale.t | 11 +++
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/t/run/locale.t b/t/run/locale.t
index bd1a034..eb1202b 100644
--- a/t/run/locale.t
+++ b/t/run/locale.t
@@ -27,6 +27,9 @@ my @locales = eval { find_locales( [ &LC_ALL, &LC_CTYPE, 
&LC_NUMERIC ],
  ) };
 skip_all("no locales available") unless @locales;
 
+# reset the locale environment
+local @ENV{'LANG', (grep /^LC_/, keys %ENV)};
+
 plan tests => &last;
 
 my $non_C_locale;
@@ -58,9 +61,6 @@ EOF
 SKIP: {
 skip("Windows stores locale defaults in the registry", 1 )
 if $^O eq 
'MSWin32';
-local $ENV{LC_NUMERIC}; # So not taken as a default
-local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
-local $ENV{LANG};   # So not taken as a default
 fresh_perl_is("for (qw(@locales)) {\n" . <<'EOF',
 use POSIX qw(locale_h);
 use locale;
@@ -120,7 +120,6 @@ SKIP: {
 note("using the '$different' locale for LC_NUMERIC tests");
 {
local $ENV{LC_NUMERIC} = $different;
-   local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
 
fresh_perl_is(<<'EOF', "4.2", {},
 format STDOUT =
@@ -260,7 +259,6 @@ EOF
 
 {
local $ENV{LC_NUMERIC} = $different;
-   local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
fresh_perl_is(<<'EOF', "$difference "x4, {},
 use locale;
use POSIX qw(locale_h);
@@ -272,8 +270,6 @@ EOF
 
 {
local $ENV{LC_NUMERIC} = $different;
-   local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
-   local $ENV{LANG};   # so on Windows gets sys default locale
fresh_perl_is(<<'EOF', "$difference "x4, {},
 use locale;
use POSIX qw(locale_h);
@@ -348,7 +344,6 @@ EOF
 
 {
local $ENV{LC_NUMERIC} = $different;
-   local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
fresh_perl_is(<<"EOF",
use POSIX qw(locale_h);
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-28-g87d9837

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 87d9837674dfb6ff391470e04bc610a6c11f58f2
Author: Niko Tyni 
Date:   Sat Apr 18 18:59:07 2015 +0300

Fix quote() function to escape backslashes but not minus signs

The delimiter character isn't special in character square brackets,
and neither is the backslash. So '\-\' means just a range of backslash
to backslash, and the minus sign isn't included at all.

Substitution tested with GNU Solaris 9 sed programs.

Originally noticed by Kristoffer Grundstr?m.

Bug-Debian: https://bugs.debian.org/754057
---

Summary of changes:
 Makefile.SH | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile.SH b/Makefile.SH
index ee12747..8f4fbe0 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -5,7 +5,7 @@
 quote() {
case "$1" in
'') echo "''" ;;
-   *)  echo "$1" | sed 's/\([^a-zA-Z0-9.:_\-\/]\)/\\\1/g' ;;
+   *)  echo "$1" | sed 's/\([^a-zA-Z0-9.:_/-]\)/\\\1/g' ;;
esac
 }
 

--
Perl5 Master Repository


[perl.git] branch tonyc/bulk88-patches, created. v5.22.0-33-g22055af

2015-06-02 Thread Tony Cook
In perl.git, the branch tonyc/bulk88-patches has been created



at  22055af9e016af9a72e361e971f19d9ba3a83243 (commit)

- Log -
commit 22055af9e016af9a72e361e971f19d9ba3a83243
Author: Daniel Dragan 
Date:   Fri May 29 01:48:11 2015 -0400

feature.pm remove unused lexicals

M   lib/feature.pm
M   regen/feature.pl

commit 1c68cbf70f1d1b9aaa6a927943d4f1c075ce8d1c
Author: Daniel Dragan 
Date:   Thu May 21 17:06:27 2015 -0400

refactor win32_get_*lib() funcs to match rest of PERL_IMPLICIT_SYS API

The front end of PERL_IMPLICIT_SYS is PerlEnv_*/PerlSock_*/PerlProc_*/etc
macros. These are either macroed to C vtable calls when PERL_IMPLICIT_SYS
is on, or to the backend raw win32_*() functions when PERL_IMPLICIT_SYS
is off.

win32_get_*() were not following this convention. All this code looks like
a hack as if someone didn't have perms to edit perl.c, but they did have
perms to edit /win32, so they devise a scheme of hooking "unhooked"
win32_get_*() functions with win32.h macros for win32_get_*() to call the
Perl*() virutalization macros, and rename the original function bodies in
win32.c to g_win32_get_*() as to not make a macro loop.

Undo all of this hack by having perl.c call correct PerlEnv_* macro. This
refactoring will be useful for a future patch in #123658 to disable
win32 registry lookups.

M   perl.c
M   win32/config_H.ce
M   win32/config_H.gc
M   win32/config_H.vc
M   win32/config_h.PL
M   win32/perlhost.h
M   win32/win32.c
M   win32/win32.h
M   win32/wince.c

commit 269713a163ea7f178a8c2a31d3c0e5caf5cbf7ce
Author: Daniel Dragan 
Date:   Mon May 18 18:07:29 2015 -0400

let Visual C 2013 builds run on WinXP

-keep the idea of -subsystem being specified only in the master makefile
 and not in XS building makefiles

M   pod/perldelta.pod
M   win32/Makefile
M   win32/makefile.mk

commit 42c07143a292c5b71b7549c8dec6c2e7fb5c5f8d
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55

M   ext/POSIX/POSIX.xs
M   ext/POSIX/lib/POSIX.pm
M   ext/POSIX/typemap

commit fc6bde6fcee5810d400f6080fe2039469c4d2ad3
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
implemented to support each platform, just remove the 2 macros.

Since perl.h's fallback defaults for PERL_CALLCONV are very late in perl.h,
they need to be moved up before function declarations start in perlio.h
(perlio.h is included from iperlsys.h).

win32iop.h contains the "PerlIO" and SV" tokens, so perlio.h must be
included before win32iop.h is. Including perlio.h so early in win32.h,
causes PERL_CALLCONV not be defined since Win32 platform uses the
fallback in perl.h, since win32.h doesn't always define PERL_CALLCONV and
sometimes relies on the fallback. Since win32iop.h contains alot of
declarations, it belongs with other declarations such as those in proto.h
so move it from win32.h to perl.h.

the "free" token in struct regexp_engine conflicts with win32iop's
"#define free  

[perl.git] branch tonyc/bulk88-patches, deleted. v5.22.0-33-g22055af

2015-06-02 Thread Tony Cook
In perl.git, the branch tonyc/bulk88-patches has been deleted



   was  22055af9e016af9a72e361e971f19d9ba3a83243

---
22055af9e016af9a72e361e971f19d9ba3a83243 feature.pm remove unused lexicals
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-33-g22055af

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 22055af9e016af9a72e361e971f19d9ba3a83243
Author: Daniel Dragan 
Date:   Fri May 29 01:48:11 2015 -0400

feature.pm remove unused lexicals

M   lib/feature.pm
M   regen/feature.pl

commit 1c68cbf70f1d1b9aaa6a927943d4f1c075ce8d1c
Author: Daniel Dragan 
Date:   Thu May 21 17:06:27 2015 -0400

refactor win32_get_*lib() funcs to match rest of PERL_IMPLICIT_SYS API

The front end of PERL_IMPLICIT_SYS is PerlEnv_*/PerlSock_*/PerlProc_*/etc
macros. These are either macroed to C vtable calls when PERL_IMPLICIT_SYS
is on, or to the backend raw win32_*() functions when PERL_IMPLICIT_SYS
is off.

win32_get_*() were not following this convention. All this code looks like
a hack as if someone didn't have perms to edit perl.c, but they did have
perms to edit /win32, so they devise a scheme of hooking "unhooked"
win32_get_*() functions with win32.h macros for win32_get_*() to call the
Perl*() virutalization macros, and rename the original function bodies in
win32.c to g_win32_get_*() as to not make a macro loop.

Undo all of this hack by having perl.c call correct PerlEnv_* macro. This
refactoring will be useful for a future patch in #123658 to disable
win32 registry lookups.

M   perl.c
M   win32/config_H.ce
M   win32/config_H.gc
M   win32/config_H.vc
M   win32/config_h.PL
M   win32/perlhost.h
M   win32/win32.c
M   win32/win32.h
M   win32/wince.c

commit 269713a163ea7f178a8c2a31d3c0e5caf5cbf7ce
Author: Daniel Dragan 
Date:   Mon May 18 18:07:29 2015 -0400

let Visual C 2013 builds run on WinXP

-keep the idea of -subsystem being specified only in the master makefile
 and not in XS building makefiles

M   pod/perldelta.pod
M   win32/Makefile
M   win32/makefile.mk

commit 42c07143a292c5b71b7549c8dec6c2e7fb5c5f8d
Author: Daniel Dragan 
Date:   Sun May 10 23:45:58 2015 -0400

Perl_croak->croak and misc C optimizing in POSIX.pm

On threaded perls, this reduces the overhead of the rarely executed error
branches. croak does not have a context arg, Perl_croak does. This makes
the machine code the error branches slightly smaller.

update the manual xsub registration to use the new newXS_deffile added in
5.21, this saves 1 C stack arg and a hash lookup

factor out ST(1234) from T_OPAQUEPTROBJ typemap entry, the CC must emit
code to calculate ST() twice, due to sv_derived_from function possibly
rewriting the world

POSIX.dll on threaded VC 2003 32bit's .text dropped from 0x6c05 to 0x6b55

M   ext/POSIX/POSIX.xs
M   ext/POSIX/lib/POSIX.pm
M   ext/POSIX/typemap

commit fc6bde6fcee5810d400f6080fe2039469c4d2ad3
Author: Daniel Dragan 
Date:   Sun May 10 23:30:21 2015 -0400

remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros

These 2 macros were created for the Symbian port in commit
"Symbian port of Perl" to replace a direct "extern" token. I guess the
author was unaware of PERL_CALLCONV.

PERL_CALLCONV is the official macro to use. PERL_XS_EXPORT_C and
PERL_EXPORT_C have no usage on cpan grep except for modules with direct
copies of core headers. A defect of using PERL_EXPORT_C and
PERL_XS_EXPORT_C instead of PERL_CALLCONV is that win32/win32.h has no
knowledge of the 2 macros and doesn't set them, and os/os2ish.h doesn't
either. On Win32, since the unix defaults are used instead of Win32
specific "__declspec(dllimport)" token, XS modules use indirect function
stubs in each XS module placed by the CC to call into perl5**.dll instead
of directly calls the core C functions. I observed this in in XS-Typemap's
DLL. To simplify the API, and to decrease the amount of macros needing to
implemented to support each platform, just remove the 2 macros.

Since perl.h's fallback defaults for PERL_CALLCONV are very late in perl.h,
they need to be moved up before function declarations start in perlio.h
(perlio.h is included from iperlsys.h).

win32iop.h contains the "PerlIO" and SV" tokens, so perlio.h must be
included before win32iop.h is. Including perlio.h so early in win32.h,
causes PERL_CALLCONV not be defined since Win32 platform uses the
fallback in perl.h, since win32.h doesn't always define PERL_CALLCONV and
sometimes relies on the fallback. Since win32iop.h contains alot of
declarations, it belongs with other declarations such as those in proto.h
so move it from win32.h to perl.h.

the "free" token in struct regexp_engine conflicts with win32iop's
"#define free   win32_free" so rename that member.

M   handy.h
M   p

[perl.git] branch blead, updated. v5.22.0-34-g0b1fcdc

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 0b1fcdcc0341691e2336d33765522b5215d2f8a2
Author: Shlomi Fish 
Date:   Mon May 25 20:56:23 2015 +0300

Fix RT#71678 (-d a command after exit) with a test.

Credits to Heiko Eissfeldt for the reported bug, the test program and a
proposed fix.
---

Summary of changes:
 MANIFEST |  1 +
 lib/perl5db.pl   |  5 -
 lib/perl5db.t| 27 ++-
 lib/perl5db/t/test-a-statement-2 | 10 ++
 4 files changed, 41 insertions(+), 2 deletions(-)
 create mode 100644 lib/perl5db/t/test-a-statement-2

diff --git a/MANIFEST b/MANIFEST
index 2586c3a..289e9f2 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -4230,6 +4230,7 @@ lib/perl5db/t/source-cmd-test.perldb  Tests 
for the Perl debugger
 lib/perl5db/t/symbol-table-bug Tests for the Perl debugger
 lib/perl5db/t/taintTests for the Perl debugger
 lib/perl5db/t/test-a-statement-1   Tests for the Perl debugger
+lib/perl5db/t/test-a-statement-2   Tests for the Perl debugger
 lib/perl5db/t/test-dieLevel-option-1   Tests for the Perl debugger
 lib/perl5db/t/test-frame-option-1  Tests for the Perl debugger
 lib/perl5db/t/test-l-statement-1   Tests for the Perl debugger
diff --git a/lib/perl5db.pl b/lib/perl5db.pl
index 7e7194e..0d240ae 100644
--- a/lib/perl5db.pl
+++ b/lib/perl5db.pl
@@ -528,7 +528,7 @@ BEGIN {
 # Debugger for Perl 5.00x; perl5db.pl patch level:
 use vars qw($VERSION $header);
 
-$VERSION = '1.49';
+$VERSION = '1.49_01';
 
 $header = "perl5db.pl version $VERSION";
 
@@ -3319,6 +3319,9 @@ B, B or B to get additional info.
 EOP
 
 # Set the DB::eval context appropriately.
+# At program termination disable any user actions.
+$DB::action = undef;
+
 $DB::package = 'main';
 $DB::usercontext = DB::_calc_usercontext($DB::package);
 } ## end elsif ($package eq 'DB::fake')
diff --git a/lib/perl5db.t b/lib/perl5db.t
index e93aee0..98a3686 100644
--- a/lib/perl5db.t
+++ b/lib/perl5db.t
@@ -29,7 +29,7 @@ BEGIN {
 $ENV{PERL_RL} = 'Perl'; # Suppress system Term::ReadLine::Gnu
 }
 
-plan(120);
+plan(121);
 
 my $rc_filename = '.perldb';
 
@@ -2774,6 +2774,31 @@ SKIP:
 );
 }
 
+# [perl #71678] debugger bug in evaluation of user actions ('a' command)
+# Still evaluated after the script finishes.
+{
+my $wrapper = DebugWrap->new(
+{
+cmds =>
+[
+q#a 9 print " \$arg = $arg\n"#,
+'c 9',
+'s',
+'q',
+],
+prog => '../lib/perl5db/t/test-a-statement-2',
+switches => [ '-dw', ],
+stderr => 1,
+}
+);
+
+$wrapper->contents_unlike(qr/
+Use\ of\ uninitialized\ value\ \$arg\ in\ concatenation\ [\S ]+\ or\ 
string\ at
+/msx,
+'Test that the a command does not emit warnings on program exit.',
+);
+}
+
 END {
 1 while unlink ($rc_filename, $out_fn);
 }
diff --git a/lib/perl5db/t/test-a-statement-2 b/lib/perl5db/t/test-a-statement-2
new file mode 100644
index 000..0a3d304
--- /dev/null
+++ b/lib/perl5db/t/test-a-statement-2
@@ -0,0 +1,10 @@
+use strict; use warnings;
+
+greet('Hello');
+
+sub greet
+{
+my $arg = shift;
+print "$arg\n";
+return;
+}

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-35-gef5cf9f

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/ef5cf9f5e65d5aeb89a77dcc06c7367c6926f014?hp=0b1fcdcc0341691e2336d33765522b5215d2f8a2>

- Log -
commit ef5cf9f5e65d5aeb89a77dcc06c7367c6926f014
Author: Tony Cook 
Date:   Wed Jun 3 14:56:05 2015 +1000

perldelta for 0b1fcdcc0341
---

Summary of changes:
 pod/perldelta.pod | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 11acb92..890ad69 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -132,6 +132,13 @@ L has been upgraded from version 0.2608 to 
0.260801.
 
 Correct the behaviour of bdiv() and bmod() in list context. [perl #124303]
 
+=item *
+
+L has been upgraded from version 1.49 to 1.49_01.
+
+User actions are no longer evaluated after the script under the
+debugger finishes.  [perl #71678]
+
 =back
 
 =head2 Removed Modules and Pragmata

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-36-g0c9375a

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/0c9375a5ca42fadd4d631bf07a8dd4d8f7814d34?hp=ef5cf9f5e65d5aeb89a77dcc06c7367c6926f014>

- Log -
commit 0c9375a5ca42fadd4d631bf07a8dd4d8f7814d34
Author: Tony Cook 
Date:   Tue May 26 16:03:31 2015 +1000

[perl #125115] don't create file GLOB(...) when dupping a closed handle
---

Summary of changes:
 doio.c  |  7 +--
 t/io/open.t | 10 +-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/doio.c b/doio.c
index 5f29a6b..2630252 100644
--- a/doio.c
+++ b/doio.c
@@ -438,8 +438,11 @@ Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len,
else if (IoTYPE(thatio) == IoTYPE_SOCKET)
IoTYPE(io) = IoTYPE_SOCKET;
}
-   else
-   wanted_fd = -1;
+else {
+SETERRNO(EBADF, RMS_IFI);
+fp = NULL;
+goto say_false;
+}
}
if (!num_svs)
type = NULL;
diff --git a/t/io/open.t b/t/io/open.t
index 3817bdd..cffef14 100644
--- a/t/io/open.t
+++ b/t/io/open.t
@@ -10,7 +10,7 @@ $|  = 1;
 use warnings;
 use Config;
 
-plan tests => 153;
+plan tests => 156;
 
 my $Perl = which_perl();
 
@@ -476,6 +476,14 @@ pass("no crash when open autovivifies glob in freed 
package");
 is((stat $temp)[9], $final_mtime, "nothing changes its mtime");
 }
 
+# [perl #125115] Dup to closed filehandle creates file named GLOB(0x...)
+{
+ok(open(my $fh, "<", "TEST"), "open a handle");
+ok(close $fh, "and close it again");
+ok(!open(my $fh2,  ">&", $fh), "should fail to dup the closed handle");
+# clean up if we failed
+unlink "$fh";
+}
 
 package OverloadTest;
 use overload '""' => sub { ${$_[0]} };

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-37-g21b14bc

2015-06-02 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/21b14bca672ece2f29f2229a8451306f17c05878?hp=0c9375a5ca42fadd4d631bf07a8dd4d8f7814d34>

- Log -
commit 21b14bca672ece2f29f2229a8451306f17c05878
Author: Tony Cook 
Date:   Wed Jun 3 15:29:12 2015 +1000

perldelta for 0c9375a5ca42
---

Summary of changes:
 pod/perldelta.pod | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 890ad69..c741dd0 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -363,7 +363,8 @@ files in F and F are best summarized in 
L.
 
 =item *
 
-XXX
+Duplicating a closed file handle for write no longer creates a
+filename of the form F.  [perl #125115]
 
 =back
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-69-g05b045e

2015-06-07 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/05b045ec4cc0282399dac384a87094bbd6bdaf24?hp=ec610f8a9f2738d8a59ee84a3ec7ed858addea85>

- Log -
commit 05b045ec4cc0282399dac384a87094bbd6bdaf24
Merge: ec610f8 16d5aac
Author: Tony Cook 
Date:   Mon Jun 8 12:14:37 2015 +1000

Add win32/GNUmakefile to build with GNU Make on Win32

commit 16d5aac12f61ea3658d20dd0963c60867513408e
Author: Tony Cook 
Date:   Mon Jun 8 12:13:54 2015 +1000

update to 5.23.0 and update with changes from the other makefiles

M   win32/GNUmakefile

commit 342634f3c8ce34b27ed1ba93ae7eb1c52ca438b2
Author: kmx 
Date:   Tue May 26 11:53:50 2015 +1000

kmx's original GNUmakefile

M   MANIFEST
A   win32/GNUmakefile
---

Summary of changes:
 MANIFEST   |   1 +
 win32/{makefile.mk => GNUmakefile} | 993 -
 2 files changed, 320 insertions(+), 674 deletions(-)
 copy win32/{makefile.mk => GNUmakefile} (63%)

diff --git a/MANIFEST b/MANIFEST
index 12d3dfb..64529d9 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -5602,6 +5602,7 @@ win32/create_perllibst_h.pl   creates perllibst.h 
file for inclusion from perllib.
 win32/distclean.batRemove _ALL_ files not listed here in MANIFEST
 win32/fcrypt.c crypt() implementation
 win32/FindExt.pm   Scan for extensions
+win32/GNUmakefile  Win32 makefile for GNU make
 win32/include/arpa/inet.h  Win32 port
 win32/include/dirent.h Win32 port
 win32/include/netdb.h  Win32 port
diff --git a/win32/makefile.mk b/win32/GNUmakefile
similarity index 63%
copy from win32/makefile.mk
copy to win32/GNUmakefile
index 88707eb..27229a8 100644
--- a/win32/makefile.mk
+++ b/win32/GNUmakefile
@@ -1,39 +1,61 @@
 #
-# Makefile to build perl on Windows using DMAKE.
-# Supported compilers:
-#  Microsoft Visual C++ 6.0 or later
-#  MinGW with gcc-3.4.5 or later
-#  Windows SDK 64-bit compiler and tools
+# Makefile to build perl on Windows using GNU make + gcc + MinGW.
 #
 # This is set up to build a perl.exe that runs off a shared library
 # (perl523.dll).  Also makes individual DLLs for the XS extensions.
 #
+# The easiest way to customize the build process is to use parameters like 
this:
+#
+# c:\dev\perlsrc\win32> gmake INST_TOP=c:\sw\perl CCHOME=c:\sw\mingw 
USE_64_BIT_INT=define
+
 
 ##
 ## Make sure you read README.win32 *before* you mess with anything here!
 ##
 
 #
-# Import everything from the environment like NMAKE does.
+# We set this to point to cmd.exe in case GNU Make finds sh.exe in the path.
+# Comment this line out if necessary
 #
-.IMPORT : .EVERYTHING
+SHELL := cmd.exe
+
+# define whether you want to use native gcc compiler or cross-compiler
+# possible values: gcc
+#  i686-w64-mingw32-gcc
+#  x86_64-w64-mingw32-gcc
+GCCBIN := gcc
+
+ifeq ($(GCCBIN),x86_64-w64-mingw32-gcc)
+GCCCROSS := x86_64-w64-mingw32
+endif
+ifeq ($(GCCBIN),i686-w64-mingw32-gcc)
+GCCCROSS := i686-w64-mingw32
+endif
+
+GCCTARGET := $(shell $(GCCBIN) -dumpmachine)
+GCCVER1   := $(shell for /f "delims=. tokens=1,2,3" %%i in ('gcc 
-dumpversion') do echo %%i)
+GCCVER2   := $(shell for /f "delims=. tokens=1,2,3" %%i in ('gcc 
-dumpversion') do echo %%j)
+GCCVER3   := $(shell for /f "delims=. tokens=1,2,3" %%i in ('gcc 
-dumpversion') do echo %%k)
+
+ifeq ($(GCCTARGET),x86_64-w64-mingw32)
+WIN64 := define
+ARCHITECTURE := x64
+endif
+ifeq ($(GCCTARGET),i686-w64-mingw32)
+WIN64 := undef
+ARCHITECTURE := x86
+endif
 
 ##
 ## Build configuration.  Edit the values below to suit your needs.
 ##
 
 #
-# Set these to wherever you want "dmake install" to put your
+# Set these to wherever you want "gmake install" to put your
 # newly built perl.
 #
-INST_DRV   *= c:
-INST_TOP   *= $(INST_DRV)\perl
-
-#
-# Uncomment if you want to build a 32-bit Perl using a 32-bit compiler
-# on a 64-bit version of Windows.
-#
-#WIN64 *= undef
+INST_DRV := c:
+INST_TOP := $(INST_DRV)\perl
 
 #
 # Comment this out if you DON'T want your perl installation to be versioned.
@@ -44,7 +66,7 @@ INST_TOP  *= $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER  *= \5.23.0
+#INST_VER  := \5.23.0
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -55,7 +77,7 @@ INST_TOP  *= $(INST_DRV)\perl
 # the same location.  Commenting it out gives you a simpler
 # installation that is easier to understand for beginners.
 #
-#INST_ARCH *= \$(ARCHNAME)
+#INST_ARCH := \$(ARCHNAME)
 
 #
 # Uncomment this if you want perl to run
@@ -63,35 +85,44 @@ INST_TOP*

[perl.git] branch blead, updated. v5.22.0-71-g463e63a

2015-06-07 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/463e63a457e71042ac8b1035b535e164839260ed?hp=bc3d2941ce84d6170cbcb0fcdfbde5e43ffebb29>

- Log -
commit 463e63a457e71042ac8b1035b535e164839260ed
Author: Tony Cook 
Date:   Mon Jun 8 12:29:46 2015 +1000

perldelta for 342634f3c8ce, 16d5aac12f61
---

Summary of changes:
 pod/perldelta.pod | 4 
 1 file changed, 4 insertions(+)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 3dea0cf..a3cf827 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -364,6 +364,10 @@ L section.
 Visual C++ 2013 builds will now execute on XP and higher. Previously they would
 only execute on Vista and higher.
 
+=item *
+
+You can now build perl with GNU Make and GCC.  [perl #123440]
+
 =back
 
 =back

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-87-g46b27d2

2015-06-08 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 46b27d2f2c37f40dde845f9b4743975c69f2cc27
Author: Lukas Mai 
Date:   Thu Feb 12 13:29:29 2015 +0100

don't fatalize warnings during unwinding (#123398)
---

Summary of changes:
 util.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/util.c b/util.c
index 8cf62f5..bc2af99 100644
--- a/util.c
+++ b/util.c
@@ -1938,7 +1938,10 @@ Perl_vwarner(pTHX_ U32  err, const char* pat, va_list* 
args)
 {
 dVAR;
 PERL_ARGS_ASSERT_VWARNER;
-if (PL_warnhook == PERL_WARNHOOK_FATAL || ckDEAD(err)) {
+if (
+(PL_warnhook == PERL_WARNHOOK_FATAL || ckDEAD(err)) &&
+!(PL_in_eval & EVAL_KEEPERR)
+) {
SV * const msv = vmess(pat, args);
 
if (PL_parser && PL_parser->error_count) {

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-88-g302ef3d

2015-06-08 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/302ef3d4cab93d9ddf2bebde7e0952908332b8b2?hp=46b27d2f2c37f40dde845f9b4743975c69f2cc27>

- Log -
commit 302ef3d4cab93d9ddf2bebde7e0952908332b8b2
Author: Tony Cook 
Date:   Tue Jun 9 12:19:23 2015 +1000

perldelta for 46b27d2f2c37
---

Summary of changes:
 pod/perldelta.pod | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index a3cf827..d961bb0 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -402,6 +402,12 @@ files in F and F are best summarized in 
L.
 Duplicating a closed file handle for write no longer creates a
 filename of the form F.  [perl #125115]
 
+=item *
+
+Warning fatality is now ignored when rewinding the stack.  This
+prevents infinite recursion when the now fatal error also causes
+rewinding of the stack.  [perl #123398]
+
 =back
 
 =head1 Known Problems

--
Perl5 Master Repository


[perl.git] branch tonyc/truncate-win32, created. v5.22.0-86-g881ba53

2015-06-09 Thread Tony Cook
In perl.git, the branch tonyc/truncate-win32 has been created

<http://perl5.git.perl.org/perl.git/commitdiff/881ba53aad209d17da3227741acd8a43c8b45b90?hp=>

at  881ba53aad209d17da3227741acd8a43c8b45b90 (commit)

- Log -
commit 881ba53aad209d17da3227741acd8a43c8b45b90
Author: Tony Cook 
Date:   Wed Jun 10 09:48:09 2015 +1000

[perl #125347] allow truncate to work on large files on Win32

truncate($filename, $size) was using a simple PerlIO_open() to open
the file, which on Win32 defaults to a text mode open.

Unfortunately, on a text mode open(), MSVCRT attempts to seek to the
end of file using only 32-bit offsets, which fails.

For good measure, add in O_LARGEFILE if it's available, which may
prevent similar issues on other platforms.

Also, remove the erroneous SETERRNO() added by 375ed12a to the open
failure branch, PerlLIO_open() should already set errno on failure, so
we get sane error messages when the open fails.
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-92-g4221d7c

2015-06-09 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 4221d7c5eb104778a9335f0f89b12f122d99e425
Author: Reini Urban 
Date:   Thu Apr 23 13:04:05 2015 +0200

add warnings 7fatal testcase for #123398
---

Summary of changes:
 t/lib/warnings/7fatal | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/t/lib/warnings/7fatal b/t/lib/warnings/7fatal
index 87f3fd0..40c649f 100644
--- a/t/lib/warnings/7fatal
+++ b/t/lib/warnings/7fatal
@@ -548,3 +548,21 @@ syntax error at - line 4, near "1 {"
 "my" variable $x masks earlier declaration in same statement at - line 6.
 syntax error at - line 7, near "}"
 Execution of - aborted due to compilation errors.
+
+
+# fatal warnings in DESTROY should be made non-fatal [perl #123398]
+# This test will blow up your memory with SEGV without the patch
+package Foo;
+use strict; use utf8; use warnings FATAL => 'all';
+sub new {
+return bless{ 'field' => undef }, 'Foo';
+}
+sub DESTROY {
+my $self = shift;
+$self->{'field'}->missing_method;
+}
+package main;
+my $foo = new Foo;
+undef($foo);
+EXPECT
+   (in cleanup) Can't call method "missing_method" on an undefined value 
at - line 11.

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-93-gd484df6

2015-06-09 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/d484df69ed26120321cdca989748cd4636b276bb?hp=4221d7c5eb104778a9335f0f89b12f122d99e425>

- Log -
commit d484df69ed26120321cdca989748cd4636b276bb
Author: Tony Cook 
Date:   Wed Jun 10 09:48:09 2015 +1000

[perl #125347] allow truncate to work on large files on Win32

truncate($filename, $size) was using a simple PerlIO_open() to open
the file, which on Win32 defaults to a text mode open.

Unfortunately, on a text mode open(), MSVCRT attempts to seek to the
end of file using only 32-bit offsets, which fails.

For good measure, add in O_LARGEFILE if it's available, which may
prevent similar issues on other platforms.

Also, remove the erroneous SETERRNO() added by 375ed12a to the open
failure branch, PerlLIO_open() should already set errno on failure, so
we get sane error messages when the open fails.
---

Summary of changes:
 pp_sys.c | 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/pp_sys.c b/pp_sys.c
index 7c20f52..38537f3 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -2304,10 +2304,22 @@ PP(pp_truncate)
result = 0;
 #else
{
-   const int tmpfd = PerlLIO_open(name, O_RDWR);
+int mode = O_RDWR;
+int tmpfd;
+
+#if defined(USE_64_BIT_RAWIO) && defined(O_LARGEFILE)
+mode |= O_LARGEFILE;   /* Transparently largefiley. */
+#endif
+#ifdef O_BINARY
+/* On open(), the Win32 CRT tries to seek around text
+ * files using 32-bit offsets, which causes the open()
+ * to fail on large files, so open in binary mode.
+ */
+mode |= O_BINARY;
+#endif
+tmpfd = PerlLIO_open(name, mode);
 
if (tmpfd < 0) {
-SETERRNO(EBADF,RMS_IFI);
result = 0;
} else {
if (my_chsize(tmpfd, len) < 0)

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-94-g9c0328a

2015-06-09 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/9c0328ac64af376c5d5fb4024a72e2ba623363b0?hp=d484df69ed26120321cdca989748cd4636b276bb>

- Log -
commit 9c0328ac64af376c5d5fb4024a72e2ba623363b0
Author: Tony Cook 
Date:   Wed Jun 10 10:23:19 2015 +1000

perldelta for d484df69ed26
---

Summary of changes:
 pod/perldelta.pod | 5 +
 1 file changed, 5 insertions(+)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index d961bb0..11983ba 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -368,6 +368,11 @@ only execute on Vista and higher.
 
 You can now build perl with GNU Make and GCC.  [perl #123440]
 
+=item *
+
+C now works for files over 4GB in size.
+[perl #125347]
+
 =back
 
 =back

--
Perl5 Master Repository


[perl.git] branch tonyc/truncate-win32, deleted. v5.22.0-86-g881ba53

2015-06-09 Thread Tony Cook
In perl.git, the branch tonyc/truncate-win32 has been deleted



   was  881ba53aad209d17da3227741acd8a43c8b45b90

---
881ba53aad209d17da3227741acd8a43c8b45b90 [perl #125347] allow truncate to work 
on large files on Win32
---

--
Perl5 Master Repository


[perl.git] branch smoke-me/tonyc/dynaloader, created. v5.22.0-98-g1fe9758

2015-06-09 Thread Tony Cook
In perl.git, the branch smoke-me/tonyc/dynaloader has been created



at  1fe97583ab8fbc6e69e63f459bc3a1ed0db47e50 (commit)

- Log -
commit 1fe97583ab8fbc6e69e63f459bc3a1ed0db47e50
Author: Reini Urban 
Date:   Sat Mar 14 00:31:41 2015 +0100

XSLoader 0.21: use dl_find_symbol 3rd optional argument

to skip the worthless dl_last_error message

M   dist/XSLoader/XSLoader_pm.PL

commit c8e341beff5d55217cdf47e2e707b243f63f1398
Author: Reini Urban 
Date:   Wed Mar 11 18:11:53 2015 +0100

DynaLoader: extend t/DynaLoader.t to be run from basedir also

This simplifies testing from core.

M   ext/DynaLoader/t/DynaLoader.t

commit 07fd062dc0705f5ab2cc7a36e9be7352fec81b15
Author: Reini Urban 
Date:   Sat Mar 14 10:04:53 2015 +0100

DynaLoader/dl_*.xs: Define all PERL_IN_DL_*_XS markers

On Symbian harmonize with the rest.

M   ext/DynaLoader/dl_aix.xs
M   ext/DynaLoader/dl_dllload.xs
M   ext/DynaLoader/dl_dyld.xs
M   ext/DynaLoader/dl_freemint.xs
M   ext/DynaLoader/dl_none.xs
M   ext/DynaLoader/dl_symbian.xs
M   ext/DynaLoader/dl_vms.xs
M   ext/DynaLoader/dl_win32.xs
M   symbian/symbian_proto.h

commit e8c6b0c92372c8ab3163d79fa7808ea767ca0790
Author: Reini Urban 
Date:   Thu Mar 12 23:45:51 2015 +0100

DynaLoader 1.33 dl_find_symbol add 3rd optional argument

On Darwin DynaLoader::bootstrap tries dl_find_symbol first with libhandle 0,
to see if the shlib with the symbol is already loaded, e.g. with libc.
We do not want to store the dl_last_error information for this mostly
failing probe, so add an optional ign_err=0 argument.
Similar for dl_find_symbol_anywhere, which is expected to fail for all 
librefs.

Also support dl_last_error on symbian, as on all other platforms.

M   ext/DynaLoader/DynaLoader_pm.PL
M   ext/DynaLoader/dl_aix.xs
M   ext/DynaLoader/dl_dllload.xs
M   ext/DynaLoader/dl_dlopen.xs
M   ext/DynaLoader/dl_dyld.xs
M   ext/DynaLoader/dl_freemint.xs
M   ext/DynaLoader/dl_hpux.xs
M   ext/DynaLoader/dl_symbian.xs
M   ext/DynaLoader/dl_vms.xs
M   ext/DynaLoader/dl_win32.xs
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-96-g4b523e7

2015-06-10 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 4b523e790cc5594fb19013dc23adfb6a5b34f824
Author: Daniel Dragan 
Date:   Sun Jul 13 08:20:31 2014 -0400

clean up sv_isobject usage

-previous usage proves getmagic is unnecessary or ignored or already called
  S_do_smartmatch
  Perl_sv_does_sv

-in pp_dbmopen dont call sv_isobject twice in a row on the same SV in 1
 permutation
---

Summary of changes:
 pp_ctl.c| 4 ++--
 pp_sys.c| 6 --
 universal.c | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/pp_ctl.c b/pp_ctl.c
index 335fb21..6490140 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -4599,11 +4599,11 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, 
const bool copied)
RETPUSHYES;
 }
 
-if (sv_isobject(e) && (SvTYPE(SvRV(e)) != SVt_REGEXP)) {
+if (SvROK(e) && SvOBJECT(SvRV(e)) && (SvTYPE(SvRV(e)) != SVt_REGEXP)) {
DEBUG_M(Perl_deb(aTHX_ "applying rule Any-Object\n"));
Perl_croak(aTHX_ "Smart matching a non-overloaded object breaks 
encapsulation");
 }
-if (sv_isobject(d) && (SvTYPE(SvRV(d)) != SVt_REGEXP))
+if (SvROK(d) && SvOBJECT(SvRV(d)) && (SvTYPE(SvRV(d)) != SVt_REGEXP))
object_on_left = TRUE;
 
 /* ~~ sub */
diff --git a/pp_sys.c b/pp_sys.c
index 38537f3..beca14a 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1082,9 +1082,11 @@ PP(pp_dbmopen)
PUTBACK;
call_sv(MUTABLE_SV(GvCV(gv)), G_SCALAR);
SPAGAIN;
+if (sv_isobject(TOPs))
+goto retie;
 }
-
-if (sv_isobject(TOPs)) {
+else {
+retie:
sv_unmagic(MUTABLE_SV(hv), PERL_MAGIC_tied);
sv_magic(MUTABLE_SV(hv), TOPs, PERL_MAGIC_tied, NULL, 0);
 }
diff --git a/universal.c b/universal.c
index 4b650c5..58b010b 100644
--- a/universal.c
+++ b/universal.c
@@ -205,7 +205,7 @@ Perl_sv_does_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
return FALSE;
 }
 
-if (sv_isobject(sv)) {
+if (SvROK(sv) && SvOBJECT(SvRV(sv))) {
classname = sv_ref(NULL,SvRV(sv),TRUE);
 } else {
classname = sv;

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-122-gc986e4c

2015-06-14 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit c986e4cee1d3feb3c0738d98024b577749621d95
Author: Dagfinn Ilmari Mannsåker 
Date:   Sun Jun 14 22:48:40 2015 +0100

Add empty expresion to cpan/.dir-locals.el

Without it, loading any file under the directory gives the message
"Error reading dir-locals: (end-of-file)", which is not fatal, but
annoying.
---

Summary of changes:
 cpan/.dir-locals.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/cpan/.dir-locals.el b/cpan/.dir-locals.el
index 13109d1..8690ac6 100644
--- a/cpan/.dir-locals.el
+++ b/cpan/.dir-locals.el
@@ -1,2 +1,3 @@
 ;; Empty file to avoid imposing the defaults from the parent directory
 ;; on code imported from CPAN
+()

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-124-gcb0fc6b

2015-06-14 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/cb0fc6b21ad6e937bb281f2f76612c49583a012d?hp=c986e4cee1d3feb3c0738d98024b577749621d95>

- Log -
commit cb0fc6b21ad6e937bb281f2f76612c49583a012d
Author: Tony Cook 
Date:   Mon Jun 15 11:19:21 2015 +1000

bump $UNIVERSAL::VERSION

M   lib/UNIVERSAL.pm

commit 1b3ab82cb4bc033c211d9d975557a7a45521f9d5
Author: Karen Etheridge 
Date:   Sun Jun 14 16:24:25 2015 -0700

UNIVERSAL no longer exports anything

so switch to documenting something that would still work

M   lib/UNIVERSAL.pm
---

Summary of changes:
 lib/UNIVERSAL.pm | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/lib/UNIVERSAL.pm b/lib/UNIVERSAL.pm
index 2f16cb5..12800fb 100644
--- a/lib/UNIVERSAL.pm
+++ b/lib/UNIVERSAL.pm
@@ -1,6 +1,6 @@
 package UNIVERSAL;
 
-our $VERSION = '1.12';
+our $VERSION = '1.13';
 
 # UNIVERSAL should not contain any extra subs/methods beyond those
 # that it exists to define. The existence of import() below is a historical
@@ -186,10 +186,8 @@ None.
 Previous versions of this documentation suggested using C as
 a function to determine the type of a reference:
 
-  use UNIVERSAL 'isa';
-
-  $yes = isa $h, "HASH";
-  $yes = isa "Foo", "Bar";
+  $yes = UNIVERSAL::isa($h, "HASH");
+  $yes = UNIVERSAL::isa("Foo", "Bar");
 
 The problem is that this code would I call an overridden C method 
in
 any class.  Instead, use C from L for the first case:

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-125-g4b95171

2015-06-14 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/4b95171127a01794922992bc572a52c26ca4ed4c?hp=cb0fc6b21ad6e937bb281f2f76612c49583a012d>

- Log -
commit 4b95171127a01794922992bc572a52c26ca4ed4c
Author: Tony Cook 
Date:   Mon Jun 15 11:35:55 2015 +1000

perldelta for 1b3ab82cb4bc
---

Summary of changes:
 pod/perldelta.pod | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 11983ba..693284d 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -169,6 +169,13 @@ debugger finishes.  [perl #71678]
 
 =item *
 
+L has been upgraded from version 1.12 to 1.13.
+
+Don't import from L in its documentation, it no longer
+exports anything.  [perl #125410]
+
+=item *
+
 The Scalar-List-Utils distribution has been upgraded from version 1.41 to 1.42.
 
 =back

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-127-g23e51b9

2015-06-15 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/23e51b95a8db32227346e84c1c77148c98aba157?hp=4b95171127a01794922992bc572a52c26ca4ed4c>

- Log -
commit 23e51b95a8db32227346e84c1c77148c98aba157
Author: Tony Cook 
Date:   Tue Jun 16 10:17:47 2015 +1000

add Martijn Lievaart as a perl author

M   AUTHORS

commit 065d96f721ebbc64a2ed3b79ad2cfd53f84f418b
Author: Martijn Lievaart 
Date:   Mon Jun 15 17:04:56 2015 +1000

Avoid gcc warning "‘start’ may be used uninitialized in this function"

M   op.c
---

Summary of changes:
 AUTHORS |  1 +
 op.c| 24 +++-
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index a164e7c..779cd68 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -784,6 +784,7 @@ Marko Asplund   

 Marnix van Ammers  
 Martien Verbruggen 
 Martijn Koster 
+Martijn Lievaart   
 Martin Hasch   
 Martin Husemann
 Martin J. Bligh
diff --git a/op.c b/op.c
index 76eee2b..2c2c520 100644
--- a/op.c
+++ b/op.c
@@ -8142,14 +8142,13 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP 
*attrs, OP *block)
   : newUNOP(OP_LEAVESUB, 0, scalarseq(block));
start = LINKLIST(block);
block->op_next = 0;
+if (ps && !*ps && !attrs && !CvLVALUE(compcv))
+const_sv = S_op_const_sv(aTHX_ start, compcv, FALSE);
+else
+const_sv = NULL;
 }
-
-if (!block || !ps || *ps || attrs
-   || CvLVALUE(compcv)
-   )
-   const_sv = NULL;
 else
-   const_sv = S_op_const_sv(aTHX_ start, compcv, FALSE);
+const_sv = NULL;
 
 if (cv) {
 const bool exists = CvROOT(cv) || CvXSUB(cv);
@@ -8547,15 +8546,14 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP 
*attrs,
   : newUNOP(OP_LEAVESUB, 0, scalarseq(block));
start = LINKLIST(block);
block->op_next = 0;
+if (ps && !*ps && !attrs && !CvLVALUE(PL_compcv))
+const_sv =
+S_op_const_sv(aTHX_ start, PL_compcv, CvCLONE(PL_compcv));
+else
+const_sv = NULL;
 }
-
-if (!block || !ps || *ps || attrs
-   || CvLVALUE(PL_compcv)
-   )
-   const_sv = NULL;
 else
-   const_sv =
-   S_op_const_sv(aTHX_ start, PL_compcv, cBOOL(CvCLONE(PL_compcv)));
+const_sv = NULL;
 
 if (SvPOK(gv) || (SvROK(gv) && SvTYPE(SvRV(gv)) != SVt_PVCV)) {
assert (block);

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-129-gb6d5ddf

2015-06-16 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/b6d5ddf72d1067c498a7ed65623df9f2f8f8d749?hp=bace499647c542e44fa169173393f19316fe05b6>

- Log -
commit b6d5ddf72d1067c498a7ed65623df9f2f8f8d749
Author: Tony Cook 
Date:   Wed Jun 17 10:55:19 2015 +1000

[perl #123264] explicitly document the return value of sysopen
---

Summary of changes:
 pod/perlfunc.pod | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index b2c8bb6..650ad0e 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -7957,6 +7957,8 @@ filehandle wanted; an undefined scalar will be suitably 
autovivified.  This
 function calls the underlying operating system's I(2) function with the
 parameters FILENAME, MODE, and PERMS.
 
+Returns true on success and C otherwise.
+
 The possible values and flag bits of the MODE parameter are
 system-dependent; they are available via the standard module C.  See
 the documentation of your operating system's I(2) syscall to see

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.22.0-130-gb4929cb

2015-06-16 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/b4929cb48878718cd9a8f54a834db6353f8115ec?hp=b6d5ddf72d1067c498a7ed65623df9f2f8f8d749>

- Log -
commit b4929cb48878718cd9a8f54a834db6353f8115ec
Author: Tony Cook 
Date:   Wed Jun 17 11:10:18 2015 +1000

[perl #125305] chdir("") no longer behaves like chdir()
---

Summary of changes:
 pod/perldiag.pod | 10 --
 pp_sys.c |  5 +
 t/op/chdir.t | 30 ++
 3 files changed, 7 insertions(+), 38 deletions(-)

diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 47c23eb..0adabf5 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -6658,16 +6658,6 @@ one.  This doesn't make sense.  Perl will continue, 
assuming a Unicode
 happens to be ISO-8859-1 (Latin1) where this message is spurious and can
 be ignored.
 
-=item Use of chdir('') or chdir(undef) as chdir() deprecated
-
-(D deprecated) chdir() with no arguments is documented to change to
-$ENV{HOME} or $ENV{LOGDIR}.  chdir(undef) and chdir('') share this
-behavior, but that has been deprecated.  In future versions they
-will simply fail.
-
-Be careful to check that what you pass to chdir() is defined and not
-blank, else you might find yourself in your home directory.
-
 =item Use of /c modifier is meaningless in s///
 
 (W regexp) You used the /c modifier in a substitution.  The /c
diff --git a/pp_sys.c b/pp_sys.c
index beca14a..1c2ef9c 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3591,8 +3591,7 @@ PP(pp_chdir)
 else if (!(gv = MAYBE_DEREF_GV(sv)))
tmps = SvPV_nomg_const_nolen(sv);
 }
-
-if( !gv && (!tmps || !*tmps) ) {
+else {
HV * const table = GvHVn(PL_envgv);
SV **svp;
 
@@ -3603,8 +3602,6 @@ PP(pp_chdir)
 #endif
)
 {
-if( MAXARG == 1 )
-deprecate("chdir('') or chdir(undef) as chdir()");
 tmps = SvPV_nolen_const(*svp);
 }
 else {
diff --git a/t/op/chdir.t b/t/op/chdir.t
index 813b0ed..84159fe 100644
--- a/t/op/chdir.t
+++ b/t/op/chdir.t
@@ -10,10 +10,11 @@ BEGIN {
 # possibilities into @INC.
 unshift @INC, qw(t . lib ../lib);
 require "./test.pl";
-plan(tests => 48);
+plan(tests => 42);
 }
 
 use Config;
+use Errno qw(ENOENT);
 
 my $IsVMS   = $^O eq 'VMS';
 
@@ -150,29 +151,10 @@ sub check_env {
 
 my $warning = '';
 local $SIG{__WARN__} = sub { $warning .= join '', @_ };
-
-
-# Check the deprecated chdir(undef) feature.
-#line 64
-ok( chdir(undef),   "chdir(undef) w/ only \$ENV{$key} set" );
-is( abs_path, $ENV{$key},   '  abs_path() agrees' );
-is( $warning,  <

[perl.git] branch blead, updated. v5.22.0-137-g1cdd922

2015-06-17 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/1cdd92240cabcef3700b896c9648b3a2b2970e28?hp=f5c4ec3553a69f8037ab6d54bc1e1f1e098572e8>

- Log -
commit 1cdd92240cabcef3700b896c9648b3a2b2970e28
Author: Tony Cook 
Date:   Thu Jun 18 14:08:48 2015 +1000

ensure chdir('') sets $! to ENOENT on non-IMP_SYS Win32 builds
---

Summary of changes:
 win32/win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/win32/win32.c b/win32/win32.c
index fa051ac..0bb0348 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -3366,7 +3366,7 @@ win32_rmdir(const char *dir)
 DllExport int
 win32_chdir(const char *dir)
 {
-if (!dir) {
+if (!dir || !*dir) {
errno = ENOENT;
return -1;
 }

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.0-63-g6012112

2015-06-28 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/60121127fb9d33a8ca4ab1e213b635fe63c8fa8c?hp=51f0b9cd668a8ebc243325d1c5340c661123e44b>

- Log -
commit 60121127fb9d33a8ca4ab1e213b635fe63c8fa8c
Author: Tony Cook 
Date:   Thu Jun 25 13:58:57 2015 +1000

[perl #125305] handle chdir to closed handle correctly
---

Summary of changes:
 pod/perldiag.pod |  4 
 pp_sys.c | 10 ++
 t/op/chdir.t | 13 ++---
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 9d048cf..6ac8ee8 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -1559,6 +1559,10 @@ defined in the C<:alias> import argument to C, but they
 could be defined by a translator installed into C<$^H{charnames}>.
 See L.
 
+=item chdir() on unopened filehandle %s
+
+(W unopened) You tried chdir() on a filehandle that was never opened.
+
 =item \C no longer supported in regex; marked by S<<-- HERE> in m/%s/
 
 (F) The \C character class used to allow a match of single byte within a
diff --git a/pp_sys.c b/pp_sys.c
index 78d9584..da25f0f 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3599,6 +3599,16 @@ PP(pp_chdir)
SV * const sv = POPs;
if (PL_op->op_flags & OPf_SPECIAL) {
gv = gv_fetchsv(sv, 0, SVt_PVIO);
+if (!gv) {
+if (ckWARN(WARN_UNOPENED)) {
+Perl_warner(aTHX_ packWARN(WARN_UNOPENED),
+"chdir() on unopened filehandle %" SVf, sv);
+}
+SETERRNO(EBADF,RMS_IFI);
+PUSHi(0);
+TAINT_PROPER("chdir");
+RETURN;
+}
}
 else if (!(gv = MAYBE_DEREF_GV(sv)))
tmps = SvPV_nomg_const_nolen(sv);
diff --git a/t/op/chdir.t b/t/op/chdir.t
index e2e5429..8a4c49c 100644
--- a/t/op/chdir.t
+++ b/t/op/chdir.t
@@ -10,11 +10,11 @@ BEGIN {
 # possibilities into @INC.
 unshift @INC, qw(t . lib ../lib);
 require "./test.pl";
-plan(tests => 39);
+plan(tests => 44);
 }
 
 use Config;
-use Errno qw(ENOENT);
+use Errno qw(ENOENT EBADF);
 
 my $IsVMS   = $^O eq 'VMS';
 
@@ -54,7 +54,7 @@ SKIP: {
 $Cwd = abs_path;
 
 SKIP: {
-skip("no fchdir", 16) unless $has_fchdir;
+skip("no fchdir", 21) unless $has_fchdir;
 my $has_dirfd = ($Config{d_dirfd} || $Config{d_dir_dd_fd} || "") eq 
"define";
 ok(opendir(my $dh, "."), "opendir .");
 ok(open(my $fh, "<", "op"), "open op");
@@ -107,6 +107,13 @@ SKIP: {
 ok(closedir(H), "closedir");
 ok(chdir(H), "fchdir to base");
 ok(-f "cond.t", "verify that we are in 'base'");
+ok(close(H), "close");
+$! = 0;
+ok(!chdir(H), "check we can't chdir to closed handle");
+is(0+$!, EBADF, 'check $! set appropriately');
+$! = 0;
+ok(!chdir(NEVEROPENED), "check we can't chdir to never opened handle");
+is(0+$!, EBADF, 'check $! set appropriately');
 chdir ".." or die $!;
 }
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.0-88-g201e9e2

2015-07-06 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/201e9e2aa1088e65b7160f94706673641f1e018a?hp=ba707cdc782d882662421af06658ff4afdf31003>

- Log -
commit 201e9e2aa1088e65b7160f94706673641f1e018a
Author: Tony Cook 
Date:   Tue Jun 23 10:21:45 2015 +1000

[perl #125373] set $! in chdir() if env not set, clarify docs
---

Summary of changes:
 pod/perlfunc.pod |  4 ++--
 pp_sys.c |  1 +
 t/op/chdir.t | 13 -
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 650ad0e..a3f612d 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -825,8 +825,8 @@ X
 Changes the working directory to EXPR, if possible.  If EXPR is omitted,
 changes to the directory specified by C<$ENV{HOME}>, if set; if not,
 changes to the directory specified by C<$ENV{LOGDIR}>.  (Under VMS, the
-variable C<$ENV{SYS$LOGIN}> is also checked, and used if it is set.)  If
-neither is set, C does nothing.  It returns true on success,
+variable C<$ENV{'SYS$LOGIN'}> is also checked, and used if it is set.)  If
+neither is set, C does nothing and fails.  It returns true on success,
 false otherwise.  See the example under C.
 
 On systems that support fchdir(2), you may pass a filehandle or
diff --git a/pp_sys.c b/pp_sys.c
index da25f0f..b0f7798 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3628,6 +3628,7 @@ PP(pp_chdir)
 }
 else {
 PUSHi(0);
+SETERRNO(EINVAL, LIB_INVARG);
 TAINT_PROPER("chdir");
 RETURN;
 }
diff --git a/t/op/chdir.t b/t/op/chdir.t
index 3a88f82..62ac3b6 100644
--- a/t/op/chdir.t
+++ b/t/op/chdir.t
@@ -10,11 +10,11 @@ BEGIN {
 # possibilities into @INC.
 unshift @INC, qw(t . lib ../lib);
 require "test.pl";
-plan(tests => 46);
+plan(tests => 47);
 }
 
 use Config;
-use Errno qw(ENOENT EBADF);
+use Errno qw(ENOENT EBADF EINVAL);
 
 my $IsVMS   = $^O eq 'VMS';
 
@@ -204,10 +204,13 @@ foreach my $key (@magic_envs) {
 
 {
 clean_env;
-if ($IsVMS && !$Config{'d_setenv'}) {
-pass("Can't reset HOME, so chdir() test meaningless");
-} else {
+  SKIP:
+{
+$IsVMS && !$Config{'d_setenv'}
+  and skip "Can't reset HOME, so chdir() test meaningless", 2;
+$! = 0;
 ok( !chdir(),   'chdir() w/o any ENV set' );
+is( $!+0, EINVAL,   'check $! set to EINVAL');
 }
 is( abs_path, $Cwd, '  abs_path() agrees' );
 }

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.0-90-g7ed1d85

2015-07-07 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 7ed1d857c7b7016b9bde564c6802a4721d903d95
Author: Daniel Dragan 
Date:   Wed Jun 24 15:48:12 2015 -0400

fix #124181 double free/refcnt problems in IO types in typemap

commit 50e5165b96 "stop T_IN/OUT/INOUT/STDIO typemaps leaking" changed
newRV to newRV_noinc, but the GV * returned by newGVgen() is owned by the
package tree, like the SV * returned by get_sv(). Now when the RV to GV is
freed on mortal stack, the GV * in the package tree is freed, and now there
is a freed GV * in the package tree, if you turn on "PERL_DESTRUCT_LEVEL=2"
(and perhaps DEBUGGING is needed too), the package tree is destroyed SV *
by SV *, and perl will eventually warn with
"Attempt to free unreferenced scalar" which a very bad panic type warning.

commit 50e5165b96 was reverted in commit bae466e878
"Revert "stop T_IN/OUT/INOUT/STDIO typemaps leaking" for 5.22's release
to stop the panic, but reintroduced the SV/RV leak. So fix the RV leak (the 
val
passed as source arg of sv_setsv) by freeing it after the copying. In a very
unlikely scenario, the RV could still leak if sv_setsv dies.

Also fix the problem, that if this OUTPUT: type is being used for an
incoming arg, not the outgoing RETVAL arg, you can't assign a new SV*
ontop of the old one, that only works for perl stack return args, so
replace "$arg = &PL_sv_undef;" with "sv_setsv($arg, &PL_sv_undef);" if its
not RETVAL, this way OUTPUT on incoming args also works if it goes down the
error path. For efficiency, in a RETVAL siutation, let the undef original
SV* in $arg which is typically obtained from sv_newmortal() by xsubpp pass
through if we error out.

Also for efficiency, if it is RETVAL (which is more common) dont do the
sv_setsv/SvREFCNT_dec_NN stuff (2 function calls), just mortalize
(1 function call) the ex-temp RV and arrange for the RV to wind up on
perl stack.

Also, the GV * already knows what HV * stash it belongs to, so avoid the
stash lookup done by gv_stashpv() and just use GvSTASH which are simple
pointer derefs.

M   lib/ExtUtils/typemap
M   pod/perldelta.pod

commit c1b8440fca7358a5c52763ce726d40026870519c
Author: Daniel Dragan 
Date:   Sun May 10 11:36:05 2015 -0400

add test that fails for #124181 to Typemap.t

These tests will either fail with harness, and randomly SEGV for
me, which is intentional since they are testing memory
corruption.

M   ext/XS-Typemap/Typemap.pm
M   ext/XS-Typemap/Typemap.xs
M   ext/XS-Typemap/t/Typemap.t
---

Summary of changes:
 ext/XS-Typemap/Typemap.pm  |  4 ++--
 ext/XS-Typemap/Typemap.xs  |  9 +
 ext/XS-Typemap/t/Typemap.t | 20 ++--
 lib/ExtUtils/typemap   | 40 
 pod/perldelta.pod  |  5 -
 5 files changed, 61 insertions(+), 17 deletions(-)

diff --git a/ext/XS-Typemap/Typemap.pm b/ext/XS-Typemap/Typemap.pm
index de3319b..a1ae021 100644
--- a/ext/XS-Typemap/Typemap.pm
+++ b/ext/XS-Typemap/Typemap.pm
@@ -36,7 +36,7 @@ require XSLoader;
 
 use vars qw/ $VERSION @EXPORT /;
 
-$VERSION = '0.13';
+$VERSION = '0.14';
 
 @EXPORT = (qw/
   T_SV
@@ -76,7 +76,7 @@ $VERSION = '0.13';
   T_OPAQUEPTR_IN T_OPAQUEPTR_OUT T_OPAQUEPTR_OUT_short
T_OPAQUEPTR_IN_struct T_OPAQUEPTR_OUT_struct
   T_ARRAY
-  T_STDIO_open T_STDIO_close T_STDIO_print
+  T_STDIO_open T_STDIO_open_ret_in_arg T_STDIO_close T_STDIO_print
T_PACKED_in T_PACKED_out
T_PACKEDARRAY_in T_PACKEDARRAY_out
T_INOUT T_IN T_OUT
diff --git a/ext/XS-Typemap/Typemap.xs b/ext/XS-Typemap/Typemap.xs
index 3fa0e74ab..8314cc2 100644
--- a/ext/XS-Typemap/Typemap.xs
+++ b/ext/XS-Typemap/Typemap.xs
@@ -906,6 +906,15 @@ T_STDIO_open( file )
  OUTPUT:
   RETVAL
 
+void
+T_STDIO_open_ret_in_arg( file, io)
+  const char * file
+  FILE * io = NO_INIT
+ CODE:
+  io = xsfopen( file );
+ OUTPUT:
+  io
+
 SysRet
 T_STDIO_close( f )
   PerlIO * f
diff --git a/ext/XS-Typemap/t/Typemap.t b/ext/XS-Typemap/t/Typemap.t
index 27b4086..49ac479 100644
--- a/ext/XS-Typemap/t/Typemap.t
+++ b/ext/XS-Typemap/t/Typemap.t
@@ -6,10 +6,11 @@ BEGIN {
 }
 }
 
-use Test::More tests => 152;
+use Test::More tests => 156;
 
 use strict;
-use warnings;
+#catch WARN_INTERNAL type errors, and anything else unexpected
+use warnings FATAL => 'all';
 use XS::Typemap;
 
 pass();
@@ -213,6 +214,7 @@ is( T_PV("a string"), "a string");
 is( T_PV(52), 52);
 ok !defined T_PV_null, 'RETVAL = NULL returns undef for char*';
 {
+use warnings NONFATAL => 'all';
 my $unin

[perl.git] branch tonyc/ipc_open, created. v5.23.0-91-gc85f23b

2015-07-07 Thread Tony Cook
In perl.git, the branch tonyc/ipc_open has been created



at  c85f23b236fa90fedd9cceed2da12481184d5bbf (commit)

- Log -
commit c85f23b236fa90fedd9cceed2da12481184d5bbf
Author: Daniel Dragan 
Date:   Tue Jul 7 12:59:01 2015 -0400

dont report a $@ exception with uninitialized $!'s message in IPC::Open3

Commit a24d8dfd08 "Make IPC::Open3 work without fork()" from 5.003 created
an eval block, and if that eval block threw an exception, instead of
propagating $@, the code propagated $!, even though no system call was done
and $! is effectivly unintialized data. In one case for me, a taint
exception inside system was turned into open3() throwing an exception
about "Inappropriate I/O control operation" or "Bad file descriptor", which
had nothing to do with the real fault which was a Perl C level croak with
the message "Insecure $ENV{PATH} while running with -T switch at ..."
which was called as Perl_pp_system->Perl_taint_env->Perl_taint_proper->
Perl_croak->Perl_vcroak. This patch does not try to fix the ambiguity of
the error messages between the !DO_SPAWN and IO::Pipe
branches/implementations of _open3.
---

--
Perl5 Master Repository


[perl.git] branch tonyc/ipc_open, deleted. v5.23.0-91-gc85f23b

2015-07-07 Thread Tony Cook
In perl.git, the branch tonyc/ipc_open has been deleted



   was  c85f23b236fa90fedd9cceed2da12481184d5bbf

---
c85f23b236fa90fedd9cceed2da12481184d5bbf dont report a $@ exception with 
uninitialized $!'s message in IPC::Open3
---

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.0-91-gc85f23b

2015-07-07 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit c85f23b236fa90fedd9cceed2da12481184d5bbf
Author: Daniel Dragan 
Date:   Tue Jul 7 12:59:01 2015 -0400

dont report a $@ exception with uninitialized $!'s message in IPC::Open3

Commit a24d8dfd08 "Make IPC::Open3 work without fork()" from 5.003 created
an eval block, and if that eval block threw an exception, instead of
propagating $@, the code propagated $!, even though no system call was done
and $! is effectivly unintialized data. In one case for me, a taint
exception inside system was turned into open3() throwing an exception
about "Inappropriate I/O control operation" or "Bad file descriptor", which
had nothing to do with the real fault which was a Perl C level croak with
the message "Insecure $ENV{PATH} while running with -T switch at ..."
which was called as Perl_pp_system->Perl_taint_env->Perl_taint_proper->
Perl_croak->Perl_vcroak. This patch does not try to fix the ambiguity of
the error messages between the !DO_SPAWN and IO::Pipe
branches/implementations of _open3.
---

Summary of changes:
 ext/IPC-Open3/lib/IPC/Open3.pm |  8 ++--
 ext/IPC-Open3/t/IPC-Open3.t| 42 +-
 pod/perldelta.pod  |  7 ++-
 3 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/ext/IPC-Open3/lib/IPC/Open3.pm b/ext/IPC-Open3/lib/IPC/Open3.pm
index 7c7e9b5..273f205 100644
--- a/ext/IPC-Open3/lib/IPC/Open3.pm
+++ b/ext/IPC-Open3/lib/IPC/Open3.pm
@@ -9,7 +9,7 @@ require Exporter;
 use Carp;
 use Symbol qw(gensym qualify);
 
-$VERSION   = '1.18';
+$VERSION   = '1.19';
 @ISA   = qw(Exporter);
 @EXPORT= qw(open3);
 
@@ -412,7 +412,11 @@ sub spawn_with_handles {
} else {
$pid = eval { system 1, @_ }; # 1 == P_NOWAIT
}
-   push @errs, "IO::Pipe: Can't spawn-NOWAIT: $!" if !$pid || $pid < 0;
+   if($@) {
+   push @errs, "IO::Pipe: Can't spawn-NOWAIT: $@";
+   } elsif(!$pid || $pid < 0) {
+   push @errs, "IO::Pipe: Can't spawn-NOWAIT: $!";
+   }
 }
 
 # Do this in reverse, so that STDERR is restored first:
diff --git a/ext/IPC-Open3/t/IPC-Open3.t b/ext/IPC-Open3/t/IPC-Open3.t
index fcaecef..25cfdfb 100644
--- a/ext/IPC-Open3/t/IPC-Open3.t
+++ b/ext/IPC-Open3/t/IPC-Open3.t
@@ -14,7 +14,7 @@ BEGIN {
 }
 
 use strict;
-use Test::More tests => 44;
+use Test::More tests => 45;
 
 use IO::Handle;
 use IPC::Open3;
@@ -165,6 +165,46 @@ $pid = eval { open3 'WRITE', '', 'ERROR', 
'/non/existent/program'; };
 like($@, qr/^open3: Modification of a read-only value attempted at /,
  'open3 faults read-only parameters correctly') or do {waitpid $pid, 0};
 
+package NoFetch;
+
+my $fetchcount = 1;
+
+sub TIESCALAR {
+  my $class = shift;
+  my $instance = shift || undef;
+  return bless \$instance => $class;
+}
+
+sub FETCH {
+my $cmd; #dont let "@args = @DB::args;" in Carp::caller_info fire this die
+#fetchcount may need to be increased to 2 if this code is being stepped 
with
+#a perl debugger
+if($fetchcount == 1 && (caller(1))[3] ne 'Carp::caller_info') {
+   #Carp croak reports the errors as being in IPC-Open3.t, so it is
+   #unacceptable for testing where the FETCH failure occured, we dont want
+   #it failing in a $foo = $_[0]; #later# system($foo), where the failure
+   #is supposed to be triggered in the inner most syscall, aka system()
+   my ($package, $filename, $line, $subroutine) = caller(2);
+
+   die("FETCH not allowed in ".((caller(1))[3])." in 
".((caller(2))[3])."\n");
+} else {
+   $fetchcount++;
+   return tie($cmd, 'NoFetch');
+}
+}
+
+package main;
+
+{
+my $cmd;
+tie($cmd, 'NoFetch');
+
+$pid = eval { open3 'WRITE', 'READ', 'ERROR', $cmd; };
+like($@, qr/^(?:open3: IO::Pipe: Can't spawn-NOWAIT: FETCH not allowed in 
\(eval\) (?x:
+ )in IPC::Open3::spawn_with_handles|FETCH not allowed in \(eval\) in 
IPC::Open3::_open3)/,
+ 'dieing inside Tied arg propagates correctly') or do {waitpid $pid, 0};
+}
+
 foreach my $handle (qw (DUMMY STDIN STDOUT STDERR)) {
 local $::{$handle};
 my $out = IO::Handle->new();
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 68df77f..7818603 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -148,7 +148,12 @@ XXX
 
 =item *
 
-L has been upgraded from version A.xx to B.yy.
+L has been upgraded from version 1.18 to 1.19.
+
+If a Perl exception was thrown from inside this module, the exception
+C threw to the callers of C would have an irrelavent
+message derived from C<$!> which was in an undefined state, instead of the
+C<$@> message which trigg

[perl.git] branch blead, updated. v5.23.0-92-gbb3b7d7

2015-07-07 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit bb3b7d7b82b9d2ba93dc99ecf064f0c701ef2c59
Author: Daniel Dragan 
Date:   Thu Jul 2 17:22:09 2015 -0400

all SV inheriter types have DEBUG_LEAKING_SCALARS data, so always show it

I noticed AV *s in my C debugger didn't the sv_debug_* members, but if I
casted the AV * to a SV * in my C debugger using a expession in my watch
tab, all the info was there. Put the DEBUG_LEAKING_SCALARS in
_SV_HEAD_UNION so the sv_debug_* members appear everywhere (CV/HV/AV/etc),
not just for SVs.
---

Summary of changes:
 sv.h | 22 +-
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/sv.h b/sv.h
index 49cafe4..0076ddd 100644
--- a/sv.h
+++ b/sv.h
@@ -212,20 +212,24 @@ typedef struct hek HEK;
HE**svu_hash;   \
GP* svu_gp; \
PerlIO *svu_fp; \
-}  sv_u
+}  sv_u\
+_SV_HEAD_DEBUG
 
+#ifdef DEBUG_LEAKING_SCALARS
+#define _SV_HEAD_DEBUG ;\
+PERL_BITFIELD32 sv_debug_optype:9; /* the type of OP that allocated us */ \
+PERL_BITFIELD32 sv_debug_inpad:1;  /* was allocated in a pad for an OP */ \
+PERL_BITFIELD32 sv_debug_line:16;  /* the line where we were allocated */ \
+UV sv_debug_serial;/* serial number of sv allocation   */ \
+char * sv_debug_file;  /* the file where we were allocated */ \
+SV *   sv_debug_parent /* what we were cloned from (ithreads)*/
+#else
+#define _SV_HEAD_DEBUG
+#endif
 
 struct STRUCT_SV { /* struct sv { */
 _SV_HEAD(void*);
 _SV_HEAD_UNION;
-#ifdef DEBUG_LEAKING_SCALARS
-PERL_BITFIELD32 sv_debug_optype:9; /* the type of OP that allocated us */
-PERL_BITFIELD32 sv_debug_inpad:1;  /* was allocated in a pad for an OP */
-PERL_BITFIELD32 sv_debug_line:16;  /* the line where we were allocated */
-UV sv_debug_serial;/* serial number of sv allocation   */
-char * sv_debug_file;  /* the file where we were allocated */
-SV *   sv_debug_parent;/* what we were cloned from (ithreads)*/
-#endif
 };
 
 struct gv {

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.0-94-g30dc90f

2015-07-08 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 30dc90f1923c08aae65b60f713ac12490a716e10
Author: Daniel Dragan 
Date:   Thu Jul 2 17:15:19 2015 -0400

improve debugging of padlist API

xpadl_alloc should really be pointer to a struct with a flexible array
member, but flexible array members aren't portable enough among CCs. While
debugging the padlist API for memory corruption (caused by an unrelated
XS module), I saw that the pointer in the first slice of xpadl_alloc
pointed to an AV head of gibberish but 2nd slice was fine. This was
confusing and led me to belive the memory corruption was a bad write to
the array in xpadl_alloc. PadlistARRAY's POD a couple pages down mentions
that index 0 is not an AV *, but the struct comments just said
"pointer to beginning of array of AVs " and didnt mention index 0.

Fix the comments to make it clear what xpadl_alloc is. Add a union so it
is easier to analyze a crash dump/breakpoint with a C debugger, without
writing new code "PADNAMELIST * pnl =  PadlistNAMES(pl);" in many places
and recompiling the interp with -O0, just to be able to inspect the
padnamelist struct.
---

Summary of changes:
 pad.h | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/pad.h b/pad.h
index 31b8715..9e3caa6 100644
--- a/pad.h
+++ b/pad.h
@@ -33,7 +33,15 @@ typedef U64TYPE PADOFFSET;
 
 struct padlist {
 SSize_txpadl_max;  /* max index for which array has space */
-PAD ** xpadl_alloc;/* pointer to beginning of array of AVs */
+union {
+   PAD **  xpadlarr_alloc; /* Pointer to beginning of array of AVs.
+  index 0 is a padnamelist *  */
+   struct {
+   PADNAMELIST * padnl;
+   PAD * pad_1;/* this slice of PAD * array always alloced */
+   PAD * pad_2;/* maybe unalloced */
+   } * xpadlarr_dbg;   /* for use with a C debugger only */
+} xpadl_arr;
 U32xpadl_id;   /* Semi-unique ID, shared between 
clones */
 U32xpadl_outid;/* ID of outer pad */
 };
@@ -293,7 +301,7 @@ Restore the old pad saved into the local variable opad by 
PAD_SAVE_LOCAL()
 =cut
 */
 
-#define PadlistARRAY(pl)   (pl)->xpadl_alloc
+#define PadlistARRAY(pl)   (pl)->xpadl_arr.xpadlarr_alloc
 #define PadlistMAX(pl) (pl)->xpadl_max
 #define PadlistNAMES(pl)   *((PADNAMELIST **)PadlistARRAY(pl))
 #define PadlistNAMESARRAY(pl)  PadnamelistARRAY(PadlistNAMES(pl))

--
Perl5 Master Repository


[perl.git] branch smartmatchtoo, created. v5.23.0-112-g04eca49

2015-07-12 Thread Tony Cook
In perl.git, the branch smartmatchtoo has been created

<http://perl5.git.perl.org/perl.git/commitdiff/04eca4932e13bb4d6142487a84e96e6503d9d462?hp=>

at  04eca4932e13bb4d6142487a84e96e6503d9d462 (commit)

- Log -
commit 04eca4932e13bb4d6142487a84e96e6503d9d462
Author: Tony Cook 
Date:   Mon Jul 13 16:20:30 2015 +1000

the behaviour of objects in overloading has changed

re-worked separately because we might re-instate the older behaviour

M   pod/perlop.pod

commit fb71c9f3baf74ecf1270f43abe1df0b1ac42675b
Author: Tony Cook 
Date:   Mon Jul 13 16:07:24 2015 +1000

rip out most of the smartmatch documentation, it's much simpler now

M   pod/perlop.pod

commit 4c33aee068432c746907956fc3c881758e04e8ca
Author: Tony Cook 
Date:   Tue Jul 7 14:13:51 2015 +1000

Warn at compile time where possible.

This commit probably needs work, and the very idea needs discussion.

M   embed.fnc
M   embed.h
M   op.c
M   pod/perldiag.pod
M   proto.h
M   t/lib/warnings/op

commit b0c03a82edec3a11a11e505bff38f9c9e70b1e13
Author: Tony Cook 
Date:   Thu Jul 2 16:22:15 2015 +1000

reintroduce conversion of $foo ~~ /bar/ to $foo ~~ qr/bar/

This does not convert an implicit /bar/ as in when (/bar/)

M   embed.h
M   op.c
M   opcode.h
M   proto.h
M   regen/opcodes
M   t/op/smartmatch.t

commit 2103f6dab71302b4bde5a7884bb7bae2e497d75a
Author: Tony Cook 
Date:   Thu Jul 2 14:14:54 2015 +1000

re-enable overload ~~ any

M   pp_ctl.c
M   t/op/smartmatch.t

commit ee1b3a11c232fe813b6eda4f83fb581324828c33
Author: Tony Cook 
Date:   Thu Jul 2 10:32:16 2015 +1000

update non-autodie tests to work under the new smartmatch limits

M   ext/XS-APItest/t/grok.t
M   pod/perldiag.pod
M   t/lib/feature/switch
M   t/op/coreamp.t
M   t/op/smartmatch.t
M   t/op/state.t
M   t/op/switch.t
M   t/op/taint.t
M   t/op/tie_fetch_count.t

commit 8ce43f254e276072566fa77bd400048d3603e1df
Author: Tony Cook 
Date:   Mon Jun 22 14:06:29 2015 +1000

disallow smartmatches not explicitly permitted (runtime)

M   pp_ctl.c

commit ce8c9afc6b63f8e0f64604dbb164fd3e36531e31
Author: Father Chrysostomos 
Date:   Thu Sep 13 00:18:28 2012 -0700

New whirled order for givwhen/last/next

given now responds to last and next.

break only breaks out of given, and does not complain about an
inner foreach.

when and default do an implicit regular next, not a ‘special’ next
that only breaks out of foreach() and given.

M   embed.fnc
M   embed.h
M   pod/perldiag.pod
M   pp_ctl.c
M   proto.h
M   t/op/switch.t

commit 85c544bba4eb379820cef4d81d2d43787649bc27
Author: Father Chrysostomos 
Date:   Wed Sep 12 16:33:49 2012 -0700

toke.c: use goto to reduce repetitition

I couldn’t think of a name for the label that didn’t just repeat what
the code was doing (increment_lex_allbrackets_and_set_PL_expect), so I
gave it an arbitrary short name.

M   toke.c

commit 4a4c2e2e1f79edb4b921e085bd70e5ee451854c2
Author: Tony Cook 
Date:   Tue Jun 23 15:15:18 2015 +1000

switch to done_testing()

M   t/op/smartmatch.t
M   t/op/switch.t

commit dc02c958c67dc80256eabc878d95c5a538003e5b
Author: Father Chrysostomos 
Date:   Wed Sep 12 00:21:12 2012 -0700

Smart Match 3™

I was persuaded by Smylers’ argument concerning string equivalence:
<20120905143040.gz1...@stripey.com>

But it is not too late for me to be overruled since this is not in
blead yet.

The list is:

  RHS type
   1. undef
   2. ~~ overloading
   3. reftype eq CODE
   4. reftype eq REGEXP
   5. fall back to eq

One question still remains:  Should undef ~~ "string" give a warning?
Currently it doesn’t, but neither does it call eq overloading on the
RHS if we actually have undef ~~ $overloaded_object_without_smartmatch.

This cannot be merged until we solve the fact that smart match
is used in:

cpan/autodie/lib/Fatal.pm
cpan/autodie/t/exceptions.t

This does not deal with loop controls yet, just smartmatch and the
smartmatch aspects of of givwhen.

M   embed.fnc
M   embed.h
M   ext/XS-APItest/t/fetch_pad_names.t
M   op.c
M   opcode.h
M   perl.h
M   perly.act
M   perly.h
M   perly.tab
M   perly.y
M   pod/perldiag.pod
M   pp_ctl.c
M   proto.h
M   regen/opcodes
M   t/op/smartmatch.t
M   t/op/switch.t
M   t/op/taint.t
M   toke.c
---

--
Perl5 Master Repository


[perl.git] branch smartmatchtoo, updated. v5.23.0-113-g3775d43

2015-07-13 Thread Tony Cook
In perl.git, the branch smartmatchtoo has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/3775d436c2174ad4f638b142891de36b177b007d?hp=04eca4932e13bb4d6142487a84e96e6503d9d462>

- Log -
commit 3775d436c2174ad4f638b142891de36b177b007d
Author: Tony Cook 
Date:   Mon Jul 13 17:07:53 2015 +1000

add postfix when BLOCK
---

Summary of changes:
 perly.act   |  633 +-
 perly.h |2 +-
 perly.tab   | 1367 ---
 perly.y |4 +
 pod/perlsyn.pod |   26 ++
 t/op/switch.t   |   15 +
 6 files changed, 1051 insertions(+), 996 deletions(-)

diff --git a/perly.act b/perly.act
index cc80e69..c0d9eb8 100644
--- a/perly.act
+++ b/perly.act
@@ -590,26 +590,33 @@ case 2:
 
   case 68:
 #line 536 "perly.y"
+{ (yyval.opval) = newWHENOP(newUNOP(OP_NULL, OPf_SPECIAL, (ps[(3) - 
(3)].val.opval)),
+ op_scope((ps[(1) - (3)].val.opval)));
+   }
+break;
+
+  case 69:
+#line 540 "perly.y"
 { (ps[(3) - (3)].val.opval)->op_flags |= OPf_PARENS;
  (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), 
op_scope((ps[(1) - (3)].val.opval)));
}
 break;
 
-  case 69:
-#line 543 "perly.y"
+  case 70:
+#line 547 "perly.y"
 { (yyval.opval) = (OP*)NULL; }
 break;
 
-  case 70:
-#line 545 "perly.y"
+  case 71:
+#line 549 "perly.y"
 {
  ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
  (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
}
 break;
 
-  case 71:
-#line 550 "perly.y"
+  case 72:
+#line 554 "perly.y"
 { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
(yyval.opval) = newCONDOP(0,
newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - 
(6)].val.opval)),
@@ -618,43 +625,38 @@ case 2:
}
 break;
 
-  case 72:
-#line 560 "perly.y"
+  case 73:
+#line 564 "perly.y"
 { (yyval.opval) = (OP*)NULL; }
 break;
 
-  case 73:
-#line 562 "perly.y"
+  case 74:
+#line 566 "perly.y"
 { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
 break;
 
-  case 74:
-#line 567 "perly.y"
+  case 75:
+#line 571 "perly.y"
 { (yyval.ival) = (PL_min_intro_pending &&
PL_max_intro_pending >=  PL_min_intro_pending);
  intro_my(); }
 break;
 
-  case 75:
-#line 573 "perly.y"
+  case 76:
+#line 577 "perly.y"
 { (yyval.opval) = (OP*)NULL; }
 break;
 
-  case 77:
-#line 579 "perly.y"
+  case 78:
+#line 583 "perly.y"
 { YYSTYPE tmplval;
  (void)scan_num("1", &tmplval);
  (yyval.opval) = tmplval.opval; }
 break;
 
-  case 79:
-#line 587 "perly.y"
-{ (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
-break;
-
   case 80:
-#line 592 "perly.y"
-{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
+#line 591 "perly.y"
+{ (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
 break;
 
   case 81:
@@ -668,65 +670,70 @@ case 2:
 break;
 
   case 83:
-#line 603 "perly.y"
-{ (yyval.opval) = (ps[(1) - (1)].val.opval); }
+#line 604 "perly.y"
+{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
 break;
 
   case 84:
-#line 604 "perly.y"
-{ (yyval.opval) = (OP*)NULL; }
+#line 607 "perly.y"
+{ (yyval.opval) = (ps[(1) - (1)].val.opval); }
 break;
 
   case 85:
 #line 608 "perly.y"
+{ (yyval.opval) = (OP*)NULL; }
+break;
+
+  case 86:
+#line 612 "perly.y"
 { (yyval.ival) = start_subparse(FALSE, 0);
SAVEFREESV(PL_compcv); }
 break;
 
-  case 86:
-#line 614 "perly.y"
+  case 87:
+#line 618 "perly.y"
 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
SAVEFREESV(PL_compcv); }
 break;
 
-  case 87:
-#line 619 "perly.y"
+  case 88:
+#line 623 "perly.y"
 { (yyval.ival) = start_subparse(TRUE, 0);
SAVEFREESV(PL_compcv); }
 break;
 
-  case 90:
-#line 630 "perly.y"
+  case 91:
+#line 634 "perly.y"
 { (yyval.opval) = (OP*)NULL; }
 break;
 
-  case 92:
-#line 636 "perly.y"
+  case 93:
+#line 640 "perly.y"
 { (yyval.opval) = (OP*)NULL; }
 break;
 
-  case 93:
-#line 638 "perly.y"
+  case 94:
+#line 642 "perly.y"
  

[perl.git] branch blead, updated. v5.23.0-128-g3122135

2015-07-19 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 31221351abb3a508c369e8203d17da077adc667b
Author: Daniel Dragan 
Date:   Tue Jan 20 01:25:26 2015 -0500

factor out an %ENV assignment from make_ext.pl

nytprof using full (not mini) Win32 perl reported 44 calls on line
"$ENV{PERL_CORE} = 1;" at 623 us spent on line for make_ext.pl --dynamic

Move the env var setting out from build_extension() to before the foreach
loop starts.
---

Summary of changes:
 make_ext.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/make_ext.pl b/make_ext.pl
index 12926f8..1b055c3 100644
--- a/make_ext.pl
+++ b/make_ext.pl
@@ -220,6 +220,7 @@ if ($Config{osname} eq 'catamount' and @extspec) {
 # Snowball's chance of building extensions.
 die "This is $Config{osname}, not building $extspec[0], sorry.\n";
 }
+$ENV{PERL_CORE} = 1;
 
 foreach my $spec (@extspec)  {
 my $mname = $spec;
@@ -271,7 +272,6 @@ sub build_extension {
 $perl ||= "$up/miniperl";
 my $return_dir = $up;
 my $lib_dir = "$up/lib";
-$ENV{PERL_CORE} = 1;
 
 my ($makefile, $makefile_no_minus_f);
 if (IS_VMS) {

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.0-130-gad06c68

2015-07-19 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/ad06c68e1547b1a860919feac7df7c509e7efbaf?hp=31221351abb3a508c369e8203d17da077adc667b>

- Log -
commit ad06c68e1547b1a860919feac7df7c509e7efbaf
Author: Tony Cook 
Date:   Mon Jul 20 16:02:00 2015 +1000

bump $DynaLoader::VERSION to 1.33

M   ext/DynaLoader/DynaLoader_pm.PL

commit 6114e455f60b0de62a0b74edee3c9e1841d49c42
Author: Matthew Horsfall (alh) 
Date:   Thu Aug 29 08:41:06 2013 -0400

Replace reference to newXSUB with newXS.

newXSUB hasn't been around for a long time

M   ext/DynaLoader/DynaLoader_pm.PL
---

Summary of changes:
 ext/DynaLoader/DynaLoader_pm.PL | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ext/DynaLoader/DynaLoader_pm.PL b/ext/DynaLoader/DynaLoader_pm.PL
index 45dd6d3..c7ae049 100644
--- a/ext/DynaLoader/DynaLoader_pm.PL
+++ b/ext/DynaLoader/DynaLoader_pm.PL
@@ -85,7 +85,7 @@ package DynaLoader;
 # tim.bu...@ig.co.uk, August 1994
 
 BEGIN {
-$VERSION = '1.32';
+$VERSION = '1.33';
 }
 
 use Config;
@@ -899,7 +899,7 @@ Syntax:
 
 Create a new Perl external subroutine named $perl_name using $symref as
 a pointer to the function which implements the routine.  This is simply
-a direct call to newXSUB().  Returns a reference to the installed
+a direct call to newXS()/newXS_flags().  Returns a reference to the installed
 function.
 
 The $filename parameter is used by Perl to identify the source file for

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.1-12-gc7a622b

2015-07-21 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit c7a622b32220ef59969124212598b6848bcaa247
Author: Daniel Dragan 
Date:   Wed Jul 15 21:59:58 2015 -0400

combine PERLDB_LINE and PERLDB_SAVESRC flag tests

On VC2003 32b -O1, the .text section of miniperl.exe decreased from
0xAEFCD bytes of machine code to 0xAEF9D after this patch.

see also
http://www.nntp.perl.org/group/perl.perl5.porters/2015/07/msg229308.html
---

Summary of changes:
 gv.c | 2 +-
 perl.h   | 2 ++
 pp_ctl.c | 6 +++---
 toke.c   | 8 
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/gv.c b/gv.c
index 242ea87..5d642af 100644
--- a/gv.c
+++ b/gv.c
@@ -129,7 +129,7 @@ Perl_gv_fetchfile_flags(pTHX_ const char *const name, const 
STRLEN namelen,
sv_setpvn(GvSV(gv), name, namelen);
 #endif
 }
-if ((PERLDB_LINE || PERLDB_SAVESRC) && !GvAV(gv))
+if (PERLDB_LINE_OR_SAVESRC && !GvAV(gv))
hv_magic(GvHVn(gv), GvAVn(gv), PERL_MAGIC_dbfile);
 if (tmpbuf != smallbuf)
Safefree(tmpbuf);
diff --git a/perl.h b/perl.h
index bcfeee9..9d57450 100644
--- a/perl.h
+++ b/perl.h
@@ -5767,6 +5767,8 @@ typedef struct am_table_short AMTS;
 #define PERLDB_SAVESRC_NOSUBS  (PL_perldb & PERLDBf_SAVESRC_NOSUBS)
 #define PERLDB_SAVESRC_INVALID (PL_perldb & PERLDBf_SAVESRC_INVALID)
 
+#define PERLDB_LINE_OR_SAVESRC (PL_perldb & (PERLDBf_LINE | PERLDBf_SAVESRC))
+
 #ifdef USE_LOCALE
 /* These locale things are all subject to change */
 /* Returns TRUE if the plain locale pragma without a parameter is in effect
diff --git a/pp_ctl.c b/pp_ctl.c
index e6fdcf4..ad6efc1 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -4181,7 +4181,7 @@ PP(pp_entereval)
 
 /* prepare to compile string */
 
-if ((PERLDB_LINE || PERLDB_SAVESRC) && PL_curstash != PL_debstash)
+if (PERLDB_LINE_OR_SAVESRC && PL_curstash != PL_debstash)
save_lines(CopFILEAV(&PL_compiling), PL_parser->linestr);
 else {
/* XXX For Cs within BEGIN {} blocks, this ends up
@@ -4198,7 +4198,7 @@ PP(pp_entereval)
 
 if (doeval(gimme, runcv, seq, saved_hh)) {
if (was != PL_breakable_sub_gen /* Some subs defined here. */
-   ? (PERLDB_LINE || PERLDB_SAVESRC)
+   ?  PERLDB_LINE_OR_SAVESRC
:  PERLDB_SAVESRC_NOSUBS) {
/* Retain the filegv we created.  */
} else if (!saved_delete) {
@@ -4210,7 +4210,7 @@ PP(pp_entereval)
/* We have already left the scope set up earlier thanks to the LEAVE
   in doeval().  */
if (was != PL_breakable_sub_gen /* Some subs defined here. */
-   ? (PERLDB_LINE || PERLDB_SAVESRC)
+   ?  PERLDB_LINE_OR_SAVESRC
:  PERLDB_SAVESRC_INVALID) {
/* Retain the filegv we created.  */
} else if (!saved_delete) {
diff --git a/toke.c b/toke.c
index 9a94f91..db82129 100644
--- a/toke.c
+++ b/toke.c
@@ -1338,7 +1338,7 @@ Perl_lex_next_chunk(pTHX_ U32 flags)
CopLINE_set(PL_curcop, PL_parser->preambling + 1);
PL_parser->preambling = NOLINE;
 }
-if (got_some_for_debugger && (PERLDB_LINE || PERLDB_SAVESRC) &&
+if (got_some_for_debugger && PERLDB_LINE_OR_SAVESRC &&
PL_curstash != PL_debstash) {
/* debugger active and we're not compiling the debugger code,
 * so store the line into the debugger's array of lines
@@ -4735,7 +4735,7 @@ Perl_yylex(pTHX)
PL_oldoldbufptr = PL_oldbufptr = s = PL_linestart = 
SvPVX(PL_linestr);
PL_bufend = SvPVX(PL_linestr) + SvCUR(PL_linestr);
PL_last_lop = PL_last_uni = NULL;
-   if ((PERLDB_LINE || PERLDB_SAVESRC) && PL_curstash != PL_debstash)
+   if (PERLDB_LINE_OR_SAVESRC && PL_curstash != PL_debstash)
update_debugger_info(PL_linestr, NULL, 0);
goto retry;
}
@@ -4969,7 +4969,7 @@ Perl_yylex(pTHX)
} while (argc && argv[0][0] == '-' && argv[0][1]);
init_argv_symbols(argc,argv);
}
-   if (((PERLDB_LINE || PERLDB_SAVESRC) && !oldpdb) ||
+   if ((PERLDB_LINE_OR_SAVESRC && !oldpdb) ||
((PL_minus_n || PL_minus_p) && !(oldn || oldp)))
  /* if we have already added "LINE: while (<>) {",
 we must not do it again */
@@ -4979,7 +4979,7 @@ Perl_yylex(pTHX)
PL_bufend = SvPVX(PL_linestr) + SvCUR(PL_linestr);
PL_last_lop = PL_last_uni = NULL;
PL_preambled = FALSE;
-   if (PERLDB_LINE || PERLDB_SAVESRC)
+   if (PER

[perl.git] branch blead, updated. v5.23.1-13-g86f4502

2015-07-21 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 86f4502880c5cbc7a5ec1510ab05a413bfb40e03
Author: Dagfinn Ilmari Mannsåker 
Date:   Thu Jul 16 08:08:19 2015 +0100

Merge declaration and initialisation of local variable

Commit 2b32fed8 removed the PUTBACK/SPAGAIN around hv_iterval and
Perl_sv_setpvf, but didn't take the opportunity to merge the
initialisation with the declaration now that there's no code between
them.
---

Summary of changes:
 doop.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/doop.c b/doop.c
index 22e614a..19fe310 100644
--- a/doop.c
+++ b/doop.c
@@ -1263,8 +1263,7 @@ Perl_do_kv(pTHX)
XPUSHs(sv);
}
if (dovalues) {
-   SV *tmpstr;
-   tmpstr = hv_iterval(keys,entry);
+   SV *tmpstr = hv_iterval(keys,entry);
DEBUG_H(Perl_sv_setpvf(aTHX_ tmpstr, "%lu%%%d=%lu",
(unsigned long)HeHASH(entry),
(int)HvMAX(keys)+1,

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.1-28-g64821df

2015-07-22 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/64821df16a716bfc005acb06c7dc5b72afabe38d?hp=5cce15f303ed613cd36c5bc28b7c05aecb464300>

- Log -
commit 64821df16a716bfc005acb06c7dc5b72afabe38d
Author: Tony Cook 
Date:   Thu Jul 23 15:34:43 2015 +1000

[perl #123961] handle a missing closing ` for -DT output
---

Summary of changes:
 toke.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/toke.c b/toke.c
index 205b00b..4a53f2f 100644
--- a/toke.c
+++ b/toke.c
@@ -6310,7 +6310,13 @@ Perl_yylex(pTHX)
 
 case '`':
s = scan_str(s,FALSE,FALSE,FALSE,NULL);
-   DEBUG_T( { printbuf("### Saw backtick string before %s\n", s); } );
+   DEBUG_T( {
+if (s)
+printbuf("### Saw backtick string before %s\n", s);
+else
+   PerlIO_printf(Perl_debug_log,
+"### Saw unterminated backtick string\n");
+} );
if (PL_expect == XOPERATOR)
no_op("Backticks",s);
if (!s)

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-124-gacff5ba

2015-07-26 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/acff5baaca24247639df4bcbb02fbaa434936be4?hp=58fe1fb695137d38657c3138b757ec36f5688f10>

- Log -
commit acff5baaca24247639df4bcbb02fbaa434936be4
Author: Tony Cook 
Date:   Mon Jul 27 11:50:57 2015 +1000

easy votes and some comments
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 62 +---
 1 file changed, 33 insertions(+), 29 deletions(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index 62d526b..87e435e 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -5,21 +5,21 @@
 Tickets Listed in #123921: 5.20.3 blockers
 
 The leak isn't in blead so there is no blead commit to cherry-pick. The voting 
here relates to the two patches by Tony C on the ticket. -- steveh
-
+
 
-
+
 
 
 
 
-
-
-
+
+
+
 
-
-
-
-
+
+
+
+
 
 
 
@@ -50,13 +50,17 @@ I feel a bit leery about this next one.  The code is a bit 
fragile, so I would f
 
 
 
-
-
 
-
-
-
-
+Both of the following should be applied, or neither -- tonyc.
+
+
+
+The second of the following 2 depends on the first being applied -- tonyc.
+
+
+
+
+
 
 
 This commit (d27f4)'s new test is failing in a dry-run of cherry-picking into 
maint -- steveh:
@@ -121,12 +125,12 @@ Does this need d9a13252ba5aad7b3eaaff069b56472cfb651a40 
too? -- steveh
 
 
 
-
-
+
+
 
-
-
-
+
+
+
 
 
 
@@ -146,7 +150,7 @@ Does this need d9a13252ba5aad7b3eaaff069b56472cfb651a40 
too? -- steveh
 
 
 
-
+
 
 
 
@@ -160,17 +164,17 @@ Does this need d9a13252ba5aad7b3eaaff069b56472cfb651a40 
too? -- steveh
 
 
 
-
-
+
+
 
-
-
+
+
 
-
-
+
+
 
-
-
+
+
 
 
 

--
Perl5 Master Repository


[perl.git] branch tonyc/utf8-UTF8-UTF-8, deleted. v5.22.0-RC1-5-g7e0603d

2015-07-27 Thread Tony Cook
In perl.git, the branch tonyc/utf8-UTF8-UTF-8 has been deleted



   was  7e0603d5d5ec616dae2c65984cd8114e53fdd35c

---
7e0603d5d5ec616dae2c65984cd8114e53fdd35c call UTF-8 "UTF-8" except when 
referring to the namespace
---

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-125-g9154295

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/915429546b87b0e03a54b1952c0fcd9e6d1bcfc7?hp=acff5baaca24247639df4bcbb02fbaa434936be4>

- Log -
commit 915429546b87b0e03a54b1952c0fcd9e6d1bcfc7
Author: Tony Cook 
Date:   Tue Jul 28 11:46:50 2015 +1000

the hv_func.h change has a sort-of-dependent change
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index 87e435e..b8f6f4e 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -136,7 +136,9 @@ Does this need d9a13252ba5aad7b3eaaff069b56472cfb651a40 
too? -- steveh
 
 Build and Installation Fixes
 
-
+The following allows the other hv_func.h patch below to apply cleanly and 
fixes a real bug. I've voted for the second, but the conflict resolution for 
that will effectively apply the first, so not ap ... [15 chars truncated]
+
+
 
 
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-5-gf8f1324

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated



- Log -
commit f8f1324c494d7cf2c6e2c71df69504e665c90a86
Author: Andy Dougherty 
Date:   Wed Feb 27 09:12:13 2013 -0500

Change os390 custom cppstdin script to use fgrep.

Grep appears to be limited to 2048 characters, and truncates
the output for cppstin.  Fgrep apparently doesn't have that limit.
Thanks to John Goodyear  for reporting this.
(cherry picked from commit a4c2c75af551764534f9f8cb6afd4ef6ba514f45)
---

Summary of changes:
 hints/os390.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hints/os390.sh b/hints/os390.sh
index 5aafb4e..892d36d 100644
--- a/hints/os390.sh
+++ b/hints/os390.sh
@@ -158,10 +158,10 @@ esac
 # under a compiler other than c89.
 case "$usedl" in
 define)
-echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE 
-D_SHR_ENVIRON -E -Wc,"LANGLVL(DOLLARINNAMES)",NOLOC ${1+"$@"} .$$.c | grep -v 
"??="; rm .$$.c' > cppstdin
+echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE 
-D_SHR_ENVIRON -E -Wc,"LANGLVL(DOLLARINNAMES)",NOLOC ${1+"$@"} .$$.c | fgrep -v 
"??="; rm .$$.c' > cppstdin
 ;;
 *)
-echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE 
-E -Wc,"LANGLVL(DOLLARINNAMES)",NOLOC ${1+"$@"} .$$.c | grep -v "??="; rm 
.$$.c' > cppstdin
+echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE 
-E -Wc,"LANGLVL(DOLLARINNAMES)",NOLOC ${1+"$@"} .$$.c | fgrep -v "??="; rm 
.$$.c' > cppstdin
 ;;
 esac
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-126-g57933fb

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/57933fbc75c464032bbee7d3030fdcfc235bcb2e?hp=915429546b87b0e03a54b1952c0fcd9e6d1bcfc7>

- Log -
commit 57933fbc75c464032bbee7d3030fdcfc235bcb2e
Author: Tony Cook 
Date:   Tue Jul 28 15:24:32 2015 +1000

voted and for applied a4c2c75af551764534f9f8cb6afd4ef6ba514f45
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index b8f6f4e..c9f54f5 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -147,8 +147,6 @@ The following allows the other hv_func.h patch below to 
apply cleanly and fixes
 
 Portability Fixes
 
-
-
 
 
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-6-g67d94e8

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated



- Log -
commit 67d94e8eab564f018e700507e7ba0958eb43033b
Author: Karl Williamson 
Date:   Mon Dec 29 13:57:10 2014 -0700

perlpod: Latin1 pods need an =encoding
(cherry picked from commit a0879bf8a3066bd055931dcc51f2c4f80ec01ffb)
---

Summary of changes:
 pod/perlpod.pod | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/pod/perlpod.pod b/pod/perlpod.pod
index 2f531f9..12b156b 100644
--- a/pod/perlpod.pod
+++ b/pod/perlpod.pod
@@ -282,11 +282,15 @@ be for formatting as a footnote).
 X<=encoding> X
 
 This command is used for declaring the encoding of a document.  Most
-users won't need this; but if your encoding isn't US-ASCII or Latin-1,
-then put a C<=encoding I> command early in the document so
+users won't need this; but if your encoding isn't US-ASCII,
+then put a C<=encoding I> command very early in the document so
 that pod formatters will know how to decode the document.  For
 I, use a name recognized by the L
-module.  Examples:
+module.  Some pod formatters may try to guess between a Latin-1 versus
+UTF-8 encoding, but they may guess wrong.  It's best to be explicit if
+you use anything besides strict ASCII.  Examples:
+
+  =encoding latin1
 
   =encoding utf8
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-127-g1881f3c

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/1881f3c8499b035a031a5adb6313cb4bb950e7ce?hp=57933fbc75c464032bbee7d3030fdcfc235bcb2e>

- Log -
commit 1881f3c8499b035a031a5adb6313cb4bb950e7ce
Author: Tony Cook 
Date:   Tue Jul 28 15:35:52 2015 +1000

voted for and applied a0879bf8a3066bd055931dcc51f2c4f80ec01ffb
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index c9f54f5..c406079 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -160,7 +160,6 @@ The following allows the other hv_func.h patch below to 
apply cleanly and fixes
 
 Documentation Fixes
 
-
 
 
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-7-g3f48d41

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated



- Log -
commit 3f48d410f19f301f9e0a9143b6c4763d583e67a9
Author: Matthew Horsfall (alh) 
Date:   Thu Jan 8 08:41:24 2015 -0500

Fix apidocs for OP_TYPE_IS(_OR_WAS) - arguments separated by |, not ,.

This was causing Devel::PPPort's tooling some grief.
(cherry picked from commit 5bfb0af0b8971c7f063804d149384ca17bfc0ae2)
---

Summary of changes:
 op.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/op.h b/op.h
index 9d9dd58..ff45354 100644
--- a/op.h
+++ b/op.h
@@ -1005,7 +1005,7 @@ For custom ops the type is returned from the 
registration, and it is up
 to the registree to ensure it is accurate.  The value returned will be
 one of the OA_* constants from op.h.
 
-=for apidoc Am|bool|OP_TYPE_IS|OP *o, Optype type
+=for apidoc Am|bool|OP_TYPE_IS|OP *o|Optype type
 Returns true if the given OP is not a NULL pointer
 and if it is of the given type.
 
@@ -1013,7 +1013,7 @@ The negation of this macro, C is also 
available
 as well as C and C which elide
 the NULL pointer check.
 
-=for apidoc Am|bool|OP_TYPE_IS_OR_WAS|OP *o, Optype type
+=for apidoc Am|bool|OP_TYPE_IS_OR_WAS|OP *o|Optype type
 Returns true if the given OP is not a NULL pointer and
 if it is of the given type or used to be before being
 replaced by an OP of type OP_NULL.

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-128-g0a4712f

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/0a4712fb7cd0c06d35a8183dede23ecb2d7c33ef?hp=1881f3c8499b035a031a5adb6313cb4bb950e7ce>

- Log -
commit 0a4712fb7cd0c06d35a8183dede23ecb2d7c33ef
Author: Tony Cook 
Date:   Tue Jul 28 15:43:32 2015 +1000

voted for and cherry-picked 5bfb0af0b8971c7f063804d149384ca17bfc0ae2
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index c406079..5e94908 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -160,7 +160,6 @@ The following allows the other hv_func.h patch below to 
apply cleanly and fixes
 
 Documentation Fixes
 
-
 
 
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-8-g7ee5afc

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated



- Log -
commit 7ee5afc746607e1b7fce7934f2b9a27ce300ba4f
Author: Karl Williamson 
Date:   Thu Jan 8 12:22:21 2015 -0700

perlpodspec: Corrections/adds to detecting =encoding

C0 and C1 are not legal UTF-8 start bytes.  utf8::decode() is a more
accurate way of determining UTF-8.
(cherry picked from commit 9a5b9407081290adfb965563aed854ccd8560db6)
---

Summary of changes:
 pod/perlpodspec.pod | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/pod/perlpodspec.pod b/pod/perlpodspec.pod
index 67f74b6..f2af63e 100644
--- a/pod/perlpodspec.pod
+++ b/pod/perlpodspec.pod
@@ -633,15 +633,21 @@ UTF-16.  If the file begins with the three literal byte 
values
 
 =item *
 
-A naive but sufficient heuristic for testing the first highbit
+A naive but often sufficient heuristic for testing the first highbit
 byte-sequence in a BOM-less file (whether in code or in Pod!), to see
 whether that sequence is valid as UTF-8 (RFC 2279) is to check whether
-that the first byte in the sequence is in the range 0xC0 - 0xFD
+that the first byte in the sequence is in the range 0xC2 - 0xFD
 I whether the next byte is in the range
 0x80 - 0xBF.  If so, the parser may conclude that this file is in
 UTF-8, and all highbit sequences in the file should be assumed to
 be UTF-8.  Otherwise the parser should treat the file as being
-in Latin-1.  In the unlikely circumstance that the first highbit
+in Latin-1.  (A better check is to pass a copy of the sequence to
+L which performs a full validity check on the
+sequence and returns TRUE if it is valid UTF-8, FALSE otherwise.  This
+function is always pre-loaded, is fast because it is written in C, and
+will only get called at most once, so you don't need to avoid it out of
+performance concerns.)
+In the unlikely circumstance that the first highbit
 sequence in a truly non-UTF-8 file happens to appear to be UTF-8, one
 can cater to our heuristic (as well as any more intelligent heuristic)
 by prefacing that line with a comment line containing a highbit

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-129-gc07886d

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/c07886d6af5747723d05cb6f42ca70e0ef962a25?hp=0a4712fb7cd0c06d35a8183dede23ecb2d7c33ef>

- Log -
commit c07886d6af5747723d05cb6f42ca70e0ef962a25
Author: Tony Cook 
Date:   Tue Jul 28 15:47:48 2015 +1000

voted for a cherry-picked 9a5b9407081290adfb965563aed854ccd8560db6
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index 5e94908..45bcde1 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -160,7 +160,6 @@ The following allows the other hv_func.h patch below to 
apply cleanly and fixes
 
 Documentation Fixes
 
-
 
 
 

--
Perl5 Master Repository


[perl.git] branch maint-5.20, updated. v5.20.2-9-ga82de63

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20 has been updated



- Log -
commit a82de63beda206f04be7b7c8573c2cef05ea397d
Author: Daniel Dragan 
Date:   Thu Jan 15 22:30:25 2015 -0500

improve SvPV_set's docs, it really shouldn't be public API

Someone else in the perl community wrote XS code using SvPV_set instead
of sv_setpvn and couldn't figure out why he was getting
heap corruption/failed asserts/SEGVs/etc. Improve the docs to basically say
never use this.
(cherry picked from commit f2979eac0a03fcba1cd431ef3d46f697176ebcc8)
---

Summary of changes:
 sv.h | 11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sv.h b/sv.h
index b129225..15163e4 100644
--- a/sv.h
+++ b/sv.h
@@ -792,13 +792,18 @@ C instead of the lvalue assignment to C.
 Set the value of the NV pointer in sv to val.  See C.
 
 =for apidoc Am|void|SvPV_set|SV* sv|char* val
-Set the value of the PV pointer in C to the C-terminated string
-C.  See also C.
+This is probably not what you want to use, you probably wanted
+L or L or L.
 
+Set the value of the PV pointer in C to the Perl allocated
+C-terminated string C.  See also C.
+
+Remember to free the previous PV buffer. There are many things to check.
 Beware that the existing pointer may be involved in copy-on-write or other
 mischief, so do C and use C or
 C (or check the SvIsCOW flag) first to make sure this
-modification is safe.
+modification is safe. Then finally, if it is not a COW, call C to
+free the previous PV buffer.
 
 =for apidoc Am|void|SvUV_set|SV* sv|UV val
 Set the value of the UV pointer in sv to val.  See C.

--
Perl5 Master Repository


[perl.git] branch maint-5.20-votes, updated. v5.20.1-130-g743c65f

2015-07-27 Thread Tony Cook
In perl.git, the branch maint-5.20-votes has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/743c65f5a4260710b56b5f85dc9de535a92aa5df?hp=c07886d6af5747723d05cb6f42ca70e0ef962a25>

- Log -
commit 743c65f5a4260710b56b5f85dc9de535a92aa5df
Author: Tony Cook 
Date:   Tue Jul 28 15:56:31 2015 +1000

vote for and cherry-pick f2979eac0a03fcba1cd431ef3d46f697176ebcc8
---

Summary of changes:
 Porting/cherry-pick-votes-maint-5.20.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/Porting/cherry-pick-votes-maint-5.20.xml 
b/Porting/cherry-pick-votes-maint-5.20.xml
index 45bcde1..330aef9 100644
--- a/Porting/cherry-pick-votes-maint-5.20.xml
+++ b/Porting/cherry-pick-votes-maint-5.20.xml
@@ -160,7 +160,6 @@ The following allows the other hv_func.h patch below to 
apply cleanly and fixes
 
 Documentation Fixes
 
-
 
 
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.1-138-g3480fba

2015-07-29 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 3480fbaaaea849eca1f4747c4f85938960b20956
Author: Daniel Dragan 
Date:   Wed Jul 29 09:54:51 2015 -0400

Cwd.pm, dont repeatedly access magic %ENV vars

%ENV is magic/tied, a lexical is faster than calling out to magic APIs
with gets and sets (or checks for them). Less glob and hash lookups too.

Return the lexical instead of the magic var so there isn't a search for
magic from pp_leavesub's sv_mortalcopy. Even though env mg vtable doesn't
have a getter or GMAGIC, SvVSTRING_mg executes mg_find for random, get
and set magic inside Perl_sv_setsv_flags.
---

Summary of changes:
 dist/PathTools/Cwd.pm | 51 +--
 dist/PathTools/lib/File/Spec.pm   |  2 +-
 dist/PathTools/lib/File/Spec/Cygwin.pm|  2 +-
 dist/PathTools/lib/File/Spec/Epoc.pm  |  2 +-
 dist/PathTools/lib/File/Spec/Functions.pm |  2 +-
 dist/PathTools/lib/File/Spec/Mac.pm   |  2 +-
 dist/PathTools/lib/File/Spec/OS2.pm   |  2 +-
 dist/PathTools/lib/File/Spec/Unix.pm  |  2 +-
 dist/PathTools/lib/File/Spec/VMS.pm   |  2 +-
 dist/PathTools/lib/File/Spec/Win32.pm |  2 +-
 10 files changed, 37 insertions(+), 32 deletions(-)

diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
index 49cc4c1..0765de4 100644
--- a/dist/PathTools/Cwd.pm
+++ b/dist/PathTools/Cwd.pm
@@ -3,7 +3,7 @@ use strict;
 use Exporter;
 use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 
-$VERSION = '3.56';
+$VERSION = '3.57';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
@@ -600,20 +600,23 @@ sub _vms_abs_path {
 }
 
 sub _os2_cwd {
-$ENV{'PWD'} = `cmd /c cd`;
-chomp $ENV{'PWD'};
-$ENV{'PWD'} =~ s:\\:/:g ;
-return $ENV{'PWD'};
+my $pwd = `cmd /c cd`;
+chomp $pwd;
+$pwd =~ s:\\:/:g ;
+$ENV{'PWD'} = $pwd;
+return $pwd;
 }
 
 sub _win32_cwd_simple {
-$ENV{'PWD'} = `cd`;
-chomp $ENV{'PWD'};
-$ENV{'PWD'} =~ s:\\:/:g ;
-return $ENV{'PWD'};
+my $pwd = `cd`;
+chomp $pwd;
+$pwd =~ s:\\:/:g ;
+$ENV{'PWD'} = $pwd;
+return $pwd;
 }
 
 sub _win32_cwd {
+my $pwd;
 # Need to avoid taking any sort of reference to the typeglob or the code in
 # the optree, so that this tests the runtime state of things, as the
 # ExtUtils::MakeMaker tests for "miniperl" need to be able to fake things 
at
@@ -622,35 +625,38 @@ sub _win32_cwd {
 # problems (for reasons that we haven't been able to get to the bottom of -
 # rt.cpan.org #56225)
 if (*{$DynaLoader::{boot_DynaLoader}}{CODE}) {
-   $ENV{'PWD'} = Win32::GetCwd();
+   $pwd = Win32::GetCwd();
 }
 else { # miniperl
-   chomp($ENV{'PWD'} = `cd`);
+   chomp($pwd = `cd`);
 }
-$ENV{'PWD'} =~ s:\\:/:g ;
-return $ENV{'PWD'};
+$pwd =~ s:\\:/:g ;
+$ENV{'PWD'} = $pwd;
+return $pwd;
 }
 
 *_NT_cwd = defined &Win32::GetCwd ? \&_win32_cwd : \&_win32_cwd_simple;
 
 sub _dos_cwd {
+my $pwd;
 if (!defined &Dos::GetCwd) {
-$ENV{'PWD'} = `command /c cd`;
-chomp $ENV{'PWD'};
-$ENV{'PWD'} =~ s:\\:/:g ;
+chomp($pwd = `command /c cd`);
+$pwd =~ s:\\:/:g ;
 } else {
-$ENV{'PWD'} = Dos::GetCwd();
+$pwd = Dos::GetCwd();
 }
-return $ENV{'PWD'};
+$ENV{'PWD'} = $pwd;
+return $pwd;
 }
 
 sub _qnx_cwd {
local $ENV{PATH} = '';
local $ENV{CDPATH} = '';
local $ENV{ENV} = '';
-$ENV{'PWD'} = `/usr/bin/fullpath -t`;
-chomp $ENV{'PWD'};
-return $ENV{'PWD'};
+my $pwd = `/usr/bin/fullpath -t`;
+chomp $pwd;
+$ENV{'PWD'} = $pwd;
+return $pwd;
 }
 
 sub _qnx_abs_path {
@@ -669,8 +675,7 @@ sub _qnx_abs_path {
 }
 
 sub _epoc_cwd {
-$ENV{'PWD'} = EPOC::getcwd();
-return $ENV{'PWD'};
+return $ENV{'PWD'} = EPOC::getcwd();
 }
 
 
diff --git a/dist/PathTools/lib/File/Spec.pm b/dist/PathTools/lib/File/Spec.pm
index 8c77c98..2f35526 100644
--- a/dist/PathTools/lib/File/Spec.pm
+++ b/dist/PathTools/lib/File/Spec.pm
@@ -3,7 +3,7 @@ package File::Spec;
 use strict;
 use vars qw(@ISA $VERSION);
 
-$VERSION = '3.56';
+$VERSION = '3.57';
 $VERSION =~ tr/_//;
 
 my %module = (MacOS   => 'Mac',
diff --git a/dist/PathTools/lib/File/Spec/Cygwin.pm 
b/dist/PathTools/lib/File/Spec/Cygwin.pm
index 1b77e6a..e5839e9 100644
--- a/dist/PathTools/lib/File/Spec/Cygwin.pm
+++ b/dist/PathTools/lib/File/Spec/Cygwin.pm
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.56';
+$VERSION = '3.57';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
diff --git a/dist/PathTools/lib/File/Spec/Epoc.pm 
b/dist/PathTools/lib/File/Spec/Epoc.pm
index 7bc3867..3

[perl.git] branch blead, updated. v5.23.1-139-ga2373b3

2015-07-29 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/a2373b32b1b1b8979cf9c5bb27478555d4ac2bde?hp=3480fbaaaea849eca1f4747c4f85938960b20956>

- Log -
commit a2373b32b1b1b8979cf9c5bb27478555d4ac2bde
Author: Tony Cook 
Date:   Thu Jul 30 12:01:17 2015 +1000

perldelta for 3480fbaaaea8
---

Summary of changes:
 pod/perldelta.pod | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 1580b43..99dc32d 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -119,7 +119,10 @@ XXX
 
 =item *
 
-L has been upgraded from version A.xx to B.yy.
+The PathTools module collection has been upgraded from version 3.55 to
+3.56.
+
+Minor optimizations. [perl #125712]
 
 =back
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.1-165-gb01a1ee

2015-08-02 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit b01a1eea00c654eb434a66b36b1c03579536c4e4
Author: Reini Urban 
Date:   Fri Mar 13 16:34:38 2015 +0100

xs_boot_epilog (Xp): change ax from U32 to I32

we need to match the declaration of ax
---

Summary of changes:
 embed.fnc | 2 +-
 perl.c| 2 +-
 proto.h   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/embed.fnc b/embed.fnc
index 9171ec6..f596b1a 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -2745,7 +2745,7 @@ so|void   |xs_version_bootcheck|U32 items|U32 
ax|NN const char *xs_p \
 #endif
 Xpon   |I32|xs_handshake   |const U32 key|NN void * v_my_perl\
|NN const char * file| ...
-Xp |void   |xs_boot_epilog |const U32 ax
+Xp |void   |xs_boot_epilog |const I32 ax
 #ifndef HAS_STRLCAT
 Apnod  |Size_t |my_strlcat |NULLOK char *dst|NULLOK const char *src|Size_t 
size
 #endif
diff --git a/perl.c b/perl.c
index 3cdae04..1af5e29 100644
--- a/perl.c
+++ b/perl.c
@@ -5066,7 +5066,7 @@ read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen)
 
 /* removes boilerplate code at the end of each boot_Module xsub */
 void
-Perl_xs_boot_epilog(pTHX_ const U32 ax)
+Perl_xs_boot_epilog(pTHX_ const I32 ax)
 {
   if (PL_unitcheckav)
call_list(PL_scopestack_ix, PL_unitcheckav);
diff --git a/proto.h b/proto.h
index b7acae9..5c0a61b 100644
--- a/proto.h
+++ b/proto.h
@@ -5252,7 +5252,7 @@ PERL_CALLCONV voidPerl_write_to_stderr(pTHX_ SV* 
msv)
 #define PERL_ARGS_ASSERT_WRITE_TO_STDERR   \
assert(msv)
 
-PERL_CALLCONV void Perl_xs_boot_epilog(pTHX_ const U32 ax);
+PERL_CALLCONV void Perl_xs_boot_epilog(pTHX_ const I32 ax);
 PERL_CALLCONV I32  Perl_xs_handshake(const U32 key, void * v_my_perl, 
const char * file, ...)
__attribute__nonnull__(2)
__attribute__nonnull__(3);

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.1-166-gc0b7e59

2015-08-02 Thread Tony Cook
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/c0b7e5912401cf8f1eedc72206b90e6f1623729a?hp=b01a1eea00c654eb434a66b36b1c03579536c4e4>

- Log -
commit c0b7e5912401cf8f1eedc72206b90e6f1623729a
Author: Tony Cook 
Date:   Mon Aug 3 11:41:42 2015 +1000

use a more sensible homepage value for XSLoader
---

Summary of changes:
 dist/XSLoader/Makefile.PL | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dist/XSLoader/Makefile.PL b/dist/XSLoader/Makefile.PL
index 008f602..899cc89 100644
--- a/dist/XSLoader/Makefile.PL
+++ b/dist/XSLoader/Makefile.PL
@@ -48,7 +48,7 @@ WriteMakefile(
 resources   => {
 repository  => 'git://perl5.git.perl.org/perl.git',
 license => 'http://dev.perl.org/licenses/',
-homepage=> 'https://metacpan.org/module/Math::BigInt',
+homepage=> 'https://metacpan.org/module/XSLoader',
 irc => 'irc://irc.perl.org/#p5p',
 mailinglist => 'http://lists.perl.org/list/perl5-porters.html',
 bugtracker  => 
"https://rt.perl.org/rt3/Search/Results.html?Query=Queue='perl5' AND Content 
LIKE 'module=XSLoader' AND (Status='open' OR Status='new' OR Status='stalled')",

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.23.1-167-g997c424

2015-08-02 Thread Tony Cook
In perl.git, the branch blead has been updated



- Log -
commit 997c424a5725c6a1ddfcced6f5d13535e970f842
Author: Daniel Dragan 
Date:   Wed Jul 29 03:31:23 2015 -0400

Safefree(NULL) reduction

locale.c:
- the pointers are always null at this point, see
  http://www.nntp.perl.org/group/perl.perl5.porters/2015/07/msg229533.html
pp.c:
- reduce scope of temp_buffer and svrecode, into an inner branch
- in some permutations, either temp_buffer is never set to non-null, or
  svrecode, in permutations where it is known that the var hasn't been set
  yet, skip the freeing calls at the end, this doesn't eliminate all
  permutations with NULL being passed to Safefree and SvREFCNT_dec, but
  only some of them
regcomp.c
- dont create a save stack entry to call Safefree(NULL), see ticket for
  this patch for some profiling stats
---

Summary of changes:
 locale.c  |  3 ---
 pp.c  | 31 ---
 regcomp.c |  3 ++-
 3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/locale.c b/locale.c
index a36e8dc..9b0979d 100644
--- a/locale.c
+++ b/locale.c
@@ -707,7 +707,6 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 }
 if (!setlocale_failure) {
 #   ifdef USE_LOCALE_CTYPE
-   Safefree(curctype);
if (! (curctype =
   my_setlocale(LC_CTYPE,
 (!done && (lang || PerlEnv_getenv("LC_CTYPE")))
@@ -717,7 +716,6 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
curctype = savepv(curctype);
 #   endif /* USE_LOCALE_CTYPE */
 #   ifdef USE_LOCALE_COLLATE
-   Safefree(curcoll);
if (! (curcoll =
   my_setlocale(LC_COLLATE,
 (!done && (lang || PerlEnv_getenv("LC_COLLATE")))
@@ -727,7 +725,6 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
curcoll = savepv(curcoll);
 #   endif /* USE_LOCALE_COLLATE */
 #   ifdef USE_LOCALE_NUMERIC
-   Safefree(curnum);
if (! (curnum =
   my_setlocale(LC_NUMERIC,
 (!done && (lang || PerlEnv_getenv("LC_NUMERIC")))
diff --git a/pp.c b/pp.c
index 3ebcf1c..6c50ed3 100644
--- a/pp.c
+++ b/pp.c
@@ -817,14 +817,13 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
 
 s = SvPV(sv, len);
 if (chomping) {
-   char *temp_buffer = NULL;
-   SV *svrecode = NULL;
-
if (s && len) {
+   char *temp_buffer = NULL;
+   SV *svrecode = NULL;
s += --len;
if (RsPARA(PL_rs)) {
if (*s != '\n')
-   goto nope;
+   goto nope_free_nothing;
++count;
while (len && s[-1] == '\n') {
--len;
@@ -848,11 +847,12 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
temp_buffer = (char*)bytes_from_utf8((U8*)rsptr,
 &rslen, &is_utf8);
if (is_utf8) {
-   /* Cannot downgrade, therefore cannot possibly match
+   /* Cannot downgrade, therefore cannot possibly 
match.
+  At this point, temp_buffer is not alloced, and
+  is the buffer inside PL_rs, so dont free it.
 */
assert (temp_buffer == rsptr);
-   temp_buffer = NULL;
-   goto nope;
+   goto nope_free_sv;
}
rsptr = temp_buffer;
}
@@ -872,16 +872,16 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
}
if (rslen == 1) {
if (*s != *rsptr)
-   goto nope;
+   goto nope_free_all;
++count;
}
else {
if (len < rslen - 1)
-   goto nope;
+   goto nope_free_all;
len -= rslen - 1;
s -= rslen - 1;
if (memNE(s, rsptr, rslen))
-   goto nope;
+   goto nope_free_all;
count += rs_charlen;
}
}
@@ -890,12 +890,13 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
*SvEND(sv) = '\0';
SvNIOK_off(sv);
SvSETMAGIC(sv);
-   }
-nope:
 
-   SvREFCNT_dec(svrecode);
-
-   Safefree(temp_buffer);
+   nope_free_all:
+   Safefree(temp_buffer);
+   nope_free_sv:
+   SvREFCNT_dec(svrecode);
+  

<    3   4   5   6   7   8   9   10   11   12   >