This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
7 years ago(perl #128438) build ppport.h instead of using a dummy file
Tony Cook [Wed, 22 Jun 2016 05:43:21 +0000 (15:43 +1000)]
(perl #128438) build ppport.h instead of using a dummy file

The changes to parallelize win32 perl builds with dmake and gmake
assumed that ppport.h only provided macros and functions that are
already provided by the latest perl.

This turns out not to be the case, preventing the building of
a new Scalar-List-Utils with dmake and gmake.

I only briefly considered changing Scalar-List-Utils - the difference
in build systems is what lead to the failure, so properly build ppport.h
so that all Win32 builds have a full ppport.h just as POSIXish builds
do.

7 years agoConfigure: note that the infnan tests may crash.
Jarkko Hietaniemi [Wed, 27 Jul 2016 11:04:02 +0000 (07:04 -0400)]
Configure: note that the infnan tests may crash.

(And in VAX, that is exactly what happens with the infinities.)

7 years agoVAX: VAX format H
Jarkko Hietaniemi [Wed, 27 Jul 2016 02:10:30 +0000 (22:10 -0400)]
VAX: VAX format H

7 years agoConfigure: VAX format H
Jarkko Hietaniemi [Wed, 27 Jul 2016 02:10:42 +0000 (22:10 -0400)]
Configure: VAX format H

7 years agoVAX: catch vax floats beyond VMS or Ultrix
Jarkko Hietaniemi [Tue, 26 Jul 2016 01:50:32 +0000 (21:50 -0400)]
VAX: catch vax floats beyond VMS or Ultrix

7 years agoVAX: document also formats S/T/X, and hidden bits
Jarkko Hietaniemi [Mon, 25 Jul 2016 22:57:41 +0000 (18:57 -0400)]
VAX: document also formats S/T/X, and hidden bits

Though S, T, and X are not really pure VAX formats per se.

7 years ago[perl #128630] follow-up on 6151d433
Jarkko Hietaniemi [Tue, 26 Jul 2016 01:30:34 +0000 (21:30 -0400)]
[perl #128630] follow-up on 6151d433

- test explicitly for $^O equivalence (faster, simpler),
  as suggested in #126380
- allow also \b-/i match of archname
- however, do not explicitly anchor the archname,
  as suggested in #126380, since if the regexp needs that, it can do so
- \Q-\E-protect the $^O, for paranoia
- for skip, use test.pl skip() instead of ok(1),
  pointed out privately by Dan Collins
- drop the newly added /xxx/ functionality to simplify things

7 years agoPATCH: [perl #128734] tr/\N{...}/ failing for 128-255
Karl Williamson [Wed, 27 Jul 2016 18:44:42 +0000 (12:44 -0600)]
PATCH: [perl #128734] tr/\N{...}/ failing for 128-255

The upper latin1 characters when expressed as \N{U+...} were failing.
This was due to trying to convert them to UTF-8 when the result isn't
UTF-8.  I added a test for \N{name} as well, though these were not
affected by this regression.

7 years agoAdd tests for runaway q«« strings
Father Chrysostomos [Tue, 26 Jul 2016 21:27:23 +0000 (14:27 -0700)]
Add tests for runaway q«« strings

fixed by cb65013.

7 years agoHandle missing Unicode heredoc terminators correctly
Father Chrysostomos [Tue, 26 Jul 2016 17:06:46 +0000 (10:06 -0700)]
Handle missing Unicode heredoc terminators correctly

7 years ago[perl #128701] Fix err msg for Unicode delimiters
Father Chrysostomos [Tue, 26 Jul 2016 08:46:23 +0000 (01:46 -0700)]
[perl #128701] Fix err msg for Unicode delimiters

The output of

    perl -CS -e 'use utf8; q«'

is now correctly:

    Can't find string terminator "«" anywhere before EOF at -e line 1.

Previously, the first byte of the delimiter (as encoded in UTF-8)
would be used instead:

    Can't find string terminator "Â" anywhere before EOF at -e line 1.

7 years agoparser.h: Use UV for string delims
Father Chrysostomos [Tue, 26 Jul 2016 07:47:16 +0000 (00:47 -0700)]
parser.h: Use UV for string delims

We will need to store characters > 255 in here.

Also, cast accordingly in toke.c.

7 years ago(perl #127384)(CVE-2016-1238) port forward changes from maint
Tony Cook [Tue, 26 Jul 2016 06:15:33 +0000 (16:15 +1000)]
(perl #127384)(CVE-2016-1238) port forward changes from maint

Some of these changes are unnecessary if we remove the default . from
@INC for 5.26.

7 years ago(perl #127834) update CUSTOMIZED entries
Tony Cook [Tue, 26 Jul 2016 05:36:15 +0000 (15:36 +1000)]
(perl #127834) update CUSTOMIZED entries

7 years agocpan/: bump $VERSION as needed
Tony Cook [Tue, 26 Jul 2016 05:21:25 +0000 (15:21 +1000)]
cpan/: bump $VERSION as needed

7 years agocpan/: remove . from @INC when loading optional modules
Tony Cook [Mon, 27 Jun 2016 06:21:21 +0000 (16:21 +1000)]
cpan/: remove . from @INC when loading optional modules

7 years agodist/: bump $VERSION as needed
Tony Cook [Tue, 26 Jul 2016 01:49:33 +0000 (11:49 +1000)]
dist/: bump $VERSION as needed

7 years agodist/: remove . from @INC when loading optional modules
Tony Cook [Thu, 23 Jun 2016 04:06:40 +0000 (14:06 +1000)]
dist/: remove . from @INC when loading optional modules

I didn't update base.pm since that seems more likely to be loading
modules *expected* to be in the current directory.  Opinions
welcome.

7 years agobump perl5db.pl's $VERSION
Tony Cook [Tue, 26 Jul 2016 01:37:34 +0000 (11:37 +1000)]
bump perl5db.pl's $VERSION

Add a note about version numbering, since if we use X.XX_XX versions
in blead it's harder to find an unused version number if the module
is modified in maint.

7 years agoperl5db.pl: ensure PadWalker is loaded from standard paths
Tony Cook [Thu, 23 Jun 2016 00:41:48 +0000 (10:41 +1000)]
perl5db.pl: ensure PadWalker is loaded from standard paths

7 years ago(perl #127834) bump versions of modules in dists we updated a utility in
Tony Cook [Tue, 26 Jul 2016 01:32:28 +0000 (11:32 +1000)]
(perl #127834) bump versions of modules in dists we updated a utility in

I tried to follow the numbering convention of the module,
bumping every module if the versions are synchronized, bumping
just the primary module if not.

7 years ago(perl #127834) remove . from the end of @INC if complex modules are loaded
Tony Cook [Tue, 21 Jun 2016 00:02:02 +0000 (10:02 +1000)]
(perl #127834) remove . from the end of @INC if complex modules are loaded

While currently Encode and Storable are know to attempt to load modules
not included in the core, updates to other modules may lead to those
also attempting to load new modules, so be safe and remove . for those
as well.

7 years agodecl-refs.t: I also forgot foreach
Father Chrysostomos [Tue, 26 Jul 2016 05:30:17 +0000 (22:30 -0700)]
decl-refs.t: I also forgot foreach

7 years agodecl-refs.t: I forgot to test \@ and \%
Father Chrysostomos [Tue, 26 Jul 2016 05:15:24 +0000 (22:15 -0700)]
decl-refs.t: I forgot to test \@ and \%

7 years agoupgrade Module-Metadata to 1.000033
Karen Etheridge [Mon, 25 Jul 2016 18:57:06 +0000 (11:57 -0700)]
upgrade Module-Metadata to 1.000033

7 years agoAdd epigraphs for 5.22.3-RC2 and 5.24.1-RC2
Steve Hay [Mon, 25 Jul 2016 13:31:37 +0000 (14:31 +0100)]
Add epigraphs for 5.22.3-RC2 and 5.24.1-RC2

7 years ago5.22.3-RC2 and 5.24.1-RC2 today
Steve Hay [Mon, 25 Jul 2016 10:26:07 +0000 (11:26 +0100)]
5.22.3-RC2 and 5.24.1-RC2 today

7 years agoUse tabs consistently in AUTHORS
Father Chrysostomos [Tue, 19 Jul 2016 06:04:46 +0000 (23:04 -0700)]
Use tabs consistently in AUTHORS

Mixed tabs and spaces are tolerable in code, but they should not
be used in human-readable text files.

7 years agoAdd Chris R. Donnelly to AUTHORS
Father Chrysostomos [Tue, 19 Jul 2016 06:03:48 +0000 (23:03 -0700)]
Add Chris R. Donnelly to AUTHORS

See commit 2f7a15bf0111, which failed to include this.

7 years agoS_pop_eval_context_maybe_croak: silence warning
David Mitchell [Fri, 22 Jul 2016 22:21:49 +0000 (23:21 +0100)]
S_pop_eval_context_maybe_croak: silence warning

g++ is too dumb to notice that in

    SV *s;

    if (foo)
        s = ...;
    ...;
    if (foo)
        ...do something with s...;

s can't be used uninitialised.

7 years agofix g++ compiler warning
David Mitchell [Fri, 22 Jul 2016 22:17:15 +0000 (23:17 +0100)]
fix g++ compiler warning

toke.c:4698:36: warning: enumeral and non-enumeral type in conditional expression [-Wextra]
      return REPORT(dojoin_was == 1 ? ')' : POSTJOIN);

I have no idea why mixing enums and non-emums is bad in C++. This commit
just casts the hell out the expression to shut it up.

7 years agoPATCH: [perl 128686] regex compiler crashes
Karl Williamson [Thu, 21 Jul 2016 15:58:21 +0000 (09:58 -0600)]
PATCH: [perl 128686] regex compiler crashes

This was due to freeing a scalar before its final use

7 years agoSwitch the order of the two backtracking chapters in perlre
Rafael Garcia-Suarez [Thu, 21 Jul 2016 13:37:25 +0000 (15:37 +0200)]
Switch the order of the two backtracking chapters in perlre

It makes more sense to explain what backtracking is first, and
then introduce the special backtracking control verbs.

This is just chapter swapping, no other edit has been done.
In other words this diff is basically:

    +=head2 Backtracking
     =head2 Special Backtracking Control Verbs
    -=head2 Backtracking
     =head2 Version 8 Regular Expressions

7 years agoregcomp.c: Silence compiler warning
Karl Williamson [Wed, 20 Jul 2016 07:43:47 +0000 (01:43 -0600)]
regcomp.c: Silence compiler warning

These functions are no longer needed in re_comp.c

7 years agoPrepare Module-CoreList for 5.25.4
Steve Hay [Wed, 20 Jul 2016 16:59:02 +0000 (17:59 +0100)]
Prepare Module-CoreList for 5.25.4

7 years agoBump version to 5.25.4
Steve Hay [Wed, 20 Jul 2016 16:52:57 +0000 (17:52 +0100)]
Bump version to 5.25.4

(including regen/opcode.pl)

7 years agoCreate new perldelta for 5.25.4
Steve Hay [Wed, 20 Jul 2016 16:46:48 +0000 (17:46 +0100)]
Create new perldelta for 5.25.4

7 years ago5.25.3 is released
Steve Hay [Wed, 20 Jul 2016 16:39:23 +0000 (17:39 +0100)]
5.25.3 is released

7 years agoAdd epigraph for 5.25.3
Steve Hay [Wed, 20 Jul 2016 16:38:35 +0000 (17:38 +0100)]
Add epigraph for 5.25.3

7 years ago5.25.3 today v5.25.3
Steve Hay [Wed, 20 Jul 2016 14:27:02 +0000 (15:27 +0100)]
5.25.3 today

7 years agoFinalize perldelta
Steve Hay [Wed, 20 Jul 2016 14:25:00 +0000 (15:25 +0100)]
Finalize perldelta

7 years agoUpdate Module-CoreList for 5.25.3
Steve Hay [Wed, 20 Jul 2016 14:20:41 +0000 (15:20 +0100)]
Update Module-CoreList for 5.25.3

7 years agoperldelta - Fill in Selected Bug Fixes etc
Steve Hay [Wed, 20 Jul 2016 14:15:06 +0000 (15:15 +0100)]
perldelta - Fill in Selected Bug Fixes etc

7 years agoFix typo in perldelta
Steve Hay [Wed, 20 Jul 2016 12:50:37 +0000 (13:50 +0100)]
Fix typo in perldelta

7 years agoperldelta - Fill in Modules and Pragmata
Steve Hay [Wed, 20 Jul 2016 12:43:21 +0000 (13:43 +0100)]
perldelta - Fill in Modules and Pragmata

7 years agoperldelta - Fill in rt.perl.org links
Steve Hay [Wed, 20 Jul 2016 12:33:07 +0000 (13:33 +0100)]
perldelta - Fill in rt.perl.org links

7 years agoperldelta - Fill in Testing
Steve Hay [Wed, 20 Jul 2016 12:24:10 +0000 (13:24 +0100)]
perldelta - Fill in Testing

7 years agoperldelta - Fill in Documentation
Steve Hay [Wed, 20 Jul 2016 12:21:54 +0000 (13:21 +0100)]
perldelta - Fill in Documentation

7 years agoperldelta - Fill in New Diagnostics
Steve Hay [Wed, 20 Jul 2016 12:01:07 +0000 (13:01 +0100)]
perldelta - Fill in New Diagnostics

7 years agoperldelta - Wrapping/formatting
Steve Hay [Wed, 20 Jul 2016 11:52:59 +0000 (12:52 +0100)]
perldelta - Wrapping/formatting

7 years agoperldelta - Fill in "fixed in" versions for Errata items
Steve Hay [Wed, 20 Jul 2016 11:39:57 +0000 (12:39 +0100)]
perldelta - Fill in "fixed in" versions for Errata items

(The perl #126182 problem was reported with 5.23.4, so certainly wasn't
*broken* in 5.24.0 as the note originally said. It was in fact *fixed* in
that version (actually, 5.23.9) by a series of commits in early March.)

7 years agoperldelta - Remove most boilerplate
Steve Hay [Wed, 20 Jul 2016 11:36:34 +0000 (12:36 +0100)]
perldelta - Remove most boilerplate

This moves one item ("scalar(%hash) return signature changed") from
Performance Enhancements to Incompatible Changes, where I think it is more
apt (although it does also involve a small performance enhancement).

7 years agoModule-Metadata has another customized test script
Steve Hay [Wed, 20 Jul 2016 11:08:48 +0000 (12:08 +0100)]
Module-Metadata has another customized test script

7 years agoEncode has some customized test scripts
Steve Hay [Wed, 20 Jul 2016 11:05:19 +0000 (12:05 +0100)]
Encode has some customized test scripts

7 years agoUpgrade Test-Simple from version 1.302040 to 1.302045
Steve Hay [Wed, 20 Jul 2016 10:55:16 +0000 (11:55 +0100)]
Upgrade Test-Simple from version 1.302040 to 1.302045

7 years agoUpgrade libnet from version 3.08 to 3.09
Steve Hay [Wed, 20 Jul 2016 10:49:22 +0000 (11:49 +0100)]
Upgrade libnet from version 3.08 to 3.09

7 years agorename "WORD" lexical token to "BAREWORD"
David Mitchell [Mon, 18 Jul 2016 10:57:19 +0000 (11:57 +0100)]
rename "WORD" lexical token to "BAREWORD"

The enum value "WORD" can apparently clash with a enum value in windows
headers.  It used to be worked around in windows by #defining YYTOKENTYPE,
which caused the

    enum yytokentype {
        ...
        WORD = ...;
    }

in perly.h to be skipped, while still using the

    #define WORD ...

which appears later in the same file.

In bison 3.x, the auto-generated perl.h no longer includes the #defines,
so this workaround no longer works.

Instead, change the name of the token from "WORD" to "BAREWORD".

7 years ago(perl #128524) correct indentation for utf-8 key hash elements
Tony Cook [Wed, 20 Jul 2016 04:10:44 +0000 (14:10 +1000)]
(perl #128524) correct indentation for utf-8 key hash elements

For utf-8 flagged keys the indentation was left as the default, the
key length, and was not updated to the adjusted length after
escaping and quoting.

The test originally used a pre-rendered dump, but potentially other
minor changes to the output would break that, now it simply compares
against the output of the first case.

7 years agolib/locale.t: Fix tests, add a test
Karl Williamson [Tue, 19 Jul 2016 00:49:40 +0000 (18:49 -0600)]
lib/locale.t: Fix tests, add a test

The tests assumed that the lowest collating non-NUL control was \001.
This isn't necessarily true, and in a few locales caused the test to
fail.

7 years agolocale.c: Add some debugging statements
Karl Williamson [Tue, 24 May 2016 17:41:32 +0000 (11:41 -0600)]
locale.c: Add some debugging statements

7 years agoperlop: clarify that entries aren't in prec order
David Mitchell [Mon, 18 Jul 2016 14:04:16 +0000 (15:04 +0100)]
perlop: clarify that entries aren't in prec order

RT #127921

The phrasing may have given the impression that the =head2 for each
operator was at a lower precedence than the previous =head2. Disabuse
people of that notion.

7 years agoUpgrade Math-BigInt from version 1.999724 to 1.999726
Steve Hay [Mon, 18 Jul 2016 07:38:24 +0000 (08:38 +0100)]
Upgrade Math-BigInt from version 1.999724 to 1.999726

7 years agoAdd epigraphs for 5.22.3-RC1 and 5.24.1-RC1
Steve Hay [Mon, 18 Jul 2016 07:22:15 +0000 (08:22 +0100)]
Add epigraphs for 5.22.3-RC1 and 5.24.1-RC1

7 years agoFix failing uninit test on 64-bit-int builds
Father Chrysostomos [Sun, 17 Jul 2016 21:14:53 +0000 (14:14 -0700)]
Fix failing uninit test on 64-bit-int builds

On 32-bit builds with 64-bit ints, pack "q" works, but pointers and
array subscripts are still 32-bit numbers, so the test will fail.
Actually check the pointers size via pack "p".

7 years agoperldelta for 6fe925b92 / my\
Father Chrysostomos [Sun, 17 Jul 2016 20:06:52 +0000 (13:06 -0700)]
perldelta for 6fe925b92 / my\

7 years agoperlref: Wrap pod
Father Chrysostomos [Sun, 17 Jul 2016 20:04:26 +0000 (13:04 -0700)]
perlref: Wrap pod

7 years agoNote in perlvar that ${^ENCODING} is removed
Father Chrysostomos [Sun, 17 Jul 2016 19:55:49 +0000 (12:55 -0700)]
Note in perlvar that ${^ENCODING} is removed

7 years agoAdd Filter::Encoding to the known links
Father Chrysostomos [Sun, 17 Jul 2016 19:55:17 +0000 (12:55 -0700)]
Add Filter::Encoding to the known links

I guess I must be famous now.

7 years agoperldelta for a9cb10c37 (${^ENCODING} removal)
Father Chrysostomos [Sun, 17 Jul 2016 19:51:43 +0000 (12:51 -0700)]
perldelta for a9cb10c37 (${^ENCODING} removal)

7 years agoperldelta for a2637ca0a / #128597
Father Chrysostomos [Sun, 17 Jul 2016 19:42:05 +0000 (12:42 -0700)]
perldelta for a2637ca0a / #128597

7 years agoperldelta for 63aab7e / #128532
Father Chrysostomos [Sun, 17 Jul 2016 19:39:18 +0000 (12:39 -0700)]
perldelta for 63aab7e / #128532

7 years agoperldelta for 08e3451 and a651dcdf6
Father Chrysostomos [Sun, 17 Jul 2016 19:27:20 +0000 (12:27 -0700)]
perldelta for 08e3451 and a651dcdf6

7 years agoperldelta for #128508 / b3dd0aba3
Father Chrysostomos [Sun, 17 Jul 2016 19:24:30 +0000 (12:24 -0700)]
perldelta for #128508 / b3dd0aba3

7 years agoperldelta for #128478 / d9d2b74c
Father Chrysostomos [Sun, 17 Jul 2016 19:22:59 +0000 (12:22 -0700)]
perldelta for #128478 / d9d2b74c

7 years agoperldelta for #128238
Father Chrysostomos [Sun, 17 Jul 2016 19:20:48 +0000 (12:20 -0700)]
perldelta for #128238

e7acdfe only treat stash entries with .*:: as sub-stashes
9e5cda6 [perl #128238] Crash with non-stash in stash

7 years agobump feature.pm $VERSION
David Mitchell [Sun, 17 Jul 2016 19:25:51 +0000 (20:25 +0100)]
bump feature.pm $VERSION

7 years agofix build on clang plus -DPERL_GLOBAL_STRUCT
David Mitchell [Sun, 17 Jul 2016 19:13:08 +0000 (20:13 +0100)]
fix build on clang plus -DPERL_GLOBAL_STRUCT

The various PERL_TSA_* macros that utilise clang Thread Safety Analysis
were failing on  -DPERL_GLOBAL_STRUCT and -DPERL_GLOBAL_STRUCT_PRIVATE
builds, due to lines like these:

    Perl_op_refcnt_lock(pTHX)
      PERL_TSA_ACQUIRE(PL_op_mutex)
    {
        ...
    }

where under DPERL_GLOBAL_STRUCT globals vars aren't really global,
so you can't pass PL_op_mutex as an arg to that function attribute.

The simplest fix (since you can't just bung a dVAR in there) is to just
disable TSA on PERL_GLOBAL_STRUCT builds.

7 years agoVAX: one more VAX fp doc tweakage
Jarkko Hietaniemi [Sun, 17 Jul 2016 19:00:34 +0000 (22:00 +0300)]
VAX: one more VAX fp doc tweakage

Frankly quite amazing how many times one can read one's
own writing and miss things.

7 years ago[Merge] declared_refs feature allowing my\$x
Father Chrysostomos [Sun, 17 Jul 2016 18:27:32 +0000 (11:27 -0700)]
[Merge] declared_refs feature allowing my\$x

7 years agodecl_refs.t: Finish adding tests for declared_refs
Father Chrysostomos [Sat, 16 Jul 2016 06:48:03 +0000 (23:48 -0700)]
decl_refs.t: Finish adding tests for declared_refs

7 years agoTests for declared_refs err/warn messages
Father Chrysostomos [Mon, 30 May 2016 03:11:08 +0000 (20:11 -0700)]
Tests for declared_refs err/warn messages

7 years agoperldiag entries for declared_refs
Father Chrysostomos [Sun, 29 May 2016 23:02:53 +0000 (16:02 -0700)]
perldiag entries for declared_refs

7 years agoClearer declared_refs warning msg
Father Chrysostomos [Sun, 29 May 2016 21:32:11 +0000 (14:32 -0700)]
Clearer declared_refs warning msg

7 years agoUpdate docs for declared_refs
Father Chrysostomos [Sun, 29 May 2016 21:29:28 +0000 (14:29 -0700)]
Update docs for declared_refs

7 years agoMake my\ experimental
Father Chrysostomos [Mon, 23 May 2016 06:45:45 +0000 (23:45 -0700)]
Make my\ experimental

7 years agoAdd declared_refs feature feature
Father Chrysostomos [Mon, 23 May 2016 06:40:27 +0000 (23:40 -0700)]
Add declared_refs feature feature

7 years agoAdd experimental::declared_refs warn categ
Father Chrysostomos [Mon, 23 May 2016 06:39:44 +0000 (23:39 -0700)]
Add experimental::declared_refs warn categ

7 years agoAllow my \$a
Father Chrysostomos [Sat, 21 May 2016 05:28:31 +0000 (22:28 -0700)]
Allow my \$a

This applies to ‘my’, ‘our’, ‘state’ and ‘local’, and both to single
variable and lists of variables, in all their variations:

my \$a        # equivalent to \my $a
my \($a,$b)   # equivalent to \my($a, $b)
my (\($a,$b)) # same
my (\$a, $b)  # equivalent to (\my $a, $b)

7 years agoregcomp.c: Silence compiler warning
Karl Williamson [Sun, 17 Jul 2016 03:36:40 +0000 (21:36 -0600)]
regcomp.c: Silence compiler warning

It turns out that the changes in
0854ea0b9abfd9ff71c9dca1b5a5765dad2a20bd caused two functions to no
longer be used in re_comp.c

7 years ago5.22.3-RC1 and 5.24.1-RC1 today
Steve Hay [Sun, 17 Jul 2016 12:21:29 +0000 (13:21 +0100)]
5.22.3-RC1 and 5.24.1-RC1 today

7 years agoVAX: further docs about the VAX fp formats
Jarkko Hietaniemi [Sun, 17 Jul 2016 11:58:19 +0000 (14:58 +0300)]
VAX: further docs about the VAX fp formats

7 years agoVAX: perl.h: document the VAX fp better/more
Jarkko Hietaniemi [Sun, 17 Jul 2016 07:53:27 +0000 (10:53 +0300)]
VAX: perl.h: document the VAX fp better/more

7 years agoVAX: Configure: the VAX fp not really little-endian
Jarkko Hietaniemi [Sun, 17 Jul 2016 07:48:12 +0000 (10:48 +0300)]
VAX: Configure: the VAX fp not really little-endian

7 years agoPATCH: [perl #128170] Assert fail in regcomp.c
Karl Williamson [Sun, 17 Jul 2016 03:48:02 +0000 (21:48 -0600)]
PATCH: [perl #128170] Assert fail in regcomp.c

This fixes a regression in 5.24, bisected to commit

commit cfbef7dc3bfb89e4ed2c00ea9c9e3bcfd0b170fd
Author: Karl Williamson <khw@cpan.org>
Date:   Wed Feb 10 16:27:13 2016 -0700

regcomp.c: Fix some parsing glitches

7 years agoMerge regcomp changes branch into blead
Karl Williamson [Sat, 16 Jul 2016 23:43:19 +0000 (17:43 -0600)]
Merge regcomp changes branch into blead

This branch reimplements a function, adds a test file, improves the -Dr
display of bracketed character classes in compiled patterns, fixing a
regression in 5.24 of that display, and finds another optimization in /d
bracketed character classes.

7 years agoregcomp.c: Change some append_range_to_invlist() calls
Karl Williamson [Wed, 6 Jul 2016 01:32:19 +0000 (19:32 -0600)]
regcomp.c: Change some append_range_to_invlist() calls

Now that add_range_to_invlist() is more efficient, some current calls to
append_range_to_invlist() can be changed to make things slightly
clearer.

7 years agoregcomp.c: Reimplement add_range_to_invlist()
Karl Williamson [Mon, 27 Jun 2016 23:11:35 +0000 (17:11 -0600)]
regcomp.c: Reimplement add_range_to_invlist()

Previously, this function was essentially implemented by turning the new
range into an inversion list and then unioning that with the existing
inversion list.  This was easy to write, but expensive in terms of
operations, with memory allocations and copies, etc.

After discussing this with Tony Cook, I have reimplemented this.  Only
in one uncommonly encountered case does it resort to using the union,
because that case is somewhat tricky, and there is no need to have to
know that trickiness in yet another place given its rarity.

Otherwise, the function manipulates the inversion list.  Some cases are
no-ops, some just change a single array element, some move things within
the array, extending or splicing it.  But these are cheaper than the
previous implementation.

7 years agot/re/anyof.t: add tests for ranges
Karl Williamson [Wed, 13 Jul 2016 21:50:32 +0000 (15:50 -0600)]
t/re/anyof.t: add tests for ranges

These exercise the code changes that are coming the next commit, and are
to show that it doesn't change what gets compiled.

7 years agoregcomp.c: Refactor code dealing with m/[...]/d
Karl Williamson [Wed, 13 Jul 2016 03:15:07 +0000 (21:15 -0600)]
regcomp.c: Refactor code dealing with m/[...]/d

This consolidates some code that deals with bracketed character classes
under /d.  As a result, some throw-away steps can be omitted, and things
aren't scattered about.  The earlier version skipped doing some things
if the class is to be inverted.  The reason turns out to not be because
it was necessary, but that the dump of the compiled pattern was unclear.
Previous commits have fixed that, so this now handles inverted character
classes.

7 years agoregcomp.c: Improve -Dr output
Karl Williamson [Sat, 16 Jul 2016 04:06:49 +0000 (22:06 -0600)]
regcomp.c: Improve -Dr output

This improves the output of a bracketed character class under /d that has
things that match only if not in utf8.