perl.git
3 years agoadd Changes file for PathTools
Ricardo Signes [Mon, 11 Jan 2016 13:41:43 +0000 (08:41 -0500)] 
add Changes file for PathTools

3 years agoavoid invalid memory access in MapPath[AW]
Tony Cook [Wed, 16 Dec 2015 00:13:30 +0000 (11:13 +1100)] 
avoid invalid memory access in MapPath[AW]

This issue was assigned CVE-2015-8608. [perl #126755]

3 years agoPathTools: bump version for CVE-2015-8607 fix
Ricardo Signes [Mon, 11 Jan 2016 12:57:52 +0000 (07:57 -0500)] 
PathTools: bump version for CVE-2015-8607 fix

3 years agoensure File::Spec::canonpath() preserves taint
Tony Cook [Mon, 14 Dec 2015 23:56:54 +0000 (10:56 +1100)] 
ensure File::Spec::canonpath() preserves taint

Previously the unix specific XS implementation of canonpath() would
return an untainted path when supplied a tainted path.

For the empty string case, newSVpvs() already sets taint as needed on
its result.

This issue was assigned CVE-2015-8607.  [perl #126862]

3 years agoperldelta for 6146d9e1c87d
Tony Cook [Mon, 11 Jan 2016 04:19:41 +0000 (15:19 +1100)] 
perldelta for 6146d9e1c87d

3 years ago[perl #123788] update isa magic stash records when *ISA is deleted
Tony Cook [Mon, 11 Jan 2016 03:45:43 +0000 (14:45 +1100)] 
[perl #123788] update isa magic stash records when *ISA is deleted

3 years ago[perl #123788] tests for making in in-use @ISA not an @ISA anymore
Tony Cook [Thu, 5 Mar 2015 04:17:41 +0000 (15:17 +1100)] 
[perl #123788] tests for making in in-use @ISA not an @ISA anymore

3 years agoperldelta for a7162bf74f38
Tony Cook [Sun, 10 Jan 2016 23:46:50 +0000 (10:46 +1100)] 
perldelta for a7162bf74f38

3 years ago[perl #123737] delay reporting a missing operator for arrays
Tony Cook [Sun, 10 Jan 2016 23:42:31 +0000 (10:42 +1100)] 
[perl #123737] delay reporting a missing operator for arrays

Previously it was reported at the beginning of the '@' case, without
even skipping the @ symbol.

Make the code more similar to the scalar case and try to parse an
identifier first.

3 years agoperldelta for 0072721ceb71, beb08a1e6d63, 5c1db5695506, 2f9365dc3b09
Tony Cook [Sun, 10 Jan 2016 22:47:40 +0000 (09:47 +1100)] 
perldelta for 0072721ceb71beb08a1e6d635c1db56955062f9365dc3b09

3 years ago[perl #126633] fix some corner cases in OPpASSIGN_COMMON_* handling
Tony Cook [Sun, 10 Jan 2016 22:33:34 +0000 (09:33 +1100)] 
[perl #126633] fix some corner cases in OPpASSIGN_COMMON_* handling

3 years ago[perl #126633] check children of OA_DANGEROUS ops for common scalars
Dave Mitchell [Thu, 7 Jan 2016 00:36:10 +0000 (11:36 +1100)] 
[perl #126633] check children of OA_DANGEROUS ops for common scalars

Tony Cook: added tests

3 years ago[perl #126633] copy anything gmagical on the right
Tony Cook [Tue, 8 Dec 2015 00:19:48 +0000 (11:19 +1100)] 
[perl #126633] copy anything gmagical on the right

It could retrieve something we're setting on the left.

3 years ago[perl #126633] if we see smagic on the left copy the rest on the right
Tony Cook [Mon, 7 Dec 2015 05:24:52 +0000 (16:24 +1100)] 
[perl #126633] if we see smagic on the left copy the rest on the right

3 years ago[perl #126633] TODO tests
Tony Cook [Mon, 7 Dec 2015 05:22:38 +0000 (16:22 +1100)] 
[perl #126633] TODO tests

3 years agofix more file paths
Lukas Mai [Sun, 10 Jan 2016 16:37:22 +0000 (17:37 +0100)] 
fix more file paths

3 years agoHiRes.t no longer exists
Tom Hukins [Sun, 10 Jan 2016 16:28:39 +0000 (16:28 +0000)] 
HiRes.t no longer exists

Specify which Time::HiRes test scripts might fail under system load.

3 years agoFix file paths
Tom Hukins [Thu, 10 Dec 2015 13:30:22 +0000 (13:30 +0000)] 
Fix file paths

3 years agoTailor \b{wb} for Perl
Karl Williamson [Tue, 5 Jan 2016 23:12:55 +0000 (16:12 -0700)] 
Tailor \b{wb} for Perl

The Unicode \b{wb} matches the boundary between space characters in a
span of them.  This is opposite of what \b does, and is counterintuitive
to Perl expectations.  This commit tailors \b{wb} to not split up spans
of white space.

I have submitted a request to Unicode to re-examine their algorithm, and
this has been assigned to a subcommittee to look at, but the result
won't be available until after 5.24 is done.  In any event, Unicode
encourages tailoring for local conditions.

3 years agomktables: Add constructor parameter
Karl Williamson [Tue, 5 Jan 2016 22:58:07 +0000 (15:58 -0700)] 
mktables: Add constructor parameter

This new parameter will be used in the next commit, adds a special case
for handling tables that the perl interpreter relies on when compiling
a Unicode version earlier than the property is defined by Unicode.  This
will allow for tailoring the property to Perl's needs in the next commit

3 years agoregexec.c: Add a parameter to a static function
Karl Williamson [Wed, 6 Jan 2016 17:21:02 +0000 (10:21 -0700)] 
regexec.c: Add a parameter to a static function

This will allow new behavior, needed in a future commit.

3 years agoperlrebackslash: White-space, clarification
Karl Williamson [Thu, 7 Jan 2016 18:31:18 +0000 (11:31 -0700)] 
perlrebackslash: White-space, clarification

3 years agoDeparse.pm lives in lib/B now, not dist/B-Deparse
Lukas Mai [Fri, 8 Jan 2016 01:29:09 +0000 (02:29 +0100)] 
Deparse.pm lives in lib/B now, not dist/B-Deparse

3 years agoperlreftut: lots of small changes
Lukas Mai [Thu, 7 Jan 2016 19:34:29 +0000 (20:34 +0100)] 
perlreftut: lots of small changes

- use I<...> for italics/emphasis, not '...'
- "Make Rule 2" was missing its "=head3" that marks it as a section
- consistently use 2 spaces for indentation
- add internal hyperlinks to the Make/Use Rules
- consistently use C<...> to refer to variables
- consistently use 'for' (not 'foreach')
- hyperlink push/ref to their documentation in perlfunc
- hyperlink ==/eq to their documentation in perlop
- hyperlink "use strict 'refs'" to strict
- remove mention of "soft reference" because according to perlref that
  term has been officially discouraged since 1996

3 years agoperlreftut: make example strict clean
Lukas Mai [Thu, 7 Jan 2016 18:43:52 +0000 (19:43 +0100)] 
perlreftut: make example strict clean

Also change the indentation from chomp from 1 back to 2 spaces. (It was
changed from 2 to 1 in a29d1a25ab4 in 2003 but no reason was given.)

3 years agolib/utf8.pm: pod changes
Karl Williamson [Thu, 7 Jan 2016 16:10:10 +0000 (09:10 -0700)] 
lib/utf8.pm: pod changes

See thread beginning at
http://nntp.perl.org/group/perl.perl5.porters/233125

3 years agoUpgrade Pod-Usage from version 1.67 to 1.68
Steve Hay [Thu, 7 Jan 2016 12:57:33 +0000 (12:57 +0000)] 
Upgrade Pod-Usage from version 1.67 to 1.68

3 years agoUpgrade Test-Harness from version 3.35 to 3.36
Steve Hay [Thu, 7 Jan 2016 12:44:56 +0000 (12:44 +0000)] 
Upgrade Test-Harness from version 3.35 to 3.36

3 years agoperldelta for 0cd52e23ae64
Tony Cook [Thu, 7 Jan 2016 05:27:08 +0000 (16:27 +1100)] 
perldelta for 0cd52e23ae64

3 years ago[perl #126042] handle scalar context for a missing import/unimport call
Tony Cook [Wed, 4 Nov 2015 00:03:36 +0000 (11:03 +1100)] 
[perl #126042] handle scalar context for a missing import/unimport call

3 years agogive Win32 miniperl a real getcwd for build perf
Daniel Dragan [Thu, 10 Dec 2015 23:35:34 +0000 (18:35 -0500)] 
give Win32 miniperl a real getcwd for build perf

getcwd() is now 605x faster for Win32 miniperl.
------------------------------
use Cwd;
Cwd::getcwd() for(0..10000);
------------------------------
before
C:\p523\src\win32>timeit -f t.dat ..\miniperl -I..\lib t.pl
Version Number:   Windows NT 6.1 (Build 7601)
Exit Time:        2:03 am, Thursday, December 10 2015
Elapsed Time:     0:01:12.438
Process Time:     0:00:14.289
System Calls:     5802378
Context Switches: 1455066
Page Faults:      5250724
Bytes Read:       76809789
Bytes Written:    5278717
Bytes Other:      10407004
after
C:\p523\src\win32>timeit -f t.dat ..\miniperl -I..\lib t.pl
Version Number:   Windows NT 6.1 (Build 7601)
Exit Time:        1:20 am, Thursday, December 10 2015
Elapsed Time:     0:00:00.119
Process Time:     0:00:00.124
System Calls:     4658
Context Switches: 540
Page Faults:      1127
Bytes Read:       99074
Bytes Written:    0
Bytes Other:      12888

3 years agoperlgit: Fix too long verbatim line
Karl Williamson [Wed, 6 Jan 2016 22:34:15 +0000 (15:34 -0700)] 
perlgit: Fix too long verbatim line

3 years agopodcheck: Improve NAME detection
Karl Williamson [Wed, 6 Jan 2016 22:33:09 +0000 (15:33 -0700)] 
podcheck: Improve NAME detection

If the =head1 NAME section contained an =for block, that caused podcheck
to not detect the defined NAME.

3 years agomktables: Fix /l testing in re/uniprops.t
Karl Williamson [Wed, 6 Jan 2016 20:00:37 +0000 (13:00 -0700)] 
mktables: Fix /l testing in re/uniprops.t

The utf8 locale testing was not getting done.

3 years agoDeparse the /n flag on regexes [perl #127189]
Lukas Mai [Wed, 6 Jan 2016 14:16:16 +0000 (15:16 +0100)] 
Deparse the /n flag on regexes [perl #127189]

3 years agoverses -> versus
Lukas Mai [Wed, 6 Jan 2016 13:16:40 +0000 (14:16 +0100)] 
verses -> versus

3 years agopodlators has been upgraded to version 4.04
Steve Hay [Wed, 6 Jan 2016 08:25:08 +0000 (08:25 +0000)] 
podlators has been upgraded to version 4.04

Remove the Changes file that didn't need to be added; also remove the
VERSION file, which I see no need for -- Makefile.PL says that the distro's
version comes from lib/Pod/Man.pm, and in fact all the .pm files have the
same version anyway.

Note: Porting/Maintainers.pl is out of sync in its notes about pod2man and
pod2text (and doesn't note that Makefile.PL is locally modified), but
that's about to change in 4.05 anyway, so no point in fixing right now.

3 years agoUpgrade Math-BigInt from version 1.999714 to 1.999715
Steve Hay [Wed, 6 Jan 2016 08:16:51 +0000 (08:16 +0000)] 
Upgrade Math-BigInt from version 1.999714 to 1.999715

3 years agoUpgrade libnet from version 3.07 to 3.08
Steve Hay [Wed, 6 Jan 2016 08:14:36 +0000 (08:14 +0000)] 
Upgrade libnet from version 3.07 to 3.08

3 years agofix a typo in perl5233delta.pod
Tony Cook [Wed, 6 Jan 2016 05:16:04 +0000 (16:16 +1100)] 
fix a typo in perl5233delta.pod

Pointed out by Andrew Rodland (hobbs) on #p5p

3 years ago[perl #126240] avoid leaking memory when setting $ENV{foo} on darwin
Tony Cook [Wed, 6 Jan 2016 03:27:46 +0000 (14:27 +1100)] 
[perl #126240] avoid leaking memory when setting $ENV{foo} on darwin

My change in e396210 was incomplete, that change was intended to
force use of setenv()/unsetenv() on Darwin, but ended up using putenv()
instead, which is a leaky mechanism.

Added darwin to the list of many others that work better with setenv()/
unsetenv().

3 years agoperlsyn: change = to == in conditional in do/while example
Lukas Mai [Tue, 5 Jan 2016 23:35:24 +0000 (00:35 +0100)] 
perlsyn: change = to == in conditional in do/while example

... also remove unused LOOP label from 'last' example, mention 'redo'
(works like 'next' in this case), add example that combines
'next'/'last' (and requires the label).

3 years agoUpgrade Unicode-Normalize from version 1.24 to 1.25
Steve Hay [Tue, 5 Jan 2016 17:37:21 +0000 (17:37 +0000)] 
Upgrade Unicode-Normalize from version 1.24 to 1.25

3 years agoUpgrade bignum from version 0.41 to 0.42
Steve Hay [Tue, 5 Jan 2016 13:12:45 +0000 (13:12 +0000)] 
Upgrade bignum from version 0.41 to 0.42

3 years agoSilence t/porting/cmp_version.t after Math-Big* upgrades
Steve Hay [Mon, 4 Jan 2016 14:15:43 +0000 (14:15 +0000)] 
Silence t/porting/cmp_version.t after Math-Big* upgrades

3 years agoUpgrade Math-BigRat from version 0.260801 to 0.260802
Steve Hay [Mon, 4 Jan 2016 13:55:50 +0000 (13:55 +0000)] 
Upgrade Math-BigRat from version 0.260801 to 0.260802

(This maintains the one minor divergence between blead and cpan. The blead
version first appeared in 50a54b125c. I haven't examined whether this
difference needs to remain, or whether we can switch to the cpan version.)

3 years agoUpgrade Math-BigInt-FastCalc from version 0.38 to 0.40
Steve Hay [Mon, 4 Jan 2016 13:33:22 +0000 (13:33 +0000)] 
Upgrade Math-BigInt-FastCalc from version 0.38 to 0.40

3 years agoUpgrade Math-BigInt from version 1.999710 to 1.999714
Steve Hay [Mon, 4 Jan 2016 13:32:30 +0000 (13:32 +0000)] 
Upgrade Math-BigInt from version 1.999710 to 1.999714

3 years agoperlgit: many small changes
Lukas Mai [Tue, 5 Jan 2016 12:04:24 +0000 (13:04 +0100)] 
perlgit: many small changes

- verbatimize a paragraph of sample commands
- grammar: sent -> send
- consistently hyperlink all email addresses
- hyperlink RT tickets
- hyperlink commit hashes
- consistently refer to bisect.pl as F<Porting/bisect.pl>
- add F< > to things that look like filenames

3 years agoclarify meaning of waitpid returning 0 [perl #127080]
Lukas Mai [Fri, 1 Jan 2016 14:45:47 +0000 (15:45 +0100)] 
clarify meaning of waitpid returning 0 [perl #127080]

3 years agoexplain meaning of negative PIDs in waitpid [perl #127080]
Lukas Mai [Fri, 1 Jan 2016 14:35:58 +0000 (15:35 +0100)] 
explain meaning of negative PIDs in waitpid [perl #127080]

3 years ago[perl #126922] avoid access to uninitialized memory in win32 crypt()
Tony Cook [Thu, 17 Dec 2015 00:15:31 +0000 (11:15 +1100)] 
[perl #126922] avoid access to uninitialized memory in win32 crypt()

Previously the Win32 crypt implementation() would access the first
and second characters of the salt, even if the salt was zero length.

Add validation that will detect both a short salt and invalid
characters in the salt.

3 years agoAdd Configure support for fdclose() for [perl #126847].
Andy Dougherty [Wed, 30 Dec 2015 03:58:51 +0000 (22:58 -0500)] 
Add Configure support for fdclose() for [perl #126847].

This patch also adjusts the generated files suggested by
Porting/checkcfgvar.pl.

3 years agoPATCH: Re: [perl #126847] fdclose(3) patch
Andy Dougherty [Wed, 30 Dec 2015 03:47:42 +0000 (22:47 -0500)] 
PATCH: Re: [perl #126847] fdclose(3) patch

This patch uses the fdclose() function from FreeBSD if it
is available.  It is based on the original patch supplied
by Mariusz Zaborski <oshogbo@FreeBSD.org> in the RT ticket.

The next patch will add Configure support for HAS_FDCLOSE.

3 years agoPorting/bench.pl: add --compact option
David Mitchell [Mon, 4 Jan 2016 13:15:19 +0000 (13:15 +0000)] 
Porting/bench.pl: add --compact option

With this, you specify which perl executable you want the results for,
and it will display the result in a much more compact form than when
displaying the results for all perls, with just one line per test.

3 years agoPorting/bench.pl: preserve test order
David Mitchell [Mon, 4 Jan 2016 11:47:18 +0000 (11:47 +0000)] 
Porting/bench.pl: preserve test order

In the absence of a --sort option, process and display the tests in the
order they appear in the test file, rather than in alphabetical order.

This is because the layout in the benchmark file usually follows some sort
of logical order

3 years agoRemove superfluous entry in checkAUTHORS.pl.
James E Keenan [Sun, 3 Jan 2016 23:00:17 +0000 (18:00 -0500)] 
Remove superfluous entry in checkAUTHORS.pl.

3 years agoperldelta for 4732711e2548
Tony Cook [Sun, 3 Jan 2016 22:43:18 +0000 (09:43 +1100)] 
perldelta for 4732711e2548

3 years agoRemove nm from libswanted
Andreas Koenig [Sun, 3 Jan 2016 07:40:33 +0000 (08:40 +0100)] 
Remove nm from libswanted

Nm stood for "New Math" library in the context of 1994. 2014 a conflicting
library libnm appeared that has a network manager context.

3 years agoProvide additional email address for contributor Mattia Barbon.
James E Keenan [Sun, 3 Jan 2016 21:59:46 +0000 (16:59 -0500)] 
Provide additional email address for contributor Mattia Barbon.

3 years agoReplace :: with __ in THIS like it's done for parameters/return values
Mattia Barbon [Sun, 3 Jan 2016 20:54:31 +0000 (21:54 +0100)] 
Replace :: with __ in THIS like it's done for parameters/return values

Apart from being more consistent, this simplifies writing XS code
wrapping C++ classes into a nested Perl namespace (it reqquires only
a typedef for Foo__Bar rather than two, one for Foo_Bar and the other
for Foo::Bar).

Impact is likely to be minimmal: it will only affect classes:
- in C++ extensions (there is no way to make Foo::Bar *THIS compile in C)
- that use Foo::Bar only as a receiver (if they use it as a
  parameter/return value the typedef is already there)

Given that a class is always used as the return valus in a normal
constructor, this case should be relatively rare.

given this Foo.xs file:

    MODULE=Foo PACKAGE=Foo::Bar

    TYPEMAP: <<EOT
    TYPEMAP
    Foo::Bar * T_PTRREF
    EOT

    Foo::Bar *
    Foo::Bar::moo(Foo::Bar *foo)

the output of

     perl -Ilib lib/ExtUtils/xsubpp -prototypes Foo.xs
        | grep -A8 moo | head -n 10

changes from:

    XS_EUPXS(XS_Foo__Bar_moo); /* prototype to pass -Wmissing-prototypes */
    XS_EUPXS(XS_Foo__Bar_moo)
    {
        dVAR; dXSARGS;
        if (items != 2)
            croak_xs_usage(cv,  "THIS, foo");
        {
            Foo::Bar *      THIS;
            Foo__Bar *      RETVAL;
            Foo__Bar *      foo;

to:

    XS_EUPXS(XS_Foo__Bar_moo); /* prototype to pass -Wmissing-prototypes */
    XS_EUPXS(XS_Foo__Bar_moo)
    {
        dVAR; dXSARGS;
        if (items != 2)
           croak_xs_usage(cv,  "THIS, foo");
        {
            Foo__Bar *      THIS;
            Foo__Bar *      RETVAL;
            Foo__Bar *      foo;

3 years agoperldelta: podlators upgrade to 4.04
James E Keenan [Sun, 3 Jan 2016 19:51:52 +0000 (14:51 -0500)] 
perldelta: podlators upgrade to 4.04

3 years agoupdate podlators to 4.04
Karen Etheridge [Sun, 3 Jan 2016 19:05:17 +0000 (11:05 -0800)] 
update podlators to 4.04

3 years agofix -DPERL_GLOBAL_STRUCT_PRIVATE builds
David Mitchell [Sun, 3 Jan 2016 19:34:26 +0000 (19:34 +0000)] 
fix -DPERL_GLOBAL_STRUCT_PRIVATE builds

t/porting/libperl.t checks that, under -DPERL_GLOBAL_STRUCT_PRIVATE
builds, there are no bss symbols. This line in locale.c was failing that
test:

    static char ret[128] = "";

By changing it to

    static char ret[128] = "x";

it's no longer BSS data and the test passes.

Bit of a hack, but that function only exists in debugging builds, so it
doesn't matter too much.

3 years agoRemove unwarranted assertion in Perl_newATTRSUB_x()
Aaron Crane [Sun, 3 Jan 2016 14:29:43 +0000 (14:29 +0000)] 
Remove unwarranted assertion in Perl_newATTRSUB_x()

RT #126845: if a stub subroutine definition with a prototype has been seen,
then any subsequent stub (or definition) of the same subroutine with an
attribute was causing an assertion failure because of a null pointer.

This assertion was added in 2eaf799e74b14dc77b90d5484a3fd4ceac12b46a, which
itself would already have triggered this assertion failure, even though all
subsequent uses of the pointer in question were guarded with non-null
conditions. So merely deleting the assertion is the right thing.

3 years ago*glob{FILEHANDLE} is no longer deprecated
Ricardo Signes [Fri, 1 Jan 2016 02:54:49 +0000 (21:54 -0500)] 
*glob{FILEHANDLE} is no longer deprecated

We are now trying to use deprecation warnings only when we believe
that a behavior will really be removed or made an error.  Since we
don't plan to do that with *glob{FILEHANDLE}, the warning is not
useful and may be harmful.

See discussion at [perl #127060].

3 years agoUpdate podlators to version 4.03
Karen Etheridge [Sun, 20 Dec 2015 03:08:24 +0000 (19:08 -0800)] 
Update podlators to version 4.03

3 years agopodcheck.t: tell the author where the problems db is located
Karen Etheridge [Fri, 1 Jan 2016 18:46:31 +0000 (10:46 -0800)] 
podcheck.t: tell the author where the problems db is located

3 years agoRMG: fix typo, clarify instructions a bit
Karen Etheridge [Mon, 21 Dec 2015 05:22:08 +0000 (21:22 -0800)] 
RMG: fix typo, clarify instructions a bit

3 years ago[PATCH] Try more crypt algorithms in the tests, for OpenBSD.
Andy Dougherty [Thu, 31 Dec 2015 14:01:06 +0000 (09:01 -0500)] 
[PATCH] Try more crypt algorithms in the tests, for OpenBSD.

OpenBSD implements the Blowfish algorithm, but not the MD5 one used
by glibc.   Enhance the crypt and taint tests to try both algorithms.
If neither works, fall back to no algorithm.  The Blowfish salt
is taken from the OpenBSD crypt(3) page.

3 years agorelease schedule: add release managers for 2016Q1
Ricardo Signes [Tue, 29 Dec 2015 21:01:39 +0000 (16:01 -0500)] 
release schedule: add release managers for 2016Q1

3 years agoFile::Find: update POD/comments
Lukas Mai [Mon, 28 Dec 2015 01:03:20 +0000 (02:03 +0100)] 
File::Find: update POD/comments

- change double spaces to single spaces
- remove comment that got lost during the POD reshuffling in f4eedc6b8c8
  (and probably should have been a commit message in the first place)
- remove use of "EG:" that makes no sense to me
- remove reference to hints/machten.sh (removed in e94c1c0554 6 years
  ago)
- change L<The wanted function> to L</The wanted function> because
  that's what internal links should look like according to perlpod
- change S<_> to C<_> (it was S< _> originally but the space got lost
  during a revert, making S<> into a no-op (but why would you write
  S< _> in the first place?))
- link "taint-mode" to perlsec (probably only makes a difference in
  HTML, not man)
- various typo/grammar fixes
- teach podcheck.t about find(1)
- bump version

3 years agoperlpodspec: fix typo
Lukas Mai [Mon, 28 Dec 2015 00:58:50 +0000 (01:58 +0100)] 
perlpodspec: fix typo

3 years agoregcomp.c: Add comment.
Karl Williamson [Sat, 26 Dec 2015 19:37:00 +0000 (12:37 -0700)] 
regcomp.c: Add comment.

This should have been included in commit
285b5ca0145796a915dec03e87e0176fd4681041

3 years agoregexec.c: Avoid a function call
Karl Williamson [Sat, 26 Dec 2015 19:35:32 +0000 (12:35 -0700)] 
regexec.c: Avoid a function call

Not infrequently, a UTF-8 string will contain ASCII.  In this case, by
adding a test for this we can avoid the function call that is needed for
more complicated cases.

3 years agoregcomp.h: Remove extraneous 'struct's
Karl Williamson [Sat, 26 Dec 2015 19:34:07 +0000 (12:34 -0700)] 
regcomp.h: Remove extraneous 'struct's

Better to not have this clutter.

3 years agoregcomp.h: Fix shift and mask
Karl Williamson [Sat, 26 Dec 2015 18:47:26 +0000 (11:47 -0700)] 
regcomp.h: Fix shift and mask

The mask removed here was to make sure that right shifting didn't
propagate the sign bit, but is unnecessary as the value shifted is
unsigned.  And confining things to a U8 with that mask assumes that the
bit vector being operated on has 256 elements max.  This isn't
necessarily true these days, as one can change ANYOF_BITMAP_SIZE.
In fact changing that number was failing until this commit.

It also adds white space to make it easier to read.

3 years agoregcomp.h: Use more basic macro in #defines
Karl Williamson [Sat, 26 Dec 2015 18:28:09 +0000 (11:28 -0700)] 
regcomp.h: Use more basic macro in #defines

Instead of having this code repeated in several places, call
the more base macro from the others.

3 years agoregcomp.h: Free up bit in ANYOF FLAGS field
Karl Williamson [Fri, 25 Dec 2015 05:42:08 +0000 (22:42 -0700)] 
regcomp.h: Free up bit in ANYOF FLAGS field

I've long been confronted with trying to do things to create a spare bit
to use.  I thought it easier now, while it's fresh in my mind, to free
up one for future use, rather than re-learn things when it next becomes
necessary.  It would have been a different story if the freed bit had
required a performance penalty.

This commit also updates the comments about how to create even more
spare bits should it become necessary.

3 years agoregcomp.h: Shorten, clarify names of internal flags
Karl Williamson [Wed, 23 Dec 2015 19:43:30 +0000 (12:43 -0700)] 
regcomp.h: Shorten, clarify names of internal flags

Some of the names are expanded slightly and not shortened

3 years agoAPItest.xs: Silence compiler warning on 32-bit machines
Karl Williamson [Wed, 23 Dec 2015 19:38:23 +0000 (12:38 -0700)] 
APItest.xs: Silence compiler warning on 32-bit machines

One warning remains, otherwise things don't work.

3 years agomktables: Free up some memory after final use
Karl Williamson [Wed, 23 Dec 2015 19:30:40 +0000 (12:30 -0700)] 
mktables: Free up some memory after final use

This may be enough for some platforms that aren't able to compile the
Unicode tables to work.  BUt it's quite late in the process.  The
ultimate solution would be for the tables to all be compiled ahead of
time.  That is under consideration for the future.

3 years agot/thread_it.pl: Increase stack size for AIX
Karl Williamson [Wed, 23 Dec 2015 18:29:08 +0000 (11:29 -0700)] 
t/thread_it.pl: Increase stack size for AIX

This is enough to get the smoker to pass t/re/pat_thr.t

3 years agoUpdate release manager's guide
David Golden [Tue, 22 Dec 2015 20:49:17 +0000 (15:49 -0500)] 
Update release manager's guide

3 years agoPATCH: [perl #126261: Assertion failure on missing [ in qr//
Karl Williamson [Tue, 22 Dec 2015 03:52:50 +0000 (20:52 -0700)] 
PATCH: [perl #126261: Assertion failure on missing [ in qr//

This is the result of the regex compiler creating a temporary buffer to
parse a portion of the input pattern, and then when an error or warning
occurs in that buffer, trying to use addresses both inside it and the
original pattern.

The solution here is a general one, that confines the heavy lifting to
one macro, plus a little setup and tear-down around the use of the
temporary buffer.  The comments in the code detail how we relate the
address of the error in the temporary back to the parallel address in
the input pattern.

3 years agoregcomp.c: update RExC_start when parsing outside input
Karl Williamson [Tue, 22 Dec 2015 03:38:14 +0000 (20:38 -0700)] 
regcomp.c: update RExC_start when parsing outside input

I noticed this while code reading.  In places, regcomp parses not the
input pattern but a temporary buffer it constructs, based on that input
pattern.  RExC_start should be updated so it always is pointing to the
same buffer as the parse pointer; otherwise segfaults can happen.

I have no idea how one currently can get into the situation this
protects against, so there are no tests added.

3 years agoregcomp.c: Add a stable pattern end pointer.
Karl Williamson [Tue, 22 Dec 2015 01:26:37 +0000 (18:26 -0700)] 
regcomp.c: Add a stable pattern end pointer.

RExC_end is set sometimes during pattern compilation to perhaps another
string in memory.  Messages are output based on the original string, so
create an end pointer that is in terms of that original string,
otherwise could get segfaults.

3 years agot/lib/warnings/regcomp: Fix typo in comment
Karl Williamson [Tue, 22 Dec 2015 01:18:36 +0000 (18:18 -0700)] 
t/lib/warnings/regcomp: Fix typo in comment

3 years agoregcomp.c: Use macro instead of recalculating
Karl Williamson [Tue, 22 Dec 2015 00:56:13 +0000 (17:56 -0700)] 
regcomp.c: Use macro instead of recalculating

There is a macro that does the job that this code does.  Use it.

3 years agoregcomp.c: Move calculations to common macro
Karl Williamson [Mon, 21 Dec 2015 04:48:04 +0000 (21:48 -0700)] 
regcomp.c: Move calculations to common macro

This consolidates identical calculations into a single place, which
makes things easier to maintain.

Probably the reason they previously were dispersed, is because now the
common macro has to evaluate the same expression more than once.  Since
the macro is used to return a list, it can't be turned into a single
statement.

Any decent optimizing compiler will extract the common subexpressions
and evaluate them just once.  But even if not, the macro is called only
in the event of a fatal error (in which case speed is not important), or
to raise a warning, which we expect to be rare, and the extra work is
negligible in comparison with what is needed to output the message.

3 years agoregcomp.h: reword some comments
Karl Williamson [Mon, 21 Dec 2015 20:37:20 +0000 (13:37 -0700)] 
regcomp.h: reword some comments

3 years agoregcomp.c: Make some params to a static fcn const
Karl Williamson [Mon, 21 Dec 2015 21:47:05 +0000 (14:47 -0700)] 
regcomp.c: Make some params to a static fcn const

This is just acting on the TODO comment.

3 years agoregcomp.c: Add 2 basic assertions
Karl Williamson [Fri, 20 Nov 2015 03:51:04 +0000 (20:51 -0700)] 
regcomp.c: Add 2 basic assertions

These should be true because an SV* should always have a trailing NUL,
but a lot of things in this code depend on it.  It's worthwhile to point
that out; I wasn't sure it was true until I investigated.  And an
assert() makes sure it is really true

3 years agopp_hot.c: Add assertion
Karl Williamson [Wed, 21 Oct 2015 04:23:00 +0000 (22:23 -0600)] 
pp_hot.c: Add assertion

This will make the cause of any future failures more clear.

3 years agoperlapi: Clarify 'string' vs. buffer
Karl Williamson [Wed, 21 Oct 2015 04:21:42 +0000 (22:21 -0600)] 
perlapi: Clarify 'string' vs. buffer

A string strictly is NUL terminated, but our terminology is lax

3 years agoutf8.h: Add 2 assertions
Karl Williamson [Wed, 21 Oct 2015 04:08:59 +0000 (22:08 -0600)] 
utf8.h: Add 2 assertions

This makes sure in DEBUGGING builds that the macro is called correctly.

3 years agoControlled demolition, CoreList is 5.20151220
Chris 'BinGOs' Williams [Tue, 22 Dec 2015 14:29:48 +0000 (14:29 +0000)] 
Controlled demolition, CoreList is 5.20151220

3 years agoDeprecate to_utf8_case()
Karl Williamson [Tue, 22 Dec 2015 04:29:12 +0000 (21:29 -0700)] 
Deprecate to_utf8_case()

See http://nntp.perl.org/group/perl.perl5.porters/233287

3 years agoBump the perl version in various places for 5.23.7
David Golden [Mon, 21 Dec 2015 23:17:43 +0000 (18:17 -0500)] 
Bump the perl version in various places for 5.23.7

3 years agoCreate new perldelta.pod for v5.23.7
David Golden [Mon, 21 Dec 2015 23:07:32 +0000 (18:07 -0500)] 
Create new perldelta.pod for v5.23.7