5 weeks agot/re/pat_re_eval.t: Skip encoding tests on EBCDIC khw/ebcdic
Karl Williamson [Wed, 18 Mar 2015 21:56:48 +0000]
t/re/pat_re_eval.t: Skip encoding tests on EBCDIC

These require changes to Encode which are not planned
to be put in v5.22

5 weeks agoXXX Debug meta_notation problem
Karl Williamson [Wed, 18 Mar 2015 21:32:50 +0000]
XXX Debug meta_notation problem

5 weeks agoChange name of mro.c
Karl Williamson [Mon, 16 Mar 2015 17:14:12 +0000]
Change name of mro.c

This is to prevent a conflict showing up on z/OS (os390) because this
file's name is the same as one in /ext, and there are functions
cross-referenced between them, and the loader on that platform
can't deal with this.

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

5 weeks agoXXX Temp Configure to point to bash
Karl Williamson [Wed, 17 Dec 2014 20:28:56 +0000]
XXX Temp Configure to point to bash

5 weeks agot/op/pack.t: Generalize for EBCDIC
Karl Williamson [Thu, 4 Apr 2013 03:56:02 +0000]
t/op/pack.t: Generalize for EBCDIC

There are still a few failures that are skipped and should be looked at
in v5.23.

5 weeks agolib/perl5db.pl: Generalize for EBCDIC
Karl Williamson [Sun, 15 Mar 2015 03:50:49 +0000]
lib/perl5db.pl: Generalize for EBCDIC

5 weeks agoCreate single fcn for dup'd /lib code
Karl Williamson [Sun, 15 Mar 2015 03:50:27 +0000]
Create single fcn for dup'd /lib code

Several /lib .pm's have the same code which is complicated enough to
warrant being placed in a shared function.  This commit creates a .pm
to be used by these .pm's.

This implements the perhaps archaic 'Meta' notation wherein characters
above 0x7f are displayed as M- plus the ASCII-range character derived by
looking at only the lower 7 bits of the upper range one.  There are
problems with this, in that a literal control character can be in the
string, whereas it is trying to get rid of control characters.  But I
left it to work as-is, just centralizing the code.

On EBCDIC platforms this notation makes no sense because the bit
patterns are all mixed up about having the upper bit set.  So this
commit fixes things on these platforms, so these are changed to
\x{...}.  No literal control characters are emitted.

Another potential problem is that characters above 0xFF are passed
through, unchanged.  But again, I let the existing behavior stand.

5 weeks agoregcomp.c: White-space only
Karl Williamson [Tue, 17 Mar 2015 23:28:24 +0000]
regcomp.c: White-space only

Outdent code that the previous commit removed the surrounding block from

5 weeks agoFix qr'\N{U+41}' on EBCDIC platforms
Karl Williamson [Tue, 17 Mar 2015 04:38:20 +0000]
Fix qr'\N{U+41}' on EBCDIC platforms

Prior to this commit, the regex compiler was relying on the lexer to do
the translation from Unicode to native for \N{...} constructs, where it
was simpler to do.  However, when the pattern is a single-quoted string,
it is passed unchanged to the regex compiler, and did not work.  Fixing
it required some refactoring, though it led to a clean API in a static
function.

This was spotted by Father Chrysostomos.

5 weeks agodoc typo
Hugo van der Sanden [Wed, 18 Mar 2015 21:58:43 +0000]
doc typo

5 weeks agoperlrebackslash: Clarify that \b{} rules are volatile
Karl Williamson [Wed, 18 Mar 2015 19:25:54 +0000]
perlrebackslash: Clarify that \b{} rules are volatile

5 weeks agodist/Data-Dumper/t/dumper.t: White space only
Karl Williamson [Wed, 18 Mar 2015 17:27:34 +0000]
dist/Data-Dumper/t/dumper.t: White space only

The previous commit removed a surrounding block.  outdent
correspondingly

5 weeks agodist/Data-Dumper/t/dumper.t: Simplify EBCDIC
Karl Williamson [Fri, 13 Mar 2015 05:03:17 +0000]
dist/Data-Dumper/t/dumper.t: Simplify EBCDIC

This collapses two pieces of code into one.  It isn't necessary to have
an ASCII version vs an EBCDIC version.

5 weeks agoTerm::Complete: Generalize for EBCDIC
Karl Williamson [Fri, 27 Jun 2014 22:31:41 +0000]
Term::Complete: Generalize for EBCDIC

By this simple change, we can avoid printing all controls except \c?.
On ASCII platforms the remaining control is DEL, which is handled above.
On EBCDIC platforms, \c? remains a problem.

But it isn't clear what to do about this anyway, as the module
interprets ^D, ^H, ^U specially as if they were typed from the keyboard,
and expects the keyboard to transmit them in a particular way, which may
not be valid for EBCDIC.  No tests fail, so fixing this will have to
wait for tuits or field complaints.

5 weeks agolib/open.t: TODO an EBCDIC test until Encode fixed
Karl Williamson [Mon, 2 Mar 2015 23:06:47 +0000]
lib/open.t: TODO an EBCDIC test until Encode fixed

5 weeks agoDBM_Filter/t/encode.t: temporarily skip until Encode fixed
Karl Williamson [Tue, 3 Mar 2015 05:07:45 +0000]
DBM_Filter/t/encode.t: temporarily skip until Encode fixed

5 weeks agoporting/readme.t: TODO failing EBCDIC test
Karl Williamson [Tue, 3 Mar 2015 04:31:07 +0000]
porting/readme.t: TODO failing EBCDIC test

This depends on Unicode::Collate, which is not yet working properly in
EBCDIC

5 weeks agoext/SDBM_File/sdbm/dbu.c Generalize for EBCDIC platforms
Karl Williamson [Sun, 7 Dec 2014 06:08:38 +0000]
ext/SDBM_File/sdbm/dbu.c Generalize for EBCDIC platforms

This also fixed a bug which hasn't shown up in the tests, in that it
uses 'char' where it should be 'U8'.

5 weeks agoregexec.c: Fix improper warning.
Karl Williamson [Wed, 18 Mar 2015 04:03:16 +0000]
regexec.c: Fix improper warning.

\b{} and \B{} are valid in UTF-8 locales, as all the Unicode rules
apply.  Prior to this patch a warning was raised under some
circumstances.  The warning text was generalized to handle both \b and
\B cases.  The original text was only just added, in 5.21.9.

5 weeks agore/pat_advanced.t: Tighten test
Karl Williamson [Mon, 16 Mar 2015 21:52:18 +0000]
re/pat_advanced.t: Tighten test

This adds anchors to a pattern.  I discovered while changing things that
it still passed when broken

5 weeks agoregcomp.sym: Update \b descriptions
Karl Williamson [Tue, 17 Mar 2015 22:56:34 +0000]
regcomp.sym: Update \b descriptions

5 weeks agoPATCH: [perl #124091] PP Data::Dumper fails on \n isolate
Karl Williamson [Tue, 17 Mar 2015 21:44:03 +0000]
PATCH: [perl #124091] PP Data::Dumper fails on \n isolate

Commit 31ac59b61698e704b64192de74793793f4b5b0c0 inadvertently changed
the behavior of the pure perl version of Data::Dumper.  If a newline is
the sole character in something being dumped with useqq, it no longer
got translated into a \n sequence and was output raw.  This was due to
the regex matching of \n at beginning and ends of strings.

5 weeks agot/op/dump.t: silence 'Aborted' messages on stderr
David Mitchell [Wed, 18 Mar 2015 14:10:33 +0000]
t/op/dump.t: silence 'Aborted' messages on stderr

On some platforms, t/op/dump.t produces extraneous (and scary)

    sh: line 1: 17605 Aborted (core dumped)

style messages on stderr.

Do a fork in each test to avoid this.

5 weeks agoCwd.xs: silence recent compiler warning
David Mitchell [Wed, 18 Mar 2015 12:08:07 +0000]
Cwd.xs: silence recent compiler warning

A recent commit added a label, plus a "goto that label" only in the EBCDIC
case. On "normal" builds, the compiler complained about an unused label.

Also, indent the recent '#ifdef EBCDIC' correctly.

5 weeks agoS_grok_bslash_[ox]: assert char fits
David Mitchell [Wed, 18 Mar 2015 11:53:23 +0000]
S_grok_bslash_[ox]: assert char fits

S_grok_bslash_o() and S_grok_bslash_x() scan \o{...} and \x{...} in a
string, and return a UV codepoint. Some callers assume that if that
codepoint is converted into a series of utf8 bytes and re-inserted into
the string, that it will tale up less space than the original "\x{...}"
sequence. Add asserts that this is indeed so.

5 weeks agoloopctl.c: Correct bug num
Father Chrysostomos [Wed, 18 Mar 2015 06:17:48 +0000]
loopctl.c: Correct bug num

5 weeks ago[perl #124004] Fix stack bug with foreach(@empty)
Father Chrysostomos [Wed, 18 Mar 2015 05:40:25 +0000]
[perl #124004] Fix stack bug with foreach(@empty)

The context gets recorded on the context stack when a loop is entered.
That context is then used at loop exit when handling the stack.

In the case of foreach, the context applied to the stack was taken
from the enteriter op.  But the enteriter op was always getting list
context applied.  That meant that foreach(@empty_array){} in scalar
context would push nothing on to the stack, causing a subsequent stack
read to look one item too far to the left, either reading the wrong
thing, or causing a stack underflow (even a crash).  The clearest bug
resulting from it:

$ ./miniperl -le 'push @_, 1, 2, 3, scalar do { for(@x){} } + 1, 4, 5, 6; print "@_"'
1 2 4 4 5 6

instead of 1 2 3 1 4 5 6.

We do need to apply list context to make sure the items iterated over
are evaluated in list context.  But we need to apply it *only* to
those (expr in newFOROP), not the the outer enteriter op.  That op’s
context should be left unset here, so that the calling context will be
applied to it.

This bug goes back at least to perl 5.000.

5 weeks agoRemove PL_ prefix for recently added non-globals
Karl Williamson [Fri, 13 Mar 2015 17:54:46 +0000]
Remove PL_ prefix for recently added non-globals

PL is reserved for global variables.  These are enums and static
variable names introduced for handling /\b{...}/

See <20150311150610.GN28599@iabyn.com> and follow up.

5 weeks agoPreserve OPTIMIZE in hints
Vincent Pit [Tue, 17 Mar 2015 17:06:16 +0000]
Preserve OPTIMIZE in hints

Some extensions hints files (B, Digest-MD5, PerlIO-via) forcefully
overwrite OPTIMIZE in order to work around compiler mishaps with high level
optimizations. However, this loses whatever extra flags are listed in
OPTIMIZE, such as compiler warnings flags or PERL_POISON, and makes them
difficult to run under a debugger since a minimal level of optimization
(usually -O1) is always enforced. This has became visible recently with
new XS handshake facility.

Instead, we chose to just follow Storable's strategy of lowering the
optimization level with a substitution, while keeping all the other flags
untouched. If other compiler flags are deemed problematic (such as
-mcpu/-march on gcc), they ought to be addressed separately.

Only B and PerlIO-via hints files are fixed by this change. The case of
Digest-MD5 will be addressed on the CPAN.

This fixes [RT #124038].

5 weeks agoperldelta for previous commit
Steve Hay [Tue, 17 Mar 2015 22:36:33 +0000]
perldelta for previous commit

5 weeks agoUpgrade to threads 2.01
Jerry D. Hedden [Sun, 8 Mar 2015 02:33:02 +0000]
Upgrade to threads 2.01

5 weeks agoUpgrade CPAN::Meta from version 2.143240 to 2.150001
Steve Hay [Tue, 17 Mar 2015 22:10:34 +0000]
Upgrade CPAN::Meta from version 2.143240 to 2.150001

5 weeks agoBlead is (almost!) using Carp-1.35
Steve Hay [Tue, 17 Mar 2015 21:47:16 +0000]
Blead is (almost!) using Carp-1.35

5 weeks agoPorting/core-cpan-diff: Don't ignore EOLs or whitespace
Steve Hay [Tue, 17 Mar 2015 18:07:40 +0000]
Porting/core-cpan-diff: Don't ignore EOLs or whitespace

Turning off -b (ignore whitespace) revealed a whitespace difference lurking
in blead's copy of a NEXT test file, which there is no need for.
Turning on --binary revealed EOL differences in numerous Win32API-File
files. Hopefully a future CPAN release will fix those since the files in
its GitHub repo match blead as far as EOLs go already.

5 weeks agoRevert discouragement of fatal warnings
Ricardo Signes [Tue, 17 Mar 2015 17:28:31 +0000]
Revert discouragement of fatal warnings

...at least for now.

This reverts commits 0d314ba30623b19c36dfc97ac4b6ecb94cb406f4
and ce3778a3796be3e4604ed9b3671ea624c5affe0b.

5 weeks agoPL_custom_op{s,_names,_descs} should be set to NULL in perl_destruct().
Nicholas Clark [Tue, 17 Mar 2015 16:19:23 +0000]
PL_custom_op{s,_names,_descs} should be set to NULL in perl_destruct().

Otherwise SEGVs and other jollity can happen if the interpreter is created a
second (or subsequent) time, and modules attempt to register custom OPs
(using either the old or new approaches).

These appear to have been bugs since the relevant code was introduced
(new approach in v5.14.0, old approach in v5.8.0)

This probably only affects mod_perl built against a perl without ithreads,
which makes it unlikely that many folks hit it with OS distributions.

You'd need to (at least) be building your own perl, using mod_perl, and
using a module that uses custom OPs.

5 weeks agoavoid infinite loop in re_intuit_start()
David Mitchell [Tue, 17 Mar 2015 15:43:10 +0000]
avoid infinite loop in re_intuit_start()

On STCLASS failure, sometimes we go back and retry an anchored search
if it's still within the range of the previously successful floating
search. The 'in range' criterion is formally that

    rx_origin + float_offset_min chars < previous float match position

i.e. when we match the float string, the start of the rx must be somewhere
within float_offset_max..float_offset_min chars before that. If we
haven't yet reached rx_origin+float_offset_min, then there are still
some candidate starting positions for the rx that don't violate the
float constraint.

However, we do the above calculation in bytes rather than chars for
efficiency (if float_offset_min is large, we could otherwise end up doing
O^2 scans of the string). This is conservative and harmless because at
worst we end up doing an unnecessary (but safe) fixed string scan.

However, it turns out that the 'other' code block that calls fbm_instr()
didn't check for the start of scn range being greater than the end;
in this case, for '$' type matches, it would still match. So skip calling
fbm_instr() if start > end.

5 weeks agore_intuit_start(): improve debugging output
David Mitchell [Tue, 17 Mar 2015 13:00:29 +0000]
re_intuit_start(): improve debugging output

1) make string offsets be consistently counted from strbeg, rather than
   a mixture of that and strpos;
2) make it clearer when rx_origin has been updated, since that value
   is the raison d'etre of intuit();
3) always show the input and output offsets when calling fbm_intr() from
   intuit().

5 weeks agodist/ExtUtils-CBuilder/t/04-base.t: os390 fix
Karl Williamson [Wed, 4 Feb 2015 20:22:25 +0000]
dist/ExtUtils-CBuilder/t/04-base.t: os390 fix

5 weeks agoUpgrade Text::ParseWords from version 3.29 to 3.30
Steve Hay [Tue, 17 Mar 2015 15:05:37 +0000]
Upgrade Text::ParseWords from version 3.29 to 3.30

This incorporates blead's code differences, but one "customization" remains
because of EOL issues, which I've sent a pull request upstream to fix.

The latest release also moves the .pm file into the usual place, so the MAP
is no longer required.

There are no code changes here, so no code freeze violation.

5 weeks agoExtend Cwd to work on z/OS sysplexed systems
Karl Williamson [Tue, 3 Feb 2015 05:32:26 +0000]
Extend Cwd to work on z/OS sysplexed systems

On sysplexed os390 systems, the literal string "$SYSNAME" in a directory
path appears to the code to be a symbolic link to itself.  If one wants
to walk $SYSNAME/tmp, for example, one keeps recursing, adding $SYSNAMEs
on to the front of the path until our fail-safe limit is reached.  This
would like something like

$SYSNAME/$SYSNAME/.../$SYSNAME /tmp

never reaching the tmp.

What this commit does is to replace all instances of $SYSNAME/foo simply
by /foo, for all foo when $SYSNAME is a symbolic link.  Then the above
would resolve simply to /tmp.

There appears to not be a problem with the pure perl version

5 weeks agodist/PathTools/Cwd.xs: rename variable
Karl Williamson [Sun, 1 Feb 2015 05:13:19 +0000]
dist/PathTools/Cwd.xs: rename variable

'left' implies to me a direction, especially in this context where we
are parsing a path from left to right; instead it here means
'remaining', which I've renamed it to.

5 weeks agodist/PathTools/Cwd.xs: White-space/comment only
Karl Williamson [Thu, 29 Jan 2015 17:00:40 +0000]
dist/PathTools/Cwd.xs: White-space/comment only

Bring indentation style of bsd_realpath() into line with the rest of
Perl

5 weeks agoBump version of dist/PathTools to 3.55
Karl Williamson [Fri, 13 Mar 2015 03:05:46 +0000]
Bump version of dist/PathTools to 3.55

5 weeks agoperldelta entry for ce3778a3796be3e4604ed9b3671ea624c5affe0b.
James E Keenan [Tue, 17 Mar 2015 01:11:52 +0000]
perldelta entry for ce3778a3796be3e4604ed9b3671ea624c5affe0b.

Slight grammatical touch-up to cautions against FATAL warnings.

5 weeks agoDocument FATAL warnings as discouraged.
David Golden [Mon, 16 Mar 2015 18:55:46 +0000]
Document FATAL warnings as discouraged.

Discussions on p5p have reached reasonable consensus that fatal warnings are
a misfeature.

This commit marks fatal warning as "discouraged" and moves up the
related cautionary documentation to highlight the risks of using them.

For details on the many historical and current issues with fatal warning, see
http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225235.html

5 weeks agofix t/op/utf8cache.t with -DDEBUG_LEAKING_SCALARS
Reini Urban [Mon, 16 Mar 2015 10:26:23 +0000]
fix t/op/utf8cache.t with -DDEBUG_LEAKING_SCALARS

6 weeks agoperlunicode: Nit, for EBCDIC
Karl Williamson [Mon, 16 Mar 2015 04:25:12 +0000]
perlunicode: Nit, for EBCDIC

6 weeks agoperlpodspec: Generalize for EBCDIC
Karl Williamson [Mon, 16 Mar 2015 03:49:55 +0000]
perlpodspec: Generalize for EBCDIC

6 weeks ago[perl #124048] Sort and compare version numbers numerically.
Matthew Horsfall (alh) [Mon, 16 Mar 2015 14:14:11 +0000]
[perl #124048] Sort and compare version numbers numerically.

This fixes a case where on 5.x.10 dev versions of Perl,

  ./perl -Ilib Porting/corelist.pl cpan

would cause 'delta_from' for that version to point to itself.

6 weeks agopp_helem: Remove branch seemingly untaken (v2)
Steffen Mueller [Sun, 15 Mar 2015 09:50:12 +0000]
pp_helem: Remove branch seemingly untaken (v2)

An HV* that is not an SVt_PVHV? Maybe I don't have sufficient fantasy.
This branch goes back to 1994, so things have changed ... a bit since
then.

This is the second attempt at doing this small change since last time, I
was dumb enough to get the condition in the assert inverted. m(

Thanks to Brett for pointing that out nicely!

6 weeks agoCommits from no working 'encoding' in EBCDIC
Karl Williamson [Sun, 15 Mar 2015 05:00:31 +0000]
Commits from no working 'encoding' in EBCDIC

These are conglomerated together for convenience

6 weeks agolib/open.t: Skip a test on EBCDIC because of encoding
Karl Williamson [Fri, 17 Oct 2014 01:37:29 +0000]
lib/open.t: Skip a test on EBCDIC because of encoding

6 weeks agoext/PerlIO-encoding/t/encoding.t: Skip on EBCDIC
Karl Williamson [Fri, 28 Nov 2014 05:35:07 +0000]
ext/PerlIO-encoding/t/encoding.t: Skip on EBCDIC

encoding doesn't current work.

6 weeks agot/uni/chomp.t: Better explain why skipped on EBCDIC
Karl Williamson [Fri, 14 Nov 2014 03:52:23 +0000]
t/uni/chomp.t: Better explain why skipped on EBCDIC

6 weeks agoPerlIO-encoding/t/nolooping.t: Skip on EBCDIC platform
Karl Williamson [Fri, 17 Oct 2014 03:05:14 +0000]
PerlIO-encoding/t/nolooping.t: Skip on EBCDIC platform

6 weeks agot/op/concat2.t: Skip 'use encoding' test in EBCDIC
Karl Williamson [Fri, 27 Jun 2014 16:32:13 +0000]
t/op/concat2.t: Skip 'use encoding' test in EBCDIC

This pragma does not work on EBCDIC platforms

6 weeks agolib/DBM_Filter/t/encode.t: Generalize for non-ASCII platforms
Karl Williamson [Sat, 13 Apr 2013 21:54:37 +0000]
lib/DBM_Filter/t/encode.t: Generalize for non-ASCII platforms

This still has a failure due to Encode issues.  A future commit will
skip some failing tests until that is fixed.

6 weeks agoSkip testing all of /cpan on EBCDIC platforms for 5.22
Karl Williamson [Sun, 14 Apr 2013 04:04:50 +0000]
Skip testing all of /cpan on EBCDIC platforms for 5.22

The state of porting to EBCDIC that's going to get into 5.22 leaves many
many error lines being displayed when 'make test' is run if the /cpan
directory is included.  Reluctantly, I'm excluding these tests for 5.22.
I plan to work on either fixing or having individual skips in them in
5.23, but that is not the current state.

6 weeks agoCarp: skip some tests of "$qr" on older perls
Ricardo Signes [Sun, 15 Mar 2015 00:44:07 +0000]
Carp: skip some tests of "$qr" on older perls

On perls v5.9.5 to v5.17.0 inclusive, there's a Latin-1/utf8
length bug and sometimes a character is dropped from the end of the
regexp's stringification.

On earlier perls, there is an error related to invalid character
sequences.

Rather than carefully tease these apart, we'll skip the tests.
Thanks to Zefram for helping to identify the version range.

6 weeks agoCarp: correct precedence of ord and == in tests
Ricardo Signes [Sun, 15 Mar 2015 00:43:35 +0000]
Carp: correct precedence of ord and == in tests

6 weeks agoBegin updating perldelta for 5.21.10
Steve Hay [Sat, 14 Mar 2015 18:38:44 +0000]
Begin updating perldelta for 5.21.10

6 weeks agoUpgrade Encode from version 2.70 to 2.72
Steve Hay [Sat, 14 Mar 2015 11:36:15 +0000]
Upgrade Encode from version 2.70 to 2.72

This incorporates all current blead customizations.

6 weeks agodist/Data-Dumper/t/quotekeys.t: Generalize for EBCDIC
Karl Williamson [Sun, 26 Oct 2014 03:08:52 +0000]
dist/Data-Dumper/t/quotekeys.t: Generalize for EBCDIC

6 weeks agoData::Dumper/t/dumper.t: Add test
Karl Williamson [Thu, 5 Mar 2015 21:46:42 +0000]
Data::Dumper/t/dumper.t: Add test

This is for the special handling needed in EBCDIC

6 weeks agodist/Data-Dumper/t/dumper.t: Generalize for EBCDIC platforms
Karl Williamson [Fri, 13 Mar 2015 05:01:45 +0000]
dist/Data-Dumper/t/dumper.t: Generalize for EBCDIC platforms

6 weeks agoData::Dumper: Generalize for EBCDIC platforms
Karl Williamson [Wed, 13 Mar 2013 22:16:14 +0000]
Data::Dumper: Generalize for EBCDIC platforms

This extends Data::Dumper to work on EBCDIC platforms.  This is just the
code changes.  Some .t files will be changed as well, in future commits

This involves some code refactoring especially in the .xs code to
collapse EBCDIC/ASCII handling into one.  The if-elsif-elsif-...-else
logic is cleaned up, so that there are fewer branches taken on average.

6 weeks agodist/Data-Dumper/t/dumper.t: Add test names
Karl Williamson [Fri, 13 Mar 2015 04:58:40 +0000]
dist/Data-Dumper/t/dumper.t: Add test names

6 weeks agoData::Dumper/t/dumper.t: only specify number of tests once
Karl Williamson [Thu, 5 Mar 2015 21:47:16 +0000]
Data::Dumper/t/dumper.t: only specify number of tests once

This calculates the number of tests when some modules are unavailable,
instead of it having to be specified each time there is a change.

6 weeks agoData::Dumper/t/dumper.t: Remove test numbers from comments
Karl Williamson [Thu, 5 Mar 2015 21:28:49 +0000]
Data::Dumper/t/dumper.t: Remove test numbers from comments

These are no longer correct, and hard to maintain.  It's not worth it.

6 weeks agodist/Storable/t/utf8.t: Fix to work on early Perls
Karl Williamson [Tue, 10 Mar 2015 20:53:21 +0000]
dist/Storable/t/utf8.t: Fix to work on early Perls

In commit 571d5cf7467f1af9ff1e6d751f49ac47e4f88380, I forgot that this
is dual-lifed and may be used on early Perls.  This commit allows that,
but it will fail if such a Perl were to be used on an EBCDIC platform.

6 weeks agodist/Safe/t/safeutf8.t: Fix to work on early Perls
Karl Williamson [Tue, 10 Mar 2015 20:53:05 +0000]
dist/Safe/t/safeutf8.t: Fix to work on early Perls

In commit fedc1b0e2d9cec34b7e3b1fa65dd0f7eb4f539fd, I forgot that this
is dual-lifed and may be used on early Perls.  This commit allows that,
but it will fail if such a Perl were to be used on an EBCDIC platform.

6 weeks agot/TEST: Avoid SIGPIPEs on os390
Karl Williamson [Tue, 26 Mar 2013 21:44:59 +0000]
t/TEST: Avoid SIGPIPEs on os390

This works around a problem with z/OS where if there are unread lines
from a file descriptor using this, a SIGPIPE error is raised.

6 weeks agoPOSIX/t/sigaction.t: Skip failing EBCDIC test
Karl Williamson [Fri, 27 Feb 2015 01:10:08 +0000]
POSIX/t/sigaction.t: Skip failing EBCDIC test

We don't know why this is faiing, but it also fails on another IBM
product, AIX 4.2.  Skip for now.  The code that is failing is this:
    sub hiphup {
        is($_[1]->{signo}, SIGHUP, "SA_SIGINFO got right signal");
    }
    my $act = POSIX::SigAction->new('hiphup', 0, SA_SIGINFO);
    sigaction(SIGHUP, $act);
    kill 'HUP', $$;
and it leads to this:
CEE3206S The system detected a specification exception (System Completion Code=0C6).
         From entry point Perl_apply at compile unit offset +00001460 at entry offset +00001460 at address 1F9B4A50.
ext/POSIX/t/sigaction ......................................... FAILED--expected 33 tests, saw 30

A stack trace with some analysis is in email <5490A778.30308@lerctr.org>

6 weeks agot/lib/open.t: Generalize for EBCDIC platforms
Karl Williamson [Fri, 17 Oct 2014 01:37:29 +0000]
t/lib/open.t: Generalize for EBCDIC platforms

This involved changing a \xff to \xfe because it is expecting it to be a
character whose representation is different when encoded in UTF-8, and
on some EBCDIC platforms, \xff is UTF-8 invariant.  I suppose there
could be a code page where \xfe is invariant, so this .t would have to
be made more general if that ever comes to be.

6 weeks agodist/IO/t/io_utf8argv.t: Generalize for non-ASCII platforms.
Karl Williamson [Wed, 27 Mar 2013 17:11:22 +0000]
dist/IO/t/io_utf8argv.t: Generalize for non-ASCII platforms.

6 weeks agomake perl -Dt display padnames with sort blocks
David Mitchell [Fri, 13 Mar 2015 12:39:42 +0000]
make perl -Dt display padnames with sort blocks

When a sort block (as opposed to sort sub) is executed, a new stackinfo is
pushed with a single CXt_NULL on top. Since S_deb_curcv() only examines
the *current* CX stack looking for the current running CV, it fails to
find it in this case and returns null.

This means that on threaded builds you get things like:

    $ perl -Dt -e'my $x; @a=sort { $x } 1,2'
    ...
    (-e:1) padsv([1])

where it can't find a pad to look up the name of the lexical at targ 1.

This commit makes S_deb_curcv() continue to the previous CX stack when it
finds it's on a PERLSI_SORT stackinfo. The output from the above is now:

    (-e:1) padsv($x)

6 weeks agoPerl_multideref_stringify: don't SEGV on null cv
David Mitchell [Fri, 13 Mar 2015 11:18:38 +0000]
Perl_multideref_stringify: don't SEGV on null cv

This function is called by e.g. "perl -Dt" to display the multideref op:

    $ perl -Dt -e'$a->{foo}[1]'
    ...
    (-e:1) multideref($a->{"foo"}[1])

On threaded builds, it needs to know the correct pad (and so the correct
cv too) so that it can access GVs and const SVs that have been moved to
the pad.

However with a sort code block (rather than a sort sub), S_deb_curcv()
returns null, so multideref_stringify() is called with a null CV. This
then SEGVs.

Although ideally S_deb_curcv() should be fixed, a function like
multideref_stringify(), which can be used for debugging, should be robust
in unexpected circumstances. So this commit makes it safe (although not
particularly useful) with a null CV:

    $ perl -Dt -e'@a = sort { $a->[$i] <=> $b->[$i] } [0], [1]'
    ...
    (-e:1) sort
    (-e:1) multideref(<NULLGV>->[<NULLGV>])
    (-e:1) multideref(<NULLGV>->[<NULLGV>])

6 weeks agoUpgrade CPAN from 2.09-TRIAL to 2.10.
Steve Hay [Fri, 13 Mar 2015 08:25:54 +0000]
Upgrade CPAN from 2.09-TRIAL to 2.10.

6 weeks agoOptimize out unicode_to_native(), native_to_unicode()
Karl Williamson [Tue, 10 Mar 2015 19:16:23 +0000]
Optimize out unicode_to_native(), native_to_unicode()

These just return their argument on ASCII platforms, so can get rid of
the function call overhead there.

Thanks to Zefram and Matthew Horsfall for their help in this.

6 weeks agoFix t/loc_tools.pl
Karl Williamson [Tue, 10 Mar 2015 20:52:08 +0000]
Fix t/loc_tools.pl

Commit 128e4113466e835078eb016709e5d23b86be3120 introduced a bug which
causes a failure only on netbsd.  It failed to make a copy in a function
of the array whose reference is passed into it, and then modified the
elements, thus changing the original.  I think what this does on other
platforms is to cause locales to be skipped from being tested (which is
wrong but doesn't show up as a test failure), but on netbsd, it appears
to expose a bug in their setlocale implementation, in which when
setlocale is called with an invalid category, it succeeds instead of
fails.

Another bug in that commit was fixed by
2cc6a9db5a91276f3ff662b3e5befa6799fde3ed.  But that fix introduced yet
another bug, by extending category numbers to be negative (when a given
category doesn't actually exist on a platform) but failing to allow for
a minus sign in the regex pattern that should match any such number.
This problem showed up on vms and os390.

This commit fixes both problems.

6 weeks agoperl.h: Only #define item once
Karl Williamson [Fri, 6 Mar 2015 20:27:41 +0000]
perl.h: Only #define item once

This definition was duplicated in both branches of an #if #else #endif
It's better to do it once, outside the #if.

6 weeks agoPOSIX: emulation for logb()
Jarkko Hietaniemi [Thu, 12 Mar 2015 11:24:59 +0000]
POSIX: emulation for logb()

6 weeks agoquadmath: llrintq and llroundq do exist
Jarkko Hietaniemi [Thu, 12 Mar 2015 11:07:05 +0000]
quadmath: llrintq and llroundq do exist

6 weeks agoRemove another stray Test::Simple file that is listed as EXCLUDED
Steve Hay [Thu, 12 Mar 2015 08:00:26 +0000]
Remove another stray Test::Simple file that is listed as EXCLUDED

6 weeks ago[perl #123847] crash with *foo::=*bar::=*with_hash
Father Chrysostomos [Thu, 12 Mar 2015 06:11:30 +0000]
[perl #123847] crash with *foo::=*bar::=*with_hash

When a hash has no canonical name and one effective name, the array of
names has a null pointer at the beginning.  hv_ename_add was not tak-
ing that into account, and was trying to dereference the null pointer.

6 weeks agoperldelta for afad11a2ce
Steve Hay [Thu, 12 Mar 2015 00:15:09 +0000]
perldelta for afad11a2ce

6 weeks agoStraighten Porting/Maintainers.pl out following Test::Simple restoration
Steve Hay [Thu, 12 Mar 2015 00:00:53 +0000]
Straighten Porting/Maintainers.pl out following Test::Simple restoration

Also remove a stray file that was in core when it was listed as EXCLUDED.

6 weeks agoadd "what it does" comment to utils/enc2xs.PL
David Mitchell [Wed, 11 Mar 2015 16:59:07 +0000]
add "what it does" comment to utils/enc2xs.PL

It's a bit confusing that a core .PL script is copying a cpan/ script
to utils/, so document it.

6 weeks agoImprove comments at head of pp_signature()
David Mitchell [Wed, 11 Mar 2015 16:50:28 +0000]
Improve comments at head of pp_signature()

6 weeks agodon't test non-null args
David Mitchell [Wed, 4 Mar 2015 15:30:00 +0000]
don't test non-null args

For lots of core functions:

if a function parameter has been declared NN in embed.fnc, don't test for
nullness at the start of the function, i.e. eliminate code like

    if (!foo) ...

On debugging builds the test is redundant, as the PERL_ARGS_ASSERT_FOO
at the start of the function will already have croaked.

On optimised builds, it will skip the check (and so be slightly faster),
but if actually passed a null arg, will now crash with a null-deref SEGV
rather than doing whatever the check used to do (e.g. croak, or silently
return and let the caller's code logic to go awry). But hopefully  this
should never happen as such instances will already have been detected on
debugging builds.

It also has the advantage of shutting up recent clangs which spew forth
lots of stuff like:

    sv.c:6308:10: warning: nonnull parameter 'bigstr' will evaluate to
    'true' on first encounter [-Wpointer-bool-conversion]
        if (!bigstr)

The only exception was in dump.c, where rather than skipping the null
test, I instead changed the function def in embed.fnc to allow a null arg,
on the basis that dump functions are often used for debugging (where
pointers may unexpectedly become NULL) and it's better there to display
that this item is null than to SEGV.

See the p5p thread starting at 20150224112829.GG28599@iabyn.com.

6 weeks agoMerge branch 'test-simple-old' into blead
Ricardo Signes [Wed, 11 Mar 2015 12:22:18 +0000]
Merge branch 'test-simple-old' into blead

6 weeks agoSpelling correction.
James E Keenan [Sun, 8 Mar 2015 23:55:07 +0000]
Spelling correction.

6 weeks agoRemove use of Test::Stream per ilmari's patch on p5p.
James E Keenan [Sun, 8 Mar 2015 23:48:58 +0000]
Remove use of Test::Stream per ilmari's patch on p5p.

6 weeks agomove back to a stable Test-Simple, v1.001014
Ricardo Signes [Sun, 8 Mar 2015 22:20:22 +0000]
move back to a stable Test-Simple, v1.001014

6 weeks ago[perl #123963] "@<fullwidth digit>"
Father Chrysostomos [Wed, 11 Mar 2015 05:00:41 +0000]
[perl #123963] "@<fullwidth digit>"

If an @ sign in a double-quoted string is not followed by a valid
identifier, then it is treated literally.  Or at least that is how it
was intended to work.

The lexer was actually not self-consistent.  It was treating non-ASCII
digits at valid identifiers in determining where the interpolation
started, but was not treating them as valid identifiers when actually
parsing the interpolated code.  So this would result in syntax errors,
and even crashes in some cases.

6 weeks agomg.c:Perl_magic_set: don't use 0 as "failed" gid_t
Hugo van der Sanden [Tue, 10 Mar 2015 22:28:25 +0000]
mg.c:Perl_magic_set: don't use 0 as "failed" gid_t

For [perl #123814] we added checking for grok_* parse failures in
magic_set for $), but used 0 as the placeholder result in those
cases (since we don't have an effective way to report an error for
this). (Gid_t)(-1) is a safer placeholder, since on many systems
that'll map to an explicit bad group id.

6 weeks agohints/os390.sh: z/OS doesn't work with an fd in file desc
Karl Williamson [Sun, 15 Feb 2015 17:28:29 +0000]
hints/os390.sh: z/OS doesn't work with an fd in file desc

Override Configure's determination, as this doesn't work.

6 weeks agohints/os390.sh: Update
Karl Williamson [Fri, 15 Mar 2013 18:26:15 +0000]
hints/os390.sh: Update

6 weeks agohints/os390.sh: z/OS long long support
John Goodyear [Sat, 2 Mar 2013 19:31:25 +0000]
hints/os390.sh: z/OS long long support