perl.git
4 years agoopen FOO || die; doesn't need a special identifier parser.
Brian Fraser [Tue, 5 Mar 2013 23:40:34 +0000 (20:40 -0300)] 
open FOO || die; doesn't need a special identifier parser.

Turns out this can just use scan_word().

4 years agoRestrict the valid identifier syntax, fix some identifier bugs.
Brian Fraser [Tue, 5 Mar 2013 21:18:49 +0000 (18:18 -0300)] 
Restrict the valid identifier syntax, fix some identifier bugs.

Fixes:
    * Length-one identifiers are now restricted to
        [\p{XIDS}\p{POSIX_Punct}\p{POSIX_Digit}\p{POSIX_Cntrl}]
      plus, if under 'no utf8', the 128 non-ASCII characters in the
      Latin1 range.
    * Identifiers that start with ASCII letters can be followed with
      XIDC characters

(The committer made some small edits in the pod)

4 years agoFix several differences in the parsing of $.. and ${...}
Brian Fraser [Tue, 5 Mar 2013 20:46:52 +0000 (17:46 -0300)] 
Fix several differences in the parsing of $.. and ${...}

Namely:
    * The first character in ${...} used to have no restrictions
    * ${foo:bar} used to be legal
    * ${foo::bar} worked, but ${foo'bar} didn't

And possibly other subtle, so far undiscovered bugs. This was
resolved by simply using the same code for both things.

Note that this commit is not entirely useful on its own; While
tests pass, it requires changes from the following commit to work
entirely.

4 years ago(UN)LIKELY branch prediction hints in a few strategic places
Steffen Mueller [Wed, 6 Mar 2013 19:39:43 +0000 (20:39 +0100)] 
(UN)LIKELY branch prediction hints in a few strategic places

This adds branch prediction hints to a few strategic places such as
growing stack or strings, some exception handling, and a few hot
functions such as sv_upgrade.

This is not exhaustive by any means.

4 years agoExtremely minor pp_goto optimization
Steffen Mueller [Wed, 6 Mar 2013 17:42:17 +0000 (18:42 +0100)] 
Extremely minor pp_goto optimization

Makes use of the fact that the exception case is both rare and okay to
be penalized (a tiny bit) instead of the common case doing an extra
branch.

4 years agoPL_sv_objcount deprecation notice
Steffen Mueller [Thu, 28 Feb 2013 17:25:19 +0000 (18:25 +0100)] 
PL_sv_objcount deprecation notice

4 years agoPrepare PL_sv_objcount removal
Steffen Mueller [Thu, 28 Feb 2013 17:23:32 +0000 (18:23 +0100)] 
Prepare PL_sv_objcount removal

This used to keep track of all objects. At least by now, that is
for no particularly good reason. Just because it could avoid a
bit of work during global destruction if no objects remained.
Let's do less work at run-time instead.

The interpreter global will remain for one deprecation cycle.

4 years agobetter POD for SvPVX, pre-5.9.3 Perls
Daniel Dragan [Wed, 6 Mar 2013 03:51:01 +0000 (22:51 -0500)] 
better POD for SvPVX, pre-5.9.3 Perls

PV/char * was moved to SV head in commit 7b2c381cf3 . Prior to this, PV
was in SV body, and sv_any can be NULL, so accessing SvPVX without
checking type on old Perls was a SEGV. Make a note of this so others
don't find out the hard way.

4 years agoSet PL_stderrgv to NULL if it is freed.
Nicholas Clark [Thu, 28 Feb 2013 14:12:47 +0000 (15:12 +0100)] 
Set PL_stderrgv to NULL if it is freed.

Without this, it's possible to hit assertion failures when global destruction
attempts to skip the PVIO for PL_stderrgv while cleaning up all objects.

4 years agoUpdate Digest-SHA to CPAN version 5.83
Chris 'BinGOs' Williams [Tue, 5 Mar 2013 14:49:52 +0000 (14:49 +0000)] 
Update Digest-SHA to CPAN version 5.83

  [DELTA]

  5.83  Mon Mar  4 08:12:00 MST 2013
    - removed code for standalone C operation (no longer used)
        -- eliminates need for external symbols
        -- consolidates SHA and HMAC code
        -- reduces size of object files
        -- thanks to Marc Lehmann for suggestions
    - tweaked Makefile.PL to show dependencies of SHA.c

4 years agoBump File::Copy version as the contents have changed
Chris 'BinGOs' Williams [Tue, 5 Mar 2013 11:57:20 +0000 (11:57 +0000)] 
Bump File::Copy version as the contents have changed

4 years agoUpdate Encode to CPAN version 2.49
Chris 'BinGOs' Williams [Tue, 5 Mar 2013 11:45:09 +0000 (11:45 +0000)] 
Update Encode to CPAN version 2.49

  [DELTA]

  $Revision: 2.49 $ $Date: 2013/03/05 03:12:49 $
  ! Encode.xs
    Addressed: Encoding objects leak memory if decoding fails
    https://github.com/dankogai/p5-encode/issues/8

4 years agoAdd Jasmine Ahuja to AUTHORS.
James E Keenan [Tue, 5 Mar 2013 00:34:28 +0000 (19:34 -0500)] 
Add Jasmine Ahuja to AUTHORS.

4 years agoAdded descriptions to tests lacking them
Jasmine Ahuja [Mon, 4 Mar 2013 03:36:24 +0000 (22:36 -0500)] 
Added descriptions to tests lacking them

For:  RT #117011

4 years agofix pod: add missing 'C' of inline code tags
reneeb [Mon, 4 Mar 2013 07:19:13 +0000 (08:19 +0100)] 
fix pod: add missing 'C' of inline code tags

4 years agoPorting/corelist.pl: fix a die error message
David Mitchell [Mon, 4 Mar 2013 01:00:05 +0000 (01:00 +0000)] 
Porting/corelist.pl: fix a die error message

One particular die() just printed a filename, without saying what was
wrong with it. Which was a bit confusing.

4 years agorelease_managers_guide: clarify YAML regeneration
David Mitchell [Mon, 4 Mar 2013 00:58:39 +0000 (00:58 +0000)] 
release_managers_guide: clarify YAML regeneration

Make it clear that you use the current perl, not a system perl,
and that the result may not have any changes.

4 years agorun regen_perly
David Mitchell [Sun, 3 Mar 2013 21:47:50 +0000 (21:47 +0000)] 
run regen_perly

this is needed due to the change to regen_perly.pl. Otherwise
regen.t starts complaining. The actual diff is just noise.

4 years agoAdd return statements where missing in doio.c IPC functions.
Craig A. Berry [Sun, 3 Mar 2013 02:07:51 +0000 (20:07 -0600)] 
Add return statements where missing in doio.c IPC functions.

These are code paths not seen on platforms that have msg* and
shm* functions, and of course we're croaking before returning
so returning is pointless, but the VMS C compiler insists that
we have return statments for non-void functions anyway, and
that compiler now sees these functions since enabling sem*.

4 years agoAdd NY Perl Hackathon participant to AUTHORS.
James E Keenan [Sun, 3 Mar 2013 19:32:13 +0000 (14:32 -0500)] 
Add NY Perl Hackathon participant to AUTHORS.

4 years agoAdded descriptions to tests lacking them.
Andrew Tam [Sat, 2 Mar 2013 21:13:48 +0000 (16:13 -0500)] 
Added descriptions to tests lacking them.

4 years agoupdate regen_perly.pl to recognise bison 2.7
Ruslan Zakirov [Sun, 3 Mar 2013 08:46:08 +0000 (12:46 +0400)] 
update regen_perly.pl to recognise bison 2.7

4 years agoensure PL_sawampersand is exported.
David Mitchell [Sun, 3 Mar 2013 18:30:40 +0000 (18:30 +0000)] 
ensure PL_sawampersand is exported.

Commit 1a904fc88069e249a4bd0ef196a3f1a7f549e0fe disabled
PL_sawampersand by default, since it was redundant with COW enabled.
However the mechanism to optionally re-enable it (PERL_SAWAMPERSAND)
didn't actually export the var, due to a typo.

With the new default of disabling COW but enabling PL_sawampersand,
this broke perl on builds where exports matters (and broke linux in
non-threaded builds, where porting/globvar.t detects this).

4 years agoConfigure: bail out when neither stdarg.h nor varargs.h
Aaron Crane [Mon, 4 Feb 2013 17:14:20 +0000 (17:14 +0000)] 
Configure: bail out when neither stdarg.h nor varargs.h

Perl uses variadic functions, so we need at least one of the relevant
mechanisms available; for this reason, the CompCert C compiler is unsuitable
for our purposes.

If the person building Perl wants to carry on regardless, they can use the
"-K" option.

This partly addresses RT#112494.

4 years agoUpdate IPC-Cmd to CPAN version 0.80
Chris 'BinGOs' Williams [Sun, 3 Mar 2013 09:18:12 +0000 (09:18 +0000)] 
Update IPC-Cmd to CPAN version 0.80

  [DELTA]

  Changes for 0.80    Sat Mar  2 22:03:49 GMT 2013
  =================================================
  * Use File::Spec->path instead of relying on
    Config (William Orr)

4 years agofixed minor typo in delta
H.Merijn Brand [Sun, 3 Mar 2013 08:34:17 +0000 (09:34 +0100)] 
fixed minor typo in delta

4 years agodeparse.t: mask STDERR noise on lex sub TODO test
David Mitchell [Sun, 3 Mar 2013 00:57:07 +0000 (00:57 +0000)] 
deparse.t: mask STDERR noise on lex sub TODO test

A Deparse TODO test which tries to deparse lexical subs, produce a bunch of
"unexpected OP_CLONE" etc on STDERR (since it doesn't handle those new ops
yet). Capture and skip those warnings for now.

Also, add 'no warnings "experimental::lexical_subs"'
to stop a warning about using an experimental feature.

4 years agoStop SEGV on 'our sub { syntax error }'
Peter Martini [Sun, 3 Mar 2013 00:09:58 +0000 (00:09 +0000)] 
Stop SEGV on 'our sub { syntax error }'

Fix for RT #116981. If a sub is declared with our, the name is added
to the stash early, and left with a NULL ptr if there's a syntax error
while compiling it.

Since the only time it becomes an issue is when that same name
is used in the same scope after a syntax error, what happens in
the pad is not particularly important.  The simple fix is to
simply fall back to treating it like a bareword, and pretending
it was never added to the pad in the first place.

4 years agoEnable sem* functions in configure.com for 8.4+.
Craig A. Berry [Sun, 3 Mar 2013 00:00:20 +0000 (18:00 -0600)] 
Enable sem* functions in configure.com for 8.4+.

They became available in VMS v8.4 in 2010.

4 years agoFix declaration after statement in vms.c's Perl_my_chdir
Craig A. Berry [Sat, 2 Mar 2013 23:55:13 +0000 (17:55 -0600)] 
Fix declaration after statement in vms.c's Perl_my_chdir

And while we're there, set errno appropriately for the empty string
input case.

4 years agoDisable by default the new Copy-on-Write for 5.18
David Mitchell [Sat, 2 Mar 2013 23:31:13 +0000 (23:31 +0000)] 
Disable by default the new Copy-on-Write for 5.18

It was felt that the new COW feature wasn't ready to be enabled be default
in 5.18: principally because too much XS code will assume it can just
manipulate the PVX buffer of an SVf_POK SV.

See RT #116569 for the discussion.

4 years agoSynchronise Env with CPAN
Florian Ragwitz [Sat, 2 Mar 2013 17:10:58 +0000 (12:10 -0500)] 
Synchronise Env with CPAN

4 years agoSynchronise bignum with CPAN
Florian Ragwitz [Sat, 2 Mar 2013 16:58:28 +0000 (11:58 -0500)] 
Synchronise bignum with CPAN

4 years agoSynchronise VERSIONs of all bignum modules
Florian Ragwitz [Sat, 2 Mar 2013 16:52:57 +0000 (11:52 -0500)] 
Synchronise VERSIONs of all bignum modules

4 years agoFix signed/unsigned mismatch in vms/vms.c.
Craig A. Berry [Fri, 1 Mar 2013 21:06:47 +0000 (15:06 -0600)] 
Fix signed/unsigned mismatch in vms/vms.c.

4 years agoAdd void casts to VMS-specific bail-out macro.
Craig A. Berry [Fri, 1 Mar 2013 18:54:07 +0000 (12:54 -0600)] 
Add void casts to VMS-specific bail-out macro.

The macro used in vms/vms.c for errors from native calls deemed
too severe to handle was calling fprintf without checking return
values, which caused a huge pile of warnings when compiling with
/WARN=ENABLE=LEVEL5. So suppress those warnings with a void cast.

4 years agorevert: Benchmark iteration warnings should warn
David Mitchell [Fri, 1 Mar 2013 16:31:06 +0000 (16:31 +0000)] 
revert: Benchmark iteration warnings should warn

This commit reverts:

    commit a820780c62918236069b3b55502640c99a9e812a
    Author:     David Golden <dagolden@cpan.org>
    AuthorDate: Tue Feb 5 22:23:37 2013 -0500
    Commit:     David Golden <dagolden@cpan.org>
    CommitDate: Tue Feb 5 22:49:36 2013 -0500

        Benchmark iteration warnings should warn, not print

because the warnings appearing on STDERR weren't being trapped by
Benchmark.t (see [perl #116831]). Revert for now, and re-address after
5.18.

4 years agoSkip chflags tests in filetests.t on dragonflybsd
Chris 'BinGOs' Williams [Fri, 1 Mar 2013 15:48:11 +0000 (15:48 +0000)] 
Skip chflags tests in filetests.t on dragonflybsd

DragonflyBSD's file tests don't seem to be chflags-aware:

  $ touch foo
  $ if [ -w foo ]; then echo "Yes"; fi
  Yes
  $ chflags uchg foo
  $ if [ -w foo ]; then echo "Yes"; fi
  Yes

versus FreeBSD:

  $ touch foo
  $ if [ -w foo ]; then echo "Yes"; fi
  Yes
  $ chflags uchg foo
  $ if [ -w foo ]; then echo "Yes"; fi
  $

4 years agoSkip tests in File::Copy tests on DragonflyBSD too
Chris 'BinGOs' Williams [Fri, 1 Mar 2013 14:22:45 +0000 (14:22 +0000)] 
Skip tests in File::Copy tests on DragonflyBSD too

Setting 0100, 0300 and 0500 on files is totally non-reversable

4 years agoAdd Anton Nikishaev to AUTHORS: RT #116959.
James E Keenan [Fri, 1 Mar 2013 02:28:56 +0000 (21:28 -0500)] 
Add Anton Nikishaev to AUTHORS: RT #116959.

4 years agoperldtrace.pod: fix example code
Anton Nikishaev [Wed, 27 Feb 2013 08:01:07 +0000 (12:01 +0400)] 
perldtrace.pod: fix example code

4 years ago[PATCH] Bump Locale-Codes from 3.24 to 3.25
Sullivan Beck [Thu, 28 Feb 2013 19:06:05 +0000 (19:06 +0000)] 
[PATCH] Bump Locale-Codes from 3.24 to 3.25

Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
4 years agoRevert "Bump Pod::Html to 1.19"
Chris 'BinGOs' Williams [Thu, 28 Feb 2013 17:51:14 +0000 (17:51 +0000)] 
Revert "Bump Pod::Html to 1.19"

This reverts commit 46b428ce5128df764ce460c744a3c4f0f9727b5b.

4 years agoUpdate Pod-Simple to CPAN version 3.26
Chris 'BinGOs' Williams [Thu, 28 Feb 2013 15:23:20 +0000 (15:23 +0000)] 
Update Pod-Simple to CPAN version 3.26

  [DELTA]

  2013-02-27   David E. Wheeler <david@justatheory.org>
    * Release 3.26

    Fixed another test script to skip all tests when Encode is not
    installed.

    Added 'encoding()' and 'detected_encoding()' to return the current
    encoding and the encoding actually to decode the input file. The
    value from "=encoding" is also now kept in the output tree. Patch
    from Patrice Dumas (RT #74390).

  2013-02-16   David E. Wheeler <david@justatheory.org>
    * Release 3.25

    Improved the warning when "=item" types mismatch within one
    "=over"/"=back" block.

  2013-02-14   David E. Wheeler <david@justatheory.org>
    * Release 3.24

    Fixed corner case bug for unlikely scenario in which non-UTF-8
    text could be parsed as UTF-8. Grant McLean.

    XHTML IDs can no longer end with punctuation. Thanks to Smylers
    for the patch.

    Fixed test failure on Perl 5.6.2.

    Changed the default installation location from "perl" to "site" on
    5.12 and higher, since as of that version of Perl, dual-life
    modules no longer need to be installed in "perl" to replace
    in-core versions. Patch from tzccinct.

    Fixed hash order dependency test failures on Perl 5.17. Thanks to
    Yves Orton for the patch.

    Inlined the code that tries to guess a Pod file's encoding. This
    reduces the time Pod::Simple takes to build the core Perl
    documentation by 15-20%. Thanks to Dagfinn Ilmari Manns√•ker for
    the patch!

    Added a warning when "=item" types mismatch within one
    "=over"/"=back" block. Marc Green/Google Summer of Code, with
    assist from RJBS.

    Fixed regression introduced in 3.22 in which "C< >" tags were
    incorrectly treated as verbatim text in table of contents items
    emitted by Pod::Simple::XHTML. Thanks to Randy Stauner for the
    report and to Thomas Sibley for the fix!

    Loosened up the matching of "L< >" tags for man pages so that they
    allow names with dots, underscores, and any other chararacters
    other than "/", just so long as they end in '[(][-a-zA-Z0-9]+[)]'.
    Thanks to Dave Rolsky and Kevin Ryde for the reports (RT #82975 &
    RT #82972).

    Fixed inverted mapping of "keyboard" to "kbd" in
    Pod::Simple::HTML. Thanks to Robert Boisvert for the bug report
    (RT #79201).

    Added two new Tagmap entries to Pod::Simple::HTML: "preformat"
    maps to "pre", and "teletype" maps to "tt". Suggested by Robert
    Boisvert (RT #79201).

    "X< >" tags are now ignored by the pull parser when it searches
    for titles, as is any trailing whitespace. Thanks to Patrice Dumas
    for the report (RT #74389).

4 years agoBump Pod::Html to 1.19
Chris 'BinGOs' Williams [Thu, 28 Feb 2013 15:22:25 +0000 (15:22 +0000)] 
Bump Pod::Html to 1.19

4 years agocorrect Pod-Html tests for new Pod-Simple output
Ricardo Signes [Tue, 19 Feb 2013 03:33:05 +0000 (22:33 -0500)] 
correct Pod-Html tests for new Pod-Simple output

Okay, look, I know we should really fix the tests to be more
generic, but that's just not going to happen right now.  Hopefully,
we can ditch Pod-Html before this comes up again.  Maintaining it
as is is sort of a drag.

4 years agoUpdate Text-ParseWords to CPAN version 3.28
Chris 'BinGOs' Williams [Thu, 28 Feb 2013 12:22:47 +0000 (12:22 +0000)] 
Update Text-ParseWords to CPAN version 3.28

  [DELTA]

  3.28
  Better diag information in pod.t
  More metadata in META.yml

4 years agoForgot to update Maintainers.pl for podlators update
Chris 'BinGOs' Williams [Thu, 28 Feb 2013 12:14:14 +0000 (12:14 +0000)] 
Forgot to update Maintainers.pl for podlators update

4 years agoUpdate podlators to CPAN version 2.5.1
Chris 'BinGOs' Williams [Thu, 28 Feb 2013 10:27:18 +0000 (10:27 +0000)] 
Update podlators to CPAN version 2.5.1

  [DELTA]

  2013-02-27  Russ Allbery  <rra@stanford.edu>

    * VERSION: podlators 2.5.1 released.

    * t/color.t: Add Z<> to tag width test to avoid triggering the new
    Pod::Parser warning about numeric items in description lists.
    * t/overstrike.t: Likewise.
    * t/termcap.t: Likewise.
    * t/man.t: Remove the test for proper handling of lists that start
    with a non-bullet and then have an item that looks like a bullet.
    This now triggers a warning in Pod::Simple.  Move it to...
    * t/man-options.t: ...here, where we can configure the parser to
    ignore errors and test that the output is correct.

4 years agoSuppress experimental warning for my $_ in Devel::PPPort's tests.
Nicholas Clark [Thu, 28 Feb 2013 09:57:30 +0000 (10:57 +0100)] 
Suppress experimental warning for my $_ in Devel::PPPort's tests.

This warning was missed by commit dcd695b6ec3bf411. The patch is effectively
an update of commit 0d7b125b0c3d6ada. It requires hoop jumping with if,
because the "experimental::lexical_topic" warnings category is unrecognised
and hence a fatal error on earlier perls.

4 years agoMerge branch 'blead' of jkeenan@perl5.git.perl.org:/perl into blead
James E Keenan [Thu, 28 Feb 2013 02:28:59 +0000 (21:28 -0500)] 
Merge branch 'blead' of jkeenan@perl5.git.perl.org:/perl into blead

4 years agoLoosen the passing requirement for a regex.
James E Keenan [Thu, 28 Feb 2013 01:19:54 +0000 (20:19 -0500)] 
Loosen the passing requirement for a regex.

RT #116961: Olivier Mengu√©reported many test failures when installing
Data-Dumper v2.43 on pre-5.16.0 versions of Perl.  This patch addresses only
one of those issues by relaxing what is expected in a pattern match:
'42' vs. 42.  It doesn't matter for the test in question because what we are
testing is the "annotation" of array elements with their indices.

4 years ago\N is no longer experimental
Karl Williamson [Thu, 28 Feb 2013 01:27:23 +0000 (18:27 -0700)] 
\N is no longer experimental

4 years agoUse native-size integers for some global counters
Steffen Mueller [Wed, 27 Feb 2013 17:12:28 +0000 (18:12 +0100)] 
Use native-size integers for some global counters

It may be unlikely that a Perl program will hit 2 billion SVs, but by
the time that 5.18 is ancient history, it's looking a lot more likely.
This makes two global counters use native-size ints.

I'm preserving signedness just for hysterical raisins: It might be
deliberate.

4 years agoAdd documentation on the advantages of perldoc for man users to perl.pod
H.Merijn Brand [Wed, 27 Feb 2013 20:17:02 +0000 (21:17 +0100)] 
Add documentation on the advantages of perldoc for man users to perl.pod

Thanks.

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
4 years agoNote what incrementing the op_type actually does
Rafael Garcia-Suarez [Wed, 27 Feb 2013 12:52:01 +0000 (13:52 +0100)] 
Note what incrementing the op_type actually does

This comment is intended to improve the greppability of the code.

4 years agoMerge branch 'blead' of jkeenan@perl5.git.perl.org:/perl into blead
James E Keenan [Wed, 27 Feb 2013 12:33:32 +0000 (07:33 -0500)] 
Merge branch 'blead' of jkeenan@perl5.git.perl.org:/perl into blead

4 years agominor perlipc doc fix missing semicolon
Scott Lanning [Tue, 26 Feb 2013 20:53:04 +0000 (23:53 +0300)] 
minor perlipc doc fix missing semicolon

4 years agoAdd alternate email address for contributor.
James E Keenan [Wed, 27 Feb 2013 02:49:54 +0000 (21:49 -0500)] 
Add alternate email address for contributor.

4 years agoRemove /Net from lib/.gitignore
Chris 'BinGOs' Williams [Tue, 26 Feb 2013 19:38:14 +0000 (19:38 +0000)] 
Remove /Net from lib/.gitignore

Using git clean -dXf would remove all files from lib/Net including
tracked files.

4 years agoUpdate Win32 to CPAN version 0.47
Chris 'BinGOs' Williams [Tue, 26 Feb 2013 16:30:18 +0000 (16:30 +0000)] 
Update Win32 to CPAN version 0.47

  [DELTA]

  0.47    [2013-02-21]
        - Make sure %PROCESSOR_ARCHITECTURE% is defined before calling
          Win32::GetArchName() in t/Names.t.  It may be undefined when
          the test is running under Cygwin crond.
        - In t/Names.t don't assume that LoginName or NodeName is at
          least 2 characters long; it may just be 1.

4 years agoThe Module-Pluggable version is 4.7 from CPAN
Chris 'BinGOs' Williams [Tue, 26 Feb 2013 16:28:16 +0000 (16:28 +0000)] 
The Module-Pluggable version is 4.7 from CPAN

4 years agoModule-CoreList is at 2.82 on CPAN
Chris 'BinGOs' Williams [Tue, 26 Feb 2013 16:24:04 +0000 (16:24 +0000)] 
Module-CoreList is at 2.82 on CPAN

4 years agoRevert "Lookup overloaded assignment operators when trying to swap the arguments"
Ricardo Signes [Mon, 25 Feb 2013 16:01:17 +0000 (11:01 -0500)] 
Revert "Lookup overloaded assignment operators when trying to swap the arguments"

This reverts commit f041cf0f9c6469c41de8b73d5f7b426710c3ff8b.

This is reverted in reference to [perl #113834].  Although this commit
does fix a real bug, it introduces a new one that is arguably worse.
More importantly, it is a regression from 5.16.0.  We should produce a
test case that solves both bugs, then solve them both, then get that in
place.  Before 5.18.0 would be nice.  After 5.18.0 may have to do.

4 years agoReorder the members of struct re_save_state to reduce its size on LP64.
Nicholas Clark [Mon, 25 Feb 2013 16:50:35 +0000 (17:50 +0100)] 
Reorder the members of struct re_save_state to reduce its size on LP64.

This drops its size by 8 bytes on LP64 platforms. This also makes the
interpreter struct 8 bytes smaller, as it embeds a re_save_state struct.

4 years agoMerge the refactored S_hsplit() and Perl_hv_ksplit() and related cleanups.
Nicholas Clark [Tue, 26 Feb 2013 14:38:27 +0000 (15:38 +0100)] 
Merge the refactored S_hsplit() and Perl_hv_ksplit() and related cleanups.

Perl_hv_ksplit() now calls S_hsplit(), avoiding duplicating the code to
split hashes when they grow.

4 years agoIn Perl_hv_common(), call S_clear_placeholders() directly.
Nicholas Clark [Fri, 22 Feb 2013 10:19:17 +0000 (11:19 +0100)] 
In Perl_hv_common(), call S_clear_placeholders() directly.

This saves one call to HvPLACEHOLDERS_get().

4 years agoClarify why hv_common() tries to clear placeholders before calling hsplit().
Nicholas Clark [Fri, 22 Feb 2013 09:52:55 +0000 (10:52 +0100)] 
Clarify why hv_common() tries to clear placeholders before calling hsplit().

Which makes me realise that if we clear placeholders, we may be able to
avoid the need to split at all.

(In fact, as hv_common() only adds one key to the hash, under the current
definition of DO_HSPLIT() which only considers total number of keys,
clearing any placeholder is going to be enough to drop the total number of
keys, and so no longer trigger the split. But we'll leave the code making a
second check, to avoid a tight coupling with the internals of DO_HSPLIT().)

4 years agoIn S_hsplit(), replace a for with a do/while, as the loop runs at least once.
Nicholas Clark [Thu, 21 Feb 2013 19:54:48 +0000 (20:54 +0100)] 
In S_hsplit(), replace a for with a do/while, as the loop runs at least once.

Seems pointless to check the exit condition before any iterations, when we
know that it will always be false the first time.

4 years agoReplace the bulk of Perl_hv_ksplit() with a call to S_hsplit().
Nicholas Clark [Thu, 21 Feb 2013 19:22:32 +0000 (20:22 +0100)] 
Replace the bulk of Perl_hv_ksplit() with a call to S_hsplit().

The code duplication that introduced hv_ksplit() as a fork of hsplit() back
with commit 72940dca186befa0 in Sept 1996 is finally healed.

4 years agoTweak S_hsplit() to return early if there are no keys to process.
Nicholas Clark [Thu, 21 Feb 2013 18:58:04 +0000 (19:58 +0100)] 
Tweak S_hsplit() to return early if there are no keys to process.

This mimics the behaviour in Perl_hv_ksplit().

Also remove a vestigial comment. The code it relates to was removed in
commit 7dc8663964c66a69 in Nov 2012.

4 years agoPass the current and desired hash sizes to S_hsplit().
Nicholas Clark [Thu, 21 Feb 2013 18:45:38 +0000 (19:45 +0100)] 
Pass the current and desired hash sizes to S_hsplit().

Whilst this is slightly more work for its existing two callers, it will
permit Perl_hv_ksplit() to also call it.

Use STRLEN for the parameters, and change a local variable from I32 to
STRLEN to match.

4 years agoMove the code handling allocating a new buffer earlier in Perl_hv_ksplit().
Nicholas Clark [Thu, 21 Feb 2013 18:16:44 +0000 (19:16 +0100)] 
Move the code handling allocating a new buffer earlier in Perl_hv_ksplit().

This makes the rest of the code of Perl_hv_ksplit() closer to that of
S_hsplit().

4 years agoRefactor the loop logic in S_hsplit() and Perl_hv_ksplit() to converge.
Nicholas Clark [Thu, 21 Feb 2013 16:22:23 +0000 (17:22 +0100)] 
Refactor the loop logic in S_hsplit() and Perl_hv_ksplit() to converge.

Making the code as similar as possible will make it simpler to merge the two.

4 years agoMove the call to hv_clear_placeholders() from hsplit() to hv_common().
Nicholas Clark [Thu, 21 Feb 2013 16:09:29 +0000 (17:09 +0100)] 
Move the call to hv_clear_placeholders() from hsplit() to hv_common().

The relevant code calls Perl_hv_clear_placeholders() at split time, if there
are still placeholders left over from a (previously) restricted hash.
There are two callers to S_hsplit(), one from the regular HV code, and one
from the shared string table code. As the shared string table can't contain
placeholders, only the other call site could trigger this condition, so move
the code there. This simplifies S_hsplit(), and will make splitting the
shared string table marginally faster.

4 years agoignore some files from Module-Pluggable
Yves Orton [Tue, 26 Feb 2013 14:52:42 +0000 (15:52 +0100)] 
ignore some files from Module-Pluggable

4 years agoUpgrade Module-Pluggable to v4.7
Yves Orton [Tue, 26 Feb 2013 07:27:45 +0000 (08:27 +0100)] 
Upgrade Module-Pluggable to v4.7

Preserved old makefile as some of its logic is in Build.PL now which we dont use.

4 years agoNote CPAN release for Data::Dumper
Steffen Mueller [Tue, 26 Feb 2013 06:57:14 +0000 (07:57 +0100)] 
Note CPAN release for Data::Dumper

4 years agoUpdate Data::Dumper version and release date
Steffen Mueller [Tue, 26 Feb 2013 06:53:59 +0000 (07:53 +0100)] 
Update Data::Dumper version and release date

4 years agoUpdate Data::Dumper changelog
Steffen Mueller [Tue, 26 Feb 2013 06:51:22 +0000 (07:51 +0100)] 
Update Data::Dumper changelog

4 years agoFix redeclaration compiler errors on EBCDIC
Nicholas Clark [Tue, 26 Feb 2013 03:53:52 +0000 (20:53 -0700)] 
Fix redeclaration compiler errors on EBCDIC

This patch was posted in
http://markmail.org/message/pwjxbxnlazvxgsyw

4 years agoGet regcomp.c to compile under EBCDIC
John Goodyear [Mon, 25 Feb 2013 21:44:44 +0000 (14:44 -0700)] 
Get regcomp.c to compile under EBCDIC

There were a couple of syntax errors here.

The committer modified the patch slightly based on a p5p exchange.

4 years agoAdd, fix comments
Karl Williamson [Thu, 14 Feb 2013 17:54:32 +0000 (10:54 -0700)] 
Add, fix comments

4 years agoUnicode/UCD.pm: Fix undef bug
Karl Williamson [Mon, 25 Feb 2013 20:35:34 +0000 (13:35 -0700)] 
Unicode/UCD.pm: Fix undef bug

This only happens should Perl be compiled on the very first Unicode
release, which is extremely unlikely, but fix it anyway.

4 years agounwrap #define argument list for REXEC_TRIE_READ_CHAR
Yves Orton [Mon, 25 Feb 2013 12:34:52 +0000 (13:34 +0100)] 
unwrap #define argument list for REXEC_TRIE_READ_CHAR

Apparently this breaks the z/OS 1.13 c preprocessor. (Yay, now I can say I have written code for z/OS!)

4 years agomakedepend.SH: Deal with continuation lines
Karl Williamson [Sat, 23 Feb 2013 22:41:28 +0000 (15:41 -0700)] 
makedepend.SH: Deal with continuation lines

makedepend was failing to take into account the fact that preprocessor
directives, like any line, may be continued onto succeeding lines by a
trailing backslash.  This led to errors in the C preprocessing, which were
suppressed on all but os390 systems.o

This commit alleviates that, but it is not a complete solution.  It
deletes C comments, but this being sed, it doesn't catch all nuances of
C comments.  We only care, however, about comments on preprocessor
directive lines, and this is good enough to work on the current Perl
without generating any errors, on my system.

Spotted by John Goodyear.

4 years agomakedepend.SH: Preprocessor directives don't have to start at column 1
Karl Williamson [Sat, 23 Feb 2013 22:38:55 +0000 (15:38 -0700)] 
makedepend.SH: Preprocessor directives don't have to start at column 1

Like, apparently, the person(s) who originally wrote this script, I
thought all preprocessor directives had to start in column 1.

It turns out that restriction was relaxed in C89; so that they may be
indented.

Spotted by John Goodyear.

4 years agomakedepend.SH: Make compiler errors show correct line number
Karl Williamson [Sat, 23 Feb 2013 22:34:05 +0000 (15:34 -0700)] 
makedepend.SH: Make compiler errors show correct line number

Instead of inserting "#line 1", insert "#line 2" to account for the
inserted line.

Spotted by John Goodyear.

4 years agoMove (?[]) doc to perlrecharclass
Karl Williamson [Sun, 24 Feb 2013 18:42:20 +0000 (11:42 -0700)] 
Move (?[]) doc to perlrecharclass

This is a form of bracketed character class, and so should be documented
in the same pod.

4 years agoDocument \s change for VT, commit 075b9d7d9a6d4473b240a047655e507c8baa6db3
Karl Williamson [Sun, 24 Feb 2013 18:17:19 +0000 (11:17 -0700)] 
Document \s change for VT, commit 075b9d7d9a6d4473b240a047655e507c8baa6db3

4 years agoperlintro: Typo and stop verbatim wrapping
Karl Williamson [Sun, 24 Feb 2013 03:35:04 +0000 (20:35 -0700)] 
perlintro: Typo and stop verbatim wrapping

4 years agoperlhacktips: Note existence of regen/unicode_constants.pl
Karl Williamson [Sat, 23 Feb 2013 02:04:25 +0000 (19:04 -0700)] 
perlhacktips: Note existence of regen/unicode_constants.pl

4 years agoHandle undef values in magic.t on VMS.
Craig A. Berry [Sat, 23 Feb 2013 18:45:11 +0000 (12:45 -0600)] 
Handle undef values in magic.t on VMS.

888a67f6b95603701 added a new test that failed on VMS because it
expected the value of an undefined element in %ENV to be an empty
string, whereas on VMS it's actually a one-byte string containing
a null.  This is made possible by the fact that the logical name
API uses strings of known lengths, and made necessary by the fact
that a zero-length value (equivalence name in VMS parlance) is
not allowed.

So patch up the test implementation to handle this special case.

4 years agoadd array DELETE and EXISTS to perlfunc
David Mitchell [Wed, 30 Jan 2013 17:22:26 +0000 (17:22 +0000)] 
add array DELETE and EXISTS to perlfunc

[perl #116579]
These methods weren't listed in the list of methods for tied arrays

4 years agoMark v5.17.9 as done in the release schedule
Chris 'BinGOs' Williams [Sat, 23 Feb 2013 11:36:51 +0000 (11:36 +0000)] 
Mark v5.17.9 as done in the release schedule

4 years agoRemove trailing white-space from RMG document
Chris 'BinGOs' Williams [Sat, 23 Feb 2013 11:33:37 +0000 (11:33 +0000)] 
Remove trailing white-space from RMG document

4 years agoPATCH: [perl #116899]: jump on uninitialised value
Karl Williamson [Fri, 22 Feb 2013 20:04:05 +0000 (13:04 -0700)] 
PATCH: [perl #116899]: jump on uninitialised value

The culprit had nothing to do really with the accuesed commit.
The function S_cl_or() tries to take the union of the code points
matched by its two inputs.  Both of those nodes must be ANYOF-like
(for bracketed character classes and synthetic start classes).  These
come in two flavors, one having extra fields in the struct after the
other one's.  That is used for locale ANYOFs and the synthetic start
class.  The first paramter to cl_or() is always one of these extended
ANYOFS, but the second parameter may be the shorter form

The function was failing to check if the second one was the longer form
before reading data from beyond the short-form's struct.  This could
cause a segfault, but that wasn't the symptom here.  Instead it copied
that data to the other paramter's struct.  valgrind had set that data to
indicate it was uninitialized, so when later it was accessed, we got
this error.

During much of the 5.17 series until the failing commit, more ANYOF
nodes were the larger size.  I presume that is why this commit showed up
the problem.

4 years agoregcomp.c: Rmv comment ref to obsolete regnode
Karl Williamson [Fri, 22 Feb 2013 17:43:11 +0000 (10:43 -0700)] 
regcomp.c: Rmv comment ref to obsolete regnode

4 years agoAbolish STRANGE_MALLOC. Now all malloc()s are considered strange :-)
Nicholas Clark [Wed, 20 Feb 2013 20:38:33 +0000 (21:38 +0100)] 
Abolish STRANGE_MALLOC. Now all malloc()s are considered strange :-)

STRANGE_MALLOC was added in 5.002 beta 1 (4633a7c4bad06b47) as part of an
work around for typical mallocs, which had a bad interaction with perl's
allocation needs. Specifically, repeatedly extending an array and then
creating SV heads (such as when reading lines of a file into an array)
could end up with each reallocation for the array being unable to extend in
place, needing a fresh chunk of memory, and the released memory not being
suitable for use as more SV heads, so sitting unused. The solution was for
perl to recycle the old array body as SV heads, instead of returning it to
the system, passing the memory from the the AV code to the SV code using
offer_nice_chunk(), PL_nice_chunk and PL_nice_chunk_size.

STRANGE_MALLOC was actually a signal that the malloc() didn't need
protecting from itself, and to disable the work around.

offer_nice_chunk(), PL_nice_chunk and PL_nice_chunk_size were removed by
commit 9a87bd09eea1d037 in Nov 2010, without any ill effects, hence the
code used when STRANGE_MALLOC was *not* defined is essentially doing extra
work for no benefits.

From the lack of problems reported, one can assume that in the intervening
15 years malloc technology has got significantly improved, and it is probably
better to be honest with it, rather than trying to second guess it.

Hence remove all the non-STRANGE_MALLOC code, and leave everyone using the
much simpler code. See also
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-11/msg00495.html
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00126.html

4 years agoperlfunc: clarify that "do $file" isn't really like "eval `cat $file`"
Aaron Crane [Tue, 19 Feb 2013 14:17:59 +0000 (14:17 +0000)] 
perlfunc: clarify that "do $file" isn't really like "eval `cat $file`"

Closes RT#116713.