This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
10 years agoIncrease $Storable::VERSION to 2.47
Father Chrysostomos [Wed, 21 Aug 2013 03:38:08 +0000 (20:38 -0700)]
Increase $Storable::VERSION to 2.47

10 years ago[perl #7508] Use NULL for nonexistent array elems
Father Chrysostomos [Tue, 2 Jul 2013 20:07:45 +0000 (13:07 -0700)]
[perl #7508] Use NULL for nonexistent array elems

This commit fixes bug #7508 and provides the groundwork for fixing
several other bugs.

Elements of @_ are aliased to the arguments, so that \$_[0] within
sub foo will reference the same scalar as \$x if the sub is called
as foo($x).

&PL_sv_undef (the global read-only undef scalar returned by the
‘undef’ operator itself) was being used to represent nonexistent
array elements.  So the pattern would be broken for foo(undef), where
\$_[0] would vivify a new $_[0] element, treating it as having been
nonexistent.

This also causes other problems with constants under ithreads
(#105906) and causes a pending fix for another bug (#118691) to trig-
ger this bug.

This commit changes the internals to use a null pointer to represent a
nonexistent element.

This requires that Storable be changed to account for it.  Also,
IPC::Open3 was relying on the bug.  So this commit patches
both modules.

10 years agoMove super cache into mro meta
Father Chrysostomos [Sun, 18 Aug 2013 07:36:05 +0000 (00:36 -0700)]
Move super cache into mro meta

Iterated hashes shouldn’t have to allocate space for something
specific to stashes, so move the SUPER method cache from the
HvAUX struct (which all iterated hashes have) into the mro
meta struct (which only stashes have).

10 years agoadd perl5181delta
Father Chrysostomos [Wed, 21 Aug 2013 01:05:57 +0000 (18:05 -0700)]
add perl5181delta

10 years ago[perl #118753] Remove erroneous elsif("") warning
Father Chrysostomos [Tue, 20 Aug 2013 20:21:14 +0000 (13:21 -0700)]
[perl #118753] Remove erroneous elsif("") warning

‘5 || foo’ gets optimised down to a plain ‘5’.  If that happens in
void context, we should not get a warning, as constant folding is not
supposed to change behaviour.

We accomplish that by flagging the constant with
OPpCONST_SHORTCIRCUIT.  The code that warns checks for the absence of
that flag first.

Commit f6f3a1fea, in order to improve line number accuracy in elsif,
changed the condition in elsif() to have a nulled COP (containing line
numbers) with the condition as its kidop.

That prevented constant folding from happening, so commit 71c4dbc37
implemented a function (search_const) to search to find a constant
below the nulled COP, but only used it to make folding happen, and did
not use it for OPpCONST_SHORTCIRCUIT.

The result was that if($foo){}elsif(""){} (mostly equivalent to
$foo ? do{} : "" && do {} internally) got folded to $foo ? do{} : ""
without OPpCONST_SHORTCIRCUIT being set on the final "".  So the warn-
ing occurs.

This commit uses search_const to set OPpCONST_SHORTCIRCUIT, and the
warning vanishes.

10 years agothread_it.pl: Increase Mac stack
Father Chrysostomos [Tue, 20 Aug 2013 20:05:04 +0000 (13:05 -0700)]
thread_it.pl: Increase Mac stack

At Vincent’s suggestion (<5213ABBE.9080706@profvince.com>), increase
the Mac stack size to 1000000.

10 years agoFilter-Simple tests: swap out base for parent.
kevin dawson [Tue, 20 Aug 2013 19:18:38 +0000 (20:18 +0100)]
Filter-Simple tests: swap out base for parent.

kevin dawson is now an author.

For: RT #119393

10 years agoTypo fix in perlunicode
Victor [Tue, 20 Aug 2013 11:18:20 +0000 (15:18 +0400)]
Typo fix in perlunicode

characters with ordinal 0x100 cannot be downgraded, thus
all characters >= 0x100 have character semantic.

10 years agoUpdate the RMG following the release of 5.19.3
Steve Hay [Tue, 20 Aug 2013 21:54:09 +0000 (22:54 +0100)]
Update the RMG following the release of 5.19.3

Reflow a paragraph with an odd newline, update a couple of previous commit
links (but keeping one as a major update (5.18->5.19) since it contains
more edits), update mention of the variables and files involved in the
Module::CoreList update, remove an out-dated reference to makerel adding
DOS line endings (it hasn't done that since 1f9a80b25f), and clarify that
CPAN's /src/README.html only lists stable releases.

10 years agoIncrease XS::Typemap::VERSION to 0.11
Father Chrysostomos [Tue, 20 Aug 2013 08:06:53 +0000 (01:06 -0700)]
Increase XS::Typemap::VERSION to 0.11

10 years ago[perl #118693] Remove PADTMP exemption from uninit warnings
Father Chrysostomos [Mon, 19 Aug 2013 23:16:37 +0000 (16:16 -0700)]
[perl #118693] Remove PADTMP exemption from uninit warnings

This fixes a problem with undefined values return from XSUBs not pro-
ducing such warnings.

The default typemap for XSUBs uses the target of the entersub call (in
the caller’s pad) to return the converted value, instead of having to
allocate a new SV for that.

So, for example, a function returning char* will cause that char* to
be assigned to the target via sv_setpv.  Then the target is returned.

As a special case, NULL return from a char*-returning function will
produce an undef return value.  This undef return value was not trig-
gering an uninitialized warning.

All targets are marked PADTMP, and anything marked PADTMP is exempt
from uninitialized warnings in some code paths, but not others.

This goes all the way back to 91bba347, which suppressed the warning
with only a hit at why (something to do with bitwise ops warning inap-
propriately).  I think it was to make ~undef exempt.  But a1afd104
stopped it from being exempt.

Only a few pieces of code were relying on this exemption, and it was
hiding bugs, too.  The last few commits have addressed those, so kiss
this exemption good-bye!

pp_reverse had a workaround to force an uninit warning (since
1e21d011c), so remove the workaround to avoid a double uninit warning.

10 years agoAvoid double stringification in pp_complement
Father Chrysostomos [Tue, 20 Aug 2013 07:17:15 +0000 (00:17 -0700)]
Avoid double stringification in pp_complement

Commit 91bba347 made targets exempt from uninit warnings.  The com-
mit message only says it has something to do with fixing warnings on
bitwise ops.

Commit a1afd1046 worked around that by doing an extra stringifica-
tion before assigning to the target, to produce an uninit warning
on purpose.

As far as I can tell, the only purpose of 91bba347 was to avoid the
warning for ~undef.  (I haven’t actually tried building the commit
before that to confirm.)

In any case, the uninit warning has been long tested for and is now
expected behaviour.

Since I am about to remove the uninit warning exemption for targets,
stop relying on that.

This speed ups the code slightly, as we avoid a double string-
ification.

10 years agoFix skip logic in pad_tidy and cv_clone
Father Chrysostomos [Tue, 20 Aug 2013 06:17:08 +0000 (23:17 -0700)]
Fix skip logic in pad_tidy and cv_clone

Commit 325e1816dc changed the logic for determining whether a pad
entry is to be treated like a constant; i.e., shared between recursion
levels and sub clones.

According the old logic, a pad entry must be shared if it is marked
READONLY or is a shared hash key scalar.  According to the new logic,
the entry must be shared if the pad name has a zero-length PV (i.e.,
&PL_sv_no).

Two pieces of code were still following the old logic.  Changing them
fixes this old bug:

my $close_over_me;
sub  {
    () = $close_over_me;
    open my $fh, "/dev/null";
    print "$$fh\n"
}->();
__END__

Output:
*main::

The name attached to the implicit rv2gv op in open() was not being
copied by sub clones.

The previous commit is also part of the fix.

In the tests, I tested the combination of sub cloning and recursion,
since it seemed like a good idea (and also as a result of copying and
pasting :-).

S_pmtrans was still relying on the old logic, so it gets changed, too.

10 years agoStop recursion from losing lex fh names
Father Chrysostomos [Tue, 20 Aug 2013 00:39:45 +0000 (17:39 -0700)]
Stop recursion from losing lex fh names

sub r {
    r($_[0]-1) if $_[0];
    open my $fh, "/dev/null";
    print "$_[0] $$fh\n"
}
r(5);
__END__

Output:
0 *main::
1 *main::
2 *main::
3 *main::
4 *main::
5 *main::$fh

The largest number represents the outermost call.

The handle name was being allocated as a target (a scratch variable
used by various operators to return values).  Targets are not shared
between recursion levels.

This commit tells pad_alloc to treat it like a constant, so it
is shared.

10 years agoBump version for 5.19.4
Steve Hay [Tue, 20 Aug 2013 16:52:30 +0000 (17:52 +0100)]
Bump version for 5.19.4

10 years agoCreate new perldelta for 5.19.4
Steve Hay [Tue, 20 Aug 2013 16:43:35 +0000 (17:43 +0100)]
Create new perldelta for 5.19.4

10 years agoAdd Perl 5.19.3 epigraph
Steve Hay [Tue, 20 Aug 2013 16:31:29 +0000 (17:31 +0100)]
Add Perl 5.19.3 epigraph

10 years agoUpdate perlhist v5.19.3
Steve Hay [Tue, 20 Aug 2013 10:45:52 +0000 (11:45 +0100)]
Update perlhist

10 years agoFinalize perldelta
Steve Hay [Tue, 20 Aug 2013 10:40:31 +0000 (11:40 +0100)]
Finalize perldelta

10 years agoComplete Module::CoreList's update for v5.19.3
Steve Hay [Tue, 20 Aug 2013 10:12:04 +0000 (11:12 +0100)]
Complete Module::CoreList's update for v5.19.3

10 years agothread_it.pl: Tweak stack sizes
Father Chrysostomos [Tue, 20 Aug 2013 07:38:57 +0000 (00:38 -0700)]
thread_it.pl: Tweak stack sizes

The stack size appropriate to HP-UX is too small for some systems,
where the default is fine.  (See <20130816182909.GA14081@iabyn.com>.)
On Mac OS X, the size appropriate to HP-UX is too small, as is the
default.

10 years agoperldelta - Mention documentation changes not so far covered
Steve Hay [Tue, 20 Aug 2013 00:50:12 +0000 (01:50 +0100)]
perldelta - Mention documentation changes not so far covered

10 years agoFix version's test scripts' $Verbose flag
Steve Hay [Mon, 19 Aug 2013 14:43:01 +0000 (15:43 +0100)]
Fix version's test scripts' $Verbose flag

The four scripts that use it should declare it a package variable, not a
lexical, otherwise the typeglob used in coretests.pm won't affect it.
Also, we want to set $Verbose to 0, not to $0, if $ENV{PERL_CORE} is set.

These customizations are being pushed upstream in CPAN RT#87513.

10 years agoversion has been upgraded from 0.9902 to 0.9903
Steve Hay [Mon, 19 Aug 2013 12:42:08 +0000 (13:42 +0100)]
version has been upgraded from 0.9902 to 0.9903

Blead customizations have been incorporated and the test scripts no longer
require customizations for blead, but 07locale.t is still out of sync with
the CPAN release.

10 years agoPATCH: Synchronize version.pm CPAN with core
John Peacock [Mon, 19 Aug 2013 12:16:50 +0000 (13:16 +0100)]
PATCH: Synchronize version.pm CPAN with core

Date: Fri, 16 Aug 2013 08:59:49 -0400
Message-ID: <520E2245.3020309@havurah-software.org>

(Amended by the committer to preserve local changes in 07locale.t from
3fca3d61b552b8da4cb82e43e9eac517631ef737 (the first part of hunk #2 is not
in 0.9903) and 02aba72f9af3ac175d1dfacad3955de025cd7130 (not in 0.9903 at
all), and to fix a "tab after spaces" problem in version.pm. These changes
are being sent back upstream in CPAN RT#87513.)

10 years agoCarp.pm: Restore defined &overload::StrVal check
Father Chrysostomos [Mon, 19 Aug 2013 14:16:48 +0000 (07:16 -0700)]
Carp.pm: Restore defined &overload::StrVal check

See 578ded8b8.  This was accidentally changed by f7c3eab3866.

10 years agoUpdate META files following commit ac2e5ad
Steve Hay [Mon, 19 Aug 2013 11:51:40 +0000 (12:51 +0100)]
Update META files following commit ac2e5ad

I must run nmake test(_porting) before committing
I must run nmake test(_porting) before committing
I must run nmake test(_porting) before committing

(Presumably this will result in perl's I18N::LangTags getting indexed by
PAUSE now, which may resolve the problems mentioned in that previous
commit.)

10 years agoRemove I18N::LangTags's DISTRIBUTION entry from Maintainers.pl
Steve Hay [Mon, 19 Aug 2013 11:05:10 +0000 (12:05 +0100)]
Remove I18N::LangTags's DISTRIBUTION entry from Maintainers.pl

Blead's version (0.39) is different from Sean's last CPAN release (0.35)
nine years ago and I18N::LangTags currently doesn't appear in CPAN's
02packages.details.txt, which is probably the cause of core-cpan-diff -a -x
complaining "I18N::LangTags: Can't determine current CPAN entry". Most
distros having MAINTAINER 'p5p' don't have a DISTRIBUTION entry (and all
those that do specify a recent CPAN release which blead is in sync with),
so the simplest way to squelch this warning is to remove the DISTRIBUTION
entry for I18N::LangTags until such time as a new CPAN release is made
(currently not looking very likely).

Aside: Searching for I18N::LangTags on search.cpan.org currently finds
perl-5.12.5, presumably on the basis that it's the most recent release of
anything containing the last CPAN release of this module (0.35). It would
be nice if it (currently) found 5.18.1 instead. I don't know why it
doesn't, given that PAUSE's View Permissions says that P5P is the owner.

10 years ago[perl #92446] don't use overloaded string values in the backtrace
Tony Cook [Mon, 19 Aug 2013 03:58:07 +0000 (13:58 +1000)]
[perl #92446] don't use overloaded string values in the backtrace

Allowing string overloading caused some CPAN module tests to fail.

While it seems reasonable to allow "" overloading for the backtrace, it has
several problems:

- the overloaded stringification may be suitable for end-users, but not
  for debugging, the raw reference display at least allows for identifying
  which object is involved

- the overload may not be suitable for calling in an exception, eg. it may
  call parts of Carp itself internally, or throw its own exception

- the overload may not be intended for use, eg. deprecation

This changes fixes the failures for Data-Hive and Contextual-Return
reported in [perl #119321]

10 years agoperldelta - Devel::PPPort upgrade
Steve Hay [Mon, 19 Aug 2013 01:15:03 +0000 (02:15 +0100)]
perldelta - Devel::PPPort upgrade

10 years agoUpdate Maintainers.pl etc for Devel-PPPort upgrade to 3.21
Steve Hay [Sun, 18 Aug 2013 15:49:28 +0000 (16:49 +0100)]
Update Maintainers.pl etc for Devel-PPPort upgrade to 3.21

In particular, the customizations to four files have now been merged
upstream so we must remove their entries from customized.dat

10 years agoTurn off executable bit accidentally added to Devel-PPPort files
Steve Hay [Sun, 18 Aug 2013 15:47:31 +0000 (16:47 +0100)]
Turn off executable bit accidentally added to Devel-PPPort files

10 years agoUpdate Devel-PPPort to CPAN version 3.21
Marcus Holland-Moritz [Sat, 17 Aug 2013 14:04:57 +0000 (15:04 +0100)]
Update Devel-PPPort to CPAN version 3.21

[DELTA]

3.21 - 2013-08-17

    * Fix cpan #87870: Merge core perl commit 90b0dc0e2e
      (Thanks to Father Chrysostomos for the original patch and
       to Steve Hay for forwarding it)
    * Fix cpan #86975: Deterministically order API elements in POD
      (Thanks to Karl Williamson for providing a patch.)
    * Fix cpan #81796: my $_ is deprecated
      (Thanks to Nicholas Clark for providing a patch)
    * Fix cpan #81484: fix isASCII and isCNTRL for inputs > 255
      (Thanks to Karl Williamson for providing a patch)
    * Fix cpan #80314: make use of PERL_NO_GET_CONTEXT the default
    * Fix cpan #79814: Install to 'site' for perl 5.11+
      (Thanks to Robert Sedlacek for providing a patch)
    * Fix cpan #78271: Need SvPV_nomg_nolen
    * Adapt buildperl.pl for newer Perl releases
    * Update masked_versions regex for 5.005 thread builds
    * Some tweaks needed to support 5.003 on 64-bit platforms

10 years agoperldelta - Remove all but one XXX notices
Steve Hay [Mon, 19 Aug 2013 00:42:33 +0000 (01:42 +0100)]
perldelta - Remove all but one XXX notices

Also, move a performance bug fix to the Performance Enhancements section
and mention new test scripts in the Testing section.

10 years agoperldelta - Standardize references to other versions of Perl
Steve Hay [Mon, 19 Aug 2013 00:13:17 +0000 (01:13 +0100)]
perldelta - Standardize references to other versions of Perl

10 years agoperldelta - Fill in the remaining stuff that needed to be done still
Steve Hay [Mon, 19 Aug 2013 00:04:38 +0000 (01:04 +0100)]
perldelta - Fill in the remaining stuff that needed to be done still

Commit 8fe3c67 was actually part of merge e82485c, covered already by
31d5dc6.

10 years agoTrim second block (nolinenumbers) to avert crashes on Win32.
James E Keenan [Sun, 18 Aug 2013 23:47:31 +0000 (01:47 +0200)]
Trim second block (nolinenumbers) to avert crashes on Win32.

In second block of tests, eliminate all tests except those needed to prove
that ParseXS can write a .c file without line numbers.  We will treat this as
sufficient because the tests we are deleting are causing crashes on Windows.

For: RT #119231

10 years agoUpdate t/porting/customized.dat
Steve Hay [Sun, 18 Aug 2013 21:09:37 +0000 (22:09 +0100)]
Update t/porting/customized.dat

Time::HiRes's Makefile.PL is no longer CUSTOMIZED, as of commit 0f0eae2

10 years agoperldelta - Fill in TODO items regarding modules and pragmata
Steve Hay [Sun, 18 Aug 2013 20:37:08 +0000 (21:37 +0100)]
perldelta - Fill in TODO items regarding modules and pragmata

10 years agoperldelta - Add entries for perldiag changes in 6f1b3ab and 6c341f6
Steve Hay [Sun, 18 Aug 2013 18:47:49 +0000 (19:47 +0100)]
perldelta - Add entries for perldiag changes in 6f1b3ab and 6c341f6

10 years agoavoid eval misinterpretation on old perls
Zefram [Sun, 18 Aug 2013 13:41:52 +0000 (14:41 +0100)]
avoid eval misinterpretation on old perls

An eval-BLOCK in the Carp test suite is misinterpreted by perl 5.6 as an
eval-STRING.  Add a do-BLOCK wrapper inside the block to satisfy perl 5.6.

10 years agobetter check for overload::StrVal
Zefram [Sun, 18 Aug 2013 13:24:30 +0000 (14:24 +0100)]
better check for overload::StrVal

The overloading logic in Carp got confused on perl 5.6 by the overload
module not setting $VERSION.  As the overload-is-loaded check controls
the use of overload::StrVal(), check for that sub being defined rather
than checking $VERSION.

10 years agoavoid "uninitialized value" warnings in Carp
Zefram [Sun, 18 Aug 2013 12:50:13 +0000 (13:50 +0100)]
avoid "uninitialized value" warnings in Carp

On older Perls, a call of the form $undef->() generates an "uninitialized
value" warning before dying.  The new overloaded-object logic in Carp
assumes the more modern behaviour, that the undefinedness causes an
exception directly with no separate warning.  To restore compatibility of
Carp to older Perls, check explicitly for definedness of $RefArgFormatter
rather than relying on the exception.

10 years agoLet t/mro/basic.t be run from the top level
Father Chrysostomos [Sun, 18 Aug 2013 07:04:03 +0000 (00:04 -0700)]
Let t/mro/basic.t be run from the top level

10 years agoperldelta entry for the prev. commit
Father Chrysostomos [Sun, 18 Aug 2013 07:02:19 +0000 (00:02 -0700)]
perldelta entry for the prev. commit

10 years ago[perl #114864] Make UNIVERSAL::DESTROY changes invalidate caches
Father Chrysostomos [Sun, 18 Aug 2013 06:58:47 +0000 (23:58 -0700)]
[perl #114864] Make UNIVERSAL::DESTROY changes invalidate caches

Commit 8c34e50d inadvertently caused DESTROY caches not to be
reset when UNIVERSAL::DESTROY changes.  Normally, a change to
a method will cause mro_method_changed_in to be called on all
subclasses, but mro.c cheats for UNIVERSAL and just does
++PL_sub_generation.  So clearing the DESTROY cache explicitly
in mro_method_changed_in is clearly not enough.

10 years agoperldelta: c56ed9f deserves no mention
Father Chrysostomos [Sun, 18 Aug 2013 06:12:46 +0000 (23:12 -0700)]
perldelta: c56ed9f deserves no mention

It fixed a bug in the handling of a certain combination of SV flags
that never happened in 5.19.2 and earlier.

10 years agoupdate Time-HiRes to version 1.9726 from CPAN
Zefram [Sat, 17 Aug 2013 22:47:23 +0000 (23:47 +0100)]
update Time-HiRes to version 1.9726 from CPAN

10 years agoperldelta - Fix POD typo
Steve Hay [Sat, 17 Aug 2013 18:12:43 +0000 (19:12 +0100)]
perldelta - Fix POD typo

10 years agoAdd $dl_dlext to DynaLoader's interface summary now that it's documented
Steve Hay [Sat, 17 Aug 2013 17:33:55 +0000 (18:33 +0100)]
Add $dl_dlext to DynaLoader's interface summary now that it's documented

10 years agoCorrect File::Spec's perldelta.pod entry
Steve Hay [Sat, 17 Aug 2013 17:33:24 +0000 (18:33 +0100)]
Correct File::Spec's perldelta.pod entry

10 years agoperldelta - Start updating for 5.19.3
Steve Hay [Sat, 17 Aug 2013 17:25:00 +0000 (18:25 +0100)]
perldelta - Start updating for 5.19.3

I believe all relevant changes are now mentioned except for the 6 listed
at the top of the file, which may or may not be deserving of a mention.

10 years agoperldelta for File::Spec XSification
Zefram [Sat, 17 Aug 2013 16:24:23 +0000 (17:24 +0100)]
perldelta for File::Spec XSification

10 years agoMerge branch 'zefram/File-Spec-in-XS' into HEAD
Zefram [Sat, 17 Aug 2013 16:11:28 +0000 (17:11 +0100)]
Merge branch 'zefram/File-Spec-in-XS' into HEAD

10 years agoIn Cwd's THX_unix_canonpath add two casts from (void*) to keep C++ sweet.
Nicholas Clark [Wed, 12 Jun 2013 17:48:37 +0000 (19:48 +0200)]
In Cwd's THX_unix_canonpath add two casts from (void*) to keep C++ sweet.

The new XS implementation of various File::Spec methods needs a couple of
casts to compile with a C++ compiler.

10 years agoFile::Spec in XS
Zefram [Thu, 28 Feb 2013 16:48:01 +0000 (16:48 +0000)]
File::Spec in XS

Reimplement parts of File::Spec in XS.  Mainly File::Spec::Unix methods.

The methods can be used as methods on File::Spec::Unix, as methods
inherited by File::Spec::$notunix, and as standalone functions.  Quite a
lot of complexity comes from making them work in all of these roles,
without the compatibility damaging the performance of any of them.
The methods therefore need to check their invocant, using C code
where the invocant is File::Spec::Unix, and calling other methods if
it is not, so that they play nicely in composition with other methods.
The standalone function is another XS entry point, entirely unencumbered
by OO interface paraphernalia.  File::Spec::Functions is modified to
pick up the separate function version.

There is new logic for File::Spec to fall back to pure Perl, in the way
that Cwd.pm already does, for XS-impaired systems.

10 years agoAdd the upstream Makefile.PL for Cwd
Nicholas Clark [Sat, 2 Mar 2013 11:19:07 +0000 (12:19 +0100)]
Add the upstream Makefile.PL for Cwd

This needs to return to the perl repository because the upcoming change to Cwd
needs to patch to include extra logic not in the auto-generated Makefile.PL

10 years agoAdd dist/constant/lib to the paths in the generated lib/buildcustomize.pl
Nicholas Clark [Sat, 2 Mar 2013 11:07:33 +0000 (12:07 +0100)]
Add dist/constant/lib to the paths in the generated lib/buildcustomize.pl

Strictly, add it to write_buildcustomize.pl, and so that the absolute path
is added to the generated file.

10 years agoAvert crashes when testing in parallel.
James E Keenan [Fri, 16 Aug 2013 23:59:23 +0000 (01:59 +0200)]
Avert crashes when testing in parallel.

Both t/001-basic.t and what was t/004-nolinenumbers.t were trying to write to
a 't/XSTest.c' file.  When run in parallel, this was causing problems when
TEST_JOBS >= 1 (2 on some boxes, 4 on dromedary).

Since all that t/004-nolinenumbers.t was ever trying to do was to run
process_file() without line numbers -- a case not exercised prior to my
2009-11 refactoring/test additions -- the simplest way to avoid these
problems is to stuff the tests from t/004 into t/001 and delete t/001.

For: RT #119231

10 years agoPerlIO: remove string eval/code injection (#119287)
Lukas Mai [Sat, 17 Aug 2013 07:29:52 +0000 (09:29 +0200)]
PerlIO: remove string eval/code injection (#119287)

10 years agoIncrease $mro::VERSION to 1.13
Father Chrysostomos [Thu, 15 Aug 2013 04:57:01 +0000 (21:57 -0700)]
Increase $mro::VERSION to 1.13

10 years agomro.pm: Typo
Father Chrysostomos [Thu, 15 Aug 2013 04:56:13 +0000 (21:56 -0700)]
mro.pm: Typo

10 years agoFurther typo correction.
Lukas Mai [Sat, 17 Aug 2013 13:55:22 +0000 (15:55 +0200)]
Further typo correction.

10 years agoFix typo in comment. mauke- ++.
James E Keenan [Sat, 17 Aug 2013 13:02:34 +0000 (15:02 +0200)]
Fix typo in comment.  mauke- ++.

For: RT #119331

10 years agoperldelta - Consistent use of C<> and L<>
Steve Hay [Sat, 17 Aug 2013 11:19:48 +0000 (12:19 +0100)]
perldelta - Consistent use of C<> and L<>

10 years agoperldelta - Consistent style for [perl/cpan #NNNNN] numbers
Steve Hay [Sat, 17 Aug 2013 10:54:12 +0000 (11:54 +0100)]
perldelta - Consistent style for [perl/cpan #NNNNN] numbers

10 years agoperldelta - Two spaces between sentences
Steve Hay [Sat, 17 Aug 2013 10:46:26 +0000 (11:46 +0100)]
perldelta - Two spaces between sentences

10 years agoperldelta - Wrap to 79 columns
Steve Hay [Sat, 17 Aug 2013 10:43:21 +0000 (11:43 +0100)]
perldelta - Wrap to 79 columns

10 years agoSkip copying perlhist.pod entries to blead for BLEAD-POINT releases
Steve Hay [Fri, 16 Aug 2013 21:48:31 +0000 (22:48 +0100)]
Skip copying perlhist.pod entries to blead for BLEAD-POINT releases

Other releases should have added themselves to blead's perlhist.pod by this
very instruction itself so there's no need to do this for BLEAD-POINT
releases themselves.

10 years agoRemove double blank lines from the RMG
Steve Hay [Fri, 16 Aug 2013 21:42:17 +0000 (22:42 +0100)]
Remove double blank lines from the RMG

A number of =headN sections were preceded by two blank lines, but the vast
majority have only one so normalize them all to one.

10 years agoCorrect a couple of references to BLEAD-FINAL in the RMG
Steve Hay [Fri, 16 Aug 2013 21:37:40 +0000 (22:37 +0100)]
Correct a couple of references to BLEAD-FINAL in the RMG

(There isn't a release type called "BLEAD": we have either "BLEAD-POINT" or
"BLEAD-FINAL". There is one reference to "BLEAD" remaining, which I think
in the context is intended to mean "either BLEAD-POINT or BLEAD-FINAL".)

10 years agoRearrange the RMG steps relating to the release branch and tag
Steve Hay [Fri, 16 Aug 2013 21:27:32 +0000 (22:27 +0100)]
Rearrange the RMG steps relating to the release branch and tag

The main steps in this regard in the current RMG are:

1. Commit the work as it's done to the local release branch
2. Push those commits to the remote release branch (creating it in the
   process)
3. Create a tag identifying the last commit in the release branch
4. Publish that release tag to the public repository
5. Merge the [local] release branch commits into the local blead branch
6. Push those merged commits to the remote blead branch

A recently added query in the RMG asked why it was necessary to push the
work so far (step (2) above), given that we're working on a release branch.

In an email discussion with RJBS we reached the conclusion that it is
indeed unnecessary: the merge in step (5) operates purely on the local
release branch, so there is no need to push anything first.

The release tag still needs to be pushed (step (4)), though, because in a
default Git configuration "git push" only pushes commits, not tags as well.
However, if we omit step (2) then it makes more sense to delay step (4)
until after steps (5) and (6) otherwise we are publishing a tag identifying
a commit that hasn't been pushed anywhere public yet.

The above sequence of steps has therefore been changed to:

1. Commit the work as it's done to the local release branch
2. Create a tag identifying the last commit in the local release branch
3. Merge the local release branch commits into the local blead branch
4. Push those merged commits to the remote blead branch
5. Publish the tag (which identifies the last of those pushed commits)
   to the public repository

For the same reasons, the "git push origin ...." when disarming
patchlevel.h in non-BLEAD-POINT releases has been removed since we're still
on the release branch at this point in the process.

Also, since we now never push anything to a remote release branch, there is
no longer any need to delete it. Only the local release branch needs
deleting.

Finally, the last "git commit" instruction in the RMG (regarding copying
perldelta.pod to blead for MAINT and BLEAD-FINAL releases) was lacking a
"git push origin ....": we're no longer on the release branch by this stage
of the process.

10 years agoFix include-related missing variables in configure.com.
Craig A. Berry [Fri, 16 Aug 2013 22:13:24 +0000 (17:13 -0500)]
Fix include-related missing variables in configure.com.

10 years ago[perl #119271] Faulty test for INT16 in Configure
H.Merijn Brand [Fri, 16 Aug 2013 12:23:20 +0000 (14:23 +0200)]
[perl #119271] Faulty test for INT16 in Configure

#ifdef INT16
   int16_t i =  INT16_MAX;
  uint16_t i = UINT16_MAX;
  printf("int16_t\n");
#endif

Declaring i twice is a typo; The second variable should be a 'u'.

10 years agoperlhist: import perlhist changes from 5.18.1
Ricardo Signes [Fri, 16 Aug 2013 02:25:21 +0000 (22:25 -0400)]
perlhist: import perlhist changes from 5.18.1

10 years agoperlexperiment: link to tracking ticket for installhtml
Ricardo Signes [Fri, 16 Aug 2013 01:55:26 +0000 (21:55 -0400)]
perlexperiment: link to tracking ticket for installhtml

10 years agoperlexperiment: link to tracking ticket for my $_
Ricardo Signes [Fri, 16 Aug 2013 01:55:01 +0000 (21:55 -0400)]
perlexperiment: link to tracking ticket for my $_

10 years agoperlexperiment: link to tracking ticket for smartmatch
Ricardo Signes [Fri, 16 Aug 2013 01:54:50 +0000 (21:54 -0400)]
perlexperiment: link to tracking ticket for smartmatch

10 years agoperlexperiment: link to tracking ticket for :unique
Ricardo Signes [Fri, 16 Aug 2013 01:54:32 +0000 (21:54 -0400)]
perlexperiment: link to tracking ticket for :unique

10 years agoperlexperiment: embedded code in regex not experimental
Ricardo Signes [Fri, 16 Aug 2013 00:26:33 +0000 (20:26 -0400)]
perlexperiment: embedded code in regex not experimental

This was sorted out by 83f32abae and the thread found at
http://www.nntp.perl.org/group/perl.perl5.porters/2013/06/msg203129.html

10 years agoremove API experiments from perlexperiment
Ricardo Signes [Fri, 16 Aug 2013 00:20:17 +0000 (20:20 -0400)]
remove API experiments from perlexperiment

As we discussed on p5p, these experiments are too many, too
undifferentiated, and already marked in the perlapi documentation.

10 years agolib/locale.t: Make Windows machines failures TODOs
Karl Williamson [Thu, 15 Aug 2013 19:40:51 +0000 (13:40 -0600)]
lib/locale.t: Make Windows machines failures TODOs

On some Windows machines, all locales are defective except the C locale.
See http://markmail.org/message/5jwam4xsx4amsdnv.

10 years agolib/locale.t: Add comment
Karl Williamson [Thu, 15 Aug 2013 19:26:55 +0000 (13:26 -0600)]
lib/locale.t: Add comment

10 years agolib/locale.t: Add, improve debugging output
Karl Williamson [Thu, 15 Aug 2013 19:24:15 +0000 (13:24 -0600)]
lib/locale.t: Add, improve debugging output

This now dumps out what all the [:posix:] classes match under debugging,
using the format introduced a few commits ago.  This is helpful in
examining what might be wrong.

10 years agolib/locale.t: Change variable name for accuracy
Karl Williamson [Thu, 15 Aug 2013 19:19:55 +0000 (13:19 -0600)]
lib/locale.t: Change variable name for accuracy

The variable means \w, not Alnum, which matches [:alnum:], and has a
somewhat different meaning.

10 years agolib/locale.t: Improve debug output
Karl Williamson [Thu, 15 Aug 2013 18:42:46 +0000 (12:42 -0600)]
lib/locale.t: Improve debug output

This creates a function to display a list of code points that are passed
in.  It uses hex for non-ASCII graphics and otherwise outputs the
characters, perhaps as ranges.  It makes reading the output a lot
easier.  Previously, there could be discrepancies in if the output was
in utf8 vs what the file handle thought, and even when there was no
such discrepancy, the upper Latin1 characters were displayed as if the
locale is Latin1, which it likely wasn't, so the graphics were
misleading.

10 years agolib/locale.t: White-space only
Karl Williamson [Thu, 15 Aug 2013 18:38:19 +0000 (12:38 -0600)]
lib/locale.t: White-space only

Properly indent because of newly formed block

10 years agolib/locale.t: Fix :digit:, :xdigit: tests
Karl Williamson [Thu, 15 Aug 2013 18:31:55 +0000 (12:31 -0600)]
lib/locale.t: Fix :digit:, :xdigit: tests

In commit 32e8aa3fdb11b64c2a141bf56441761d978fd17b, I forgot that the
POSIX standard allows \d ([:digit:]) to match either the 10 ASCII
digits, or those plus another 10 locale-dependent ones.  This new commit
tests that the number matched is either 10 or 20, and if not 10, then
\d doesn't have to be a subset of [:xdigit:], so skip that test.

10 years agolib/locale.t: Use proper constant.
Karl Williamson [Wed, 14 Aug 2013 20:07:03 +0000 (14:07 -0600)]
lib/locale.t: Use proper constant.

Prior to this commit, locale.t faked out setlocale() somehow by making
LC_ALL a function that returns nothing.  This commit changes that to use
the proper constant POSIX::LC_ALL

10 years agoUpdate Scalar-List-Utils to CPAN version 1.31
Chris 'BinGOs' Williams [Thu, 15 Aug 2013 21:23:48 +0000 (22:23 +0100)]
Update Scalar-List-Utils to CPAN version 1.31

  [DELTA]

1.31 -- Wed Aug 14 20:38 UTC 2013

  * Bugfix pairmap to return list length in scalar context
  * Added "Odd number of elements" warnings to all pair* functions

10 years agoFix remaining missing d_xxx variables in configure.com.
Craig A. Berry [Thu, 15 Aug 2013 20:46:51 +0000 (15:46 -0500)]
Fix remaining missing d_xxx variables in configure.com.

10 years agoMake DMAKE import everything from the environment like NMAKE does
Steve Hay [Thu, 15 Aug 2013 13:02:10 +0000 (14:02 +0100)]
Make DMAKE import everything from the environment like NMAKE does

We already imported WIN64, CCHOME and a couple of others. It is useful to
have CCTYPE and GCCCROSS as well, and in fact we may as well simply import
everything since that is what NMAKE does anyway.

10 years agoRegen t/porting/customized.dat following f81a37f2d8
Steve Hay [Thu, 15 Aug 2013 12:04:55 +0000 (13:04 +0100)]
Regen t/porting/customized.dat following f81a37f2d8

10 years agoAll modified files in UPSTREAM=>cpan/undef distros are now listed as CUSTOMIZED
Steve Hay [Thu, 15 Aug 2013 08:20:56 +0000 (09:20 +0100)]
All modified files in UPSTREAM=>cpan/undef distros are now listed as CUSTOMIZED

All of these modifications already had, or now have, rt.cpan.org tickets
for them requesting that the changes be merged upstream, and the ticket
numbers are now listed in Maintainers.pl alongside each list of CUSTOMIZED
files.

The goal is ultimately to get new CPAN distros rolled for all of these so
that we have no CUSTOMIZED files left (other than a couple of special
cases - libnet, Module::Build and podlators), but there is nothing we can
do at our end to make this happen.

10 years agoNo need to look for Borland's debug symbols files
Steve Hay [Thu, 15 Aug 2013 07:36:36 +0000 (08:36 +0100)]
No need to look for Borland's debug symbols files

Commit 378eeda70c missed this.

10 years agoCommit 4d3a042da1 missed a corresponding update to win32/makefile.mk
Steve Hay [Thu, 15 Aug 2013 07:33:01 +0000 (08:33 +0100)]
Commit 4d3a042da1 missed a corresponding update to win32/makefile.mk

10 years agoperluniprops: Add missing character to what's matched
Karl Williamson [Thu, 15 Aug 2013 04:00:16 +0000 (22:00 -0600)]
perluniprops: Add missing character to what's matched

mktables omitted the equal sign from the generated pod for certain
properties that should match it.

10 years agoPATCH (partial) [perl #107816] Performance regression since 0abd0d78
Karl Williamson [Mon, 12 Aug 2013 17:23:34 +0000 (11:23 -0600)]
PATCH (partial) [perl #107816] Performance regression since 0abd0d78

0abd0d78 removed making tries under /di matching, the reason being that
it was broken for many of the upper Latin1 characters, the ones whose
matches aren't fully known until run-time.  For example under /di, LATIN
CAPITAL LETTER A WITH GRAVE caselessly matches LATIN SMALL LETTER A WITH
GRAVE if and only if the target string is encoded in UTF-8.  Under /ui
matching, these always match, and so tries are constructed for them.

But if a regnode doesn't contain any of the 61 problematic characters (nor
the sequence 'ss' (upper- and/or lowercase), what it matches is fully
known at compile time, and so should be trie-able as-is.

This commit merely keeps track of if any character in the regnode is one
of the 61 or the 'ss' sequence, and if not, changes its type to be /ui
and hence trie-able.

10 years agoregcomp.c: Move code into a #define
Karl Williamson [Sun, 11 Aug 2013 03:47:02 +0000 (21:47 -0600)]
regcomp.c: Move code into a #define

This logic will be used in an additional area of the program in a future
commit.

The #define also generalizes the code so it works on not just 'S' and
's', but any upper/lower case pair of ASCII alphabetics.

10 years agoregcomp.c: Skip calculating a pass2 value in pass1
Karl Williamson [Sun, 11 Aug 2013 01:02:49 +0000 (19:02 -0600)]
regcomp.c: Skip calculating a pass2 value in pass1

The result of this value at the end of the loop is discarded in pass1 of
the regex compilation, so don't bother to calculate it.