perl.git
8 years agoReplaced '1 while unlink' with 'unlink_all' in t/io/argv.t
Brad Gilbert [Tue, 7 Dec 2010 23:07:51 +0000 (17:07 -0600)] 
Replaced '1 while unlink' with 'unlink_all' in t/io/argv.t

8 years agoReplaced '1 while unlink' with 'unlink_all' in t/op/write.t
Brad Gilbert [Tue, 7 Dec 2010 22:17:02 +0000 (16:17 -0600)] 
Replaced '1 while unlink' with 'unlink_all' in t/op/write.t

8 years ago[perl #19135] string eval turns off readonlyness on lexicals
Father Chrysostomos [Wed, 8 Dec 2010 19:11:07 +0000 (11:11 -0800)] 
[perl #19135] string eval turns off readonlyness on lexicals

Don’t turn off readonliness on lexicals when freeing pad entries.

The readonliness is (prior to this commit) turned off explicitly in
pad_free under ithreads. See also bug #19022, which resulted from the
same change. There is some discussion there, too, but nobody seemed to
know exactly why the readonliness needed to be turned off.

Change 4761/2aa1bed, from January of 2000, added that SvREADONLY_off.
It is supposed to make sure that pad entries that were constants will
not be constants the next time they are used.

Dave Mitchell writes:
> I think...[this]...fix is correct (just removing the SvREADONLY_off).
> The issue it was trying to fix appears to have been properly fixed
> later by 3b1c21fabed159100271bd60bac3f870f5ac16af, which is why it's
> safe to remove it.

So this commit just deletes that code.

8 years agoIn Storable.xs fix #80074, caused by the Perl stack moving when expanded.
Nicholas Clark [Wed, 8 Dec 2010 11:34:49 +0000 (11:34 +0000)] 
In Storable.xs fix #80074, caused by the Perl stack moving when expanded.

cbc736f3c4431a04 refactored Storable::{net_,}pstore to simplify the logic in
their caller, Storable::_store(). However, it introduced a bug, by assigning
the result of do_store() to a location on the Perl stack, which fails if the
Perl stack moves, because it was reallocated. Fix this assumption, and add a
test which causes the Perl stack to expand during the call to do_store().

8 years agoregexec.c: Fix locale and \s
Karl Williamson [Mon, 6 Dec 2010 19:16:24 +0000 (12:16 -0700)] 
regexec.c: Fix locale and \s

The handling for locale \s and \S both assume that the character in
ASCII platforms at 0x20 is a space.  This is not necessarily so.

I'm guessing that the code was originally just copied and pasted from
the non-locale space handling code without thinking.  That code hard-coded
in the space character, probably to avoid an expensive swash fetch for a
common situation.

8 years agoregexec.c: Add missing handlers for locale \d
Karl Williamson [Mon, 6 Dec 2010 19:01:22 +0000 (12:01 -0700)] 
regexec.c: Add missing handlers for locale \d

regexec.c had some code to handle \d under locales, but not everywhere.

8 years agoregcomp.sym: Correct DIGITL, NDIGITL entries
Karl Williamson [Mon, 6 Dec 2010 18:56:49 +0000 (11:56 -0700)] 
regcomp.sym: Correct DIGITL, NDIGITL entries

These were missing that they were simple (matching exactly 1 character)
and have 0 regnode arguments

8 years agoregcomp.c: Add locale for \d
Karl Williamson [Mon, 6 Dec 2010 15:35:17 +0000 (08:35 -0700)] 
regcomp.c: Add locale for \d

The DIGITL and NDIGITL regnodes were not being generated; instead
regular DIGIT and NDIGIT regnodes were even under locale.

This means no one has probably ever used Perl on a locale that changed
the digits.

8 years agotoke.c: Fix EBCDIC problem
Karl Williamson [Sun, 5 Dec 2010 20:10:13 +0000 (13:10 -0700)] 
toke.c: Fix EBCDIC problem

Commit 356979f4a7d780fd67a92a9ca6c8659bd12e7168 failed to include two
instances in toke.c that needed the same treatment, i.e., converting
properly from I8 to native.

8 years agotoke.c: highlight problematic-mentioning comment
Karl Williamson [Sun, 5 Dec 2010 20:09:43 +0000 (13:09 -0700)] 
toke.c: highlight problematic-mentioning comment

8 years agouni/fold.t: Prevent [] from being optimized out
Karl Williamson [Sun, 5 Dec 2010 20:08:33 +0000 (13:08 -0700)] 
uni/fold.t: Prevent [] from being optimized out

This test hasn't been testing bracketed char classes because a single
character class gets optimized out.

8 years agoregcomp.c: Revert to using regcomp.sym order
Karl Williamson [Sun, 5 Dec 2010 20:07:13 +0000 (13:07 -0700)] 
regcomp.c: Revert to using regcomp.sym order

Now that the new nodes are grouped properly, we can use the fact that
the named backreferences all come after all the numbered backreferences,
as had been there before.

8 years agoregcomp.sym: Re-order for better grouping
Karl Williamson [Sun, 5 Dec 2010 19:28:21 +0000 (12:28 -0700)] 
regcomp.sym: Re-order for better grouping

The recently added regnodes are moved to their respective equivalence
classes, and the named backreferences are moved to just after the
numbered backreferences

8 years agoregcomp.sym: Remove misleading comments
Karl Williamson [Sun, 5 Dec 2010 03:48:24 +0000 (20:48 -0700)] 
regcomp.sym: Remove misleading comments

Yves informed me that in spite of the comments giving precise node
numbers, those numbers can change, so new nodes can be mixed in with
their kin.  Remove those comments

8 years agoAvoid setting PL_cv_has_eval unnecessarily
Father Chrysostomos [Wed, 8 Dec 2010 02:28:46 +0000 (18:28 -0800)] 
Avoid setting PL_cv_has_eval unnecessarily

Quoting op.c:

/* /$x/ may cause an eval, since $x might be qr/(?{..})/  */

But the (?{..})’s compilation is only ever reached in the scope of
‘use re 'eval'’, so we can avoid setting PL_cv_has_eval (and the
slight overhead that entails) when that pragma is off.

8 years ago[perl #66104] Bugs in extended regexp features
Father Chrysostomos [Wed, 8 Dec 2010 02:02:16 +0000 (18:02 -0800)] 
[perl #66104] Bugs in extended regexp features

More precisely: Make run-time (?{...}) inherit pragmata.

This commit makes Perl_sv_compile_2op_is_broken (nice name!) copy the
hints from PL_curcop if invoked during run time. Usually they are
inherited from the code that is currently being compiled (which works
for $foo =~ /(?{...})/), but the code currently being compiled is not
the enclosing scope at run time ($bar = '(?{...})'; $foo =~ $bar),
hence the need for copying in a similar manner to pp_entereval.

Theoretically this code should also have to avoid copying a statement
label, but goto inside a regexp eval does not currently work, so I
cannot prove or disprove that yet.

8 years agoThe docs for SvRX and SvRXOK still refered to magic and the code snippet
David Leadbeater [Wed, 8 Dec 2010 00:46:53 +0000 (16:46 -0800)] 
The docs for SvRX and SvRXOK still refered to magic and the code snippet
was wrong.

8 years agoDon't advertise PERL_HASH_SEED_EXPLICIT and NO_HASH_SEED
Jan Dubois [Tue, 7 Dec 2010 21:57:10 +0000 (13:57 -0800)] 
Don't advertise PERL_HASH_SEED_EXPLICIT and NO_HASH_SEED

These (commented out) options had been advertised/documented in the
Makefile to make it easy to produce binary compatible builds of
Perl 5.8.x after the hash key randomization feature was introduced.
There is no reason to point out these customization option in
a prominent space.

8 years agoAlways build with crypt() support on Windows
Jan Dubois [Tue, 7 Dec 2010 21:51:46 +0000 (13:51 -0800)] 
Always build with crypt() support on Windows

The sources did support to drop win32/fcrypt.c from a Perl distribution
and build without a crypt() implementation to account for the paranoia
around distribution of encryption technology.  However sources and binaries
have been released for at least 10 years with all the code in place, so
there is not much point in making it configurable.

8 years agoUncomment and fix up tests at the end of Storable's blessed.t
Nicholas Clark [Tue, 7 Dec 2010 14:44:27 +0000 (14:44 +0000)] 
Uncomment and fix up tests at the end of Storable's blessed.t

These tests have never been "live", having been added, commented out, in 2004
as part of 754c00caaffe2ec6. The trick to make them work is to delete from the
symbol table, rather than merely attempting to undefine the subroutine.

8 years agoUpdate ExtUtils-CBuilder to CPAN version 0.2800
Chris 'BinGOs' Williams [Tue, 7 Dec 2010 13:25:37 +0000 (13:25 +0000)] 
Update ExtUtils-CBuilder to CPAN version 0.2800

  [DELTA]

  0.2800 - Mon Dec  6 16:05:46 EST 2010

    - No changes from 0.27_07

  0.27_07 - Wed Sep 29 21:48:55 EDT 2010

    Fixed:

    - Fixed t/02-link.t on perl < 5.8

  0.27_06 - Mon Sep 27 15:29:54 EDT 2010

    Fixed:

    - Preserves exit status on VMS [Craig Berry]

    - Fix Win32 split_like_shell escaping [Christian Walde]

  0.27_05 - Wed Jul 28 15:29:59 EDT 2010

    Fixed:

    - Tests no longer fail if user has set the CC environment variable

  0.27_04 - Mon Jul 26 22:41:43 EDT 2010

    Added:
    - handle c compiler and c++ compiler separately
      (adds requirement for IPC::Cmd) [Jens Rehsack]

    Others:
    - rely on File::Temp::tempfile and File::Spec::tmpdir to
      get unique file name for checking for compiler
      [Jens Rehsack]

    - Code base modernization and substantial code coverage improvments
      [Jim Keenan]

8 years agoPerldelta for 22a3069
Florian Ragwitz [Tue, 7 Dec 2010 12:42:45 +0000 (13:42 +0100)] 
Perldelta for 22a3069

As contributed by Zefram on irc, with some pod markup added.

8 years agoGet rid of PERL_MSVCRT_READFIX
Jan Dubois [Tue, 7 Dec 2010 02:16:39 +0000 (18:16 -0800)] 
Get rid of PERL_MSVCRT_READFIX

The code works around a bug in very old versions of MSVCRT.dll.
The issue has been fixed a long time ago by Microsoft, so anyone
who has installed a Windows Service Pack in the last 10 years
or so won't be affected by the problem.

8 years agoRemove dead Windows code
Jan Dubois [Tue, 7 Dec 2010 01:13:37 +0000 (17:13 -0800)] 
Remove dead Windows code

8 years agostopgap hack for $@ as unwinding reason indicator
Zefram [Mon, 6 Dec 2010 22:21:19 +0000 (22:21 +0000)] 
stopgap hack for $@ as unwinding reason indicator

Set $@ early in a die as well as late, so that it continues to function
as an unreliable indicator of whether unwinding in progress is due to
an exception.  This is a stopgap arrangement, until the unwinding process
can be introspected properly.

8 years agoClarify this is the Perl 5 interpreter for manpage and META
David Golden [Mon, 6 Dec 2010 20:41:20 +0000 (15:41 -0500)] 
Clarify this is the Perl 5 interpreter for manpage and META

8 years agoregcomp.c: Fix longjmp-related warnings
Karl Williamson [Sun, 5 Dec 2010 23:13:59 +0000 (16:13 -0700)] 
regcomp.c: Fix longjmp-related warnings

This patch should get rid of the compiler warnings recently introduced.

Another way to handle the pm_flags warning is to declare it to be
volatile, but not all compilers that perl uses apparently have that, so
I chose a longer way of introducting a new variable that isn't changed
within the jumpable area.  The others were fixed by not initializing
them before the jumpable area.

8 years agoTo-do tests for abnormal exiting from (?{})
Father Chrysostomos [Sun, 5 Dec 2010 03:27:27 +0000 (19:27 -0800)] 
To-do tests for abnormal exiting from (?{})

8 years agoHideous to-do tests for (?{}) scoping issues
Father Chrysostomos [Sun, 5 Dec 2010 02:11:24 +0000 (18:11 -0800)] 
Hideous to-do tests for (?{}) scoping issues

8 years agoUn-TODO and un-SKIP the [perl #22354] tests
Father Chrysostomos [Sat, 4 Dec 2010 20:43:06 +0000 (12:43 -0800)] 
Un-TODO and un-SKIP the [perl #22354] tests

We can run these now that the regexp engine is reëntrant.

8 years agoEmit warning for use re "/ul"
Father Chrysostomos [Sat, 4 Dec 2010 20:38:38 +0000 (12:38 -0800)] 
Emit warning for use re "/ul"

This was an omission on my part.

This should perhaps be an error, but I am just following what
‘use re’ already does with ‘use re "whatever"’.

8 years agoregexec.c: Clean up initialized vars in switch
Karl Williamson [Sat, 4 Dec 2010 18:18:23 +0000 (11:18 -0700)] 
regexec.c: Clean up initialized vars in switch

Commit cf5c578b88887f19f7fba519bbc12296 attempted to clean up d7ef4b73,
but did not get it quite right.  This fixes it, after consultation with
the author.

8 years agoregcomp.c: small efficiency, portability fix
Karl Williamson [Fri, 3 Dec 2010 17:46:19 +0000 (10:46 -0700)] 
regcomp.c: small efficiency, portability fix

The code had hard-coded into it the ascii platform values for possible
start bytes.  There are macros that do that portably with no branches

8 years agoregcomp.c: small efficiency improvement
Karl Williamson [Fri, 3 Dec 2010 17:44:55 +0000 (10:44 -0700)] 
regcomp.c: small efficiency improvement

The inline function repeats the test removed here.

8 years agoregcomp.c: small efficiency gain
Karl Williamson [Fri, 3 Dec 2010 17:36:22 +0000 (10:36 -0700)] 
regcomp.c: small efficiency gain

The 7-bit test operations always fail on non-ascii characters, therefore
it isn't needed to test each such character individually.  The loops
that do that and then set a bit for each character can therefore stop at
127 instead of 255 (the bitmaps are initialized to all zeros).  For
EBCDIC, the same applies, except that we have to map those 7-bits
characters to the 8-bit EBCDIC range.  This creates an extra array
lookup for each ebcdic character, but half as many times through the
loop.

For the complement of the 7-bit operations, we know that they will all
be set for the non-ascii characters.  Therefore, we don't need to test,
we can just unconditionally set those bits.  It would not be a good idea
to just do a memset on that range under /i, as each character that gets
chosen may have its fold added as well and that has to be looked up
individually.

8 years agoregecomp, regexec: Use mnemonic character names
Karl Williamson [Fri, 3 Dec 2010 16:32:14 +0000 (09:32 -0700)] 
regecomp, regexec: Use mnemonic character names

This patch replaces hex ordinals by macros containing the character
names, for clarity and portability to EBCDIC.

8 years agoutf8.h: Need to make sure macro result fits in byte
Karl Williamson [Fri, 3 Dec 2010 16:15:59 +0000 (09:15 -0700)] 
utf8.h: Need to make sure macro result fits in byte

The UTF8_TWO_BYTE_HI_nocast() macro has an error in it, in that the
START_MARK is larger than a byte, and only the last 8 bits of it are
relevant.  This hasn't caused a problem because the macro hasn't been
called directly, but from other macros that make sure the result gets
cast to a U8.

8 years agoutf8.h: Add whitespace for readability
Karl Williamson [Fri, 3 Dec 2010 16:15:22 +0000 (09:15 -0700)] 
utf8.h: Add whitespace for readability

8 years agoregcomp.c: Move code out of longjump area
Karl Williamson [Fri, 3 Dec 2010 15:54:37 +0000 (08:54 -0700)] 
regcomp.c: Move code out of longjump area

This code should be done before the setjump to avoid the longjump
clobbering it.

8 years ago[perl #80220] order of hash keys wrong in perlfunc.pod
Peter J. Holzer [Sat, 4 Dec 2010 19:40:23 +0000 (11:40 -0800)] 
[perl #80220] order of hash keys wrong in perlfunc.pod

8 years agoAdd Peter Holzer to AUTHORS
Father Chrysostomos [Sat, 4 Dec 2010 19:39:16 +0000 (11:39 -0800)] 
Add Peter Holzer to AUTHORS

8 years agoperldelta for Storable saving a code reference as UTF-8
David Leadbeater [Fri, 3 Dec 2010 14:09:19 +0000 (14:09 +0000)] 
perldelta for Storable saving a code reference as UTF-8

8 years agoUp Storable version to 2.25
David Leadbeater [Fri, 3 Dec 2010 14:16:38 +0000 (14:16 +0000)] 
Up Storable version to 2.25

8 years agoUp Storable minor version
David Leadbeater [Fri, 3 Dec 2010 09:20:52 +0000 (09:20 +0000)] 
Up Storable minor version

The change for storing UTF-8 coderefs necessitates this change.

8 years agoMake Storable correctly store coderefs with UTF-8 flag
David Leadbeater [Fri, 3 Dec 2010 09:01:55 +0000 (09:01 +0000)] 
Make Storable correctly store coderefs with UTF-8 flag

8 years agomake empty string regexp stringify to the same thing regardless of unicode flags
Yves Orton [Sat, 4 Dec 2010 14:26:38 +0000 (15:26 +0100)] 
make empty string regexp stringify to the same thing regardless of unicode flags

8 years agomake the jump point a little more obvious in a comment
Yves Orton [Sat, 4 Dec 2010 13:48:13 +0000 (14:48 +0100)] 
make the jump point a little more obvious in a comment

8 years agoRemove the Makefile command to touch perlmain.c after running makedepend.
Nicholas Clark [Fri, 3 Dec 2010 21:07:17 +0000 (21:07 +0000)] 
Remove the Makefile command to touch perlmain.c after running makedepend.

Jerry D. Hedden was right to question whether this was now superfluous, because
as best I can tell it was *always* superfluous. Perl 5.000 shipped with a
Makefile rule to build perlmain.c using a shell script, with a dependency for
perlmain.c on makefile. [Lowercase makefile, now abstracted as $(FIRSTMAKEFILE).
This is generated by makedepend from Makefile, by calculating the dependency
rules to append to it.] The rule to generate perlmain.c had a prerequisite on
$(FIRSTMAKEFILE), and in turn $(FIRSTMAKEFILE) has a dependency on $(c), which
included perlmain.c. Hence there was a circular dependency, and the "solution"
to avoiding repeated rebuilds was to touch perlmain.c (if it exists), after
running makedepend.

As best I can tell there is no *actual* dependency for the correct generation
of perlmain.c on the contents of $(FIRSTMAKEFILE), as the relevant variables
are the same in both Makefile and $(FIRSTMAKEFILE). Hence this command should
have been removed, along with the dependency, years ago. However, no-one
spotted this until Jerry observed that fbcaf61123069fe4 changed the build
rules, and removed the dependency, but not the touch command.

8 years ago[perl #71286] fallback/nomethod failures
Michael Breen [Tue, 30 Nov 2010 17:48:50 +0000 (17:48 +0000)] 
[perl #71286] fallback/nomethod failures

This fixes two bugs related to overload and fallback on binary ops.

First, if *either* of the args has a 'nomethod', this will now be used;
previously the RH nomethod was ignored if the LH arg had fallback value
of undef or 1.

Second, if neither arg has a 'nomethod', then the fallback to the built-in
op will now only occur if *both* args have fallback => 1; previously it
would do so if the *RHS* had fallback => 1. Clearly the old behaviour was
wrong, but there were two ways to fix this: (a) *both* args have fallback
=> 1; (b) *either* arg has fallback=> 1. It could be argued either way,
but the the choice of 'both' was that classes that hadn't set 'fallback =>
1' were implicitly implying that their objects aren't suitable for
fallback, regardless of the presence of conversion methods.

8 years agoThis commit doesn't really need a delta entry
Florian Ragwitz [Fri, 3 Dec 2010 11:43:25 +0000 (12:43 +0100)] 
This commit doesn't really need a delta entry

8 years agoRemove lots of unused, VMS-specific variables.
Craig A. Berry [Fri, 3 Dec 2010 04:24:21 +0000 (22:24 -0600)] 
Remove lots of unused, VMS-specific variables.

Brought to you by -Duser_c_flags=/WARN=(ENABLE=LEVEL5,INFORMATIONAL=ALL)

8 years agoFix K&R-style function declaration.
Craig A. Berry [Fri, 3 Dec 2010 04:20:41 +0000 (22:20 -0600)] 
Fix K&R-style function declaration.

8 years agoRemove unused include file from vms/vms.c.
Craig A. Berry [Fri, 3 Dec 2010 04:19:04 +0000 (22:19 -0600)] 
Remove unused include file from vms/vms.c.

8 years agoDocument the explicit * in tie *$handle
Father Chrysostomos [Fri, 3 Dec 2010 02:02:06 +0000 (18:02 -0800)] 
Document the explicit * in tie *$handle

8 years agoperldelta for the tie $handle changes
Father Chrysostomos [Fri, 3 Dec 2010 01:51:44 +0000 (17:51 -0800)] 
perldelta for the tie $handle changes

8 years agoDeprecate tie $handle without *
Father Chrysostomos [Thu, 2 Dec 2010 17:52:36 +0000 (09:52 -0800)] 
Deprecate tie $handle without *

8 years agoFix up tests to work around tie $handle
Father Chrysostomos [Thu, 2 Dec 2010 17:38:02 +0000 (09:38 -0800)] 
Fix up tests to work around tie $handle

8 years agoRevert "[perl #77496] tied gets scalars and globs confused"
Father Chrysostomos [Thu, 2 Dec 2010 17:36:48 +0000 (09:36 -0800)] 
Revert "[perl #77496] tied gets scalars and globs confused"

This reverts commit 8752206e276cffe588c0932b5a9f2331640e8447.

8 years agoRevert "[perl #77688] tie $scalar can tie a handle"
Father Chrysostomos [Thu, 2 Dec 2010 17:36:41 +0000 (09:36 -0800)] 
Revert "[perl #77688] tie $scalar can tie a handle"

This reverts commit 9aa8b00892d81bb5e94565d3cb9841dd57b7b9cf.

8 years agoRevert "Make untie check the FAKE flag on globs"
Father Chrysostomos [Thu, 2 Dec 2010 17:36:35 +0000 (09:36 -0800)] 
Revert "Make untie check the FAKE flag on globs"

This reverts commit 830748013f81bcc28d145baf4024efd1b6537704.

8 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.

8 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.

8 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

8 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).

8 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'

8 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.

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

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

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

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

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

8 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.

8 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.

8 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.

8 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.

8 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

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

8 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.

8 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.

8 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

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

8 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

8 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.

8 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

8 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

8 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

8 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

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

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

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

8 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.

8 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.

8 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.

8 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

8 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

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

8 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

8 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.

8 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

8 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