platform/upstream/perl.git
13 years agoModern cygwin often has empty $ENV{CYGWIN}
Reini Urban [Sat, 26 Feb 2011 12:55:41 +0000 (13:55 +0100)]
Modern cygwin often has empty $ENV{CYGWIN}

Fixes Use of uninitialized value $ENV{"CYGWIN"} in concatenation (.) or string
at /usr/lib/perl5/5.13.10/i686-cygwin/Config_heavy.pl line 54

13 years agoStop aelemfast from crashing on GVs with null AVs
Father Chrysostomos [Sat, 26 Feb 2011 06:31:02 +0000 (22:31 -0800)]
Stop aelemfast from crashing on GVs with null AVs

As reported at nntp://nntp.perl.org/1298599236.4753.72.camel@p100 (and
respaced for readability):

#!perl5.12.0
$r=q/
      print __FILE__;
      local *dbline = $main::{"_<".__FILE__};
      print $dbline[0]
/;
eval $r;'
__END__
(eval 1)
Bus error

This only seems to happen in non-threaded perls.

It can be reduced to this:

*d = *a;  print $d[0];

The $d[0] is optimised into an aelemfast op (instead of the usual aelem
with an rv2av kid). pp_aelemfast is at fault, as evidenced by the fact
that this does not crash (the ${\...} prevents the optimisation):

*d = *a;  print $d[${\0}];

pp_aelemfast uses GvAV instead of GvAVn. Usually $d[0] will autovivify
@d, but the glob assignment leaves $d[0] pointing to a glob (*d) with
no array. Then pp_alemfast passes a null pointer around.

13 years agoDon't include commit IDs in generated delta entries
Florian Ragwitz [Sat, 26 Feb 2011 08:05:12 +0000 (09:05 +0100)]
Don't include commit IDs in generated delta entries

We don't usually reference git commits anymore in perldelta, so let's stop
git-deltatool from generating entries like that.

13 years agoHack to allow git-deltatool to spawn 'emacsclient -t'
Florian Ragwitz [Sat, 26 Feb 2011 07:58:16 +0000 (08:58 +0100)]
Hack to allow git-deltatool to spawn 'emacsclient -t'

My $EDITOR is 'emacsclient -t'. system('emacsclient -t', 'more', 'args') won't
do the right thing.

13 years agoAllow reviewing of diffs in the deltatool
Florian Ragwitz [Sat, 26 Feb 2011 07:50:36 +0000 (08:50 +0100)]
Allow reviewing of diffs in the deltatool

The pager code is mostly stolen from Prophet::CLI.

13 years agoReword perltie/READLINE and correct example
Father Chrysostomos [Sat, 26 Feb 2011 05:52:22 +0000 (21:52 -0800)]
Reword perltie/READLINE and correct example

13 years ago[perl #84942] perltie.pod READLINE list context
Kevin Ryde [Sat, 26 Feb 2011 05:50:50 +0000 (21:50 -0800)]
[perl #84942] perltie.pod READLINE list context

In perltie.pod the handle READLINE says

    The method should return undef when there is no more data.

which made me think that's what it should always do, and didn't need to
pay attention to wantarray().

If I'm not mistaken in list context READLINE should return empty list
for no more data.  It'd be good if the docs noted that, and perhaps
cross referenced to perlfunc for the gory details of what readline
should do.

Maybe something like the following, unless someone can think of a better
contrivance for the sample.

13 years agoAdd Kevin Ryde to AUTHORS
Father Chrysostomos [Sat, 26 Feb 2011 05:49:17 +0000 (21:49 -0800)]
Add Kevin Ryde to AUTHORS

13 years ago[perl #84746] Accessing $2 causes the interpreter to crash
Father Chrysostomos [Sat, 26 Feb 2011 04:45:08 +0000 (20:45 -0800)]
[perl #84746] Accessing $2 causes the interpreter to crash

Actually, it doesn’t. The original test case was:

#!/usr/bin/perl

my $rx = qr'\$ (?| {(.+?)} | (.+?); | (.+?)(\s) )'x;
my $test = '/home/$USERNAME ';
die unless $test =~ $rx;
print "1: $1\n";
print "2: $2\n" if defined $2;

This crashes even if I put an ‘exit’ right after the pattern match.

What’s happening is that regcomp miscounts the number of capturing
parenthesis pairs (cf. [perl #59734]), so the execution of the regular
expression causes a buffer overflow which overwrites the op_sibling
field of the regcreset op, causing a crash when the op is freed. (The
exact failure may differ between builds, platforms, etc., of course.)

S_reg in regcomp.c keeps a count of the parenthesised groups in a
(?|...) construct, which it updates after each branch, if that branch
has more captures than any previous branch. But it was not updating
the count after the last branch.

So this bug would occur if the last branch had more capturing paren-
theses than any previous branch.

Commit ee91d26, which fixed bug #59734, only solved the problem when
there was just one branch (by updating the count before the loop that
deals with subsequent branches was entered).

This commit changes the code at the end of S_reg to take into account
that RExC_npar (the current paren count) might have been increased by
the last branch.

Since the loop to deal with subsequent branches resets the count
*before* each branch, the code that commit ee91d26 added is no longer
necessary, so this commit removes it.

13 years agobleadperl breaks RCLAMP/Text-Glob
Karl Williamson [Sat, 26 Feb 2011 03:31:30 +0000 (20:31 -0700)]
bleadperl breaks RCLAMP/Text-Glob

This was from commit f424400810b6af341e96230836690da51c37b812
which came from needing a bit in an already-full flags field,
and my faulty analysis that two bits could be shared.  I found another
mechanism to free up another bit, and now can separate these shared
bits again.

13 years agoFree up bit in ANYOF flags
Karl Williamson [Sat, 26 Feb 2011 03:10:47 +0000 (20:10 -0700)]
Free up bit in ANYOF flags

This is the foundation for fixing the regression RT #82610.  My analysis
was wrong that two bits could be shared, at least not without further
work.  This changes to use a different mechanism to pass needed
information to regexec.c so that another bit can be freed up and, in a
later commit, the two bits can become unshared again.

The bit that is freed up is ANYOF_UTF8, which basically said there is
something that is matched outside the ANYOF bitmap, and requires the
target string to be in utf8.  This changes things so the existence of
something besides the bitmap indicates this, and so no flag is needed.
The flag bit ANYOF_NONBITMAP_NON_UTF8 remains to indicate that there is
something that should be matched outside the bitmap even if the target
string isn't in utf8.

13 years agoregcomp.c: ANYOF node handle range to UV_MAX
Karl Williamson [Sat, 26 Feb 2011 03:02:59 +0000 (20:02 -0700)]
regcomp.c: ANYOF node handle range to UV_MAX

13 years agoregcomp.c: Move inversion list conversion code
Karl Williamson [Fri, 25 Feb 2011 18:52:35 +0000 (11:52 -0700)]
regcomp.c: Move inversion list conversion code

This just moves the code to later in the subroutine, in preparation for future commits

13 years agoregcomp.c: Use more precise ANYOF flag
Karl Williamson [Fri, 25 Feb 2011 18:42:02 +0000 (11:42 -0700)]
regcomp.c: Use more precise ANYOF flag

As the comment above the changed line says, \p doesn't have to match only
utf8, but it sets the flag that is two bits, meaning UTF8.  Set just the
one flag.

13 years agoregcomp.c: Add comment
Karl Williamson [Fri, 25 Feb 2011 17:46:34 +0000 (10:46 -0700)]
regcomp.c: Add comment

13 years agoUpgrade Tie::RefHash from version 1.38 to 1.39
Florian Ragwitz [Fri, 25 Feb 2011 17:30:18 +0000 (18:30 +0100)]
Upgrade Tie::RefHash from version 1.38 to 1.39

13 years agoUpgrade Devel::DProf to version 20110225.01
Florian Ragwitz [Fri, 25 Feb 2011 17:07:18 +0000 (18:07 +0100)]
Upgrade Devel::DProf to version 20110225.01

We needed another upload to fix a PAUSE indexing problem.

13 years agoDProf is now maintained on CPAN, not by p5p anymore
Florian Ragwitz [Fri, 25 Feb 2011 16:28:36 +0000 (17:28 +0100)]
DProf is now maintained on CPAN, not by p5p anymore

13 years agoRemove DProf's Changes file
Florian Ragwitz [Fri, 25 Feb 2011 16:27:54 +0000 (17:27 +0100)]
Remove DProf's Changes file

From now on all changes will go through CPAN first and the Changes file is being
maintained there. No need to keep it around in the core.

13 years agoRemove DProf's Makefile.PL
Florian Ragwitz [Fri, 25 Feb 2011 15:47:01 +0000 (16:47 +0100)]
Remove DProf's Makefile.PL

make_ext.pl can generate it for us.

13 years agoMaintainers.pl and perldelta updates for Math::BigInt update
Chris 'BinGOs' Williams [Fri, 25 Feb 2011 16:43:41 +0000 (16:43 +0000)]
Maintainers.pl and perldelta updates for Math::BigInt update

13 years agoUpdate Math::BigInt to CPAN version 1.993
Peter John Acklam [Thu, 24 Feb 2011 12:52:17 +0000 (04:52 -0800)]
Update Math::BigInt to CPAN version 1.993

# New Ticket Created by  (Peter J. Acklam)
# Please include the string:  [perl #84844]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=84844 >

Change default backend library from Math::BigInt::FastCalc to
Math::BigInt::Calc, which is included in the Math-BigInt distro.
This avoids recursive distribution dependency (RT #65976).

13 years agoEliminate $::PatchId from t/re/*.t.
Nicholas Clark [Fri, 25 Feb 2011 16:35:06 +0000 (16:35 +0000)]
Eliminate $::PatchId from t/re/*.t.

It was only being used in four places across two files, to add perforce
revision numbers to test descriptions. Replace this with the git commit hash
in the tests' descriptions.

13 years agoRemove now-unnecessary C<use File::Spec> from t/op/inccode.t
Nicholas Clark [Fri, 25 Feb 2011 10:49:50 +0000 (10:49 +0000)]
Remove now-unnecessary C<use File::Spec> from t/op/inccode.t

This has been vestigial since 1c25d394345c1b97 converted it to using test.pl's
tempfile().

13 years agoMigrate t/op/{fork,runlevel,tie}.t to use run_multiple_progs().
Nicholas Clark [Thu, 24 Feb 2011 16:46:49 +0000 (16:46 +0000)]
Migrate t/op/{fork,runlevel,tie}.t to use run_multiple_progs().

The addition of "OPTION random" to all fork.t's tests might be overkill, given
that run_multiple_progs() can specify "random" per test, but as the previous
code in fork.t always sorted before comparison, we are no *worse* off than we
were.

13 years agoMigrate the test running logic from t/lib/common.pl to t/test/pl
Nicholas Clark [Thu, 24 Feb 2011 16:04:45 +0000 (16:04 +0000)]
Migrate the test running logic from t/lib/common.pl to t/test/pl

This will make it available to several tests in t/op, which currently duplicate
it.

13 years agoConvert t/lib/common.pl to lexical filehandles and 3-arg open.
Nicholas Clark [Thu, 24 Feb 2011 14:57:14 +0000 (14:57 +0000)]
Convert t/lib/common.pl to lexical filehandles and 3-arg open.

Remove the unused lexical variable %tempfiles. It would be good to lint
everything - I suspect that there are quite a few unused lexicals stowing away
in the core tests.

13 years agoIn t/lib/common.pl, load File::Path on demand.
Nicholas Clark [Thu, 24 Feb 2011 14:43:52 +0000 (14:43 +0000)]
In t/lib/common.pl, load File::Path on demand.

This will facilitate a subsequent refactoring.

13 years agofold_grind.t: Skip some /aa tests.
Karl Williamson [Fri, 25 Feb 2011 02:11:47 +0000 (19:11 -0700)]
fold_grind.t: Skip some /aa tests.

This skips some tests that aren't likely to provide new information,
where both elements being compared are ASCII.

13 years agofold_grind.t: Skip some ASCII-only tests in /l
Karl Williamson [Fri, 25 Feb 2011 02:01:28 +0000 (19:01 -0700)]
fold_grind.t: Skip some ASCII-only tests in /l

This is to cut down somewhat on the number of tests. These are not
likely to add new information to other tests.

13 years agofold_grind.t: Add comment
Karl Williamson [Fri, 25 Feb 2011 01:57:21 +0000 (18:57 -0700)]
fold_grind.t: Add comment

13 years agofold_grind.t: White space only
Karl Williamson [Fri, 25 Feb 2011 01:40:27 +0000 (18:40 -0700)]
fold_grind.t: White space only

A previous commit introduced a block, but didn't increase the indent
within it to avoid confusion.

13 years agofold_grind.t: Run every charset on non-folds
Karl Williamson [Fri, 25 Feb 2011 01:36:06 +0000 (18:36 -0700)]
fold_grind.t: Run every charset on non-folds

13 years agofold_grind: fix comment
Karl Williamson [Thu, 24 Feb 2011 17:46:23 +0000 (10:46 -0700)]
fold_grind: fix comment

13 years agoregcomp.h: Remove obsolete define
Karl Williamson [Thu, 24 Feb 2011 01:47:56 +0000 (18:47 -0700)]
regcomp.h: Remove obsolete define

13 years agointrpvar.h: Add comment about PERLVARI
Karl Williamson [Thu, 24 Feb 2011 01:46:14 +0000 (18:46 -0700)]
intrpvar.h: Add comment about PERLVARI

13 years agoDetect unsafe signals more reliably on BSD/Solaris
Leon Timmermans [Thu, 24 Feb 2011 21:34:40 +0000 (21:34 +0000)]
Detect unsafe signals more reliably on BSD/Solaris

Previous versions of the Posix spec allowed the struct siginfo_t*
parameter passed to the signal handler to be NULL in certain cases. More
recent Posix specifications (SUSv3) have rescinded this: Now this
parameter is required always to be non-NULL. However we use this
parameter to differentiate between safe and unsafe signals, as in the
former it will always be NULL and in the latter case it should have been
non-NULL.

This patch fixes this issue by also relying on the ucontext_t*
parameter.  This should reliably be non-NULL when using unsafe signals
handlers.

Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
13 years agoIn t/lib/common.pl, inline print_err_line into its only caller.
Nicholas Clark [Thu, 24 Feb 2011 13:45:33 +0000 (13:45 +0000)]
In t/lib/common.pl, inline print_err_line into its only caller.

13 years agoIn t/lib/common.pl, inline RandomMatch() into its only caller.
Nicholas Clark [Thu, 24 Feb 2011 13:21:48 +0000 (13:21 +0000)]
In t/lib/common.pl, inline RandomMatch() into its only caller.

13 years agospeedup t/porting/authors.t
David Mitchell [Thu, 24 Feb 2011 11:38:00 +0000 (11:38 +0000)]
speedup t/porting/authors.t

This reduces it from 7.5s to 2.5s on my debugging build.
This works by doing a minimal parse on the output of git log
that just grabs the Author: field.

13 years agospeed up t/porting/filenames.t
David Mitchell [Thu, 24 Feb 2011 10:51:51 +0000 (10:51 +0000)]
speed up t/porting/filenames.t

This reduces it from about 5 seconds to <1 second on my debugging
build.

Chiefly by avoiding expensive test functions for every component of
every MANIFEST filename.

13 years agoIn test.pl, change _fresh_perl* to avoid using closures.
Nicholas Clark [Thu, 24 Feb 2011 11:10:25 +0000 (11:10 +0000)]
In test.pl, change _fresh_perl* to avoid using closures.

Whilst closures are definitely a more elegant general solution, the intent of
the initial testing code is to avoid as many "complex" features as possible,
in case they aren't working as intended.

13 years agoFurther consolidate static logical name routines in vms/vms.c
Craig A. Berry [Thu, 24 Feb 2011 01:23:35 +0000 (19:23 -0600)]
Further consolidate static logical name routines in vms/vms.c

sys_trnlnm was a copy-and-paste clone of simple_trnlnm and
sys_crelnm was never used, so nuke them.

13 years agolib/locale.t: big speedup
David Mitchell [Wed, 23 Feb 2011 23:12:04 +0000 (23:12 +0000)]
lib/locale.t: big speedup

This fix reduces the time for this test script on my debugging build
from 45 seconds to 6 seconds.

Basically, the structure of the main loop for test 117 now looks like:

    foreach my $x (keys %UPPER) {
        push @f, $x if (... something bad about $x...)
    }
    foreach my $x (keys %lower) {
        push @f, $x if (... something bad about $x...)
    }
    ok(!@f);

Whereas before it looked like:

    foreach my $x (keys %UPPER) {
        push @f, $x if (... something bad about $x...)
        foreach my $x (keys %lower) {
            push @f, $x if (... something bad about $x...)
        }
    }
    ok(!@f);

i.e. the %lower tests were inadvertently repeated many times

13 years agot/re/fold_grind.t: slight speed up
David Mitchell [Wed, 23 Feb 2011 22:01:04 +0000 (22:01 +0000)]
t/re/fold_grind.t: slight speed up

Hoist a 'next' up a few levels from the innnermost loop, where its
condition is invariant. This shaves a few seconds off the execution time.

13 years agot/re/fold_grind.t: tidy up a bit
David Mitchell [Wed, 23 Feb 2011 17:47:35 +0000 (17:47 +0000)]
t/re/fold_grind.t: tidy up a bit

The previous commit unwrapped an eval; now that the eval's removed,
the code can be tidied up a bit. No functional changes, but it strips
a further few seconds off the execution time.

13 years agomake t/re/fold_grind.t even faster
David Mitchell [Wed, 23 Feb 2011 16:51:40 +0000 (16:51 +0000)]
make  t/re/fold_grind.t even faster

This is currently the slowest test in the suite. On my debugging build,
it takes 3 minutes. This commit reduces it to 1.5 minutes.

This is done by removing the eval in the innermost loop and just
executing the bits it would do directly.

13 years agomake t/re/fold_grind.t faster
David Mitchell [Wed, 23 Feb 2011 12:46:05 +0000 (12:46 +0000)]
make  t/re/fold_grind.t faster

This is currently the slowest test in the suite. On my debugging build,
it takes 4 minutes. This commit reduces it to 3 minutes.

This is done by removing the second layer of eval: The tests are
constructed as strings to be evaled, but were then wrapped in a second
eval to handle TODO etc. This second eval turned out to be unnecessary.

13 years agoMove the tests that blow away %ENV to the end of t/op/magic.t
Nicholas Clark [Wed, 23 Feb 2011 15:56:35 +0000 (15:56 +0000)]
Move the tests that blow away %ENV to the end of t/op/magic.t

If %ENV is cleared, some platforms can't spawn new processes, which prevents
the use of fresh_perl_*().

13 years agoNo need to sort {non_,}bincompat_options in Config, as they are always sorted.
Nicholas Clark [Wed, 23 Feb 2011 11:37:03 +0000 (11:37 +0000)]
No need to sort {non_,}bincompat_options in Config, as they are always sorted.

t/porting/bincompat.t tests that they are in order, so no need to sort them.

13 years agoTest that perl.c reports {non_,}bincompat_options in sorted order.
Nicholas Clark [Wed, 23 Feb 2011 11:06:46 +0000 (11:06 +0000)]
Test that perl.c reports {non_,}bincompat_options in sorted order.

Whilst the actual order doesn't matter semantically, ensuring that they are
always in a sorted order means that string comparison can be used to validate
that two sets of options are identical. This will be useful in the near future
for improved load-time extension compatibility checking.

13 years agoUpdate Test-Simple to CPAN version 0.98
Chris 'BinGOs' Williams [Wed, 23 Feb 2011 10:20:34 +0000 (10:20 +0000)]
Update Test-Simple to CPAN version 0.98

  [DELTA]

  0.98  Wed, 23 Feb 2011 14:38:02 +1100
    Bug Fixes
    * subtest() should not fail if $? is non-zero. (Aaron Crane)

    Docs
    * The behavior of is() and undef has been documented. (Pedro Melo)

13 years agoSkip t/re/pat_{advanced,rt_report}.t under minitest, as they use %- and %+
Nicholas Clark [Wed, 23 Feb 2011 09:35:04 +0000 (09:35 +0000)]
Skip t/re/pat_{advanced,rt_report}.t under minitest, as they use %- and %+

miniperl can't load Tie::Hash::NamedCapture, and as minitest is run if you
have build problems sufficiently severe that you can't bootstrap, it seems
unlikely that the advanced and obscure functionality of the regexp engine is
your most important concern. Hence better to skip it, than to try to bend it
to "portability".

13 years agoSkip the test for #77684 under minitest, as it requires PerlIO::scalar
Nicholas Clark [Tue, 22 Feb 2011 15:52:27 +0000 (15:52 +0000)]
Skip the test for #77684 under minitest, as it requires PerlIO::scalar

13 years agoperlfunc: typos, grammar, rewording
Father Chrysostomos [Wed, 23 Feb 2011 06:32:47 +0000 (22:32 -0800)]
perlfunc: typos, grammar, rewording

13 years agofoldEQ_utf8(): Move rare tests out of main stream
Karl Williamson [Wed, 23 Feb 2011 03:19:21 +0000 (20:19 -0700)]
foldEQ_utf8(): Move rare tests out of main stream

The code for handling locale can be moved entirely to the place where
locale handling is done for the second string, as by that time we have
processed the first string, and the second.  Since we only succeed
if both are atomic, single-bytes, we don't need to do the loop below.

13 years agoRemove unused static function popen_translate from vms.c.
Craig A. Berry [Wed, 23 Feb 2011 03:36:04 +0000 (21:36 -0600)]
Remove unused static function popen_translate from vms.c.

13 years agoperlfunc/goto: Note the llafr exemption
Father Chrysostomos [Wed, 23 Feb 2011 02:09:36 +0000 (18:09 -0800)]
perlfunc/goto: Note the llafr exemption

13 years agoYet more perlfunc tweaks
Father Chrysostomos [Wed, 23 Feb 2011 02:08:08 +0000 (18:08 -0800)]
Yet more perlfunc tweaks

13 years agoperlfunc/formline: Suggest an alternate capturing method
Father Chrysostomos [Tue, 22 Feb 2011 21:01:49 +0000 (13:01 -0800)]
perlfunc/formline: Suggest an alternate capturing method

(When I was starting to program in Perl, I wasted a lot of time trying
to use formline as an alternate version of write, in order to capture
the output. Eventually I created a pipe() and used that. But now we
have scalar ‘filehandles’, it’s much easier.)

13 years agoperlfunc/fileno: Document the -1 retval
Father Chrysostomos [Tue, 22 Feb 2011 20:57:00 +0000 (12:57 -0800)]
perlfunc/fileno: Document the -1 retval

13 years agoYet another set of perlfunc tweaks
Father Chrysostomos [Tue, 22 Feb 2011 20:53:05 +0000 (12:53 -0800)]
Yet another set of perlfunc tweaks

13 years agocharset.t: Skip locale tests if non locale
Karl Williamson [Tue, 22 Feb 2011 20:57:21 +0000 (13:57 -0700)]
charset.t: Skip locale tests if non locale

13 years agofold_grind.t: Skip locale tests if wrong locale
Karl Williamson [Tue, 22 Feb 2011 20:56:33 +0000 (13:56 -0700)]
fold_grind.t: Skip locale tests if wrong locale

13 years agofold_grind.t: Don't use test numbers for todos
Karl Williamson [Tue, 22 Feb 2011 20:54:31 +0000 (13:54 -0700)]
fold_grind.t: Don't use test numbers for todos

This converts the todos into ones derived by looking at what is failing.
It is so what is actually tested by the test suite can vary.

13 years agot/test.pl: Add is_miniperl()
Karl Williamson [Tue, 22 Feb 2011 18:18:58 +0000 (11:18 -0700)]
t/test.pl: Add is_miniperl()

So that .t's which can't easily know how many to skip can access
the functionality.

13 years agoAllow t/re/regexp.t to conditionally skip tests on miniperl
Nicholas Clark [Tue, 22 Feb 2011 21:06:17 +0000 (21:06 +0000)]
Allow t/re/regexp.t to conditionally skip tests on miniperl

Annotate that all tests for %+ and %- are to be skipped on miniperl.

13 years agoSkip a warnings test under miniperl that relies on the effects of -C
Nicholas Clark [Tue, 22 Feb 2011 20:04:17 +0000 (20:04 +0000)]
Skip a warnings test under miniperl that relies on the effects of -C

miniperl ignores -C and $ENV{PERL_UNICODE}, as of e27b5b51275a893e.

13 years agomake /\p{isUserDefined}/ die on taint
David Mitchell [Tue, 22 Feb 2011 16:28:20 +0000 (16:28 +0000)]
make /\p{isUserDefined}/ die on taint

If the string which contains the name of a user-defined character property
function is tainted, then die rather than calling that function.
See [perl #82616].

13 years agoAvoid loading modules for %! and %+ on meeting %{"foo::!"} and %{"foo::+"}
Nicholas Clark [Tue, 22 Feb 2011 15:19:34 +0000 (15:19 +0000)]
Avoid loading modules for %! and %+ on meeting  %{"foo::!"} and %{"foo::+"}

Previously, just %{"foo::!"} would not trigger a load of Errno, but
${"foo::!"}; %{"foo::!"}; would, due to the different code paths taken through
Perl_gv_fetchpvn_flags(). As the modules themselves are responsible for calling
tie on the relevant global variables, there never was a problem with the wrong
variables *getting* their behaviour. However, the attempted load of the XS
module Tie::Hash::NamedCapture for %{"foo::-} meant that t/op/leaky-magic.t
would not pass under minitest. This commit resolves that failure.

13 years agogenmake mention from perlembed.pod is bogus
Vadim Konovalov [Tue, 22 Feb 2011 06:01:26 +0000 (22:01 -0800)]
genmake mention from perlembed.pod is bogus

it appears that chunk of explanations in perlembed.pod is repeating
some facts that already present in README.win32, yet they are now
old and mostly questionable: no special care should be taken on Win32
nowadays.

13 years agoRevert "Revert "fold_grind.t: Test multi-char folds""
Karl Williamson [Tue, 22 Feb 2011 04:42:47 +0000 (21:42 -0700)]
Revert "Revert "fold_grind.t: Test multi-char folds""

This reverts commit 7d8bc0b3c2c9f56519ce821ceccee5113f7e4bb9
to reinstate multi-char fold tests.

13 years agointrpvar.h: Need to initialize PL_utf8_foldable
Karl Williamson [Tue, 22 Feb 2011 04:26:42 +0000 (21:26 -0700)]
intrpvar.h: Need to initialize PL_utf8_foldable

13 years agoRemove various indirect method calls in IO's docs
Boris Ratner [Mon, 21 Feb 2011 12:39:40 +0000 (14:39 +0200)]
Remove various indirect method calls in IO's docs

Also do the same in some of its error messages. This fixes CPAN RT#65836.

13 years agoUpdate Test-Harness to CPAN version 3.23
Chris 'BinGOs' Williams [Mon, 21 Feb 2011 23:20:14 +0000 (23:20 +0000)]
Update Test-Harness to CPAN version 3.23

  [DELTA]

  3.23    2011-02-20
        - Merge in changes from core. Thanks BinGOs.
        - Made SourceHandler understand that an executable binary file
          is probably an executable.
        - Added workaround for Getopt::Long 2.25 handling of
          multivalue options. Fixes test failure on stock perl 5.6.2.

13 years agoUpdate JSON-PP to CPAN version 2.27104
Chris 'BinGOs' Williams [Mon, 21 Feb 2011 22:48:18 +0000 (22:48 +0000)]
Update JSON-PP to CPAN version 2.27104

  [DELTA]

  2.27104  Thu Jan 20 19:06:25 2011
    - fixed a problem to convert overloaded objects (pointed by rt#64783)
    - changed decoding methods object() and array() to pass a object.

13 years agoTwo functions shouldnt be declared inline
Karl Williamson [Mon, 21 Feb 2011 17:17:17 +0000 (10:17 -0700)]
Two functions shouldnt be declared inline

13 years agotoke.c: 'Specialized /le message is only for substitutes
Karl Williamson [Mon, 21 Feb 2011 16:57:51 +0000 (09:57 -0700)]
toke.c: 'Specialized /le message is only for substitutes

m//le  has to be the lexical comparison, so use the generic deprecation
for that case

13 years agomove brace to same line as conditional
Karl Williamson [Mon, 21 Feb 2011 16:57:29 +0000 (09:57 -0700)]
move brace to same line as conditional

13 years agotoke.c: fix comment
Karl Williamson [Mon, 21 Feb 2011 16:56:25 +0000 (09:56 -0700)]
toke.c: fix comment

13 years agoBreak out the test for #27839 into a new test file.
Nicholas Clark [Mon, 21 Feb 2011 16:38:44 +0000 (16:38 +0000)]
Break out the test for #27839 into a new test file.

Skip the new t/op/magic-27839.t under minitest, as it mentions %+, which causes
the parser to attempt to load Tie::Hash::NamedCapture at *compile* time, which
causes miniperl to abort, as it doesn't support dynamic linking.

13 years agoUnder minitest, skip tests in op/g{oto,v}.t that need PerlIO::scalar.
Nicholas Clark [Mon, 21 Feb 2011 16:22:26 +0000 (16:22 +0000)]
Under minitest, skip tests in op/g{oto,v}.t that need PerlIO::scalar.

13 years agoIn t/io/open.t, skip the tests for loading IO::File when running under miniperl
Nicholas Clark [Mon, 21 Feb 2011 15:55:19 +0000 (15:55 +0000)]
In t/io/open.t, skip the tests for loading IO::File when running under miniperl

This is analogous to skipping all of t/op/iofile.t under miniperl.

13 years agoAdd skip_if_miniperl() to test.pl, and use it in op/hashassign.t and re/re.t
Nicholas Clark [Mon, 21 Feb 2011 15:06:10 +0000 (15:06 +0000)]
Add skip_if_miniperl() to test.pl, and use it in op/hashassign.t and re/re.t

In both, skip blocks which have tests which require a module which needs
dynamic loading, to make both pass again under minitest.

13 years agoBreak out the test for #72922 into a new test file.
Nicholas Clark [Mon, 21 Feb 2011 14:50:22 +0000 (14:50 +0000)]
Break out the test for #72922 into a new test file.

Skip the new t/re/qr-72922.t under minitest.

13 years agoConvert t/re/re.t to use done_testing(), instead of a trailing BEGIN block
Nicholas Clark [Mon, 21 Feb 2011 14:49:38 +0000 (14:49 +0000)]
Convert t/re/re.t to use done_testing(), instead of a trailing BEGIN block

Add comments to make it clearer where new tests should be added.

13 years agoAdd skip_all_if_miniperl() to test.pl, and use it in 6 test scripts
Nicholas Clark [Mon, 21 Feb 2011 14:14:30 +0000 (14:14 +0000)]
Add skip_all_if_miniperl() to test.pl, and use it in 6 test scripts

All require dynamic loading to work, so all should be skipped under minitest.

13 years agoSkip reg_namedcapture.t when run by miniperl
Nicholas Clark [Mon, 21 Feb 2011 14:00:30 +0000 (14:00 +0000)]
Skip reg_namedcapture.t when run by miniperl

miniperl has no dynamic loading, so cannot load Tie::Hash::NamedCapture.

13 years agoIn t/TEST, automatically detect if running under miniperl
Nicholas Clark [Mon, 21 Feb 2011 13:31:57 +0000 (13:31 +0000)]
In t/TEST, automatically detect if running under miniperl

Set $ENV{PERL_CORE_MINITEST} based on defined &DynaLoader::boot_DynaLoader,
instead of relying on a -minitest parameter. &DynaLoader::boot_DynaLoader is
undefined in miniperl, defined in perl, for both -Dusedl and -Uusedl

13 years agoIn switchI.t, use nolib => 1 to make the tests pass on miniperl once more.
Nicholas Clark [Mon, 21 Feb 2011 11:47:58 +0000 (11:47 +0000)]
In switchI.t, use nolib => 1 to make the tests pass on miniperl once more.

fresh_perl_is() defaults to automatically prefixing the test perl's arguments
with -I../lib, which (now) causes miniperl to find ../lib/buildcustomize.pl,
which (when found and run) resets @INC, perturbing the tests. Suppressing the
automatic addition of -I../lib avoids these problems.

Also, fold together the two adjacent BEGIN blocks at the start of the script.

13 years agoIn runenv.t, don't automatically add -I../lib to the test program's arguments.
Nicholas Clark [Mon, 21 Feb 2011 11:29:27 +0000 (11:29 +0000)]
In runenv.t, don't automatically add -I../lib to the test program's arguments.

Instead, add -I../lib explicitly to the program's arguments when needed.
This makes the test pass with miniperl, and simplifies the later tests which
inspect the entirety of @INC.

miniperl will have been failing since 5e4c4c91bd52a48d, because it now loads
$INC[0]/buildcustomize.pl if present, resetting @INC, and always providing
-I../lib will cause it to find the buildcustomize.pl script.

13 years agoRefactor t/run/runenv.t to use lexical file handles.
Nicholas Clark [Mon, 21 Feb 2011 11:09:11 +0000 (11:09 +0000)]
Refactor t/run/runenv.t to use lexical file handles.

Also print out $! in open failure diagnostics.

13 years agoIn runenv.t, inline runperl() into try(), its only caller.
Nicholas Clark [Mon, 21 Feb 2011 10:33:12 +0000 (10:33 +0000)]
In runenv.t, inline runperl() into try(), its only caller.

d5226c4c8f9a2932e broke runperl_and_capture() out from runperl(), but didn't
notice that there was only one caller for runperl(). Change try() to use
is() for testing each of STDOUT and STDERR, instead of an explicit test,
explicit diagnostics, and a summary to ok(). This increases the tests run,
hence the plan needs changing.

Also inline it_didnt_work() into runperl_and_capture(), and remove the END
block that deletes the temporary files, which has been vestigial since
2d90ac9586ffb5c7 converted runenv.t to use test.pl's tmpfile().

13 years agoperlfunc/eval: note the discrepancy in list context retvals
Father Chrysostomos [Mon, 21 Feb 2011 05:37:07 +0000 (21:37 -0800)]
perlfunc/eval: note the discrepancy in list context retvals

13 years agoIncrease CoreList’s version
Father Chrysostomos [Mon, 21 Feb 2011 05:33:51 +0000 (21:33 -0800)]
Increase CoreList’s version

to silence cmp_version.t

13 years agoperlfunc: do SUBROUTINE(LIST)
Father Chrysostomos [Mon, 21 Feb 2011 02:40:24 +0000 (18:40 -0800)]
perlfunc: do SUBROUTINE(LIST)

perlsub does not mention this anymore.

Even though it’s deprecated, it should still be documented properly

13 years agoEven more perlfunc tweaks
Father Chrysostomos [Mon, 21 Feb 2011 02:38:43 +0000 (18:38 -0800)]
Even more perlfunc tweaks

13 years agoUpdate docs for postfix /dual flags
Father Chrysostomos [Sun, 20 Feb 2011 22:17:19 +0000 (14:17 -0800)]
Update docs for postfix /dual flags

13 years agomore perlfunc tweaks
Father Chrysostomos [Sun, 20 Feb 2011 06:06:27 +0000 (22:06 -0800)]
more perlfunc tweaks

13 years agoUpdate TOC for perl51310delta
Ævar Arnfjörð Bjarmason [Sun, 20 Feb 2011 20:00:03 +0000 (20:00 +0000)]
Update TOC for perl51310delta

Quoth Porting/perldelta_template.pod:

    "Run C<perl pod/buildtoc --build-all> to update the F<perldelta>
    version in the following files:

        MANIFEST
        Makefile.SH
        pod.lst
        pod/perl.pod
        vms/descrip_mms.template
        win32/Makefile
        win32/makefile.mk
        win32/pod.mak"