This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
7 years agoReduce false positives for @hsh{$s} and @ary[$s] warnings
Father Chrysostomos [Sun, 15 Sep 2013 00:23:11 +0000 (17:23 -0700)]
Reduce false positives for @hsh{$s} and @ary[$s] warnings

This resolves tickets #28380 and #114024.

Commit 95a31aad5 did something similar to this for the new %hash{...}
syntax.  This commit extends it to @ slices and combines the two
code paths.

The heuristics in toke.c can easily produce false positives.  So the
op is flagged as being a candidate for the warning.  Then when op.c
has the op tree available, it examines it to see whether the heuristic
may have been a false positive.

This avoids bugs with qw "foo bar baz" and sub calls triggering
the warning.

The source code is no longer available for the warning, so we recon-
struct it from the op tree, skipping the subscript if it is anything
other than a const op.

This means that @hash{$foo} comes out as @hash{...} and @hash{foo} as
@hash{"foo"}.  It also meeans that @hash{"]"} is displayed correctly
instead of as @hash{"].

Commit 95a31aad5 also modified the heuristic for %hash{...} to exempt
qw altogether.  But it did not exempt it if it was preceded by a tab.
So this commit rectifies that.

This commit also improves the false positive detection by exempting
any ops returning lists that can get past toke.c’s heuristic.  I went
through the entire list of ops, but I may have missed some.

Also, @ slices on the lhs of = are exempt, as they change the context
and are hence actually useful.

7 years agodump.c: Dump SLICEWARNING flag for kv[ah]slice, too
Father Chrysostomos [Sat, 14 Sep 2013 18:14:42 +0000 (11:14 -0700)]
dump.c: Dump SLICEWARNING flag for kv[ah]slice, too

I accidentally omitted this in commit 95a31aad5.

7 years agoMove ‘Scalar value better written as’ tests from toke to op
Father Chrysostomos [Sat, 14 Sep 2013 01:25:02 +0000 (18:25 -0700)]
Move ‘Scalar value better written as’ tests from toke to op

I am about to move the warning itself from toke.c to op.c.  Moving the
tests, too, makes them easier to find for future maintainters who see
it in op.c.

7 years agoop.c: Factor out common varname code
Father Chrysostomos [Fri, 13 Sep 2013 20:49:33 +0000 (13:49 -0700)]
op.c: Factor out common varname code

7 years agoUpgrade Encode from version 2.54 to 2.55
Steve Hay [Sat, 14 Sep 2013 12:46:21 +0000 (13:46 +0100)]
Upgrade Encode from version 2.54 to 2.55

7 years agoRemove a __BORLANDC__ stowaway
Steve Hay [Fri, 13 Sep 2013 22:19:09 +0000 (23:19 +0100)]
Remove a __BORLANDC__ stowaway

Support for __BORLANDC__ was axed (actually, chainsawed) in 378eeda70c.

7 years agoFix the VC6 build on Windows following commit 3be8f09452
Steve Hay [Fri, 13 Sep 2013 21:57:59 +0000 (22:57 +0100)]
Fix the VC6 build on Windows following commit 3be8f09452

The VC6 compiler has slightly flaky support for __int64 and chokes on util.c
when using the 64-bit implementation of drand48, so switch it to the 32-bit
version instead.

7 years agofix O_CREAT without O_TRUNC in cpan/autodie/t/utf8_open.t
Craig A. Berry [Fri, 13 Sep 2013 19:59:01 +0000 (14:59 -0500)]
fix O_CREAT without O_TRUNC in cpan/autodie/t/utf8_open.t

Awaiting upstream application as [CPAN RT#87237].

7 years agoTest kv slices in places that expect %{}
Father Chrysostomos [Fri, 13 Sep 2013 20:13:33 +0000 (13:13 -0700)]
Test kv slices in places that expect %{}

7 years agoop.c:leave_scope: use mg_free before sv_force_normal
Father Chrysostomos [Fri, 13 Sep 2013 09:10:21 +0000 (02:10 -0700)]
op.c:leave_scope: use mg_free before sv_force_normal

This is part of ticket #119295.

Commit 7fa949d (5.19.3) allowed copy-on-write with compile-time con-
stants.  That caused this to fail:

use Variable::OnDestruct:
{
 my $h = "foo";
 on_destruct $h, sub { warn defined $_[0] ? $_[0] : "undef" };
 $x++; # prev statement must not be last in the block
}

It prints undef instead of foo.

It turns out this is much older:

use Variable::OnDestruct;
{
 my $h = __PACKAGE__;
 on_destruct $h, sub { warn defined $_[0] ? $_[0] : "undef" };
 $x++; # prev statement must not be last in the block
}

This one prints undef starting with 5.17.3 (a6d7a4ac1).

But even before that, this prints undef:

use Variable::OnDestruct;
{
 my $h = \1;
 on_destruct $h, sub { warn defined $_[0] ? $_[0] : "undef" };
 $x++; # prev statement must not be last in the block
}

In all these cases, the scalar is getting undefined before free magic
triggers (Variable::OnDestruct uses free magic).

Usually when a scalar is freed, the magic is triggered before anything
else.  When a lexical scalar is ‘freed’ on scope exit (cleared for
reuse on scope entry), the order is different.  References, globs and
copy-on-write scalars become undefined (via sv_force_normal) before
magic is triggered.

There is no reason for the order to be different here, and it causes
unpredictable behaviour (you never know when you will or will not have
a cow).  So change the order in scope exit to match regular freeing.

7 years ago#ifdef DEBUGGING, not QDEBUGGING, in regcomp.c
Nicholas Clark [Tue, 10 Sep 2013 08:32:24 +0000 (10:32 +0200)]
#ifdef DEBUGGING, not QDEBUGGING, in regcomp.c

7 years ago[Merge] Key/value hash and array slices
Father Chrysostomos [Fri, 13 Sep 2013 08:25:55 +0000 (01:25 -0700)]
[Merge] Key/value hash and array slices

7 years agoDocument the %hash{$scalar} warning
Father Chrysostomos [Fri, 13 Sep 2013 01:13:42 +0000 (18:13 -0700)]
Document the %hash{$scalar} warning

7 years agoFewer false positives for %hash{$scalar} warning
Father Chrysostomos [Thu, 12 Sep 2013 21:30:41 +0000 (14:30 -0700)]
Fewer false positives for %hash{$scalar} warning

Instead of warning in the lexer, flag the op and then warn in op.c,
when the op tree is available, so we don’t end up warning for actual
lists or for sub calls.

Also, only warn in scalar context, as in list context $hash{$scalar}
and %hash{$scalar} do different things.

In op.c we no longer have easy access to the source code, so recon-
struct the hash/array access based on the op tree.  This means
%hash{foo} becomes %hash{"foo"}.  We only reconstruct constant keys,
so %hash{++$x} becomes %hash{...}.  This also corrects erroneous
dumps, like %hash{"} for %hash{"}"}.

Instead of triggering the warning solely based on the op tree, we
still keep the heuristic in toke.c, so that common workarounds for
that warning (e.g., {q<key>} and {("key")}) continue to work.

The heuristic in toke.c is tweaked to avoid warning for qw().

In a future commit I plan to extend this to the existing @array[0] and
@hash{key} warnings, to avoid false positives.

7 years agopp.c: Allow 64-bit stack offsets in kv[ah]slice
Father Chrysostomos [Sun, 8 Sep 2013 23:11:29 +0000 (16:11 -0700)]
pp.c: Allow 64-bit stack offsets in kv[ah]slice

7 years agoImprove new slice docs in perldata.pod
Father Chrysostomos [Sun, 8 Sep 2013 22:50:46 +0000 (15:50 -0700)]
Improve new slice docs in perldata.pod

7 years agoperldata.pod: Capitalise =head3 consistently
Father Chrysostomos [Sun, 8 Sep 2013 21:55:34 +0000 (14:55 -0700)]
perldata.pod: Capitalise =head3 consistently

7 years agoperldata.pod: consistent spaces after dots
Father Chrysostomos [Sun, 8 Sep 2013 21:54:40 +0000 (14:54 -0700)]
perldata.pod: consistent spaces after dots

7 years agopp.c:pp_kvhslice: remove unused var
Father Chrysostomos [Sun, 8 Sep 2013 21:51:27 +0000 (14:51 -0700)]
pp.c:pp_kvhslice: remove unused var

7 years agoIncrease $B::Deparse::VERSION to 1.23
Father Chrysostomos [Sun, 8 Sep 2013 21:50:00 +0000 (14:50 -0700)]
Increase $B::Deparse::VERSION to 1.23

7 years agoIncrease $Opcode::VERSION to 1.26
Father Chrysostomos [Sun, 8 Sep 2013 21:49:24 +0000 (14:49 -0700)]
Increase $Opcode::VERSION to 1.26

7 years agoAdd new opcodes to Opcode.pm
Father Chrysostomos [Sun, 8 Sep 2013 21:48:26 +0000 (14:48 -0700)]
Add new opcodes to Opcode.pm

7 years agoSort MANIFEST
Father Chrysostomos [Sun, 8 Sep 2013 21:38:24 +0000 (14:38 -0700)]
Sort MANIFEST

7 years agoUse diag_listed_as two suppress two diag.t failures
Father Chrysostomos [Sun, 8 Sep 2013 21:19:34 +0000 (14:19 -0700)]
Use diag_listed_as two suppress two diag.t failures

7 years agoAdd two missing perldiag entries
Father Chrysostomos [Sun, 8 Sep 2013 21:19:13 +0000 (14:19 -0700)]
Add two missing perldiag entries

7 years agoHard-code op name in ck_exists|delete errors
Father Chrysostomos [Sun, 8 Sep 2013 21:09:23 +0000 (14:09 -0700)]
Hard-code op name in ck_exists|delete errors

The reason is manifold:
• ck_exists and ck_delete are each only ever called with one op type,
  so we can hard-code the op, which takes less code.
• The messages in perldiag are more helpful if they include
  the op name.
• Changing them in op.c too avoids the need for
  diag_listed_as clutter.

(I know, two of these are not listed in perldiag yet.  I’m get-
ting to that.)

7 years agoSuppress a warning in kvhslice.t
Father Chrysostomos [Sun, 8 Sep 2013 20:53:23 +0000 (13:53 -0700)]
Suppress a warning in kvhslice.t

The bugginess of the ‘Scalar value better written as...’ warning
applies to %new{silce} syntax, too.

7 years agoupdate manifest
Ruslan Zakirov [Sun, 8 Sep 2013 18:13:06 +0000 (22:13 +0400)]
update manifest

7 years agoshort documentation for key/value hash/array slices
Ruslan Zakirov [Sun, 8 Sep 2013 15:40:34 +0000 (19:40 +0400)]
short documentation for key/value hash/array slices

7 years agotest index/value array slices
Ruslan Zakirov [Sat, 7 Sep 2013 17:41:45 +0000 (21:41 +0400)]
test index/value array slices

7 years agotest key/value hash slices
Ruslan Zakirov [Tue, 12 Mar 2013 13:00:48 +0000 (17:00 +0400)]
test key/value hash slices

7 years agoindex/value array slice operation
Ruslan Zakirov [Sat, 2 Mar 2013 12:57:41 +0000 (16:57 +0400)]
index/value array slice operation

kvaslice operator that imlements %a[0,2,4] syntax which
result in list of index/value pairs. Implemented in
consistency with "key/value hash slice" operator.

7 years agoscalar value %x{'a'} better written as $x{'a'}
Ruslan Zakirov [Sun, 24 Mar 2013 11:53:12 +0000 (15:53 +0400)]
scalar value %x{'a'} better written as $x{'a'}

7 years agokey/value hash slice operation
Ruslan Zakirov [Wed, 27 Feb 2013 15:39:39 +0000 (19:39 +0400)]
key/value hash slice operation

kvhslice operator that implements %h{1,2,3,4} syntax which
returns list of key value pairs rather than just values
(regular slices).

7 years agoMove BmUSEFUL to the IV slot from the NV slot, simplifying union _xnvu.
Nicholas Clark [Wed, 11 Sep 2013 09:26:29 +0000 (11:26 +0200)]
Move BmUSEFUL to the IV slot from the NV slot, simplifying union _xnvu.

This change is made possible by commit 8922e4382e9c1488 (June 2013), which
eliminated BmPREVIOUS, which had been using the IV slot.

7 years agoPreserve undef identity in const ops
Father Chrysostomos [Fri, 13 Sep 2013 01:26:30 +0000 (18:26 -0700)]
Preserve undef identity in const ops

This fixes the one remaining issue in ticket #105906.

Under ithreads, the constants are transferred to the pad at compile
time.  Since the pads are AVs, and since AVs used &PL_sv_undef to rep-
resent unused slots, &PL_sv_undef could not be stored in the pad, and
so was copied.

That meant the same constant would produce a different scalar at each
call site:

$  ./perl -Ilib -le 'BEGIN { $::{z} = \undef }  for(z,z) { print \$_ }'
SCALAR(0x7fecb38062e0)
SCALAR(0x7fecb3806100)

Commit ce0d59f changed the way AVs work, so now we *can* store
&PL_sv_undef in an AV meaningfully, and there is no longer any need
for this copying hack.

7 years agoconvert mktables to parent.pm instead of base.pm
Ricardo Signes [Fri, 13 Sep 2013 01:36:54 +0000 (21:36 -0400)]
convert mktables to parent.pm instead of base.pm

7 years agoperldelta for e7ab04ce5
Tony Cook [Fri, 13 Sep 2013 01:51:45 +0000 (11:51 +1000)]
perldelta for e7ab04ce5

7 years ago[perl #115928] use a consistent internal rand on all platforms
Tony Cook [Fri, 13 Sep 2013 01:34:16 +0000 (11:34 +1000)]
[perl #115928] use a consistent internal rand on all platforms

7 years ago[perl #115928] we don't use drand48_r or random_r any longer
Tony Cook [Tue, 10 Sep 2013 00:09:43 +0000 (10:09 +1000)]
[perl #115928] we don't use drand48_r or random_r any longer

Removing this should mean that metaconfig will remove the units from
the built Configure

7 years ago[perl #115928] Configure now selects our internal drand48()
Tony Cook [Mon, 9 Sep 2013 04:06:35 +0000 (14:06 +1000)]
[perl #115928] Configure now selects our internal drand48()

7 years agorevert config_h.SH changes, now handled by Configure
Tony Cook [Thu, 29 Aug 2013 04:52:15 +0000 (14:52 +1000)]
revert config_h.SH changes, now handled by Configure

7 years ago[perl #115928] a consistent (public) rand() implementation
Tony Cook [Mon, 9 Sep 2013 04:44:57 +0000 (14:44 +1000)]
[perl #115928] a consistent (public) rand() implementation

Based on Yves's random branch work.

This version makes the new random number visible to external modules,
for example, List::Util's XS shuffle() implementation.

I've also added a 64-bit implementation when HAS_QUAD is true, this
should be significantly faster, even on 32-bit CPUs.  This is intended to
produce exactly the same sequence as the original implementation.

The original version of this commit retained the "freebsd" name from
Yves's original work for the function and data structure names.  I've
removed "freebsd" from most function names so the name isn't an issue
if we choose to replace the implementation,

7 years agoperlreapi: use parent in example, not base
Ricardo Signes [Mon, 9 Sep 2013 02:26:10 +0000 (22:26 -0400)]
perlreapi: use parent in example, not base

7 years agooverload tests: use parent instead of base
Ricardo Signes [Mon, 9 Sep 2013 02:07:03 +0000 (22:07 -0400)]
overload tests: use parent instead of base

7 years agoXS-Typemap tests: use parent instead of base
Ricardo Signes [Mon, 9 Sep 2013 02:06:57 +0000 (22:06 -0400)]
XS-Typemap tests: use parent instead of base

7 years agoB: use parent instead of base
Ricardo Signes [Mon, 9 Sep 2013 02:06:21 +0000 (22:06 -0400)]
B: use parent instead of base

7 years agoPod::Html: use parent instead of base
Ricardo Signes [Mon, 9 Sep 2013 02:01:47 +0000 (22:01 -0400)]
Pod::Html: use parent instead of base

7 years agoHash::Util::FieldHash: use parent instead of base
Ricardo Signes [Mon, 9 Sep 2013 02:01:19 +0000 (22:01 -0400)]
Hash::Util::FieldHash: use parent instead of base

7 years agoFileCache: use parent instead of base
Ricardo Signes [Mon, 9 Sep 2013 02:00:46 +0000 (22:00 -0400)]
FileCache: use parent instead of base

7 years agoAllow semi-colon on TYPEMAP: line to work without it on the closing delim.
Matthew Horsfall [Thu, 12 Sep 2013 18:26:45 +0000 (14:26 -0400)]
Allow semi-colon on TYPEMAP: line to work without it on the closing delim.

This means:

TYPEMAP: <<FOO;
Something T_IV
FOO

will now work.

7 years agoperldelta - IO and File::Find have been upgraded
Steve Hay [Thu, 12 Sep 2013 21:10:56 +0000 (22:10 +0100)]
perldelta - IO and File::Find have been upgraded

7 years agoUpgrade perlfaq from version 5.0150043 to 5.0150044
Steve Hay [Thu, 12 Sep 2013 20:57:09 +0000 (21:57 +0100)]
Upgrade perlfaq from version 5.0150043 to 5.0150044

7 years agoFile::Find: diagnostics in case of a failed chdir
Slaven Rezic [Thu, 12 Sep 2013 12:04:27 +0000 (14:04 +0200)]
File::Find: diagnostics in case of a failed chdir

7 years agoperldiag: Rewrap an entry for better splain output
Father Chrysostomos [Thu, 12 Sep 2013 00:53:03 +0000 (17:53 -0700)]
perldiag: Rewrap an entry for better splain output

7 years agoCorrect the citation for Peter McIlroy's sorting paper.
John P. Linderman [Thu, 12 Sep 2013 14:15:32 +0000 (16:15 +0200)]
Correct the citation for Peter McIlroy's sorting paper.

Also update John P. Linderman's e-mail address.

7 years agoUpdate John P. Linderman's e-mail address in AUTHORS.
Nicholas Clark [Thu, 12 Sep 2013 14:22:51 +0000 (16:22 +0200)]
Update John P. Linderman's e-mail address in AUTHORS.

7 years agoUpgrade autodie from version 2.20 to 2.21
Steve Hay [Thu, 12 Sep 2013 07:53:43 +0000 (08:53 +0100)]
Upgrade autodie from version 2.20 to 2.21

One change pushed upstream has been assimilated, the other not yet.

7 years agoSADAHIRO confirms that Unicode::(Collate|Normalize) can be UPSTREAM=>'cpan'
Steve Hay [Wed, 11 Sep 2013 19:52:44 +0000 (20:52 +0100)]
SADAHIRO confirms that Unicode::(Collate|Normalize) can be UPSTREAM=>'cpan'

7 years agoUpgrade Module::Metadata from version 1.000017 to 1.000018
Steve Hay [Wed, 11 Sep 2013 19:51:04 +0000 (20:51 +0100)]
Upgrade Module::Metadata from version 1.000017 to 1.000018

The taint.t test can now be included since it no longer uses Test::Fatal.

7 years agoEXCLUDE Module-Metadata's t/taint.t: we don't have Test::Fatal in core
Steve Hay [Wed, 11 Sep 2013 09:29:09 +0000 (10:29 +0100)]
EXCLUDE Module-Metadata's t/taint.t: we don't have Test::Fatal in core

7 years agoUpgrade Perl-OSType from version 1.004 to 1.005
Steve Hay [Wed, 11 Sep 2013 08:39:17 +0000 (09:39 +0100)]
Upgrade Perl-OSType from version 1.004 to 1.005

7 years agoUpgrade Module::Metadata from version 1.000016 to 1.000017
Steve Hay [Wed, 11 Sep 2013 08:34:33 +0000 (09:34 +0100)]
Upgrade Module::Metadata from version 1.000016 to 1.000017

7 years ago[perl #88814] sigdispatch.t work on openbsd 5.2
Tony Cook [Wed, 11 Sep 2013 13:13:56 +0000 (23:13 +1000)]
[perl #88814] sigdispatch.t work on openbsd 5.2

7 years agoperlapi: Add doc for my_strlcpy, my_strlcat
Karl Williamson [Wed, 11 Sep 2013 03:28:31 +0000 (21:28 -0600)]
perlapi: Add doc for my_strlcpy, my_strlcat

7 years agoregcomp.c: Use Perl_form() instead of buggy sprintf
Karl Williamson [Wed, 11 Sep 2013 02:40:25 +0000 (20:40 -0600)]
regcomp.c: Use Perl_form() instead of buggy sprintf

Commit 4cabb89a737018190d4e09360a6615e19160709f introduced tests
which include trying to look up a Unicode property whose name
is an upper Latin-range character.  This caused errors and a segfault
on some but not all patforms.  It also turns out that the error is in
some locales but not others.

The problem was there all along, and this commit merely exposed it; and
the bug is in the libc sprintf() for those platforms, which was used
to create the look-up property name.  This version of sprintf() turns
out to be locale-sensitive, and in a UTF-8 locale, it refuses to format
a %s that isn't valid UTF-8.  My guess is that sprintf and printf share
implementation, and such sensitivity may be warranted for printf, but
certainly not for sprintf.  It is undocumented behavior.  And it is
incorrect UTF-8 handling even if one were to output UTF-8 only.  The
reason for that is any malformed text should be turned into the
REPLACEMENT CHARACTER, not just skipped over.  This is a potential
security hole in in this sprintf() version.

The solution I ended up for Perl is to replace the sprintf() with
Perl_form().  I also looked at my_strlcpy() and friends.  Neither one is
as convenient as the buggy sprintf.  Feel free to replace this with
something better.

7 years agoUse separate macros for byte vs uv Unicode
Karl Williamson [Mon, 25 Mar 2013 19:09:09 +0000 (13:09 -0600)]
Use separate macros for byte vs uv Unicode

This removes a macro not yet even in a development release, and splits
its calls into two classes: those where the input is a byte; and those
where it can be any unsigned integer.  The byte implementation avoids a
function call on EBCDIC platforms.

7 years ago[perl #118091] Split gv_fetchpvn_flags into smaller functions
Tony Cook [Wed, 11 Sep 2013 00:47:13 +0000 (10:47 +1000)]
[perl #118091] Split gv_fetchpvn_flags into smaller functions

7 years agogv.c: Split part of find_default_stash into gv_is_in_main.
Brian Fraser [Sun, 4 Aug 2013 17:55:56 +0000 (14:55 -0300)]
gv.c: Split part of find_default_stash into gv_is_in_main.

gv_is_in_main() checks if an unqualified identifier is in the main::
stash.

7 years agogv.c: Rename magicalize_gv into gv_magicalize, make it more specific.
Brian Fraser [Sun, 4 Aug 2013 17:23:27 +0000 (14:23 -0300)]
gv.c: Rename magicalize_gv into gv_magicalize, make it more specific.

Namely, gv_magicalize no longer stores the GV into the stash, which
is gv_fetchpvn_flags' job.

7 years agogv.c, gv_fetchpvn_flags: Split another chunk of magic-checking code.
Brian Fraser [Tue, 21 May 2013 14:32:45 +0000 (11:32 -0300)]
gv.c, gv_fetchpvn_flags: Split another chunk of magic-checking code.

This bit is called when a GV already exists, but it's name is length-one
and it's on the main:: stash, so it might have multiple kinds of magic,
like $! and %!, or @+ and %+.

7 years agogv.c, gv_fetchpvn_flags: Comments for when the glob already exists.
Brian Fraser [Tue, 21 May 2013 14:25:09 +0000 (11:25 -0300)]
gv.c, gv_fetchpvn_flags: Comments for when the glob already exists.

7 years agogv.c: Explain the purpose of the <none>:: stash a bit.
Brian Fraser [Fri, 10 May 2013 07:17:58 +0000 (04:17 -0300)]
gv.c: Explain the purpose of the <none>:: stash a bit.

It's primarily a historical oddity. Its main purpose is to store
variables after an exception from 'use strict "vars"':

    eval q{ use strict; $foo = 1 };
    warn keys %{"<none>::"};

7 years agogv_fetchpvn_flags: Simplify some warnings code
Brian Fraser [Thu, 9 May 2013 23:19:33 +0000 (20:19 -0300)]
gv_fetchpvn_flags: Simplify some warnings code

This line originally checked isLEXWARN_on and had two different code
paths depending on that -- one of which called ckWARN(), which already
checks for isLEXWARN_off, so rather than doing duplicate work, we
just call ckWARN().

7 years agogv.c: Move the code that magicalizes new globs into magicalize_gv().
Brian Fraser [Tue, 9 Apr 2013 08:28:18 +0000 (05:28 -0300)]
gv.c: Move the code that magicalizes new globs into magicalize_gv().

7 years agogv.c: Begin splitting gv_fetchpvn_flags into smaller helper functions.
Brian Fraser [Tue, 9 Apr 2013 07:27:16 +0000 (04:27 -0300)]
gv.c: Begin splitting gv_fetchpvn_flags into smaller helper functions.

This commit takes a chunk of code out of gv_fetchpvn_flags and
turns it into two fuctions: parse_gv_stash_name and find_default_stash.

7 years agorelease schedule: placeholders for the future
Ricardo Signes [Tue, 10 Sep 2013 22:32:10 +0000 (18:32 -0400)]
release schedule: placeholders for the future

7 years agoperldiag: Fix severity of Unicode mapping warning
David Golden [Tue, 10 Sep 2013 21:45:36 +0000 (17:45 -0400)]
perldiag: Fix severity of Unicode mapping warning

The "does not map to Unicode" warning severity was incorrect.  It is
not fatal and can be controlled with the "utf8" category.

7 years agoOops, the HTTP::Tiny upgrade was 0.034->0.035, not 0.34->0.35
Steve Hay [Tue, 10 Sep 2013 21:26:31 +0000 (22:26 +0100)]
Oops, the HTTP::Tiny upgrade was 0.034->0.035, not 0.34->0.35

7 years agoUpgrade HTTP::Tiny from version 0.34 o 0.35
Steve Hay [Tue, 10 Sep 2013 21:17:55 +0000 (22:17 +0100)]
Upgrade HTTP::Tiny from version 0.34 o 0.35

EXCLUDE t/00-compile.t, which has been rewritten and no longer works in
core. (Other t/00-compile.t files from the same CPAN author are already
EXCLUDED.)

7 years agoFix Windows compilation failure introduced by 946095af78
Brian Fraser [Tue, 10 Sep 2013 20:43:40 +0000 (21:43 +0100)]
Fix Windows compilation failure introduced by 946095af78

Patch taken from
Message-ID: <CA+nL+nad64D8hegnphMLnkLLR6dvcAj1X4eqV3CofMg=xdyu_Q@mail.gmail.com>

7 years agoAdded release manager test for copyright year
Smylers [Fri, 6 Sep 2013 10:56:07 +0000 (11:56 +0100)]
Added release manager test for copyright year

7 years agoTest that README and perl -v copyright years match
Smylers [Fri, 6 Sep 2013 10:07:27 +0000 (11:07 +0100)]
Test that README and perl -v copyright years match

7 years agoEnhance runperl doc to mention its return value
Smylers [Fri, 6 Sep 2013 09:37:29 +0000 (10:37 +0100)]
Enhance runperl doc to mention its return value

7 years ago[Merge] Make regexp error messages utf8-clean
Father Chrysostomos [Tue, 10 Sep 2013 15:36:43 +0000 (08:36 -0700)]
[Merge] Make regexp error messages utf8-clean

7 years agoMake the "Switch condition not recognized" error message UTF-8 clean
Brian Fraser [Thu, 29 Aug 2013 14:18:55 +0000 (11:18 -0300)]
Make the "Switch condition not recognized" error message UTF-8 clean

7 years agot/re/reg_mesg.t: Tests for latin1 error messages/warnings
Brian Fraser [Fri, 30 Aug 2013 16:10:16 +0000 (13:10 -0300)]
t/re/reg_mesg.t: Tests for latin1 error messages/warnings

7 years agoregcomp.c: Introduce vFAIL2utf8f to replace the APPLY(X,Y) hack
Brian Fraser [Fri, 6 Sep 2013 00:07:22 +0000 (21:07 -0300)]
regcomp.c: Introduce vFAIL2utf8f to replace the APPLY(X,Y) hack

The APPLY() hack was added in the previous commit to get
vFAIL4("%"UTF8f, UTF8fARG(a,b,c)) working.  Without it,
vFAIL4 would complain about missing arguments, since it only
saw one, but if replaced with vFAIL2, then Simple_vFAIL2 would
complain about having too many arguments.

This commit introduces a vFAIL2utf8f macro that works around
this and enables us to remove the hack.

7 years agoregcomp.c: Make all warnings and error messages UTF-8 clean
Brian Fraser [Fri, 30 Aug 2013 15:06:11 +0000 (12:06 -0300)]
regcomp.c: Make all warnings and error messages UTF-8 clean

7 years agoregcomp.c, S_compile_runtime_code: croak using the SVf format
Brian Fraser [Thu, 29 Aug 2013 14:36:12 +0000 (11:36 -0300)]
regcomp.c, S_compile_runtime_code: croak using the SVf format

This makes error messages from code like this:

    $f = "(?{q\0foo\0 + \x{FFFF}})";
    "a" =~ /^a$f/;

Be both UTF-8 and nul clean.

7 years agotoke.c: "Unrecognized character" error shouldn't leak memory or mangle characters.
Brian Fraser [Thu, 29 Aug 2013 14:26:58 +0000 (11:26 -0300)]
toke.c: "Unrecognized character" error shouldn't leak memory or mangle characters.

This error could've leaked memory if used within as eval, and could
cut off in the middle of a character, leaving worthless binary data
in the error message.

7 years agopp_ctl.c:pp_goto: Cast a boolean properly
Father Chrysostomos [Tue, 10 Sep 2013 15:17:51 +0000 (08:17 -0700)]
pp_ctl.c:pp_goto: Cast a boolean properly

Otherwise we might end up using AvARRAY on a tied array.

7 years agoRemove PERL_MICRO where it is conditionally used with other defines
David Leadbeater [Sat, 18 Aug 2012 15:44:32 +0000 (16:44 +0100)]
Remove PERL_MICRO where it is conditionally used with other defines

There are several cases where PERL_MICRO is used combined with defines
not set in uconfig.h, the additional test isn't needed.

7 years agoRemove including config.h (and co) in perlio.h
David Leadbeater [Sat, 18 Aug 2012 15:41:59 +0000 (16:41 +0100)]
Remove including config.h (and co) in perlio.h

As far as I can tell this is entirely dead code.

7 years agoRemove defining DIR* to void* on microperl
David Leadbeater [Sat, 18 Aug 2012 15:33:33 +0000 (16:33 +0100)]
Remove defining DIR* to void* on microperl

It's possible some older systems want sys/dir.h rather than dirent.h to
define DIR, however this is just a nasty workaround to the actual issue.

7 years agoUse PERL_INT_MAX, this works in microperl
David Leadbeater [Sat, 18 Aug 2012 15:26:11 +0000 (16:26 +0100)]
Use PERL_INT_MAX, this works in microperl

7 years agoSimplify the conditional logic for COW_REFCNT in Devel::Peek's test.
Nicholas Clark [Wed, 4 Sep 2013 13:14:03 +0000 (15:14 +0200)]
Simplify the conditional logic for COW_REFCNT in Devel::Peek's test.

Instead of having a comment on each COW_REFCNT line to skip the line on
earlier versions, move the skip into the existing code which skips the same
lines on current versions built without COW.

7 years agoFix Devel::Peek's tests when building with -DPERL_NO_COW
Nicholas Clark [Wed, 4 Sep 2013 12:55:00 +0000 (14:55 +0200)]
Fix Devel::Peek's tests when building with -DPERL_NO_COW

One test had a pattern with a (?:...)? construction split across two lines,
specifically enclosing the newline at the end of a line, and the line that
followed.

When perl is built with -DPERL_NO_COW or -DPERL_OLD_COPY_ON_WRITE the test's
do_test() driver routine would remove the second line, which included the
closing ')?', leaving a an invalid regex. The solution is to remove the
(?: )? completely, as the driver routine's line removal has the same intent
as the (?: )? construction.

7 years agoperldelta - Two more module upgrades
Steve Hay [Tue, 10 Sep 2013 08:11:07 +0000 (09:11 +0100)]
perldelta - Two more module upgrades

7 years agoCorrect typos reported by Terry Speirs++.
James E Keenan [Mon, 9 Sep 2013 23:05:05 +0000 (01:05 +0200)]
Correct typos reported by Terry Speirs++.

For: RT #119673