This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agoConvert pp_sys to use the time64 public interface.
Jarkko Hietaniemi [Mon, 20 Jul 2015 09:31:05 +0000 (12:31 +0300)]
Convert pp_sys to use the time64 public interface.

6 years agoAdd time64 as its own build target.
Jarkko Hietaniemi [Mon, 20 Jul 2015 08:51:47 +0000 (11:51 +0300)]
Add time64 as its own build target.

6 years agodquote_static.c -> dquote.c
Jarkko Hietaniemi [Sun, 19 Jul 2015 13:54:22 +0000 (16:54 +0300)]
dquote_static.c -> dquote.c

Instead of #include-ing the C file, compile it normally.

6 years agostatic inlines from dquote_static.c -> new dquote_inline.h
Jarkko Hietaniemi [Sun, 19 Jul 2015 07:34:24 +0000 (10:34 +0300)]
static inlines from dquote_static.c -> new dquote_inline.h

6 years agoinline_invlist.c -> invlist_inline.h
Jarkko Hietaniemi [Sat, 18 Jul 2015 18:24:47 +0000 (21:24 +0300)]
inline_invlist.c -> invlist_inline.h

6 years agoMake *inline.h behave like *.c
Jarkko Hietaniemi [Tue, 21 Jul 2015 06:49:05 +0000 (09:49 +0300)]
Make *inline.h behave like *.c

6 years agooverload.c -> overload.inc
Jarkko Hietaniemi [Sat, 18 Jul 2015 14:22:13 +0000 (17:22 +0300)]
overload.c -> overload.inc

6 years agooverload.[hc] descriptions were swapped
Jarkko Hietaniemi [Sat, 18 Jul 2015 13:53:00 +0000 (16:53 +0300)]
overload.[hc] descriptions were swapped

6 years agopacksizetables.c -> packsizetables.inc
Jarkko Hietaniemi [Sat, 18 Jul 2015 13:28:46 +0000 (16:28 +0300)]
packsizetables.c -> packsizetables.inc

6 years agomg_names.c -> mg_names.inc
Jarkko Hietaniemi [Fri, 17 Jul 2015 08:46:14 +0000 (11:46 +0300)]
mg_names.c -> mg_names.inc

6 years agoMake *.inc behave like *.[hc]
Jarkko Hietaniemi [Fri, 17 Jul 2015 08:55:00 +0000 (11:55 +0300)]
Make *.inc behave like *.[hc]

6 years agoMerge declaration and initialisation of local variable
Dagfinn Ilmari Mannsåker [Thu, 16 Jul 2015 07:08:19 +0000 (08:08 +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.

6 years agocombine PERLDB_LINE and PERLDB_SAVESRC flag tests
Daniel Dragan [Thu, 16 Jul 2015 01:59:58 +0000 (21:59 -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

6 years agoUpdates to Module::CoreList per RMG.
Matthew Horsfall [Tue, 21 Jul 2015 12:10:01 +0000 (08:10 -0400)]
Updates to Module::CoreList per RMG.

6 years agoRMG - Manually adding perldelta for Module::CoreList isn't needed
Matthew Horsfall [Tue, 21 Jul 2015 11:53:58 +0000 (07:53 -0400)]
RMG - Manually adding perldelta for Module::CoreList isn't needed

6 years agoperlgit: minor copyedits
Aristotle Pagaltzis [Tue, 21 Jul 2015 10:24:36 +0000 (12:24 +0200)]
perlgit: minor copyedits

6 years agoperlgit: standardize verbatims to 2-space indent
Aristotle Pagaltzis [Tue, 21 Jul 2015 10:23:55 +0000 (12:23 +0200)]
perlgit: standardize verbatims to 2-space indent

6 years agoperlgit: demote old-git remote branch procedure
Aristotle Pagaltzis [Tue, 21 Jul 2015 10:22:40 +0000 (12:22 +0200)]
perlgit: demote old-git remote branch procedure

6 years agoUpdate Porting/release_announcement_template.txt for new year/version
Matthew Horsfall [Mon, 20 Jul 2015 20:31:53 +0000 (16:31 -0400)]
Update Porting/release_announcement_template.txt for new year/version

6 years agoAdd Module::CoreList stubs for v5.23.2
Matthew Horsfall [Mon, 20 Jul 2015 20:18:32 +0000 (16:18 -0400)]
Add Module::CoreList stubs for v5.23.2

6 years agoBump version to 5.23.2
Matthew Horsfall [Mon, 20 Jul 2015 20:03:51 +0000 (16:03 -0400)]
Bump version to 5.23.2

6 years agoRun Porting/new-perldelta.pl for v5.23.2
Matthew Horsfall [Mon, 20 Jul 2015 19:56:02 +0000 (15:56 -0400)]
Run Porting/new-perldelta.pl for v5.23.2

6 years agoUpdate release_schedule.pod to note completed releases.
Matthew Horsfall [Mon, 20 Jul 2015 19:55:48 +0000 (15:55 -0400)]
Update release_schedule.pod to note completed releases.

6 years agoUpdate epigraphs for 5.23.0/5.23.1
Matthew Horsfall [Mon, 20 Jul 2015 19:47:55 +0000 (15:47 -0400)]
Update epigraphs for 5.23.0/5.23.1

6 years agoAdd new release to perlhist v5.23.1
Matthew Horsfall [Mon, 20 Jul 2015 18:56:52 +0000 (14:56 -0400)]
Add new release to perlhist

6 years agoFinalize perldelta for 5.23.1
Matthew Horsfall [Mon, 20 Jul 2015 18:50:22 +0000 (14:50 -0400)]
Finalize perldelta for 5.23.1

6 years agoUpdate Module::CoreList for 5.23.1
Matthew Horsfall [Mon, 20 Jul 2015 18:21:09 +0000 (14:21 -0400)]
Update Module::CoreList for 5.23.1

6 years agoRMG: Note that Porting/cmpVERSION.pl requires -Ilib to run
Matthew Horsfall [Mon, 20 Jul 2015 18:20:47 +0000 (14:20 -0400)]
RMG: Note that Porting/cmpVERSION.pl requires -Ilib to run

6 years agoUpdate INSTALL versions for 5.23.1
Matthew Horsfall [Mon, 20 Jul 2015 17:53:57 +0000 (13:53 -0400)]
Update INSTALL versions for 5.23.1

6 years agoInitial perldelta updates for 5.23.1
Matthew Horsfall [Mon, 20 Jul 2015 17:25:41 +0000 (13:25 -0400)]
Initial perldelta updates for 5.23.1

6 years agoUpdate File::Path entry in Porting/Maintainers.pl
Steve Hay [Mon, 20 Jul 2015 07:22:18 +0000 (08:22 +0100)]
Update File::Path entry in Porting/Maintainers.pl

t/pod.t no longer exists on CPAN, and the MAP is no longer required

6 years agoMake README.md a common IGNORABLE file
Steve Hay [Mon, 20 Jul 2015 07:20:29 +0000 (08:20 +0100)]
Make README.md a common IGNORABLE file

6 years agobump $DynaLoader::VERSION to 1.33
Tony Cook [Mon, 20 Jul 2015 06:02:00 +0000 (16:02 +1000)]
bump $DynaLoader::VERSION to 1.33

6 years agoReplace reference to newXSUB with newXS.
Matthew Horsfall (alh) [Thu, 29 Aug 2013 12:41:06 +0000 (08:41 -0400)]
Replace reference to newXSUB with newXS.

newXSUB hasn't been around for a long time

6 years agofactor out an %ENV assignment from make_ext.pl
Daniel Dragan [Tue, 20 Jan 2015 06:25:26 +0000 (01:25 -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.

6 years agoFix test that fails with new warny File::Path
Chris 'BinGOs' Williams [Sun, 19 Jul 2015 11:28:00 +0000 (12:28 +0100)]
Fix test that fails with new warny File::Path

6 years agoUpdate File-Path to CPAN version 2.11
Chris 'BinGOs' Williams [Sun, 19 Jul 2015 11:06:09 +0000 (12:06 +0100)]
Update File-Path to CPAN version 2.11

  [DELTA]

2.11     2015-07-17
    - Change argument check error from croak to carp since there are some
      dependent modules using non-standard options.  The error check will
      move back to croak when dependent modules have the opportunity to
      correct the argument.

2.10_005 2015-07-17
    - Better argument checking and reporting of failure for unrecognized
      options.
    - RT 71562 Document automount race condition limitation and workaround
    - RT 99230 Document multithreaded application limitation and that the
      limitation may be removed in a future release.

2.10_004 2015-07-10
    - Remove use of English.pm since it breaks many older Perls
    - Fix a unit test skip count for users who have not installed
      Test::Output

2.10_003 2015-07-08
    - Administrative changes to MANIFEST and MANIFEST.SKIP
    - Style changes to Path.pm for easier reading of code
    - Removal of pod.t
    - Use English.pm to make variables like $! more fluent for code readers

2.10_002 2015-06-26
    - RT 42139.  Add better SKIP test emit for VMS.
    - RT 85360.  Fix typos and better .gitignore and MANIFEST.SKIP settings.
    - RT 51588.  Added patch elements but unable to verify on VMS.

2.10_001 2015-06-24
    - RT 39949.  Report errors on lstat failure.
    - RT 53178.  Deprecate UNIVERSAL::isa usage
    - RT 70657.  Test added.
    - RT 70938.  Documentation fix for Windows native relative usage
    - RT 72256.  Option added for setting permission (chmod)
    - RT 73840.  Fix taint/untaint bug.
    - RT 95150.  Add CPAN metadata for source tree location.
    - RT 103512. Documentation language fix.

6 years agoUpdate libnet to CPAN version 3.07
Chris 'BinGOs' Williams [Sun, 19 Jul 2015 11:01:48 +0000 (12:01 +0100)]
Update libnet to CPAN version 3.07

  [DELTA]

3.07 2015-07-17

    - Net::FTP::rmdir() has been made more robust by making use of the MLSD
      command in addition to the NLST command since the latter is known not to
      be processed correctly by some FTP servers.

      [Chris Lindee, CPAN RT#100694]

    - Net::FTP, Net::NNTP, Net::POP3 and Net::SMTP can now restrict domain to
      IPv4 even if IPv6 is available by using the new Domain or Family argument.

      Net::NNTP now supports the LocalPort argument in addition to LocalAddr.

      Net::POP3 now supports the LocalAddr and LocalPort arguments in addition
      to ResvPort (which is retained for backwards compatibility).

      [Steffen Ullrich, PR#18]

    - Fixed a bug in Net::Cmd::datasend() which caused octets in [\x80-\xFF]
      stored in a "binary string" to be replaced with their UTF-8 encodings if
      the string happened to be stored internally in an "upgraded" state (i.e.
      with the UTF-8 flag on).  (As noted below, strings passed to datasend()
      should always be encoded first, and therefore not stored in such a state
      anyway, but it is all too easy for perl to change this internal state
      unless the encodeing is done at the very last minute before calling
      datasend(), so it helps if datasend() plays more nicely in this case.  In
      particular, it was wrong of datasend() to treat upgraded and downgraded
      strings differently when their contents were identical at the Perl level.)

      This bugfix results in a breaking change to the case of a "text string"
      with characters in U+0080..U+00FF stored internally in an upgraded state
      since those characters are likewise no longer encoded to UTF-8 by
      datasend(), but callers of datasend() should not have been relying on this
      behaviour anyway: In general, datasend() has no idea what encoding is
      required for output so callers should always encode the data to be output
      to whatever encoding is required first.  This has now been clarified in
      the documentation.

      Finally, a text string with characters >= U+0100 will now cause a "Wide
      character in print" warning from datasend() since such characters cannot
      be output as bytes and datasend() no longer encodes to UTF-8.  In this
      case, UTF-8 bytes will still be output as before since that happens to be
      the internal representation of such characters, but the warning is new.
      Callers should heed this warning and encode such strings to whatever
      encoding is required before calling datasend(), as noted above.

      [Ricardo Signes, CPAN RT#104433]

6 years agoupdate changelog for Attribute-Handlers as of perl 5.22
Ricardo Signes [Fri, 17 Jul 2015 15:17:23 +0000 (11:17 -0400)]
update changelog for Attribute-Handlers as of perl 5.22

6 years agoperldelta tweaks on the shift.
Jarkko Hietaniemi [Fri, 17 Jul 2015 08:12:42 +0000 (11:12 +0300)]
perldelta tweaks on the shift.

6 years agoFix thinko in perlsdio.h.
Craig A. Berry [Thu, 16 Jul 2015 11:34:42 +0000 (06:34 -0500)]
Fix thinko in perlsdio.h.

In 04ce8649990 I inadvertently created conflicting definitions for
PerlIO_ungetc on the non-VMS branch of an #ifdef.  This broke a
NetWare build that was still based on the stdio layer.  See
<http://nntp.perl.org/group/perl.perl5.porters/228427>.  Even
though stdio is no longer supported, we really ought to ship
something that compiles up until the point where we remove it,
which will hopefully be soon for perlsdio.h.

N.B.  This commit is not sufficient to get stdio as the base
layer working again.  Notably XS::APITest is broken for unrelated
reasons.

6 years agoperldelta for recent printf changes
Aaron Crane [Wed, 8 Jul 2015 11:55:18 +0000 (12:55 +0100)]
perldelta for recent printf changes

6 years agoDocument and ensure that sv_catpvf() does no argument ordering
Aaron Crane [Tue, 7 Jul 2015 17:16:36 +0000 (18:16 +0100)]
Document and ensure that sv_catpvf() does no argument ordering

sv_catpvf() and friends ultimately end up calling sv_vcatpvfn_flags() with a
C-style va_list argument (rather than with an array of SV pointers). When
the sprintf implementation in sv_vcatpvfn_flags() is called with a va_list
it always ignores any attempt by the format string to reorder the arguments.
This reasonable limitation is now documented, and the implementation throws
an exception when it encounters this situation.

Minimal tests for these exceptions have been added to XS::APItest.

6 years agoSupport reordered precision arguments in (s)printf
Aaron Crane [Tue, 7 Jul 2015 16:12:26 +0000 (17:12 +0100)]
Support reordered precision arguments in (s)printf

The printf builtins gained support for argument reordering in October 2000,
in eb3fce905f8436bbc374998ec8c7c34ce2b73e4e, as part of the 5.7.x blead
release cycle. However, a simple typo meant that it never worked: the
initial implementation stored the argument index in the variable "ewix"
(explicit width-argument index) instead of "epix" (for "precision").

The bug was noticed in July 2002, two days before the 5.8.0 release, so
fixing it at that stage was deemed riskier than documenting it. The commit in
question is 7b8dd722af72d0ca45650fb784c09763c0732e34, which was originally
posted as http://marc.info/?l=perl5-porters&m=102683138220786&w=2 .

For whatever reason, the obvious fix was never subsequently applied. This
commit remedies that, and extends it to also skip all redundant-argument
warnings when the precision is supplied with via an explicit index.

6 years agosv_vcatpvfn_flags(): make warnings more precise
Aaron Crane [Mon, 29 Jun 2015 15:35:11 +0000 (16:35 +0100)]
sv_vcatpvfn_flags(): make warnings more precise

- RT#125469 points out that no "redundant argument" warning should be emitted
  for code like C<< printf '<%*2$s>', "a", 6 >>; that's now fixed.

- We no longer emit a "missing argument" warning for invalid format strings,
  so C<< printf '%4$K %d', 17 >> now emits one "invalid" warning, and no
  other warnings. (Perl 5.12 and subsequent versions have inappropriately
  emitted a "missing argument" warning in this case.)

- We no longer treat the invalid format string in C<< printf '%1$$d', 17 >>
  as containing an explicit index, so (a) we emit an "invalid" warning for
  the double "$", and (b) we emit a "redundant argument" warning for the
  trailing argument. The "redundant argument" warning is new in this
  situation.

6 years agot/op/sprintf.t: include test comment in "ok" output, where available
Aaron Crane [Mon, 29 Jun 2015 15:34:45 +0000 (16:34 +0100)]
t/op/sprintf.t: include test comment in "ok" output, where available

6 years agoUpgrade Unicode-Normalize from version 1.18 to 1.19
Steve Hay [Tue, 14 Jul 2015 08:29:06 +0000 (09:29 +0100)]
Upgrade Unicode-Normalize from version 1.18 to 1.19

6 years agoUpgrade Unicode-Collate from version 1.12 to 1.14
Steve Hay [Tue, 14 Jul 2015 08:26:59 +0000 (09:26 +0100)]
Upgrade Unicode-Collate from version 1.12 to 1.14

6 years agoUpgrade autodie from version 2.28 to 2.29
Steve Hay [Tue, 14 Jul 2015 08:25:08 +0000 (09:25 +0100)]
Upgrade autodie from version 2.28 to 2.29

6 years agotoke.c: Move macro definition
Karl Williamson [Mon, 13 Jul 2015 18:08:32 +0000 (12:08 -0600)]
toke.c: Move macro definition

This moves the definition to before the function it is used in, rather
than disrupting the flow of code within the function.

6 years agoForbid variable names with ASCII non-graphic chars
Karl Williamson [Sat, 11 Jul 2015 18:19:59 +0000 (12:19 -0600)]
Forbid variable names with ASCII non-graphic chars

See http://nntp.perl.org/group/perl.perl5.porters/229168

Also, the documentation has been updated beyond this change to clarify
related matters, based on some experimentation.

Previously, spaces couldn't be in variable names; now ASCII control
characters can't be either.  The remaining permissible ASCII characters
in a variable name now must be all graphic ones.

6 years agoperldata: Change pod to reflect reality
Karl Williamson [Sun, 12 Jul 2015 04:37:35 +0000 (22:37 -0600)]
perldata: Change pod to reflect reality

Caret variable names don't have to be limited to $^A through $^Z.  $^],
etc. are also valid.

6 years agotoke.c: Comments, white-space only
Karl Williamson [Sun, 12 Jul 2015 04:39:54 +0000 (22:39 -0600)]
toke.c: Comments, white-space only

Add some clarifying comments, and properly indent some lines to
prevailing level.

6 years agouni/variables.t: Add TODO tests
Karl Williamson [Sat, 11 Jul 2015 18:03:20 +0000 (12:03 -0600)]
uni/variables.t: Add TODO tests

These show a bug in perl parsing where utf8ness makes a difference.
in what happens.  In this case, a syntax error is accompanied by warning
messages when in 'use utf8', and no warnings when not.  I'm not filing a
bug report, as I don't think it is worth fixing, as it is a syntax error
after all.  But I did make tests for it, as TODOs.

6 years agouni/variables.t: Output unexpected warnings
Karl Williamson [Sat, 11 Jul 2015 18:08:42 +0000 (12:08 -0600)]
uni/variables.t: Output unexpected warnings

This helps debug when the test fails.

6 years agouni/variables.t: Fix grammar in comment
Karl Williamson [Sat, 11 Jul 2015 18:01:54 +0000 (12:01 -0600)]
uni/variables.t: Fix grammar in comment

6 years agoEliminate repetitious wording in perldiag
Aaron Crane [Thu, 25 Jun 2015 12:50:43 +0000 (13:50 +0100)]
Eliminate repetitious wording in perldiag

6 years agoDelete experimental autoderef feature
Aaron Crane [Thu, 11 Jun 2015 16:24:13 +0000 (17:24 +0100)]
Delete experimental autoderef feature

6 years agoregen/regcharclass.pl: avoid autoderef feature
Aaron Crane [Wed, 24 Jun 2015 20:17:17 +0000 (21:17 +0100)]
regen/regcharclass.pl: avoid autoderef feature

6 years agoPorting/corelist.pl: avoid autoderef feature
Aaron Crane [Wed, 24 Jun 2015 20:14:49 +0000 (21:14 +0100)]
Porting/corelist.pl: avoid autoderef feature

6 years agoMake postfix dereferencing work without the postderef feature
Aaron Crane [Mon, 13 Jul 2015 11:58:51 +0000 (12:58 +0100)]
Make postfix dereferencing work without the postderef feature

The feature still exists, for compatibility with code that tries to enable
it, but it has no effect. The postderef_qq feature still exists, however.

6 years agochdir.t fix-up for VMS.
Craig A. Berry [Sun, 12 Jul 2015 21:33:26 +0000 (16:33 -0500)]
chdir.t fix-up for VMS.

There is no problem with setting or deleting HOME as there was
back in 58277c145607d, but there is still no way to delete
SYS$LOGIN from the job table.  So we do have to skip testing for
what happens with chdir() when the environment is clear, but it's
not conditional on $Config{d_setenv}.

6 years agoDocument $OLD_PERL_VERSION's history
Karen Etheridge [Thu, 9 Jul 2015 19:10:26 +0000 (12:10 -0700)]
Document $OLD_PERL_VERSION's history

$OLD_PERL_VERSION was added commented-out in Perl 5.6.0, when $PERL_VERSION
became $^V. It remained unimplemented and undocumented until it was added to
perlvar.pod, in the deprecated section, in 5.13.10. It was then implemented in
English.pm in 5.19.10, but remained undocumented until 5.22.0.

6 years agoUse CRTL getlogin and getlogin_r on VMS.
Craig A. Berry [Sun, 12 Jul 2015 03:37:56 +0000 (22:37 -0500)]
Use CRTL getlogin and getlogin_r on VMS.

The CRTL has supplied getlogin since v7.0, so let's not use the
home-made one anymore.  Plus the CRTL als has a reentrant version,
so we'll use that under threads.

6 years agoModule::CoreList->find_version(): refactor for testability.
James E Keenan [Wed, 8 Jul 2015 00:14:58 +0000 (20:14 -0400)]
Module::CoreList->find_version(): refactor for testability.

In order to address weaknesses in the documentation of find_version() in
CoreList.pod, we first had to address its lack of unit tests.  It was
previously only exercised inside the 'corelist' utility.  Refactored
function a bit to expose all its branches for testing.  Then added tests
for the function with and without arguments.  Corrected documentation
for find_version() in CoreList.pod.

Documentation subsequently clarified per feedback from Steve Parker.

For: RT # 125563 (1st of 2 problems cited in that ticket).

6 years agoClarify that deprecated_in() returns a perl version.
James E Keenan [Tue, 7 Jul 2015 22:59:40 +0000 (18:59 -0400)]
Clarify that deprecated_in() returns a perl version.

I.e., a string like 5.010001.  This makes documentation of deprecated_in()
consistent with that of other Module::CoreList functions.

For: RT # 125563 (2nd of two problems raised)

6 years agoRemove obsolete __GNUC__isms under vms/.
Craig A. Berry [Thu, 9 Jul 2015 23:06:00 +0000 (18:06 -0500)]
Remove obsolete __GNUC__isms under vms/.

There used to be some version of GCC 2.x that ran only on VAX that
was capable of building Perl.  But that was 18-20 years ago and
there have been no recent reports of building Perl with gcc on VMS.

If and when a modern version of GCC is ported to VMS (and the
underpinnings are reportedly there as part of GNAT Pro Ada, just
nothing complete or publicly available), these ancient workarounds
are at least as likely to do harm as good.  So get rid of them.

6 years agoDon't create zero-length filename on VMS in Typemap.t
Craig A. Berry [Thu, 9 Jul 2015 22:31:40 +0000 (17:31 -0500)]
Don't create zero-length filename on VMS in Typemap.t

It turns out it's quite legal but then causes other mayhem, such
as confusing things that are looking for the "." directory (because
there is no such thing as a file without an extension so passing
an empty string to fopen creates ".;1" on disk).

Also make this test clean up its test files.

6 years agoimprove debugging of padlist API
Daniel Dragan [Thu, 2 Jul 2015 21:15:19 +0000 (17:15 -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.

6 years agoperldelta: Fix typo
Karl Williamson [Wed, 8 Jul 2015 16:07:06 +0000 (10:07 -0600)]
perldelta: Fix typo

6 years agoall SV inheriter types have DEBUG_LEAKING_SCALARS data, so always show it
Daniel Dragan [Thu, 2 Jul 2015 21:22:09 +0000 (17:22 -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.

6 years agodont report a $@ exception with uninitialized $!'s message in IPC::Open3
Daniel Dragan [Tue, 7 Jul 2015 16:59:01 +0000 (12:59 -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.

6 years agofix #124181 double free/refcnt problems in IO types in typemap
Daniel Dragan [Wed, 24 Jun 2015 19:48:12 +0000 (15:48 -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.

6 years agoadd test that fails for #124181 to Typemap.t
Daniel Dragan [Sun, 10 May 2015 15:36:05 +0000 (11:36 -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.

6 years ago[perl #125373] set $! in chdir() if env not set, clarify docs
Tony Cook [Tue, 23 Jun 2015 00:21:45 +0000 (10:21 +1000)]
[perl #125373] set $! in chdir() if env not set, clarify docs

6 years agoChange wording of warning due to Unicode Standard change
Karl Williamson [Wed, 13 May 2015 23:57:06 +0000 (17:57 -0600)]
Change wording of warning due to Unicode Standard change

Non-characters are no longer forbidden as of Unicode 7.0; they are just
"not recommended".  The wording of the warning changes accordingly.

6 years agoRegenerate Configure after backports and small fixes
H.Merijn Brand [Mon, 6 Jul 2015 14:02:15 +0000 (16:02 +0200)]
Regenerate Configure after backports and small fixes

6 years agofix variable name in case of unknown NAN
H.Merijn Brand [Mon, 6 Jul 2015 07:06:10 +0000 (09:06 +0200)]
fix variable name in case of unknown NAN

6 years agoCreate try.c afresh for pointersize test
H.Merijn Brand [Mon, 6 Jul 2015 06:31:24 +0000 (08:31 +0200)]
Create try.c afresh for pointersize test

6 years agoSome nits in perlsub
Rafael Garcia-Suarez [Mon, 6 Jul 2015 06:09:04 +0000 (08:09 +0200)]
Some nits in perlsub

- DOES was not listed in the list of methods with reserved names
- Remove one useless instance of empty list assignment
- Punctuation

6 years agoperldelta for the shift work.
Jarkko Hietaniemi [Sat, 4 Jul 2015 19:49:23 +0000 (15:49 -0400)]
perldelta for the shift work.

6 years agoperlcommunity.pod updates
Herbert Breunung [Sat, 4 Jul 2015 13:36:48 +0000 (09:36 -0400)]
perlcommunity.pod updates

edits by rjbs

6 years agorestore the perldelta changes moved from perl5230delta
Ricardo Signes [Sat, 4 Jul 2015 02:54:53 +0000 (22:54 -0400)]
restore the perldelta changes moved from perl5230delta

i.e., move them from perl5230delta to the 5.23.1 delta where they
belong

This does not re-add the module changes, as those can be generated
automatically when needed.

6 years agoremove things added to v5.23.0 delta but meant for v5.23.1
Ricardo Signes [Sat, 4 Jul 2015 02:53:10 +0000 (22:53 -0400)]
remove things added to v5.23.0 delta but meant for v5.23.1

6 years agobelatedly set up delta for 5.23.1
Ricardo Signes [Sat, 4 Jul 2015 02:47:23 +0000 (22:47 -0400)]
belatedly set up delta for 5.23.1

6 years agoFix skip count for non-fchdir like win32.
Jarkko Hietaniemi [Sat, 4 Jul 2015 00:21:47 +0000 (20:21 -0400)]
Fix skip count for non-fchdir like win32.

6 years agoTest the warnings.
Jarkko Hietaniemi [Fri, 3 Jul 2015 21:26:57 +0000 (17:26 -0400)]
Test the warnings.

Also allow running the test from the top level: ./miniperl t/op/chdir.t

6 years agoSuperfluous null ptr test warnings by clang 3.7
Jarkko Hietaniemi [Fri, 3 Jul 2015 21:17:51 +0000 (17:17 -0400)]
Superfluous null ptr test warnings by clang 3.7

... nonnull parameter 'stash' will evaluate to 'true' on
first encounter [-Wpointer-bool-conversion]

For similar changes, see 3dc78631ef832e5b64aa86228917984dc5b14f5e

6 years agogcc 5.1.0 thinks RETVAL might end up unset.
Jarkko Hietaniemi [Fri, 3 Jul 2015 14:34:39 +0000 (10:34 -0400)]
gcc 5.1.0 thinks RETVAL might end up unset.

6 years agoLeft overshift of negatives under use integer was still wrong.
Jarkko Hietaniemi [Fri, 3 Jul 2015 13:32:13 +0000 (09:32 -0400)]
Left overshift of negatives under use integer was still wrong.

Follow-up on b3498293: the -1 stuckiness on overshift should apply
only on right shift, not left shift (which should return zero).

6 years agoNon-invasive mojibake fixes
Stanislaw Pusep [Tue, 23 Jun 2015 09:43:10 +0000 (11:43 +0200)]
Non-invasive mojibake fixes

Fixing minor encoding inconsistencies found by scan_mojibake utility
(https://metacpan.org/pod/distribution/Test-Mojibake/bin/scan_mojibake)
This patch is touching only comments/POD/__DATA__

6 years agoperldelta entry for 054a3baf7ca16fe.
Craig A. Berry [Thu, 2 Jul 2015 22:48:40 +0000 (17:48 -0500)]
perldelta entry for 054a3baf7ca16fe.

6 years agoRemove gettimeofday() workarounds for VMS in util.c.
Craig A. Berry [Thu, 2 Jul 2015 22:49:48 +0000 (17:49 -0500)]
Remove gettimeofday() workarounds for VMS in util.c.

VMS has had gettimeofday() since v7.0, released in 1999, so there's
no reason now to be special casing native workarounds.

6 years agoVarious corrections to Porting/Maintainers.pl
Steve Hay [Wed, 1 Jul 2015 07:47:51 +0000 (08:47 +0100)]
Various corrections to Porting/Maintainers.pl

6 years agoUpgrade Encode from version 2.73 to 2.75
Steve Hay [Tue, 30 Jun 2015 12:37:33 +0000 (13:37 +0100)]
Upgrade Encode from version 2.73 to 2.75

6 years agoUpgrade Socket from version 2.019 to 2.020
Steve Hay [Tue, 30 Jun 2015 07:51:45 +0000 (08:51 +0100)]
Upgrade Socket from version 2.019 to 2.020

6 years agoRemove NEW_ from PERL_NEW_COPY_ON_WRITE
Father Chrysostomos [Mon, 29 Jun 2015 01:30:29 +0000 (18:30 -0700)]
Remove NEW_ from PERL_NEW_COPY_ON_WRITE

6 years agoRemove SvRELEASE_IVX
Father Chrysostomos [Mon, 29 Jun 2015 01:27:45 +0000 (18:27 -0700)]
Remove SvRELEASE_IVX

Now that PERL_OLD_COPY_ON_WRITE is gone, it no longer does anything.

6 years agoRemove PERL_OLD_COPY_ON_WRITE
Father Chrysostomos [Mon, 29 Jun 2015 01:26:42 +0000 (18:26 -0700)]
Remove PERL_OLD_COPY_ON_WRITE

6 years ago[perl #125305] handle chdir to closed handle correctly
Tony Cook [Thu, 25 Jun 2015 03:58:57 +0000 (13:58 +1000)]
[perl #125305] handle chdir to closed handle correctly