platform/upstream/perl.git
13 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Jan Dubois [Fri, 3 Dec 2010 00:18:18 +0000 (16:18 -0800)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

13 years agoWindows 95 Chainsaw Massacre
Jan Dubois [Thu, 2 Dec 2010 20:10:44 +0000 (12:10 -0800)]
Windows 95 Chainsaw Massacre

Remove all supporting code for Windows 9x and Windows NT.  The
minimum supported version is Windows 2000 now.

13 years agoFix some unreachable and return nits in vms/vms.c.
Craig A. Berry [Thu, 2 Dec 2010 20:44:15 +0000 (14:44 -0600)]
Fix some unreachable and return nits in vms/vms.c.

13 years agoFix some =/== nits in vms/vms.c
Craig A. Berry [Thu, 2 Dec 2010 20:33:46 +0000 (14:33 -0600)]
Fix some =/== nits in vms/vms.c

13 years ago[perl #80098] Bleadperl breaks Attribute::Lexical
Father Chrysostomos [Thu, 2 Dec 2010 16:30:51 +0000 (08:30 -0800)]
[perl #80098] Bleadperl breaks Attribute::Lexical

If

@UNIVERSAL::ISA = "a";

and

@a::ISA = "b";

then methods are searched for in these orders:

main UNIVERSAL a b
UNIVERSAL a b UNIVERSAL a b
a b UNIVERSAL a b
b UNIVERSAL a b

For method lookup, looking at a stash twice causes no problems (except
for a SUPER bug I’ve just found--to be dealt with separately).

My fix to next::method in a5cd004 which made it do a second pass with
UNIVERSAL the way gv_fetchmeth does did not take into account that it
might return its caller (sub a::foo { return shift->next::can }),
causing an infinite loop.

This patch makes it check, on the second pass, whether each stash is
the stash at the start of the MRO list and breaks if that is the case,
so the MROs are effectively:

main UNIVERSAL a b
UNIVERSAL a b
a b UNIVERSAL
b UNIVERSAL a

(which is what they are effectively already for method lookup).

13 years agoUpdate Locale-Codes to CPAN version 3.15
Chris 'BinGOs' Williams [Thu, 2 Dec 2010 15:41:45 +0000 (15:41 +0000)]
Update Locale-Codes to CPAN version 3.15

  [DELTA]

  3.15  2010-12-02 sbeck
        * NEW CODE(s)
        * Added version number to Makefile.PL/Build.PL requirement
          for POD testing modules.  RT 62247
        * Changed 'use vars' to 'our'

13 years agoFix C++ breakage introduced in d7ef4b73
Tony Cook [Thu, 2 Dec 2010 12:03:57 +0000 (23:03 +1100)]
Fix C++ breakage introduced in d7ef4b73

C++ doesn't allow goto or switch to bypass initialized variable
declarations.  Also fix the function pointer type.

13 years agoNit in perluniintro.pod
Karl Williamson [Wed, 1 Dec 2010 23:36:44 +0000 (16:36 -0700)]
Nit in perluniintro.pod

13 years agoNit in perlunicode.pod
Karl Williamson [Wed, 1 Dec 2010 23:34:58 +0000 (16:34 -0700)]
Nit in perlunicode.pod

13 years agoNit in perlre.pod
Karl Williamson [Wed, 1 Dec 2010 23:34:25 +0000 (16:34 -0700)]
Nit in perlre.pod

13 years agoDocument Unicode doc fix
Karl Williamson [Wed, 1 Dec 2010 23:33:54 +0000 (16:33 -0700)]
Document Unicode doc fix

13 years agoNit in perlunicode.pod
Karl Williamson [Wed, 1 Dec 2010 23:15:18 +0000 (16:15 -0700)]
Nit in perlunicode.pod

13 years agore/fold_grind.t: Add tests for NREFFU, REFFU
Karl Williamson [Wed, 1 Dec 2010 05:58:37 +0000 (22:58 -0700)]
re/fold_grind.t: Add tests for NREFFU, REFFU

This adds simple tests for these.  Inspection of the code indicated to
me that more complex tests were not warranted.

13 years agoregcomp.c: Generate REFFU and NREFFU
Karl Williamson [Wed, 1 Dec 2010 05:35:13 +0000 (22:35 -0700)]
regcomp.c: Generate REFFU and NREFFU

This causes the new nodes that denote Unicode semantics in
backreferences to be generated when appropriate.

Because the addition of these nodes was at the end of the node list, the
arithmetic relation that previously was valid no longer is.

13 years agoregexec.c: Handle REFFU and NREFFU; refactor
Karl Williamson [Wed, 1 Dec 2010 05:05:25 +0000 (22:05 -0700)]
regexec.c: Handle REFFU and NREFFU; refactor

This adds handling of the Unicode folding semantics capture buffer
backreferences.  I've refactored the code so that the case statements
set up the type of folding, to avoid having to test for which in the
common code.

Also, the previous code was confusing fold case and lowercase.  There is
already a routine to handle the fold case, so that simplified things.

13 years agore/fold_grind.t: Refactor to test utf8 patterns.
Karl Williamson [Wed, 1 Dec 2010 04:49:20 +0000 (21:49 -0700)]
re/fold_grind.t: Refactor to test utf8 patterns.

The previous version wasn't really testing utf8 patterns.

13 years agoregcomp.sym: Add REFFU and NREFFU nodes
Karl Williamson [Wed, 1 Dec 2010 04:39:16 +0000 (21:39 -0700)]
regcomp.sym: Add REFFU and NREFFU nodes

These will be used for matching capture buffers case-insensitively using
Unicode semantics.

make regen will regenerate the delivered regnodes.h

13 years agoregcomp.sym: update comment
Karl Williamson [Wed, 1 Dec 2010 04:38:09 +0000 (21:38 -0700)]
regcomp.sym: update comment

13 years agoregcomp.c: Use latin1 folding in synthetic start class
Karl Williamson [Wed, 1 Dec 2010 02:00:00 +0000 (19:00 -0700)]
regcomp.c: Use latin1 folding in synthetic start class

This is because the pattern may not specify unicode semantics, but if
the target matching string is in utf8, then unicode semantics may be
needed nonetheless.  So to avoid the regexec optimizer rejecting the
match, we need to allow for a possible false positive.

13 years agoregcomp.c: utf8 pattern defaults to Unicode semantics
Karl Williamson [Wed, 1 Dec 2010 01:10:37 +0000 (18:10 -0700)]
regcomp.c: utf8 pattern defaults to Unicode semantics

A utf8 pattern should force unicode semantics unless otherwise
overridden.  This means that the 'd' regex modifier means Unicode
semantics as well.

13 years agoregcomp.c: teach tries about EXACTFU
Karl Williamson [Wed, 1 Dec 2010 00:48:22 +0000 (17:48 -0700)]
regcomp.c: teach tries about EXACTFU

13 years agoregcomp.c: typo in comment
Karl Williamson [Wed, 1 Dec 2010 00:45:54 +0000 (17:45 -0700)]
regcomp.c: typo in comment

13 years agore/reg_fold.t: use array size for test counts
Karl Williamson [Wed, 1 Dec 2010 00:43:35 +0000 (17:43 -0700)]
re/reg_fold.t: use array size for test counts

13 years agoregcomp.c: Remove duplicate statement
Karl Williamson [Tue, 30 Nov 2010 21:02:08 +0000 (14:02 -0700)]
regcomp.c: Remove duplicate statement

The flags this statement cleared are cleared as part of the macro called
just before it.

13 years ago[perl #64792] Document $? in perlfunc/exit
Father Chrysostomos [Wed, 1 Dec 2010 22:44:01 +0000 (14:44 -0800)]
[perl #64792] Document $? in perlfunc/exit

13 years agoUpgrade if from version 0.06 to 0.0601
Florian Ragwitz [Wed, 1 Dec 2010 16:19:10 +0000 (17:19 +0100)]
Upgrade if from version 0.06 to 0.0601

13 years agoFix compiler warning in hv.c on MSWin32
Jerry D. Hedden [Wed, 1 Dec 2010 15:32:34 +0000 (10:32 -0500)]
Fix compiler warning in hv.c on MSWin32

Fixes the following seen in a Steve Hay smoke test:

Compiler messages(MSWin32):
..\hv.c(1646) : warning C4244: 'initializing' : conversion from 'unsigned long ' to 'const char ', possible loss of data

13 years agoFix uninit compiler warning in mro.c
Jerry D. Hedden [Wed, 1 Dec 2010 14:51:43 +0000 (09:51 -0500)]
Fix uninit compiler warning in mro.c

13 years agoperldelta up to 6b7c6d959
Father Chrysostomos [Wed, 1 Dec 2010 13:47:01 +0000 (05:47 -0800)]
perldelta up to 6b7c6d959

13 years agoperldelta for [perl #68654]
Father Chrysostomos [Wed, 1 Dec 2010 13:33:45 +0000 (05:33 -0800)]
perldelta for [perl #68654]

13 years ago++substr $mro'VERSION, -1
Father Chrysostomos [Wed, 1 Dec 2010 06:36:52 +0000 (22:36 -0800)]
++substr $mro'VERSION, -1

13 years ago[perl #68654] next::method doesn't see UNIVERSAL
Father Chrysostomos [Wed, 1 Dec 2010 06:35:16 +0000 (22:35 -0800)]
[perl #68654] next::method doesn't see UNIVERSAL

This commit makes next::method retry with UNIVERSAL if it reaches the
end of the MRO list.

13 years agoMake next_edgecases.t easier to deal with
Father Chrysostomos [Wed, 1 Dec 2010 06:31:41 +0000 (22:31 -0800)]
Make next_edgecases.t easier to deal with

This makes ./perl -Ilib t/mro/next_edgecases.t work and also
allows test functions to be called without parentheses.

13 years agoAvoid two compiler warnings in B::cstring, spotted by Steve Hay's smoker.
Nicholas Clark [Wed, 1 Dec 2010 10:23:27 +0000 (10:23 +0000)]
Avoid two compiler warnings in B::cstring, spotted by Steve Hay's smoker.

13 years agoUpdate Maintainers.pl for the CPAN'd version of Module-CoreList
Chris 'BinGOs' Williams [Wed, 1 Dec 2010 10:29:59 +0000 (10:29 +0000)]
Update Maintainers.pl for the CPAN'd version of Module-CoreList

13 years agoFix B test failure introduced in 6b7c6d9
Florian Ragwitz [Wed, 1 Dec 2010 10:08:16 +0000 (11:08 +0100)]
Fix B test failure introduced in 6b7c6d9

13 years agoperldelta up to 779bcb7d
Father Chrysostomos [Wed, 1 Dec 2010 05:32:38 +0000 (21:32 -0800)]
perldelta up to 779bcb7d

13 years agoSkip t/io/eintr.t on Cygwin, too - hangs
Jerry D. Hedden [Tue, 30 Nov 2010 23:22:35 +0000 (18:22 -0500)]
Skip t/io/eintr.t on Cygwin, too - hangs

13 years agoFix memory leak in hfreeentries
Father Chrysostomos [Tue, 30 Nov 2010 23:53:16 +0000 (15:53 -0800)]
Fix memory leak in hfreeentries

The change that made hfreeentries keep the name in place when iterat-
ing (2d0d1ecc) caused this statement at the end of the loop to be a
no-op for named hashes, because the HvARRAY is always present at the
end of the loop (it contains the name):

if (!HvARRAY(hv)) {
    /* Good. No-one added anything this time round.  */
    break;
}

So this line was added (by the same change) before the freeing of the
linked lists:

/* If there are no keys, there is nothing left to free. */
if (!((XPVHV*) SvANY(hv))->xhv_keys) break;

But that means that this, immediately after the freeing of the linked
lists and just before the if(!HvARRAY(hv)):

if (array != orig_array) {
    Safefree(array);
}

was not being reached, resulting in a memory leak (that Nicholas
Clark found).

This is what would happen:

On entering hfreeentries, orig_array would be assigned the value
in HvARRAY.

   HvARRAY    = original array
   orig_array = original array

Then the main loop would be entered, which would assign
HvARRAY to array:

   HvARRAY    = original array
   orig_array = original array
   array      = original array

HvARRAY would be nulled out and assigned a new value by hv_auxinit:

   HvARRAY    = first new array
   orig_array = original array
   array      = original array

Then the loop would repeat:

   HvARRAY    = first new array
   orig_array = original array
   array      = first new array

Then the HvARRAY would once more be nulled and replaced via
hv_auxinit:

   HvARRAY    = second new array
   orig_array = original array
   array      = first new array

Then the if(no keys)break; statement would be reached, exit-
ing the loop:

   HvARRAY    = second new array
   orig_array = original array
   <nothing>  = first new array

So the first new array is never freed.

This commit skips the allocation of an extra array at the beginning of
the loop if there are no keys. Then it exits early at the same spot.

13 years agoperldelta for mg_findext and sv_unmagicext
Florian Ragwitz [Tue, 30 Nov 2010 16:49:27 +0000 (17:49 +0100)]
perldelta for mg_findext and sv_unmagicext

13 years agoSuppress warning from t/op/attrs.t
Father Chrysostomos [Tue, 30 Nov 2010 16:33:50 +0000 (08:33 -0800)]
Suppress warning from t/op/attrs.t

13 years ago[perl #77762] Constant assignment warning
Father Chrysostomos [Tue, 30 Nov 2010 13:54:23 +0000 (05:54 -0800)]
[perl #77762] Constant assignment warning

With this patch:

$ ./perl -we 'sub A () {1}; if (0) {my $foo = A or die}'
$ ./perl -we 'sub A () {1}; if (0) {my $foo = 1 or die}'
Found = in conditional, should be == at -e line 1.

Since the value of a constant may not be known at the time the program
is written, it should be perfectly acceptable to do a constant assign-
ment in a conditional.

13 years agoRestore building Encode's subextensions for a static build.
Nicholas Clark [Tue, 30 Nov 2010 15:51:10 +0000 (15:51 +0000)]
Restore building Encode's subextensions for a static build.

The special-casing in Configure still referred to ext/Encode, so likely this
was broken when Encode moved to cpan/

Fixes #79494, reported by Marc Lehmann.

13 years agoIn S_scan_const(), use my_snprintf() instead of my_sprintf().
Nicholas Clark [Tue, 30 Nov 2010 13:16:11 +0000 (13:16 +0000)]
In S_scan_const(), use my_snprintf() instead of my_sprintf().

Paranoid linkers warn about using sprintf(), and rightly so.

13 years agoUse ' to avoid interpolation
Father Chrysostomos [Tue, 30 Nov 2010 13:01:25 +0000 (05:01 -0800)]
Use ' to avoid interpolation

13 years ago[perl #79152] super-linear cache can prevent a valid match
Nick Cleaton [Tue, 30 Nov 2010 06:26:43 +0000 (22:26 -0800)]
[perl #79152] super-linear cache can prevent a valid match

The super-linear cache in regexec.c can prevent a valid match
from being detected. For example:

print "yay\n" if 'xayxay' =~ /(q1|.)*(q2|.)*(x(a|bc)*y){2,}/;

This should match, but it doesn't because the cache fails to
distinguish between matching the final xay to x(a|bc)*y as the
first instance of the {2,} and matching it in the same position
as the second instance.

This seems to do the trick.

13 years agoSpelling: reminder -> remainder
Peter John Acklam [Mon, 29 Nov 2010 15:00:07 +0000 (16:00 +0100)]
Spelling: reminder -> remainder

13 years agoUpdate perlguts for sv_unmagicext and mg_findext
Florian Ragwitz [Thu, 25 Nov 2010 01:53:40 +0000 (02:53 +0100)]
Update perlguts for sv_unmagicext and mg_findext

13 years agoAdd tests for sv_{,un}magicext and mg_findext
Florian Ragwitz [Thu, 25 Nov 2010 01:40:16 +0000 (02:40 +0100)]
Add tests for sv_{,un}magicext and mg_findext

13 years agoAdd mg_findext
Florian Ragwitz [Thu, 25 Nov 2010 01:40:00 +0000 (02:40 +0100)]
Add mg_findext

13 years agoAdd sv_unmagicext
Florian Ragwitz [Thu, 25 Nov 2010 00:06:27 +0000 (01:06 +0100)]
Add sv_unmagicext

13 years agoEliminate strlen and strEQ usage in gv_fetchmethod
Florian Ragwitz [Tue, 30 Nov 2010 09:24:26 +0000 (10:24 +0100)]
Eliminate strlen and strEQ usage in gv_fetchmethod

This commit brought to you with the aid of the campaign for elimination of
strlen().

13 years agoAnother oops.
Father Chrysostomos [Tue, 30 Nov 2010 06:23:12 +0000 (22:23 -0800)]
Another oops.

Something else changed unnecessarily by 541ed3a9. I really oughtn’t do
this when I’ve been awake for more than 18 hours....

13 years agoOops.
Father Chrysostomos [Tue, 30 Nov 2010 05:56:25 +0000 (21:56 -0800)]
Oops.

That was part of my first attempt to fix [perl #68560]. I forgot to
delete it. (It’s harmless.)

13 years agoperldelta entry for [perl #68560]
Father Chrysostomos [Tue, 30 Nov 2010 05:50:59 +0000 (21:50 -0800)]
perldelta entry for [perl #68560]

13 years ago[perl #68560] calling closure prototype SEGVs
Father Chrysostomos [Tue, 30 Nov 2010 05:43:52 +0000 (21:43 -0800)]
[perl #68560] calling closure prototype SEGVs

When a closure is created, the original sub is cloned (except that the
op tree is shared). That original sub (called the closure prototype)
is not usually accessible to perl.

An attribute handler (MODIFY_CODE_ATTRIBUTES) is passed a reference
to it, however. If that code reference is called within the attribute
handler, an ‘Undefined subroutine called’ error results, because the
op tree has not been attached yet.

If that code reference is stashed away and called after the attribute
handler returns, it will most likely crash.

This is because its pad is full of nulls.

A regular $proto->() or &$proto() call that sets up @_ will crash in
attempting to do so.

A &$proto call will bypass that, but attempting to read any lexical
variables from the containing scope will cause a crash. Any operator
that uses TARG (i.e., most of them) will crash.

So this commit puts a check for closure prototypes in pp_entersub. It
produces a new error message, ‘Closure prototype called’.

This does introduce a backward-incompatible change: code like this
used to work:

 sub MODIFY_CODE_ATTRIBUTES { $'proto = $_[1] }
 { my $x; () = sub :attr { () = $x; print "hello\n" } }
 &$'proto;

But writing a useful subroutine that tiptoes past the crashes is so
difficult that I think this breakage is acceptable.

13 years agoUse default stack size on Windows
Jan Dubois [Tue, 30 Nov 2010 01:10:02 +0000 (17:10 -0800)]
Use default stack size on Windows

Perl used to request 16MB of stack instead of the default 1MB (when
compiling with VC++).  I believe this was done to accomodate the
recursive nature of the regex engine, which is no longer a concern
since 5.10.  The requested stack size will be reserved for each
thread created by the process, not just for the main thread.

Note also that we don't explicitly specify the stack size when
compiling with GCC on Windows (MinGW), which reserves a stack size of
2MB by default.

13 years agoChange the default for usemymalloc to 'n' for NetBSD
Chris 'BinGOs' Williams [Mon, 29 Nov 2010 22:14:25 +0000 (22:14 +0000)]
Change the default for usemymalloc to 'n' for NetBSD

It should not be the default, it isn't the default when perl is
built in pkgsrc and from personal experience using perl's malloc
as the default is to enter a world of pain and suffering.

13 years agoFilehandle method calls load IO::File on demand
David Golden [Mon, 29 Nov 2010 04:12:12 +0000 (23:12 -0500)]
Filehandle method calls load IO::File on demand

When a method call on a filehandle would die because the method can not
be resolved and L<IO::File> has not been loaded, Perl now loads IO::File
via C<require> and attempts method resolution again:

  open my $fh, ">", $file;
  $fh->binmode(":raw");     # loads IO::File and succeeds

This also works for globs like STDOUT, STDERR and STDIN:

  STDOUT->autoflush(1);

Because this on-demand load only happens if method resolution fails, the
legacy approach of manually loading an IO::File parent class for partial
method support still works as expected:

  use IO::Handle;
  open my $fh, ">", $file;
  $fh->autoflush(1);        # IO::File not loaded

13 years agoFollowing fbcaf61123069fe4, remove perlmain.c from the initial list of C files.
Nicholas Clark [Mon, 29 Nov 2010 19:19:21 +0000 (19:19 +0000)]
Following fbcaf61123069fe4, remove perlmain.c from the initial list of C files.

Otherwise miniperl gets built by ./makedepend, as it calls `make clist`,
clist depends on the initial list of C files, and perlmain.c has rules to
(re)build it which depend on miniperl.

There is no dependency problem with removing perlmain.c from the list of C
files, and hence the list of files for which makefile dependency rules are
generated, as its (new) dependency on miniperl means that it will always be
rebuilt if miniperl is rebuilt, and in turn miniperl will always be rebuilt
it miniperlmain.o is out of date. perlmain.o has the same dependencies as
miniperlmain.o, so the requirement to rebuild is always satisfied.

Thanks to Florian Ragwitz for spotting this problem.

13 years agoFix a typo in perlmod
Florian Ragwitz [Mon, 29 Nov 2010 18:37:25 +0000 (19:37 +0100)]
Fix a typo in perlmod

13 years agoUpgrade Memoize from version 1.01_03 to 1.02
Florian Ragwitz [Mon, 29 Nov 2010 17:43:06 +0000 (18:43 +0100)]
Upgrade Memoize from version 1.01_03 to 1.02

13 years agoAdd a verbose option to -DP, and replace C<#if 0> blocks in sv_gets() with it.
Nicholas Clark [Mon, 29 Nov 2010 15:17:54 +0000 (15:17 +0000)]
Add a verbose option to -DP, and replace C<#if 0> blocks in sv_gets() with it.

13 years agoIn Perl_sv_gets(), shortbuffered is always 0 when rslen is 0.
Nicholas Clark [Mon, 29 Nov 2010 14:13:03 +0000 (14:13 +0000)]
In Perl_sv_gets(), shortbuffered is always 0 when rslen is 0.

Hence we can jump past the test C<if (shortbuffered)> after the "this screams
louder" block, as that is only reached where rslen is 0.

13 years agoperldelta entry for [perl #63540]
Father Chrysostomos [Mon, 29 Nov 2010 14:09:37 +0000 (06:09 -0800)]
perldelta entry for [perl #63540]

13 years ago[perl #63540] bizarre closure lossage
Father Chrysostomos [Mon, 29 Nov 2010 14:05:35 +0000 (06:05 -0800)]
[perl #63540] bizarre closure lossage

main::b in this example shows a null op that has the if() statement
attached to it.

$ perl -MO=Concise,a,b -e 'my $x;sub a {$x}; sub b{if($x){}0}'
main::a:
3  <1> leavesub[1 ref] K/REFC,1 ->(end)
-     <@> lineseq KP ->3
1        <;> nextstate(main 2 -e:1) v ->2
2        <0> padsv[$x:FAKE:] ->3
main::b:
a  <1> leavesub[1 ref] K/REFC,1 ->(end)
-     <@> lineseq KP ->a
4        <;> nextstate(main 5 -e:1) v ->5
-        <1> null vK/1 ->8
6           <|> and(other->7) vK/1 ->8
5              <0> padsv[$x:FAKE:] s ->6
-              <@> scope vK ->-
7                 <0> stub v ->8
8        <;> nextstate(main 5 -e:1) v ->9
9        <$> const[IV 0] s ->a
-e syntax OK

Perl_op_const_sv has:

    if (type == OP_NEXTSTATE || type == OP_NULL || type == OP_PUSHMARK)
continue;

It traverses from the null to the const. The const’s op_next pointer
points to the leavesub, so it is taken to be a constant.

It returns to newATTRSUB, which turns on CvCONST without assigning a
constant value.

Later, cv_clone (called by pp_anoncode) calls op_const_sv again. The
latter returns the SV from the first PADSV it finds, which is the $x
in if($x).

This commit stops op_const_sv from skipping over null ops that
have children.

13 years agoBreak out code from Perl_sv_gets() which is self contained and exits directly.
Nicholas Clark [Mon, 29 Nov 2010 11:41:21 +0000 (11:41 +0000)]
Break out code from Perl_sv_gets() which is self contained and exits directly.

Previously the code for handling fixed length records, and appending from a
non-UTF-8 handle to a UTF-8 scalar, was handled in two blocks in Perl_sv_gets()
which exited via a goto to the last statement of Perl_sv_gets(). By breaking
them out into separate static functions, the control flow becomes clearer.

13 years agoFix C++ build problems introduced in 9a5a5549
Tony Cook [Mon, 29 Nov 2010 11:36:35 +0000 (22:36 +1100)]
Fix C++ build problems introduced in 9a5a5549

Fixes the following compilation errors:
regexec.c: In function 'char* S_find_byclass(regexp*, const regnode*, char*,
const char*, regmatch_info*)':
regexec.c:1525: error: invalid conversion from 'I32 (*)(const char*, const
char*, I32)' to 'I32 (*)()'
regexec.c:1525: error: too many arguments to function
regexec.c:1527: error: invalid conversion from 'I32 (*)(const char*, const
char*, I32)' to 'I32 (*)()'
regexec.c:1527: error: too many arguments to function

13 years agodocument why eintr.t needs to be skipped on Win32
David Mitchell [Mon, 29 Nov 2010 11:23:28 +0000 (11:23 +0000)]
document why eintr.t needs to be skipped on Win32

13 years agoin perlipc, 'named pipes' was in signals section
David Mitchell [Mon, 29 Nov 2010 10:36:19 +0000 (10:36 +0000)]
in perlipc, 'named pipes' was in signals section

Move the '=head1 Named Pipes' section down so that it's no longer nested,
cuckoo-like, in the middle of the '=head1 Signals' section.

13 years agoperldelta: The last few commits are not noteworthy
Father Chrysostomos [Sun, 28 Nov 2010 22:10:44 +0000 (14:10 -0800)]
perldelta: The last few commits are not noteworthy

except for one that already has an entry.

13 years agoperldelta for 94a75ecf
Father Chrysostomos [Sun, 28 Nov 2010 22:01:21 +0000 (14:01 -0800)]
perldelta for 94a75ecf

13 years ago[perl #79914] documentation bug in perldoc perlvar $|
Lukas Mai [Mon, 29 Nov 2010 05:56:44 +0000 (21:56 -0800)]
[perl #79914] documentation bug in perldoc perlvar $|

13 years agoAUTHORS: e-mail addr for Lukas Mai
Father Chrysostomos [Mon, 29 Nov 2010 05:56:37 +0000 (21:56 -0800)]
AUTHORS: e-mail addr for Lukas Mai

13 years agoMake vms/writemain.pl go the way of writemain.SH.
Craig A. Berry [Sun, 28 Nov 2010 22:49:23 +0000 (16:49 -0600)]
Make vms/writemain.pl go the way of writemain.SH.

Follow-up to fbcaf61123069fe46010699dd41ca5f60f448361 at Nicholas's
suggestion.

13 years agoCorrect a copy&pasto - := is now an error, and no longer a warning.
Nicholas Clark [Sun, 28 Nov 2010 21:45:22 +0000 (21:45 +0000)]
Correct a copy&pasto - := is now an error, and no longer a warning.

13 years agoperldelta for d54f8cf785
Father Chrysostomos [Sun, 28 Nov 2010 20:43:03 +0000 (12:43 -0800)]
perldelta for d54f8cf785

13 years agoMake my $pi := 4; a syntax error.
Nicholas Clark [Fri, 26 Nov 2010 15:53:56 +0000 (15:53 +0000)]
Make my $pi := 4; a syntax error.

Previously it interpreted := as an empty attribute list, and issued a
deprecation warning. This change permits := to be used as a binding operator.

13 years agoperldelta for 75f5d3312
Father Chrysostomos [Sun, 28 Nov 2010 19:05:29 +0000 (11:05 -0800)]
perldelta for 75f5d3312

13 years agoperlfaq5: How do I make a temporary file name?
brian d foy [Sun, 28 Nov 2010 19:35:43 +0000 (13:35 -0600)]
perlfaq5: How do I make a temporary file name?

     Fixed up a half-completed change from typeglobs to lexical
     filehandles.

13 years agoRemove makeaperl, never used, a wrapper for ExtUtils::MakeMaker::makeaperl
Nicholas Clark [Sun, 28 Nov 2010 19:03:21 +0000 (19:03 +0000)]
Remove makeaperl, never used, a wrapper for ExtUtils::MakeMaker::makeaperl

makeaperl was added in perl5.000k, wrapped as makeaperl.SH in perl5.000l, but
neither used in the core build nor installed. All it does is acts as a
command-line wrapper to makeaperl() in ExtUtils::MakeMaker.

13 years ago++substr $re::VERSION, -1
Father Chrysostomos [Sun, 28 Nov 2010 18:54:49 +0000 (10:54 -0800)]
++substr $re::VERSION, -1

13 years agoTiny pod fix
Andreas J. Koenig [Sun, 28 Nov 2010 18:53:39 +0000 (10:53 -0800)]
Tiny pod fix

13 years agoperldelta up to 8e747b69
Father Chrysostomos [Sun, 28 Nov 2010 18:48:45 +0000 (10:48 -0800)]
perldelta up to 8e747b69

13 years agodisable t/io/eintr.t on windows
David Mitchell [Sun, 28 Nov 2010 18:33:51 +0000 (18:33 +0000)]
disable t/io/eintr.t on windows

Apperently it's causing smokers to hang, so skip until
I find out what's happening.

13 years agoGenerate perlmain.c using ExtUtils::Miniperl, instead of writemain.SH.
Nicholas Clark [Sun, 28 Nov 2010 17:15:58 +0000 (17:15 +0000)]
Generate perlmain.c using ExtUtils::Miniperl, instead of writemain.SH.

This allows writemain.SH to be removed. This also has the side effect of testing
that ExtUtils::Miniperl actually works. :-)

13 years agoSkip eintr.t on VMS.
Craig A. Berry [Sun, 28 Nov 2010 15:59:25 +0000 (09:59 -0600)]
Skip eintr.t on VMS.

It's doing select() on a pipe, but only sockets work with select(),
and the read() on a pipe is not interruptible by an alarm.  That's
probably because our pipe implementation is doing mailbox reads at
AST level but the alarm signal is also an AST and can't interrupt
another AST at the same mode.

13 years agoProper Makefile dependencies for the x2p/s2p rule.
Nicholas Clark [Sun, 28 Nov 2010 15:52:58 +0000 (15:52 +0000)]
Proper Makefile dependencies for the x2p/s2p rule.

Without this, a parallel make for a static build can fail, as x2p/Makefile
uses ../perl for a static build, but there was no rule to ensure that ../perl
was built.

A static build currently still fails some tests, I think because Encode doesn't
link all encodings staticly.

13 years agoRevert "Configure has a path to less and perl5db.pl can use it"
Rafael Garcia-Suarez [Sun, 28 Nov 2010 14:01:24 +0000 (15:01 +0100)]
Revert "Configure has a path to less and perl5db.pl can use it"

This reverts commit bf320d637919b3a2a72298748aa76e686e9b3e45.
Andy Dougherty points out that after Configure has run, the "less"
config variable is no longer useful, as described in Porting/Glossary.

13 years agoreg_fold.t: Add tests for simple Latin1 folds
Karl Williamson [Sun, 28 Nov 2010 05:14:05 +0000 (22:14 -0700)]
reg_fold.t: Add tests for simple Latin1 folds

fold_grind.t does a comprehensive series of tests, but it doesn't test
most characters, just a representative sample.  Add tests to reg_fold.t
to verify that the basic mapping tables work.

13 years agoreg_fold.t: Disable single char fold testing
Karl Williamson [Sun, 28 Nov 2010 05:12:13 +0000 (22:12 -0700)]
reg_fold.t: Disable single char fold testing

This is now more comprehensively done by fold_grind.t

13 years agofold_grind.t: Enable EXACTish tests
Karl Williamson [Sun, 28 Nov 2010 05:10:35 +0000 (22:10 -0700)]
fold_grind.t: Enable EXACTish tests

13 years agotest.pl: Add native to uni ord fcns
Karl Williamson [Sun, 28 Nov 2010 05:08:57 +0000 (22:08 -0700)]
test.pl: Add native to uni ord fcns

13 years agoregcomp.c: Handle EXACTFU nodes in optimizer
Karl Williamson [Sun, 28 Nov 2010 04:16:51 +0000 (21:16 -0700)]
regcomp.c: Handle EXACTFU nodes in optimizer

This patch also changes the optimizer to include the other member of a
fold pair in the bitmap.  Thus if 'b' is set under /i, so will 'B', and
vice versa.

13 years agoregcomp.c: Use hex instead of octal for debug ords
Karl Williamson [Sun, 28 Nov 2010 03:51:54 +0000 (20:51 -0700)]
regcomp.c: Use hex instead of octal for debug ords

The ordinals that are output in the debugging output have been in octal,
which is ok for the low controls, but for above Latin1, the standard is
hex, so this changes them all to correspond.  If desired the low
controls could be changed back to be in octal.

13 years agoFix debug output
Karl Williamson [Sun, 28 Nov 2010 03:49:49 +0000 (20:49 -0700)]
Fix debug output

The 'outside bitmap' message isn't orthogonal to the others, it is
independent.

13 years agoregcomp.c: Typo in comment
Karl Williamson [Sun, 28 Nov 2010 03:45:33 +0000 (20:45 -0700)]
regcomp.c: Typo in comment

13 years agoregcomp.c: Generate EXACTFU nodes
Karl Williamson [Sun, 28 Nov 2010 03:37:05 +0000 (20:37 -0700)]
regcomp.c: Generate EXACTFU nodes

13 years agoregcomp.c: remove unnecessary tests
Karl Williamson [Sun, 28 Nov 2010 02:40:58 +0000 (19:40 -0700)]
regcomp.c: remove unnecessary tests

The tests in the else are unnecessary as they comprise everything else
but what the 'if' says.

13 years agoregexec.c: Add handling for EXACTFU nodes
Karl Williamson [Sat, 27 Nov 2010 22:26:31 +0000 (15:26 -0700)]
regexec.c: Add handling for EXACTFU nodes

A later commit will cause these nodes to be generated.

This commit changes how to find the handling of the various nodes to
switch statements, hopefully for efficiency.