platform/upstream/perl.git
11 years agoRestore prev. behaviour of @a||... in lv sub
Father Chrysostomos [Thu, 24 Oct 2013 17:53:46 +0000 (10:53 -0700)]
Restore prev. behaviour of @a||... in lv sub

$ perl5.18.1 -lwe 'my @a;  sub i:lvalue {@a||@b} @a=1; (i())=3'
Name "main::b" used only once: possible typo at -e line 1.
Useless assignment to a temporary at -e line 1.

Bleadperl:

$ ./perl -Ilib -lwe 'my @a; sub i:lvalue {@a||@b} @a=1; (i())=3'
Name "main::b" used only once: possible typo at -e line 1.
Can't return array to lvalue scalar context at -e line 1.

I accidentally changed it in commit 2ec7f6f242 by propagating the
lvalue context.  This commit changes it back by only flagging the
rv2av op as being in an lvalue sub if it is not already flagged as
being in scalar context.

The old behaviour was inconsistent, and this commit does restore it
(see the tests), but resolving that discrepancy is for a future commit
(if I ever get to it).

In any case, ‘Can't return array to lvalue scalar context’ is wrong.

11 years agoFix bare blocks in lvalue subs
Father Chrysostomos [Thu, 24 Oct 2013 12:41:17 +0000 (05:41 -0700)]
Fix bare blocks in lvalue subs

If a bare block is the last thing in an lvalue sub, OP_LEAVELOOP needs
to propagate lvalue context and handle returned arrays properly, just
as OP_LEAVE has done since yesterday.

This is a follow-up to 2ec7f6f24289.  This came up in ticket #119797.

11 years agoMake the details array in universal.c static
Father Chrysostomos [Thu, 24 Oct 2013 12:32:17 +0000 (05:32 -0700)]
Make the details array in universal.c static

Otherwise we can have linking problems when a global ‘details’ symbol
is defined elsewhere.  (That happened to me with an XS module.)

11 years agoIncrease $B::Concise::VERSION to 0.991
Father Chrysostomos [Thu, 24 Oct 2013 03:23:21 +0000 (20:23 -0700)]
Increase $B::Concise::VERSION to 0.991

I don’t know, is it time for version 1 yet?

11 years ago[perl #119797] Fix if/else in lvalue sub
Father Chrysostomos [Thu, 24 Oct 2013 03:21:04 +0000 (20:21 -0700)]
[perl #119797] Fix if/else in lvalue sub

When if/else/unless is the last thing in an lvalue sub, the lvalue
context is not always propagated properly and scope exit tries to
copy things, including arrays, resulting in ‘Bizarre copy of ARRAY’.

This commit fixes the bizarre copy by flagging any leave op that is
part of an lvalue sub’s return sequence, using the OPpLEAVE flag added
for this purpose in the previous commit.  Then pp_leave uses that flag
to avoid copying return values, but protects them via the mortals
stack just like pp_leavesublv (actually pp_ctl.c:S_return_lvalues).

For ‘if’ and ‘unless’ without ‘else’, the lvalue context was not being
propagated, resulting in arrays’ getting flattened despite the lvalue
context.  op_lvalue_flags in op.c needed to handle AND and OR ops,
which ‘if’ and ‘unless’ compile to, to make this work.

11 years agoAdd OPpLVALUE flag
Father Chrysostomos [Thu, 24 Oct 2013 02:33:50 +0000 (19:33 -0700)]
Add OPpLVALUE flag

This flag will be used by the next commit.

11 years agoIncrease $bignum::VERSION to 0.37
Father Chrysostomos [Thu, 24 Oct 2013 00:59:54 +0000 (17:59 -0700)]
Increase $bignum::VERSION to 0.37

11 years agoAdd Marc Simpson to AUTHORS
Father Chrysostomos [Thu, 24 Oct 2013 00:56:05 +0000 (17:56 -0700)]
Add Marc Simpson to AUTHORS

11 years agoMinor bignum POD fix (capitalisation).
Marc Simpson [Wed, 23 Oct 2013 14:19:23 +0000 (15:19 +0100)]
Minor bignum POD fix (capitalisation).

11 years agobump Tie::StdHandle version
David Mitchell [Wed, 23 Oct 2013 18:21:35 +0000 (19:21 +0100)]
bump Tie::StdHandle version

after recent fixes

11 years agoTie::StdHandle::WRITE: handle offset
David Mitchell [Wed, 23 Oct 2013 18:14:36 +0000 (19:14 +0100)]
Tie::StdHandle::WRITE: handle offset

the WRITE method was ignoring its offset argument.

11 years agoTie::StdHandle appends extra copies of $\ to output
Anno Siegel [Wed, 23 Oct 2013 17:06:45 +0000 (18:06 +0100)]
Tie::StdHandle appends extra copies of $\ to output

[perl #120202]

The following code demonstrates the problem:

    use Tie::Handle;

    my $out = do { no warnings 'once'; \ local *HANDLE };
    tie *$out, 'Tie::StdHandle', '>&', \ *STDOUT or die;

    $\ = "haha\n";
    print $out "hihi\n";

which prints

    hihi
    haha
    haha

The string in $\ has been added twice, once explicitly by
Tie::Handle::PRINT and another time implicitly by the use of
(CORE::) print in Tie::StdHandle::WRITE.

The bug also affects the use of say() with tied handles where a spurious
newline is added by the same effect.

[ test added by davem ]

11 years agostdhandle.t: unlink the right file.
David Mitchell [Wed, 23 Oct 2013 15:40:55 +0000 (16:40 +0100)]
stdhandle.t: unlink the right file.

It writes to "afile", but initially deleted "afile.new" if it already
existed.

11 years agostdhandle.t: convert to use Test::More
David Mitchell [Wed, 23 Oct 2013 15:37:39 +0000 (16:37 +0100)]
stdhandle.t: convert to use Test::More

print "ok 13\n" is *so* 1990's.

11 years agoMake B/Deparse handle unicode regexes
David Mitchell [Wed, 23 Oct 2013 14:12:18 +0000 (15:12 +0100)]
Make B/Deparse handle unicode regexes

[perl #120182]
the precomp B::OP method was returning a non-UTF8 string even if the
regex was utf8

11 years agocorrect POD for SvIsCOW, it returns a U32
Daniel Dragan [Wed, 23 Oct 2013 10:36:45 +0000 (11:36 +0100)]
correct POD for SvIsCOW, it returns a U32

11 years agorefactor sv_add_backref
Daniel Dragan [Wed, 23 Oct 2013 10:28:15 +0000 (11:28 +0100)]
refactor sv_add_backref

-don't assign NULL twice to var mg, seen in machine code
-use sv_magicext to get MAGIC * instead of a 2nd call to mg_find, less
 passes through the linked list is faster
-move the mg_flags MGf_REFCOUNTED statement to before av, to reduce scope
 of liveness for var mg, it is never used again in the function
-av can not be null since it was just created, use
 SvREFCNT_inc_simple_void_NN
-on a tsv, that is being upgraded to be an AV backref holder, call
 av_extend only once with the correct slice count based on whether tsv was
 a SV backref holder or not previously
-since on a newly AV backref tsv, the number of backrefs will only be 1 or
 2, and if we made an AV type backref holder, doing the SV type
 optimization is now impossible, so don't check av for NULL when we know
 it wont be if we just made the AV, and don't do the bounds check and 2nd
 av_extend either since the AV is new and under our control
-if tsv is already an AV type backref, the AV can have 1 to infinity
 elements so do the bounds check and av_extend as before

It is intentional that on the new AV type holder branch, that after
"av_extend(av, *svp ? 2 : 1);" there are no further function calls in the
execution path until the return.

11 years agoAdd support for building with Visual C++ 2013
Steve Hay [Tue, 22 Oct 2013 17:05:17 +0000 (18:05 +0100)]
Add support for building with Visual C++ 2013

Two tests (t/io/fs.t and cpan/HTTP-Tiny/t/110_mirror.t) fail on my system,
currently in Daylight Saving Time, both due to times written/read by
utime()/stat() being off by one hour...

Not sure what the issue is yet, but I've reproduced it in this C program:

#include <stdio.h>
#include <sys/stat.h>
#include <sys/utime.h>
void main(void) {
  struct _utimbuf ut;
  struct _stat st;
  time_t t;
  t = 760060800;
  printf("Setting: %ld\n", t);
  ut.actime = t;
  ut.modtime = t;
  if (_utime("test.c", &ut) == -1) {
    perror("_utime failed\n");
    return;
  }
  if (_stat("test.c", &st) != 0) {
    perror("_stat failed\n");
    return;
  }
  printf("  atime: %ld\n", st.st_atime);
  printf("  mtime: %ld\n", st.st_mtime);
}

which outputs

Setting: 760060800
  atime: 760057200
  mtime: 760057200

with VC++ 2013, instead of

Setting: 760060800
  atime: 760060800
  mtime: 760060800

like Visual C++ 6.0 through 2012 all do.

11 years agospurious "Use of "-x" without parentheses" mesg
David Mitchell [Tue, 22 Oct 2013 15:48:16 +0000 (16:48 +0100)]
spurious "Use of "-x" without parentheses" mesg

RT #120288.

Something like '-X' at the start of a line (where X is one char, but not a
filetest operator) was giving a spurious

    Warning: Use of "-a" without parentheses is ambiguous

error. This was because the toker was provisionally marking the -a as the
last encountered unary operator (PL_last_uni), then not unmarking it when
it found that that it wasn't in fact a filetest operator.

11 years agoUnbreak -bareword under strict+integer
Father Chrysostomos [Tue, 22 Oct 2013 12:36:38 +0000 (05:36 -0700)]
Unbreak -bareword under strict+integer

Commit 077da62ff9 was not supposed to change behaviour, but only
remove logic rendered unnecessary two commits earlier in 1c2b3fd6f10.

But the special stricture exception for negation was in the same func-
tion (S_op_integerize) which applied it to OP_NEGATE, but now needed
to apply it to OP_I_NEGATE, too.

11 years agoperldelta for 27329181e3 and 2c8bbb43f3
Steve Hay [Tue, 22 Oct 2013 07:26:19 +0000 (08:26 +0100)]
perldelta for 27329181e3 and 2c8bbb43f3

11 years agoWinCE Perl EVC4 support
Daniel Dragan [Tue, 22 Oct 2013 01:59:32 +0000 (21:59 -0400)]
WinCE Perl EVC4 support

- CCTYPE has always been empty string in Makefile.ce, makedef.pl does not
  complain about this, but it is a bug, so fix it

- create a profile for a EVC4 arm build

- put -GS- and -GL flags into compiler version specific defs so VC6 era
  EVC4 will work

- don't delete ..\lib\Config.pm, it was made by win32/Makefile, for a
  Desktop Perl, deleting this breaks miniperl when it loads its pure perl
  modules for cross MakeMaker module building, and requires rebuilding the
  Desktop Perl so miniperl works again. CE Perl has its Config.pm in the
  xlib\$(MACHINE) dir

11 years agoPorting/Maintainers.pl - Remove redundant EXCLUDED files
Steve Hay [Mon, 21 Oct 2013 17:31:34 +0000 (18:31 +0100)]
Porting/Maintainers.pl - Remove redundant EXCLUDED files

Also add extra verbose output to Porting/core-cpan-diff to identify such
cases.

11 years ago.gitignore Win32's miniperl object files
Daniel Dragan [Sun, 20 Oct 2013 01:26:29 +0000 (21:26 -0400)]
.gitignore Win32's miniperl object files

Comments from the committer:
win32/mini/*.obj (and hence win32/mini/ since it contains nothing other than
*.obj) should be .gitignored by the top-level .gitignore file anyway, but
git clean -dfX doesn't remove them without this patch. (git clean -dfx does,
but some developers want to keep untracked files other than build products
explicitly listed by .gitignore files.)

11 years agoWinCE Makefile and make_ext.pl general and XS fixes
Daniel Dragan [Wed, 9 Oct 2013 07:33:47 +0000 (03:33 -0400)]
WinCE Makefile and make_ext.pl general and XS fixes

On a WinCE build. On the 2nd nmake run, using Makefile.ce, eventually calls
the Extensions target which calls make_ext.pl. What happens is nmake for CE
for each module is called on the Desktop per module makefile from the
earlier Desktop build. Since the Desktop Perl already was built
sucessfully, all rules/deps are met in the Desktop per module makefile, and
nothing happens during the module building phase for a CE build. Previously
I used external file management tools to delete the per module Makefiles
before running Makefile.ce.

*make_ext.pl
- implement deleting and rebuilding the per module makefile on a Cross
  build
- use constants for constant folding, there are opportunities for other
  variables to be converted to constants in the future
- fix a bug from commit baff067e71 where unlink() on a file with an open
  handle ($mfh) didn't delete the file from disk and a new per module
  makefile would be not be built by make_ext.pl later since the per module
  makefile was still on disk. This was observed on Win32. Also harden the
  unlink code with a new _unlink sub that is fatal if the file is still on
  disk after unlink supposedly deleted it.
- var $header and the quotemeta is because of an issue in Perl #119793

*Makefile.ce
- bring the debugging symbol generation flags and optimization flags
  to be closer to a Dekstop VC Perl build
- ICWD is obsolete as of commit f6b3c354c9 , remove it
- MINIMOD is obsolete as of commit 7b4d95f74b , remove it
- make a poisoned config.h so if there is a XS building mixup between
  a desktop and CE perl, the poisoned config.h for CE will stop the build
  gracefully
- $(MINIPERL) has never been defined in Makefile.ce from day 1 (10 years)
  replace with $(HPERL) everywhere, this was causing things to not run
  silently since $(MINIPERL) was empty string. Use HPERL instead of
  MINIPERL to allow flexibility to use the full perl binary if necessery
  one day
- better cleaning on root makefile clean target

*win32/win32.h
*win32/win32iop.h
- silence alot of redefinition warnings which gave pages of warnings on
  each WinCE compliand

*mg.c
- win32_get_errno is only on WIN32 build not WINCE

a "nmake -f Makefile.ce all" will now build the CE interp and all modules
in 1 shot with no user intervention

11 years agomake sv_2bool_flags() non-recursive on overload
Daniel Dragan [Mon, 21 Oct 2013 14:43:06 +0000 (15:43 +0100)]
make sv_2bool_flags() non-recursive on overload

When Perl_sv_2bool_flags() has an overloaded arg, it calls SvTRUE()
on the SV returned from the overload method. This indirectly calls
sv_2bool_flags() again.

Change it so that sv_2bool_flags() just iterates the new overload value
each time.

2 callsites were converted to gotos. A SvTRUE_common was expanded so goto
can be used.  This function's machine code size on VC2003 32 bits dropped
by 0x24 bytes after this patch.

11 years agoBenchmark.t: avoid ultra-lightweight code
David Mitchell [Mon, 21 Oct 2013 12:45:36 +0000 (13:45 +0100)]
Benchmark.t: avoid ultra-lightweight code

Some tests benchmarked the code '$i++', which is so lightweight that it
could trigger the die "Timing is consistently zero in estimation loop"
in Benchmark.pm.

So make the code slightly more heavyweight.

11 years agoBenchmark.pm: bail out earlier on zero delta
David Mitchell [Mon, 21 Oct 2013 12:07:19 +0000 (13:07 +0100)]
Benchmark.pm: bail out earlier on zero delta

countit(), which runs code for $n seconds, performs an initial
set of calibration loops to find out roughly how many iterations
are required to burn 0.1 CPU secs more in the code loop than in the empty
loop (which is then used to guesstimate how many iterations to do for the
main loop).

This calibration is designed to bail out if we consistently get <= 0
difference between the empty loop and the code loop; however, this
bailout can take too long: it looks for a run of 17 *consecutive* zero
deltas during 2048, 4096,8192,... iterations, which means it won't fail
until approx 131 million empty + code iterations are run, even if
the zeroes are consecutive. Of course if just by random noise one delta
is infinitesimally > 0, then the count is reset and the exponential count
continues.

The net effect of this is that the calibration loop can loop forever on
'small' code.

This commit makes it additionally bail out of the calibration loop if
running the iterations for a particular value of N takes more than 8
CPU seconds, while still giving zero delta.

11 years agoSkip 'BAD LOCALE' test on DragonflyBSD
Chris 'BinGOs' Williams [Sun, 20 Oct 2013 17:41:58 +0000 (18:41 +0100)]
Skip 'BAD LOCALE' test on DragonflyBSD

11 years agoPrepare Module::CoreList for Perl 5.19.6
Steve Hay [Sun, 20 Oct 2013 15:43:59 +0000 (16:43 +0100)]
Prepare Module::CoreList for Perl 5.19.6

11 years agoModule::CoreList 3.00 is now on CPAN
Steve Hay [Sun, 20 Oct 2013 15:39:13 +0000 (16:39 +0100)]
Module::CoreList 3.00 is now on CPAN

11 years agoBump version for Perl 5.19.6
Steve Hay [Sun, 20 Oct 2013 14:42:47 +0000 (15:42 +0100)]
Bump version for Perl 5.19.6

11 years agoCreate new perldelta for Perl 5.19.6
Steve Hay [Sun, 20 Oct 2013 14:40:05 +0000 (15:40 +0100)]
Create new perldelta for Perl 5.19.6

11 years agoAdd epigraph for Perl 5.19.5
Steve Hay [Sun, 20 Oct 2013 14:39:39 +0000 (15:39 +0100)]
Add epigraph for Perl 5.19.5

11 years agoUpdate perlhist for Perl 5.19.5
Steve Hay [Sun, 20 Oct 2013 10:08:27 +0000 (11:08 +0100)]
Update perlhist for Perl 5.19.5

11 years agoFinalize perldelta for Perl 5.19.5
Steve Hay [Sun, 20 Oct 2013 10:06:10 +0000 (11:06 +0100)]
Finalize perldelta for Perl 5.19.5

11 years agoUpdate Module::CoreList for Perl 5.19.5
Steve Hay [Sun, 20 Oct 2013 10:00:16 +0000 (11:00 +0100)]
Update Module::CoreList for Perl 5.19.5

11 years agoAdd descriptions for tests in dist/autouse/t/autouse.t lacking them.
James E Keenan [Sun, 13 Oct 2013 17:27:23 +0000 (19:27 +0200)]
Add descriptions for tests in dist/autouse/t/autouse.t lacking them.

11 years agoperldelta - Correct sort order of upgraded modules
Steve Hay [Sat, 19 Oct 2013 22:24:15 +0000 (23:24 +0100)]
perldelta - Correct sort order of upgraded modules

11 years agoPorting/Maintainers.pl - Move B and B::Concise to _PERLLIB
Steve Hay [Sat, 19 Oct 2013 20:11:32 +0000 (21:11 +0100)]
Porting/Maintainers.pl - Move B and B::Concise to _PERLLIB

Now that B::Concise has no special MAINTAINER of its own (following commit
b3dcf77564) there is no reason to have it separated from the rest of ext/B
and hence no reason for that not to move to _PERLLIB along with every other
ext/ module.

11 years agoNote IPC-Cmd upgrade from commit 6d1e091186
Steve Hay [Sat, 19 Oct 2013 19:09:06 +0000 (20:09 +0100)]
Note IPC-Cmd upgrade from commit 6d1e091186

11 years agoMove B-Deparse from dist/ to lib/ since it is non-dual-lived and pure-Perl
Steve Hay [Sat, 19 Oct 2013 19:08:08 +0000 (20:08 +0100)]
Move B-Deparse from dist/ to lib/ since it is non-dual-lived and pure-Perl

11 years agoPorting/Maintainers.pl - Remove the remaining MAINTAINER fields
Steve Hay [Sat, 19 Oct 2013 16:02:49 +0000 (17:02 +0100)]
Porting/Maintainers.pl - Remove the remaining MAINTAINER fields

This changes all six modules concerned (B::Concise, B::Deparse, VMS::DCLsym,
VMS::Stdio, warnings and Win32CORE) to P5P maintainership, but that is the
case in practice anyway (since they all live in ext/ or lib/, apart from
B::Deparse, which is surely in error in being in dist/ since it has no CPAN
dual-life distribution).

This was discussed on p5p and #onionsketch:
http://www.nntp.perl.org/group/perl.perl5.porters/2013/06/msg203768.html
http://www.nntp.perl.org/group/perl.perl5.porters/2013/10/msg208704.html
http://irclog.perlgeek.de/onionsketch/2013-10-17

11 years agoperldelta - Remove all but one XXX notices
Steve Hay [Sat, 19 Oct 2013 15:14:49 +0000 (16:14 +0100)]
perldelta - Remove all but one XXX notices

11 years agoperldelta - Corrections and updates
Steve Hay [Sat, 19 Oct 2013 15:08:16 +0000 (16:08 +0100)]
perldelta - Corrections and updates

11 years agoFix IPC-Cmd tests for Solaris (and potentially other SVR* variants)
Chris 'BinGOs' Williams [Sat, 19 Oct 2013 15:05:35 +0000 (16:05 +0100)]
Fix IPC-Cmd tests for Solaris (and potentially other SVR* variants)

11 years agoUpgrade Scalar-List-Utils from version 1.34 to 1.35
Steve Hay [Sat, 19 Oct 2013 14:11:39 +0000 (15:11 +0100)]
Upgrade Scalar-List-Utils from version 1.34 to 1.35

(None of the files listed as EXCLUDED are actually in the CPAN distribution
any more anyway, so remove them from Porting/Maintainers.pl.)

11 years agoperldelta updates for recent changes
Steve Hay [Fri, 18 Oct 2013 22:00:31 +0000 (23:00 +0100)]
perldelta updates for recent changes

11 years agoRemove some IGNORABLE files from ext/ and lib/
Steve Hay [Fri, 18 Oct 2013 21:59:54 +0000 (22:59 +0100)]
Remove some IGNORABLE files from ext/ and lib/

There is surely no point in having any of these modules' MANIFEST files in
the core distribution, but other IGNORABLE files should generally stay in
ext/ and lib/ in case they ever get dual-lived (and likewise for modules in
dist/, which are already dual-lived and some of which include even MANIFEST
files, presumably used to roll CPAN releases from).

However, XS-APItest's README file and DBM_Filter's Changes file offer
nothing useful, so remove them.

11 years agoAdd the rt.cpan.org ticket number for the Digest::MD5 customization
Steve Hay [Fri, 18 Oct 2013 17:40:26 +0000 (18:40 +0100)]
Add the rt.cpan.org ticket number for the Digest::MD5 customization

11 years agoRemove further IGNORABLE-like files under cpan/
Steve Hay [Fri, 18 Oct 2013 17:20:31 +0000 (18:20 +0100)]
Remove further IGNORABLE-like files under cpan/

These are all examples, demos and oddly named READMEs.

11 years agoRemove all IGNORABLE files under cpan/
Steve Hay [Fri, 18 Oct 2013 14:10:31 +0000 (15:10 +0100)]
Remove all IGNORABLE files under cpan/

This was discussed on p5p:
http://www.nntp.perl.org/group/perl.perl5.porters/2013/10/msg208635.html

One LICENSE file (Locale-Codes) has been removed (contrary to one suggestion
in that thread) since it was the only one, and only says "This module is
free software; you can redistribute it and/or modify it under the same
terms as Perl itself." anyway.

Two files that I had previously suggested retaining for the sake of tests
have also been removed. In one case, a test script has been modified (in
Digest-MD5; I will send a ticket upstream); in the other case (in
Test-Harness) I have removed the test which depended on the MANIFEST files,
as suggested in the above thread.

11 years agoadd comment to foreach toking code
David Mitchell [Fri, 18 Oct 2013 16:00:29 +0000 (17:00 +0100)]
add comment to foreach toking code

to make it clear what its doing.

11 years agoCorrectly parse class name in 'for my class $foo
Hio [Fri, 18 Oct 2013 15:48:47 +0000 (16:48 +0100)]
Correctly parse class name in 'for my class $foo

The code in toke.c on encountering 'for my' or for our',
skips past any optional package name, then checks that the next thing is a
'$', so that it can give a "Missing $ on loop variable" error if
necessary.

However, the code to skip the package name was using scan_ident() rather
than scan_word(); the latter assumes that the first char was the sigil,
and starts scanning from the second char onwards. So in something like

    for my a1b $x (...)

scan_ident() starts scanning at '1b' in 'a1b', thinks it scanning $1 or
similar, and stops at the first non-digit char, in this case the b.

The fix is to use parse_word() instead.

11 years agoCall select's 4th arg's magic
Eric Brine [Fri, 18 Oct 2013 15:13:48 +0000 (16:13 +0100)]
Call select's 4th arg's magic

[perl #120102] CORE::select ignoring timeout var's magic

Patch by Eric, with tested added by davem.

11 years agofix off-by one error in a2p
Philip Guenther [Fri, 18 Oct 2013 14:38:55 +0000 (15:38 +0100)]
fix off-by one error in a2p

The str_gets() function, when encountering a newline character, checked to
see if the previous char was a \ escape. For a blank line, the check would
read the char at the position one before the start of the buffer. There
was a test to avoid this, but it was off-by-one.

11 years agoPorting/Maintainers.pl - Remove most UPSTREAM flags and generate from FILES
Steve Hay [Fri, 18 Oct 2013 07:53:37 +0000 (08:53 +0100)]
Porting/Maintainers.pl - Remove most UPSTREAM flags and generate from FILES

With only one exception (version, and only until an outstanding rt.cpan.org
ticket is resolved), UPSTREAM is now 'cpan' for all FILES in cpan/, and
'blead' for everything else, so there is no point in explicitly stating
this: remove them all and auto-generate the same information instead.

The was discussed on p5p in the following thread:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-10/msg00321.html

11 years agoRemove s2p from Porting/Maintainers.pl
Steve Hay [Fri, 18 Oct 2013 07:11:33 +0000 (08:11 +0100)]
Remove s2p from Porting/Maintainers.pl

As per RJBS's instructions in the onionsketch:
http://irclog.perlgeek.de/onionsketch/2013-10-17

11 years agoRegen t/porting/customized.dat
Steve Hay [Fri, 18 Oct 2013 00:35:11 +0000 (01:35 +0100)]
Regen t/porting/customized.dat

11 years agoUpgrade Test-Simple from version 0.98 to 0.99
Steve Hay [Fri, 18 Oct 2013 00:34:47 +0000 (01:34 +0100)]
Upgrade Test-Simple from version 0.98 to 0.99

This incorporates the CUSTOMIZED files t/fail-more.t, lib/Test/Builder.pm,
lib/Test/Builder/Module.pm, lib/Test/More.pm and lib/Test/Simple.pm.

11 years agoisa should fall back to checking @UNIVERSAL::ISA in all cases
Jesse Luehrs [Thu, 17 Oct 2013 20:24:58 +0000 (16:24 -0400)]
isa should fall back to checking @UNIVERSAL::ISA in all cases

11 years agofix compiler warning
Jesse Luehrs [Thu, 17 Oct 2013 19:43:54 +0000 (15:43 -0400)]
fix compiler warning

11 years agoperldelta for 552908b174
Steve Hay [Thu, 17 Oct 2013 17:13:44 +0000 (18:13 +0100)]
perldelta for 552908b174

11 years agoSkip two test modules from the cmpVERSION.pl check
Steve Hay [Thu, 17 Oct 2013 17:05:40 +0000 (18:05 +0100)]
Skip two test modules from the cmpVERSION.pl check

11 years agoPorting/Maintainers.pl - Move most of ext/ and lib/ into _PERLLIB
Steve Hay [Thu, 17 Oct 2013 16:50:06 +0000 (17:50 +0100)]
Porting/Maintainers.pl - Move most of ext/ and lib/ into _PERLLIB

Most ext/ and lib/ entries in %Modules only list a single folder or a couple
of files sharing the same basename and specify no more information other
than UPSTREAM => 'blead'. This information can be more succinctly conveyed
by a line in _PERLLIB.

Only the following ext/ and lib/ entries in %Modules now remain:

B (has EXCLUDED files)
B::Concise (has a MAINTAINER)
VMS::DCLsym (has a MAINTAINER)
VMS::Stdio (has a MAINTAINER)
Win32CORE (has a MAINTAINER)
warnings (has a MAINTAINER and files from various places)

The middle four can probably move too if it is deemed that the MAINTAINER
information is not useful.

11 years agoPerlIO::scalar: stringify refs
David Mitchell [Thu, 17 Oct 2013 14:35:14 +0000 (15:35 +0100)]
PerlIO::scalar: stringify refs

If $s in
    open my $fh, "<",  \$s
or similar is a ref, then
stringify that ref: i.e. convert it from a ref into the string
"SCALAR(0x....)" or whatever.

This fixes

    RT #119529 Filehandle opened from ref to ref hangs on reading

which in this case was looping forever, since it kept thinking that
the var was a string ("SCALAR.."), but whose length was 0.

I haven't gone for a complete "always force var into a string" approach,
since PerlIO::scalar has quite a tolerance for "bad" vars; e.g.
it won't warn if $var is undef or a read-only constant number etc;
and it already normalises under some circumstances and not others.
So I've just increased the cases somewhat where it normalises.

Also, I didn't look to closely at the code that was looping (or to put it
another way, I looked at it but didn't understand it), so it could
conceivably still behave badly on some other strange type of variable that
manages to avoid getting normalised.

11 years agoPorting/Maintainers.pl - Remove unnecessary Maintainers following 0cd7b4f8d7
Steve Hay [Thu, 17 Oct 2013 13:27:08 +0000 (14:27 +0100)]
Porting/Maintainers.pl - Remove unnecessary Maintainers following 0cd7b4f8d7

11 years agoPorting/Maintainers.pl - Remove remaining UPSTREAM => undef entries
Steve Hay [Thu, 17 Oct 2013 13:22:13 +0000 (14:22 +0100)]
Porting/Maintainers.pl - Remove remaining UPSTREAM => undef entries

There is some agreement that the things left with UPSTREAM => undef (and
the only two other pod/ files that were tracked -- perldtrace and
perlreftut) are not worth tracking in this file anyway, so just remove
them.

I've left s2p and made UPSTREAM => 'blead', as per comments in the first
thread cited below, for now. Maybe it should go too? Other than
regen/warnings.pl there are no other files covered thaty aren't under
cpan/, dist/, ext/ and lib/ ...

http://www.nntp.perl.org/group/perl.perl5.porters/2013/06/msg203768.html
http://www.nntp.perl.org/group/perl.perl5.porters/2013/10/msg208670.html

11 years agoperldelta updates for recent changes
Steve Hay [Thu, 17 Oct 2013 12:51:37 +0000 (13:51 +0100)]
perldelta updates for recent changes

11 years agoUpgrade JSON::PP from version 2.27202_01 to 2.27203
Steve Hay [Thu, 17 Oct 2013 12:51:21 +0000 (13:51 +0100)]
Upgrade JSON::PP from version 2.27202_01 to 2.27203

Commit be08498a8d updated Maintainers.pl and perldelta.pod, but missed the
JSON/PP.pm file itself.

11 years agoFix Win32 build with MinGW/gcc-4.8+ which define some errno.h values >= 100
Steve Hay [Thu, 17 Oct 2013 12:29:28 +0000 (13:29 +0100)]
Fix Win32 build with MinGW/gcc-4.8+ which define some errno.h values >= 100

Commit ea95436966 made changes to how errno.h constants are handled for
VC++ 2010 and above, which have added new values in the range 100-140.

Some versions of gcc-4.8.0 and above are now catching up and provide some
of these new values too (e.g. binaries from http://mingw-w64.sourceforge.net/
but not currently those from http://www.mingw.org/), but they don't provide
all of them. EADDRINUSE is provided, so convert_errno_to_wsa_error() gets
included, but the compilation fails because the following #defines which
VC++ 2010 and above provide are missing:

EBADMSG
EIDRM
ENODATA
ENOLINK
ENOMSG
ENOSR
ENOSTR
ENOTRECOVERABLE
EOTHER
ETIME
ETXTBSY

Simply ignore (#ifdef away) these constants for those compilers that don't
provide them.

11 years agoUpdated JSON-PP to CPAN version 2.27203
Chris 'BinGOs' Williams [Thu, 17 Oct 2013 11:14:27 +0000 (12:14 +0100)]
Updated JSON-PP to CPAN version 2.27203

  [DELTA]

  2.27203  Thu Oct 17 19:38:55 2013
    - fixed return/or in _incr_parse
      reported and patched by MAUKE, sprout and rjbs
      https://rt.cpan.org/Public/Bug/Display.html?id=86948

11 years ago[perl #119505] Segfault from bad backreference
David Mitchell [Wed, 16 Oct 2013 12:59:12 +0000 (13:59 +0100)]
[perl #119505] Segfault from bad backreference

The code that parses regex backrefs (or ambiguous backref/octal) such as
\123, did a simple atoi(), which could wrap round to negative values on
long digit strings and cause seg faults.

Include a check on the length of the digit string, and if greater than 9
digits, assume it can never be a valid backref (obviating the need for the
atoi() call).

I've also simplified the code a bit, putting most of the \g handling code
into a single block, rather than doing multiple "if (isg) {...}".

11 years agoperldelta for e9d373c4
Tony Cook [Thu, 17 Oct 2013 05:31:11 +0000 (16:31 +1100)]
perldelta for e9d373c4

11 years ago[perl #119893] avoid waiting on pid 0
Tony Cook [Thu, 17 Oct 2013 04:29:58 +0000 (15:29 +1100)]
[perl #119893] avoid waiting on pid 0

When a filehandle is cloned into a standard handle, do_openn() copies
the pid from the original handle in PL_fdpid to the standard handle
and zeroes the entry for the original handle, so when the original
handle was closed Perl_my_pclose() would call wait4pid() with a pid of 0.

With v5.19.3-614-gd4c0274 I modified wait4pid(), perl's waitpid/wait4()
wrapper, to allow a pid of zero through to the actual system call when
available.

These combined so that following v5.19.3-614-gd4c0274 in some
circumstances closing the original handle would block by calling
waitpid(0, ...) or wait4(0, ...), which waits for any child process in
the same process group to terminate.

This commit changes Perl_my_pclose() to wait for the child only when
the stored pid is positive.

11 years agoutf8.c: White-space only
Karl Williamson [Thu, 17 Oct 2013 03:53:23 +0000 (21:53 -0600)]
utf8.c: White-space only

This outdents code to the proper level given that the surrounding block
has been removed.

11 years agoChange mktables output for some tables to use hex
Karl Williamson [Thu, 17 Oct 2013 03:44:23 +0000 (21:44 -0600)]
Change mktables output for some tables to use hex

This makes all the tables in the lib/unicore/To directory that map from
code point to code point be formatted so that the mapped-to code point
is expressed as hexadecimal.

This allows for uniform treatment of these tables in utf8.c, and removes
the final use of strtol() in the (non-CPAN) core.  strtol() should be
avoided because it is subject to locale rules, and some older libc
implementations have been buggy.  It was used because Perl doesn't have
an efficient way of parsing a decimal number and advancing the parse
pointer to beyond it; we do have such a method for hex numbers.

The input to mktables published by Unicode is also in hex, so this now
conforms to that convention.

This also will facilitate the new work currently being done to read in
the tables that find the closing bracket given an opening one.

11 years agolib/Unicode/UCD.t: Do tests in deterministic order
Karl Williamson [Wed, 16 Oct 2013 16:27:18 +0000 (10:27 -0600)]
lib/Unicode/UCD.t: Do tests in deterministic order

I needed this in order to compare successive runs of this test

11 years agonumeric.c: nit in comment
Karl Williamson [Tue, 8 Oct 2013 03:00:26 +0000 (21:00 -0600)]
numeric.c: nit in comment

11 years agoPorting/Maintainers.pl - Change UPSTREAM => undef to 'blead' for lib/ modules
Steve Hay [Wed, 16 Oct 2013 21:48:48 +0000 (22:48 +0100)]
Porting/Maintainers.pl - Change UPSTREAM => undef to 'blead' for lib/ modules

11 years agoPorting/Maintainers.pl - Change UPSTREAM => undef to 'blead' for ext/ modules
Steve Hay [Wed, 16 Oct 2013 21:27:32 +0000 (22:27 +0100)]
Porting/Maintainers.pl - Change UPSTREAM => undef to 'blead' for ext/ modules

Split Win32CORE out from win32 to do this.

11 years agoPorting/Maintainers.pl - Change UPSTREAM => undef to 'blead' for dist/ modules
Steve Hay [Wed, 16 Oct 2013 21:20:19 +0000 (22:20 +0100)]
Porting/Maintainers.pl - Change UPSTREAM => undef to 'blead' for dist/ modules

There is only one module affected (XSLoader), already having a note to
revert it to 'blead' once 0.17 is released. That version is not yet
released, but blead is identical to 0.16, and I believe that note was not
quite correct -- it was a new *perl* release that was needed, not a new
CPAN release of XSLoader. The comment for the commit (e52529ca24) which
added the note is correct: "The problem (cmp_version.t failing) should
disappear after the next perl release." That was back when 5.17.3 had just
been released, and the problem has indeed gone away now.

11 years agoPorting/Maintainers.pl - Change UPSTREAM => undef to 'cpan' for cpan/ modules
Steve Hay [Wed, 16 Oct 2013 21:14:01 +0000 (22:14 +0100)]
Porting/Maintainers.pl - Change UPSTREAM => undef to 'cpan' for cpan/ modules

There is one exception to this: version should currently be regarded as
UPSTREAM => 'blead' (at its maintainer's request), but only until [cpan
#88458] is resolved, so it is not worth moving from cpan/ to dist/ in the
meantime since it will only move back again in due course.

11 years agoUpdate release schedule for 5.19.5
Steve Hay [Wed, 16 Oct 2013 16:56:54 +0000 (17:56 +0100)]
Update release schedule for 5.19.5

11 years agoperldelta - Fix up attributes addition, and add new warnings
Steve Hay [Wed, 16 Oct 2013 16:55:51 +0000 (17:55 +0100)]
perldelta - Fix up attributes addition, and add new warnings

11 years agoUpgrade Scalar-List-Utils from version 1.33 to 1.34
Steve Hay [Wed, 16 Oct 2013 16:47:23 +0000 (17:47 +0100)]
Upgrade Scalar-List-Utils from version 1.33 to 1.34

11 years agoAdding a prototype attribute.
Peter Martini [Sun, 13 Oct 2013 20:00:00 +0000 (16:00 -0400)]
Adding a prototype attribute.

This attribute adds an additional way of declaring a prototype for a
sub, making sub foo($$) and sub foo : prototype($$) equivalent.  The
intent is to keep the functionality of prototypes while allowing other
modules to use the syntactic space it currently occupies for other
purposes.

The attribute is supported in attributes.xs to allow
attributes::->import to work, but if its defined inline via something
like sub foo : prototype($$) {}, it will not call out to the
attributes module.

For: RT #119251

11 years agoUpdate Extutils-MakeMaker to CPAN version 6.80
Chris 'BinGOs' Williams [Tue, 15 Oct 2013 15:19:53 +0000 (16:19 +0100)]
Update Extutils-MakeMaker to CPAN version 6.80

  [DELTA]

6.80 Tue Oct 15 16:04:50 BST 2013

    No changes from 6.79_04

6.79_04 Fri Oct 11 18:57:51 BST 2013
    Bug fixes:
    * Add CP_NONEMPTY to the list of tools in Makefile

6.79_03 Fri Oct 11 13:56:53 BST 2013
    Bug fixes:
    * don't copy .bs portably :)

6.79_02 Fri Oct 11 12:58:01 BST 2013
    Bug fixes:
    * RT#28992 don't copy .bs files if they are empty

11 years agoperldelta - Fill in selected bug fixes section
Steve Hay [Mon, 14 Oct 2013 13:00:52 +0000 (14:00 +0100)]
perldelta - Fill in selected bug fixes section

11 years agoperldelta - Fix typo
Steve Hay [Mon, 14 Oct 2013 12:52:42 +0000 (13:52 +0100)]
perldelta - Fix typo

11 years agoperldelta - Wrap lines to 79 characters
Steve Hay [Mon, 14 Oct 2013 12:32:58 +0000 (13:32 +0100)]
perldelta - Wrap lines to 79 characters

11 years agoperldelta - Fill in diagnostics section
Steve Hay [Mon, 14 Oct 2013 12:24:55 +0000 (13:24 +0100)]
perldelta - Fill in diagnostics section

11 years agoperldelta - Fill in documentation section
Steve Hay [Mon, 14 Oct 2013 12:21:11 +0000 (13:21 +0100)]
perldelta - Fill in documentation section

11 years agoperldelta - Fill in testing section
Steve Hay [Mon, 14 Oct 2013 12:05:30 +0000 (13:05 +0100)]
perldelta - Fill in testing section

11 years agoperldelta - Fill in updated modules section
Steve Hay [Mon, 14 Oct 2013 08:21:06 +0000 (09:21 +0100)]
perldelta - Fill in updated modules section

11 years agoFix autouse test, failing since commit 52102bb4f9
Steve Hay [Sun, 13 Oct 2013 16:47:05 +0000 (17:47 +0100)]
Fix autouse test, failing since commit 52102bb4f9

Only running test_porting and the tests of the module upgraded clearly
isn't always enough :-/

11 years agoUpgrade Scalar-List-Utils from version 1.32 to 1.33
Steve Hay [Sun, 13 Oct 2013 15:26:44 +0000 (16:26 +0100)]
Upgrade Scalar-List-Utils from version 1.32 to 1.33

11 years agopodcheck.t: Make blead pass again
Karl Williamson [Sat, 12 Oct 2013 04:54:36 +0000 (22:54 -0600)]
podcheck.t: Make blead pass again

Blead is failing sometimes on podcheck.t.  I don't fully understand the
reasons, but it is some sort of race condition.

The base problem that is causing this race to show up is a bug in the
new version 3.29 of Test::Harness.  It includes 2 pods that have the
same name.  This creates problems for reading the documentation in an
html browser.  The software that creates the hyperlinks uses the pod
name to figure out what the linked-to document is.  It cannot figure out
which one to link to when multiple pods have the same name, as here, so
podcheck raises an error.  Test::Harness should change so that the pods
have different names.  It's like having two different Unix commands
named 'foobar'.  Which one should `man foobar` display, if it could only
display one?

I haven't figured out how to fix the race yet, so this commit just
ignores one of the conflicting files for now.  The race has something to
do with the fact that these are both cpan files which are not normally
examined for pod problems, and so the error for one of them is getting
suppressed; and which one of the two gets suppressed varies.

This bug in Test::Harness also manifested itself as showing up a broken
link.

11 years agoRun cd t;./perl -I../lib porting/podcheck.t --regen
James E Keenan [Fri, 11 Oct 2013 23:28:18 +0000 (01:28 +0200)]
Run cd t;./perl -I../lib porting/podcheck.t --regen

11 years agoRemove non-existent English variable names from perlvar
Dagfinn Ilmari Mannsåker [Thu, 10 Oct 2013 22:56:07 +0000 (23:56 +0100)]
Remove non-existent English variable names from perlvar

$OLD_PERL_VERSION was never exported (it was added commented-out in Perl
5.6.0, when $PERL_VERSION became $^V).  $OFMT and $ARRAY_BASE were
commented out in Perl 5.000.