This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
12 years agoFix deparsing of require "a".$1
Father Chrysostomos [Mon, 19 Dec 2011 04:48:40 +0000 (20:48 -0800)]
Fix deparsing of require "a".$1

Commit 30fcd6c41 tried to deparse ‘no 6’ correctly by checking
whether the kidop of a require has the OPpCONST_NOVER flag set,
but it did not check the op type, so it ended up with a false
positive for any binop (OPpCONST_NOVER being 2).

12 years agoTeach B::Concise about OPpCONST_NOVER
Father Chrysostomos [Mon, 19 Dec 2011 04:45:59 +0000 (20:45 -0800)]
Teach B::Concise about OPpCONST_NOVER

12 years agoperldelta up to 8d0b139
Father Chrysostomos [Mon, 19 Dec 2011 04:29:39 +0000 (20:29 -0800)]
perldelta up to 8d0b139

12 years agotest that version.pm does not clobber locale
Ricardo Signes [Mon, 19 Dec 2011 01:02:12 +0000 (20:02 -0500)]
test that version.pm does not clobber locale

12 years agotoke.c, util.c: setlocale returns new locale, not old
Karl Williamson [Tue, 26 Apr 2011 03:01:47 +0000 (21:01 -0600)]
toke.c, util.c: setlocale returns new locale, not old

This means we have to call setlocale with a NULL second parameter
to get the correct old value; then call it with the new value

12 years agoperldelta for splain/%X
Father Chrysostomos [Sun, 18 Dec 2011 22:12:36 +0000 (14:12 -0800)]
perldelta for splain/%X

12 years agoStop readline(*$glob_copy) from clearing PL_last_in_gv
Father Chrysostomos [Sun, 18 Dec 2011 21:34:44 +0000 (13:34 -0800)]
Stop readline(*$glob_copy) from clearing PL_last_in_gv

This is related to commit 8dc99089, which fixed a similar bug in tell.
In readline(*$glob_copy), the * makes a mortal copy of $glob_copy,
turning off its fake flag.  readline sets PL_last_in_gv to its argu-
ment, but it gets freed at the end of the statement and PL_last_in_gv
gets cleared.

12 years agoperldelta up to 6728c8514a
Father Chrysostomos [Sun, 18 Dec 2011 20:42:38 +0000 (12:42 -0800)]
perldelta up to 6728c8514a

12 years agoRevert "Make scalar() propagate lvalueness"
Father Chrysostomos [Sun, 18 Dec 2011 18:43:51 +0000 (10:43 -0800)]
Revert "Make scalar() propagate lvalueness"

This reverts commit d408447cb636e46fcb4f7fe7d0909bb351b7ba22.

12 years ago[perl #106288] Tests for \scalar @array
Father Chrysostomos [Sun, 18 Dec 2011 18:43:25 +0000 (10:43 -0800)]
[perl #106288] Tests for \scalar @array

12 years agoutf8.c: white-space, comment clarification only
Karl Williamson [Sun, 18 Dec 2011 18:46:37 +0000 (11:46 -0700)]
utf8.c: white-space, comment clarification only

12 years agoutf8.c: foldEQ_utf8_flags() use specific flag, not just any
Karl Williamson [Sun, 18 Dec 2011 18:38:34 +0000 (11:38 -0700)]
utf8.c: foldEQ_utf8_flags() use specific flag, not just any

The test here was if any flag was set, not the particular desired one.
This doesn't cause any bugs as things are currently structured, but
could in the future.

The reason it doesn't cause any bugs currently are that the other
flags are tested first, and only if they are both 0 does this flag get
tested.

12 years agoRemove some commits from the to-doc list that have been covered
Dave Rolsky [Sun, 18 Dec 2011 16:10:09 +0000 (10:10 -0600)]
Remove some commits from the to-doc list that have been covered

12 years agoperldelta updates for VMS changes.
Craig A. Berry [Sun, 18 Dec 2011 13:15:08 +0000 (07:15 -0600)]
perldelta updates for VMS changes.

12 years agoStop seek($glob_copy...) from clearing PL_last_in_gv
Father Chrysostomos [Sun, 18 Dec 2011 08:00:31 +0000 (00:00 -0800)]
Stop seek($glob_copy...) from clearing PL_last_in_gv

seek had the same bug as tell.  Here is the commit message from
8dc99089, which fixed tell:

----------------------------------------------------------------------

Stop tell($glob_copy) from clearing PL_last_in_gv

This bug is a side effect of rv2gv’s starting to return an incoercible
mortal copy of a coercible glob in 5.14:

$ perl5.12.4 -le 'open FH, "t/test.pl"; $fh=*FH; tell $fh; print tell'
0
$ perl5.14.0 -le 'open FH, "t/test.pl"; $fh=*FH; tell $fh; print tell'
-1

In the first case, tell without arguments is returning the position of
the filehandle.

In the second case, tell with an explicit argument that happens to
be a coercible glob (tell has an implicit rv2gv, so tell $fh is actu-
ally tell *$fh) sets PL_last_in_gv to a mortal copy thereof, which is
freed at the end of the statement, setting PL_last_in_gv to null.  So
there is no ‘last used’ handle by the time we get to the tell without
arguments.

This commit adds a new rv2gv flag that tells it not to copy the glob.

By doing it unconditionally on the kidop, this allows tell(*$fh) to
work the same way.

Let’s hope nobody does tell(*{*$fh}), which will unset PL_last_in_gv
because the inner * returns a mortal copy.

This whole area is really icky.  PL_last_in_gv should be refcounted,
but that would cause handles to leak out of scope, breaking programs
that rely on the auto-closing ‘feature’.

12 years agoStop eof($glob_copy) from clearing PL_last_in_gv
Father Chrysostomos [Sun, 18 Dec 2011 07:48:51 +0000 (23:48 -0800)]
Stop eof($glob_copy) from clearing PL_last_in_gv

eof had the same bug as tell.  Here is the commit message from
8dc99089, which fixed tell:

----------------------------------------------------------------------

Stop tell($glob_copy) from clearing PL_last_in_gv

This bug is a side effect of rv2gv’s starting to return an incoercible
mortal copy of a coercible glob in 5.14:

$ perl5.12.4 -le 'open FH, "t/test.pl"; $fh=*FH; tell $fh; print tell'
0
$ perl5.14.0 -le 'open FH, "t/test.pl"; $fh=*FH; tell $fh; print tell'
-1

In the first case, tell without arguments is returning the position of
the filehandle.

In the second case, tell with an explicit argument that happens to
be a coercible glob (tell has an implicit rv2gv, so tell $fh is actu-
ally tell *$fh) sets PL_last_in_gv to a mortal copy thereof, which is
freed at the end of the statement, setting PL_last_in_gv to null.  So
there is no ‘last used’ handle by the time we get to the tell without
arguments.

This commit adds a new rv2gv flag that tells it not to copy the glob.

By doing it unconditionally on the kidop, this allows tell(*$fh) to
work the same way.

Let’s hope nobody does tell(*{*$fh}), which will unset PL_last_in_gv
because the inner * returns a mortal copy.

This whole area is really icky.  PL_last_in_gv should be refcounted,
but that would cause handles to leak out of scope, breaking programs
that rely on the auto-closing ‘feature’.

12 years agoOops. You can’t do ->op_first on a baseop.
Father Chrysostomos [Sun, 18 Dec 2011 07:44:42 +0000 (23:44 -0800)]
Oops.  You can’t do ->op_first on a baseop.

This was the fault of commit 8dc99089.

12 years agoMinor spelling/grammar/context fixes
Matthew Horsfall (alh) [Thu, 8 Dec 2011 03:10:41 +0000 (22:10 -0500)]
Minor spelling/grammar/context fixes

12 years agoStop tell($glob_copy) from clearing PL_last_in_gv
Father Chrysostomos [Sun, 18 Dec 2011 07:01:07 +0000 (23:01 -0800)]
Stop tell($glob_copy) from clearing PL_last_in_gv

This bug is a side effect of rv2gv’s starting to return an incoercible
mortal copy of a coercible glob in 5.14:

$ perl5.12.4 -le 'open FH, "t/test.pl"; $fh=*FH; tell $fh; print tell'
0
$ perl5.14.0 -le 'open FH, "t/test.pl"; $fh=*FH; tell $fh; print tell'
-1

In the first case, tell without arguments is returning the position of
the filehandle.

In the second case, tell with an explicit argument that happens to
be a coercible glob (tell has an implicit rv2gv, so tell $fh is actu-
ally tell *$fh) sets PL_last_in_gv to a mortal copy thereof, which is
freed at the end of the statement, setting PL_last_in_gv to null.  So
there is no ‘last used’ handle by the time we get to the tell without
arguments.

This commit adds a new rv2gv flag that tells it not to copy the glob.

By doing it unconditionally on the kidop, this allows tell(*$fh) to
work the same way.

Let’s hope nobody does tell(*{*$fh}), which will unset PL_last_in_gv
because the inner * returns a mortal copy.

This whole area is really icky.  PL_last_in_gv should be refcounted,
but that would cause handles to leak out of scope, breaking programs
that rely on the auto-closing ‘feature’.

12 years agoAvoid an unused temp scalar in sv.c:S_sv_unglob
Father Chrysostomos [Sun, 18 Dec 2011 03:23:20 +0000 (19:23 -0800)]
Avoid an unused temp scalar in sv.c:S_sv_unglob

This is something I missed in 804b5ed7.

12 years ago[perl #97988] Nullify PL_last_in_gv when unglobbed
Father Chrysostomos [Sun, 18 Dec 2011 03:22:51 +0000 (19:22 -0800)]
[perl #97988] Nullify PL_last_in_gv when unglobbed

Code like this can cause PL_last_in_gv to point to a coercible glob:

    $f{g} = *STDOUT;
    readline $f{g};

If $f{g} is then modified such that it is no longer a glob,
PL_last_in_gv ends up pointing to a non-glob:

    $f{g} = 3;

If $f{g} is freed now, the PL_last_in_gv-nulling code in sv_clear will
be skipped, as it only applies to globs.

    undef %f; # now PL_last_in_gv points to a freed scalar

The resulting freed scalar can be reused by another handle,

    *{"foom"} = *other;

causing tell() with no arguments to return the position on *other,
even though *other was no the last handle read from.

This commit fixes it by nulling PL_last_in_gv when a coercible glob
is coerced.

12 years agoCwd pod consistency tweaks
Father Chrysostomos [Sat, 17 Dec 2011 20:56:52 +0000 (12:56 -0800)]
Cwd pod consistency tweaks

12 years agoperldiag: Consistent style of diag categories
Father Chrysostomos [Sat, 17 Dec 2011 20:54:48 +0000 (12:54 -0800)]
perldiag: Consistent style of diag categories

12 years agoFix the one remaining long line in perldiag
Father Chrysostomos [Sat, 17 Dec 2011 20:50:14 +0000 (12:50 -0800)]
Fix the one remaining long line in perldiag

12 years agobisect-runner.pl should only dump out a failed patch once by default.
Nicholas Clark [Sat, 17 Dec 2011 08:25:32 +0000 (09:25 +0100)]
bisect-runner.pl should only dump out a failed patch once by default.

Only show the "converted to a context diff" version if it was actually
converted to one before (attempted) application.

12 years agoTeach bisect-runner.pl how to work around various 5.005_5x build problems.
Nicholas Clark [Sat, 17 Dec 2011 08:15:06 +0000 (09:15 +0100)]
Teach bisect-runner.pl how to work around various 5.005_5x build problems.

This area of history is particularly hairy because of all the back-and-forth
merging between //depot/perl and //depot/cfgperl, which confuses bisect.
It's also potentially interesting, as it's the start of the 5.6.0 development
series, so many new features arrive in quick succession, making it a likely
spot for regressions to appear.

In particular, we can now build perl for this commit:

  commit 4592e6caefc41a75573f112714d170071892a537
  Author: Nick Ing-Simmons <nik@tiuk.ti.com>
  Date:   Sat May 8 14:16:30 1999 +0000

      Implement OPEN, EOF, SEEK, TELL, BINMODE and FILENO as TIEHANDLE methods.
      Provide Tie::StdHandle
      Basic update of docs.

      p4raw-id: //depot/perl@3330

12 years agobisect-runner.pl must not be fooled by a t/test that symlinks to ../miniperl
Nicholas Clark [Fri, 16 Dec 2011 18:31:56 +0000 (19:31 +0100)]
bisect-runner.pl must not be fooled by a t/test that symlinks to ../miniperl

It had merely been testing that the target file was +x
For t/test it must also check that t/perl wasn't a symlink to miniperl
created as a side effect of make miniperl failing. To add to the fun, for
some revisions the symlink is to '.././perl', not '../perl'.

12 years agoIn bisect-runner.pl, clarify the variables relating to the make target.
Nicholas Clark [Fri, 16 Dec 2011 17:50:56 +0000 (18:50 +0100)]
In bisect-runner.pl, clarify the variables relating to the make target.

The 4 things in play are
* the (standard) target name used on the command line
* the actual target we ask make to build
* the file we expect it to generate as a result
* whether that file was generated correctly

The previous variable names were not that clear about this.

12 years ago[rt.cpan.org #45885] File::Spec: Don’t use tainted tmpdir in 5.6
Father Chrysostomos [Sat, 17 Dec 2011 07:27:49 +0000 (23:27 -0800)]
[rt.cpan.org #45885] File::Spec: Don’t use tainted tmpdir in 5.6

Perl 5.6 doesn’t have ${^TAINT}, so the taint check in
File::Spec::Unix->_tmpdir was skipped.  This commit adds a taint check
using eval { eval $safe_substring } for 5.6.

12 years agoAUTHORS: better email address
James E Keenan [Sat, 17 Dec 2011 06:25:16 +0000 (22:25 -0800)]
AUTHORS: better email address

Patch attached includes better address for the long-term.

12 years agoMention evalbytes in perlvar as a (_) function
Father Chrysostomos [Sat, 17 Dec 2011 05:31:13 +0000 (21:31 -0800)]
Mention evalbytes in perlvar as a (_) function

12 years agoRemove use of local($_) from dumpvar.pl
Father Chrysostomos [Sat, 17 Dec 2011 04:46:35 +0000 (20:46 -0800)]
Remove use of local($_) from dumpvar.pl

I know we should really be fixing local($_), but that code
in scope.c is rather twisted, and I want to see this fix
in 5.16.

12 years agoperlvar: Don’t mention 5.9
Father Chrysostomos [Sat, 17 Dec 2011 04:31:38 +0000 (20:31 -0800)]
perlvar: Don’t mention 5.9

12 years agoperlvar: Consistent use of spaces after dots
Father Chrysostomos [Sat, 17 Dec 2011 04:31:18 +0000 (20:31 -0800)]
perlvar: Consistent use of spaces after dots

This commit changes it to use two spaces, for several reasons.  It was
already inconsistent.  Although it used one space in most cases, the
rest of Perl’s documentation uses two.  pod2man expects two spaces, as
it adds two spaces for sentences ending at the end of a line in the
middle of a paragraph, as it was designed to work with Perl’s origi-
nal pod docs, which used two spaces.  If this document used one space
throughout, one would have to go through it and make sure no sentences
end at the ends of lines except at the end of a paragraph.

12 years agoperldiag: Rewrap ‘Code point 0x%X is not Unicode’
Father Chrysostomos [Sat, 17 Dec 2011 02:05:45 +0000 (18:05 -0800)]
perldiag: Rewrap ‘Code point 0x%X is not Unicode’

to make splain output look better.

12 years agoIncrease $diagnostics::VERSION to 1.26
Father Chrysostomos [Sat, 17 Dec 2011 02:01:23 +0000 (18:01 -0800)]
Increase $diagnostics::VERSION to 1.26

12 years agoTeach splain about %X
Father Chrysostomos [Sat, 17 Dec 2011 02:00:07 +0000 (18:00 -0800)]
Teach splain about %X

12 years agoperldiag: Separate two paragraphs
Father Chrysostomos [Sat, 17 Dec 2011 01:09:01 +0000 (17:09 -0800)]
perldiag: Separate two paragraphs

otherwise they flow together as one paragraph in formatted pod.

12 years agoperldiag: gmtime(nan) too small does not occur
Father Chrysostomos [Sat, 17 Dec 2011 01:08:11 +0000 (17:08 -0800)]
perldiag: gmtime(nan) too small does not occur

12 years agoperldiag: Fix some jagged lines
Father Chrysostomos [Sat, 17 Dec 2011 00:33:06 +0000 (16:33 -0800)]
perldiag: Fix some jagged lines

Reflow some entries to make the right margin less jagged in
splain output.

12 years agoUpdate Timothe Litt’s e-mail address
Father Chrysostomos [Fri, 16 Dec 2011 23:57:33 +0000 (15:57 -0800)]
Update Timothe Litt’s e-mail address

12 years agoUpdate Socket to CPAN version 1.97
Chris 'BinGOs' Williams [Fri, 16 Dec 2011 22:37:41 +0000 (22:37 +0000)]
Update Socket to CPAN version 1.97

  [DELTA]

  1.97    CHANGES:
         * Rewritten Makefile.PL configure-time logic to use only core's
           ExtUtils::CBuilder rather than CPAN's ExtUtils::CChecker
         * Fix implementation of synthesized newSVpvn_flags() to also work on
           threaded 5.10.0
         * Set INSTALLDIRS=perl on perl before 5.11; required as it's
           replacing a core module

12 years agoThe t/gol-compat.t file is explicitly excluded from Getopt::Long in core
Dave Rolsky [Fri, 16 Dec 2011 23:10:09 +0000 (17:10 -0600)]
The t/gol-compat.t file is explicitly excluded from Getopt::Long in core

12 years agoCorrect &CORE::foo entry in perldiag
Father Chrysostomos [Fri, 16 Dec 2011 22:23:16 +0000 (14:23 -0800)]
Correct &CORE::foo entry in perldiag

12 years agoperldiag: missing C<>
Father Chrysostomos [Fri, 16 Dec 2011 22:22:19 +0000 (14:22 -0800)]
perldiag: missing C<>

I know there are dozens and dozens of these that I have not fixed,
but I happened to notice these two first and wanted to remove them
from my notes.

12 years agoperldiag: extraneous backslash
Father Chrysostomos [Fri, 16 Dec 2011 22:21:08 +0000 (14:21 -0800)]
perldiag: extraneous backslash

12 years agoperldiag: use F<> for file names
Father Chrysostomos [Fri, 16 Dec 2011 22:19:44 +0000 (14:19 -0800)]
perldiag: use F<> for file names

12 years agoperldiag: wrap long lines
Father Chrysostomos [Fri, 16 Dec 2011 22:16:46 +0000 (14:16 -0800)]
perldiag: wrap long lines

12 years agoperldiag: Retitle ‘Cannot copy’
Father Chrysostomos [Fri, 16 Dec 2011 22:05:28 +0000 (14:05 -0800)]
perldiag: Retitle ‘Cannot copy’

Without the ‘in %s’ it covers both forms of the error message.

12 years agoperldiag: Consistent use of spaces after dots
Father Chrysostomos [Fri, 16 Dec 2011 21:58:47 +0000 (13:58 -0800)]
perldiag: Consistent use of spaces after dots

Where the changes made splain output look worse, I reflowed the text.

12 years agotoke.c, perldiag: Note delay of some things to 5.18
Karl Williamson [Fri, 16 Dec 2011 18:39:56 +0000 (11:39 -0700)]
toke.c, perldiag: Note delay of some things to 5.18

We are mostly allowing two release cycles before removing a deprecated
feature; therefore several things have been retained for 5.16, that are
documented as being removed for it; Update the docs.

12 years agoSmall perldelta language tweaks for rindolf's changes
Dave Rolsky [Fri, 16 Dec 2011 18:14:20 +0000 (12:14 -0600)]
Small perldelta language tweaks for rindolf's changes

12 years agoDocument the "perl -d" bug fixes commit.
Shlomi Fish [Fri, 16 Dec 2011 18:08:47 +0000 (20:08 +0200)]
Document the "perl -d" bug fixes commit.

In pod/perldelta.pod.

12 years agoDoc 5d5d9ea ("c 3" debugger command fix) in perldelta
Dave Rolsky [Fri, 16 Dec 2011 17:07:25 +0000 (11:07 -0600)]
Doc 5d5d9ea ("c 3" debugger command fix) in perldelta

12 years agoperldiag: double spaces after dots
Father Chrysostomos [Fri, 16 Dec 2011 17:53:56 +0000 (09:53 -0800)]
perldiag: double spaces after dots

12 years agoperldiag: rewrap an entry
Father Chrysostomos [Fri, 16 Dec 2011 17:47:13 +0000 (09:47 -0800)]
perldiag: rewrap an entry

so that splain output looks better.

12 years agoperldiag: rewrap an entry
Father Chrysostomos [Fri, 16 Dec 2011 17:44:31 +0000 (09:44 -0800)]
perldiag: rewrap an entry

to fit comfortably in an 80-column terminal.

12 years agoIncrease $Locale::Maketext::VERSION to 1.21
Father Chrysostomos [Fri, 16 Dec 2011 17:33:35 +0000 (09:33 -0800)]
Increase $Locale::Maketext::VERSION to 1.21

12 years agoAdd Thomas Sibley to AUTHORS
Thomas Sibley [Fri, 16 Dec 2011 15:27:23 +0000 (10:27 -0500)]
Add Thomas Sibley to AUTHORS

12 years agoDocument Locale::Maketext's numerate method
Thomas Sibley [Fri, 16 Dec 2011 14:55:14 +0000 (09:55 -0500)]
Document Locale::Maketext's numerate method

Previously this was only implicitly documented by a passing reference to
it a subsequent section.

12 years agoDoc: numerify was renamed to numf very early on
Thomas Sibley [Fri, 16 Dec 2011 14:52:13 +0000 (09:52 -0500)]
Doc: numerify was renamed to numf very early on

12 years ago[perl #91514] Use correct error msg for default
Father Chrysostomos [Fri, 16 Dec 2011 17:25:30 +0000 (09:25 -0800)]
[perl #91514] Use correct error msg for default

This commit not only mentions default (as opposed to when)
in the error message about it being outside a topicalizer, but
also normalises those error messages, making them consistent with
continue and other loop controls.  It also makes the perldiag
entry for when actually match the error message.

12 years agoReally update perldelta with some older changes that hadn't been included yet
Dave Rolsky [Fri, 16 Dec 2011 16:42:24 +0000 (10:42 -0600)]
Really update perldelta with some older changes that hadn't been included yet

This time without reverting a week or two worth of other change documentation
(version control is hard).

12 years agoRevert "Updated perldelta for some older changes that hadn't been included yet"
Dave Rolsky [Fri, 16 Dec 2011 16:39:57 +0000 (10:39 -0600)]
Revert "Updated perldelta for some older changes that hadn't been included yet"

This reverts commit c15f899f18827e563db510796dac34fdff0db1d8.

12 years agoUpdated perldelta for some older changes that hadn't been included yet
Dave Rolsky [Fri, 16 Dec 2011 16:37:16 +0000 (10:37 -0600)]
Updated perldelta for some older changes that hadn't been included yet

12 years agoPut tlhackque’s real name in AUTHORS
Father Chrysostomos [Fri, 16 Dec 2011 14:24:35 +0000 (06:24 -0800)]
Put tlhackque’s real name in AUTHORS

12 years agoTeach win32/Makefile 'test_porting'
Chris 'BinGOs' Williams [Fri, 16 Dec 2011 12:13:46 +0000 (12:13 +0000)]
Teach win32/Makefile 'test_porting'

12 years agoTeach win32/makefile.mk 'test_porting'
Chris 'BinGOs' Williams [Fri, 16 Dec 2011 12:10:40 +0000 (12:10 +0000)]
Teach win32/makefile.mk 'test_porting'

12 years agoperldelta up to 5dca8ed9d28
Father Chrysostomos [Fri, 16 Dec 2011 06:10:18 +0000 (22:10 -0800)]
perldelta up to 5dca8ed9d28

12 years agoAdd tlhackque to AUTHORS
Father Chrysostomos [Fri, 16 Dec 2011 06:10:04 +0000 (22:10 -0800)]
Add tlhackque to AUTHORS

12 years agoCarp.pm localise $SIG{__DIE__} before eval
Father Chrysostomos [Fri, 16 Dec 2011 06:07:06 +0000 (22:07 -0800)]
Carp.pm localise $SIG{__DIE__} before eval

Otherwise we end up calling other code’s $SIG{__DIE__}.

12 years agoIncrease $Carp::VERSION to 1.24
Father Chrysostomos [Fri, 16 Dec 2011 05:42:02 +0000 (21:42 -0800)]
Increase $Carp::VERSION to 1.24

12 years agoCarp.t: Add tests for PL_last_in_gv
Father Chrysostomos [Fri, 16 Dec 2011 05:41:37 +0000 (21:41 -0800)]
Carp.t: Add tests for PL_last_in_gv

12 years agoAdd missing <fh> line # phrase to Carp messages
tlhackque [Fri, 16 Dec 2011 04:48:21 +0000 (20:48 -0800)]
Add missing <fh> line # phrase to Carp messages

Carp::croak is documented in the camel book as "working like die does,
except misdirecting blame to the caller."

Perldoc says "croak - die of errors (from perspective of caller)".

This is almost true, however careful inspection reveals that croak
does not include file position information ( ", <fh> line $." ) as die
does (when it can).

It turns out that it *is* possible to determine the current file han-
dle (although I wish it were easier).

Carp should do this and add it to the traceback, as it really is use-
ful information.

12 years agopp_hot.c: First letter of latin-1 classnames wasn't being checked correctly.
Brian Fraser [Tue, 13 Dec 2011 22:32:48 +0000 (19:32 -0300)]
pp_hot.c: First letter of latin-1 classnames wasn't being checked correctly.

Previously the first letter for latin-1 classnames was being mischecked, only
allowing ASCII, which caused an instance of the Unicode Bug for downgradable
classnames.

12 years agoperldelta up to 5e5a1632
Father Chrysostomos [Fri, 16 Dec 2011 03:54:42 +0000 (19:54 -0800)]
perldelta up to 5e5a1632

plus the array_base feature

12 years agoName anon handles __ANONIO__
Father Chrysostomos [Fri, 16 Dec 2011 01:45:45 +0000 (17:45 -0800)]
Name anon handles __ANONIO__

rather than $__ANONIO__

That dollar sign *has* to have been a mistake.  In ck_fun, the
name was set to __ANONIO__, but it seems the change that added it
(afd1915d43) did not account for the fact that a little later on the
same function checks to makes sure it begins with a dollar sign, as it
could only be a variable name.

rv2gv’s use of $__ANONIO__ (added recently by yours truly) was just
copying was ck_fun was doing.

12 years agoDocument the array_base feature
Father Chrysostomos [Fri, 16 Dec 2011 00:34:36 +0000 (16:34 -0800)]
Document the array_base feature

12 years agoDisable $[ under 5.16
Father Chrysostomos [Fri, 16 Dec 2011 00:26:16 +0000 (16:26 -0800)]
Disable $[ under 5.16

This adds the array_base feature to feature.pm

Perl_feature_is_enabled has been modified to use PL_curcop, rather
than PL_hintgv, so it can work with run-time hints as well.
(PL_curcop holds the current state op at run time, and &PL_compiling
at compile time, so it works for both.)  The hints in $^H are not
stored in the same place at compile time and run time, so the FEATURE_IS_ENABLED macro has been modified to check first whether
PL_curop == &PL_compiling.

Since array_base is on by default with no hint for it in %^H, it is
a ‘negative’ feature, whose entry in %^H turns it off.  feature.pm
has been modified to support such negative features.  The new FEATURE_IS_ENABLED_d can check whether such default features
are enabled.

This does make things less efficient, as every version declaration
now loads feature.pm to disable all features (including turning off
array_base, which entails adding an entry to %^H) before loading the
new bundle.  I have plans to make this more efficient.

12 years agofeature.pm: Consistent use of spaces after full stops
Father Chrysostomos [Fri, 16 Dec 2011 00:19:05 +0000 (16:19 -0800)]
feature.pm: Consistent use of spaces after full stops

12 years agoperlvar: document what $[ will do under use v5.16
Father Chrysostomos [Thu, 15 Dec 2011 05:43:38 +0000 (21:43 -0800)]
perlvar: document what $[ will do under use v5.16

12 years agoBring perldiag/‘Assigning non-zero to $[’ closer to reality
Father Chrysostomos [Thu, 15 Dec 2011 04:10:08 +0000 (20:10 -0800)]
Bring perldiag/‘Assigning non-zero to $[’ closer to reality

Or closer to what will imminently be its reality

12 years agoRestore ‘Assigning non-zero to $[’ to perldiag
Father Chrysostomos [Thu, 15 Dec 2011 02:10:49 +0000 (18:10 -0800)]
Restore ‘Assigning non-zero to $[’ to perldiag

This was removed by b82b06b8ca32.  The message is coming back soon, at
least under ‘use 5.016’....

12 years agoperldelta_template: revise text about incompatible changes
Karl Williamson [Wed, 14 Dec 2011 17:13:14 +0000 (10:13 -0700)]
perldelta_template: revise text about incompatible changes

12 years agoutf8.c: Change prototypes of two functions
Karl Williamson [Wed, 14 Dec 2011 16:29:33 +0000 (09:29 -0700)]
utf8.c: Change prototypes of two functions

_to_uni_fold_flags() and _to_fold_latin1() now have their flags
parameter be a boolean.  The name 'flags' is retained in case the usage
ever expands instead of calling it by the name of the only use this
currently has.

This is as a result of confusion between this and _to_ut8_fold_flags()
which does have more than one flag possibility.

12 years agoscope.c: Allow successful saving of PL_tainted
Karl Williamson [Wed, 14 Dec 2011 05:10:53 +0000 (22:10 -0700)]
scope.c: Allow successful saving of PL_tainted

leave_scope() saves and restores PL_tainted upon entry and exit.  This
means that any attempt to save this variable on the stack will fail, as
its unstacked value will overwrite the popped one.

To counteract this, we update our saved version with the popped value.

12 years agopp.c: Changing case of utf8 strings under locale uses locale for < 255
Karl Williamson [Wed, 14 Dec 2011 05:01:46 +0000 (22:01 -0700)]
pp.c: Changing case of utf8 strings under locale uses locale for < 255

As proposed on p5p and approved, this changes the functions uc(), lc(),
ucfirst(), and lcfirst() to respect locale for code points < 255; and
use Unicode semantics for those above 255.  This results in better, but
not perfect results, as noted in the changed pods, and brings these
functions into line with how regular expression pattern matching already
works.

12 years agoutf8.c: White-space changes only
Karl Williamson [Wed, 14 Dec 2011 04:52:40 +0000 (21:52 -0700)]
utf8.c: White-space changes only

This indents previous lines that are now within new blocks

12 years agoutf8.c: Allow Changed behavior of utf8 under locale
Karl Williamson [Wed, 14 Dec 2011 04:48:19 +0000 (21:48 -0700)]
utf8.c: Allow Changed behavior of utf8 under locale

This changes the 4 case changing functions to take extra parameters to
specify if the utf8 string is to be processed under locale rules when
the code points are < 256.  The current functions are changed to macros
that call the new versions so that current behavior is unchanged.

An additional, static, function is created that makes sure that the
255/256 boundary is not crossed during the case change.

12 years agoutf8.c: Add comment
Karl Williamson [Wed, 14 Dec 2011 04:34:11 +0000 (21:34 -0700)]
utf8.c: Add comment

12 years agolocale.t: Prepare for adding more tests
Karl Williamson [Wed, 14 Dec 2011 04:24:24 +0000 (21:24 -0700)]
locale.t: Prepare for adding more tests

This custom TAP output .t has hard-coded test numbers.  Rather than
disturb those, I plan to add tests that come after all the current ones,
and this paves the way for that.

12 years agolocale.t: Add ability to output a message with 'ok'
Karl Williamson [Wed, 14 Dec 2011 04:20:12 +0000 (21:20 -0700)]
locale.t: Add ability to output a message with 'ok'

locale.t uses its own custom TAP messages.  This changes the 'ok' sub
to accept another parameter, a test description to add to the TAP line.
And it changes the taint functions to produce a generic one of these

12 years agoRevise feature.pm documentation
David Golden [Thu, 15 Dec 2011 18:36:42 +0000 (13:36 -0500)]
Revise feature.pm documentation

12 years agocore-cpan-diff: clarify phrasing of missing file warning
David Golden [Thu, 15 Dec 2011 16:13:23 +0000 (11:13 -0500)]
core-cpan-diff: clarify phrasing of missing file warning

12 years agoFix Maintainers.pl and META.yml for removal of lib/version.t
David Golden [Thu, 15 Dec 2011 14:35:53 +0000 (09:35 -0500)]
Fix Maintainers.pl and META.yml for removal of lib/version.t

12 years agoMerge CPAN version.pm tests into CORE.
John Peacock [Mon, 12 Dec 2011 17:57:11 +0000 (12:57 -0500)]
Merge CPAN version.pm tests into CORE.

It has become increasingly difficult to maintain the CPAN tests
and the CORE tests, so include the [subtly edited] CPAN tests
into the CORE code instead.  NOTE: this also bumps $VERSION to
match the forthcoming CPAN release.

Signed-off-by: David Golden <dagolden@cpan.org>
12 years agoUpdate threads to CPAN version 1.86
Chris 'BinGOs' Williams [Wed, 14 Dec 2011 23:02:38 +0000 (23:02 +0000)]
Update threads to CPAN version 1.86

  [DELTA]

  1.86 Wed Dec 14 21:12:51 2011
    - Fix for mingw-w64 build due to setjmp difference

12 years agoSync Module-CoreList MANIFEST file with what is on CPAN
Chris 'BinGOs' Williams [Wed, 14 Dec 2011 21:19:57 +0000 (21:19 +0000)]
Sync Module-CoreList MANIFEST file with what is on CPAN

12 years agoFix Module::Build entry in Maintainers.pl
David Golden [Wed, 14 Dec 2011 20:47:03 +0000 (15:47 -0500)]
Fix Module::Build entry in Maintainers.pl

Corrected path for CUSTOMIZED and updated the documentation of
CUSTOMIZED as a reminder for others.

12 years agoUpdate Maintainers.pl to quiet DAGOLDEN core-cpan-diff warnings
David Golden [Wed, 14 Dec 2011 20:39:57 +0000 (15:39 -0500)]
Update Maintainers.pl to quiet DAGOLDEN core-cpan-diff warnings