[perl.git] branch blead updated. v5.29.1-126-gcad2641b4a

2018-08-20 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit cad2641b4ae69e4ca5dfea157cfdc3ae0095f7bf
Author: Karl Williamson 
Date:   Wed Aug 15 16:26:00 2018 -0600

regcomp.c: Silence compiler warning

This may actually be a problem at times.  We need to cast to a boolean.

---

Summary of changes:
 regcomp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/regcomp.c b/regcomp.c
index d7087af22b..18a2be8b85 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -13555,7 +13555,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, 
U32 depth)
|| UTF8_IS_INVARIANT(UCHARAT(RExC_parse))
|| UTF8_IS_START(UCHARAT(RExC_parse)));
 
-uni_semantics_at_node_start = RExC_uni_semantics;
+uni_semantics_at_node_start = cBOOL(RExC_uni_semantics);
 
 /* Here, we have a literal character.  Find the maximal string of
  * them in the input that we can fit into a single EXACTish node.

-- 
Perl5 Master Repository


[perl.git] branch blead updated. v5.29.1-125-ge26216a593

2018-08-20 Thread Chris 'Bingos' Williams
In perl.git, the branch blead has been updated



- Log -
commit e26216a593e250efb78a1fe042e64bacb6ed117d
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 22:54:54 2018 +0100

Update epigraphs with v5.29.2

commit f01f0ce3c37d958d4bae7fb9feee70953c953465
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 22:42:59 2018 +0100

Update Module::CoreList for 5.29.3

commit 2acd59fb7cd9d7cb144c9f454d7249d4b0a02660
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 22:38:31 2018 +0100

Bump the perl version in various places for 5.29.3

commit 7a54f67ef915d54e76461e51d16146f6f97f9d3e
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 22:23:53 2018 +0100

new perldelta for 5.29.3

---

Summary of changes:
 Cross/config.sh-arm-linux |  40 +--
 Cross/config.sh-arm-linux-n770|  40 +--
 INSTALL   |  28 +-
 MANIFEST  |   1 +
 META.json |   2 +-
 META.yml  |   2 +-
 Makefile.SH   |   8 +-
 NetWare/Makefile  |   4 +-
 NetWare/config_H.wc   |  10 +-
 Porting/config.sh |  42 +--
 Porting/config_H  |  18 +-
 Porting/epigraphs.pod |  23 ++
 Porting/perldelta_template.pod|   2 +-
 README.haiku  |   4 +-
 README.macosx |   8 +-
 README.os2|   2 +-
 README.vms|   4 +-
 dist/Module-CoreList/Changes  |   3 +
 dist/Module-CoreList/lib/Module/CoreList.pm   |  21 +-
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm |   9 +-
 hints/catamount.sh|   4 +-
 lib/B/Op_private.pm   |   2 +-
 patchlevel.h  |   4 +-
 plan9/config.plan9|  10 +-
 plan9/config_sh.sample|  38 +--
 pod/.gitignore|   2 +-
 pod/perl.pod  |   1 +
 pod/{perldelta.pod => perl5292delta.pod}  |   2 +-
 pod/perldelta.pod | 389 ++
 vms/descrip_mms.template  |   2 +-
 win32/GNUmakefile |   6 +-
 win32/Makefile|   6 +-
 win32/makefile.mk |   6 +-
 win32/pod.mak |   4 +
 34 files changed, 528 insertions(+), 219 deletions(-)
 copy pod/{perldelta.pod => perl5292delta.pod} (99%)

diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 6c5b37c46a..fc87c2527d 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -31,12 +31,12 @@ afsroot='/afs'
 alignbytes='4'
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='2'
+api_subversion='3'
 api_version='29'
-api_versionstring='5.29.2'
+api_versionstring='5.29.3'
 ar='ar'
-archlib='/usr/lib/perl5/5.29.2/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.29.2/armv4l-linux'
+archlib='/usr/lib/perl5/5.29.3/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.29.3/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.29.2/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.29.3/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -818,7 +818,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.29.2/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.29.3/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -826,13 +826,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.29.2'
+installprivlib='./install_me_here/usr/lib/perl5/5.29.3'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.29.2/armv4l-linux'
+installsitearch='./install_me_here/us

[perl.git] branch blead updated. v5.29.1-121-g15cf6215b5

2018-08-20 Thread Chris 'Bingos' Williams
In perl.git, the branch blead has been updated



- Log -
commit 15cf6215b545071812f4abe30190ffe2f5ab7780
Merge: 4b93f2ab9a fa427eb99f
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 22:16:25 2018 +0100

Merge branch 'release-5.29.2' into blead

commit fa427eb99fb2cd5ac2c6896f5729c8e94ec8f873
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 20:11:35 2018 +0100

add new release to perlhist

commit e1603cb84c6df9db90150d893657d2e775a29e29
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 20:06:57 2018 +0100

Update Module-CoreList for v5.29.2

commit 38675b9d838b3987cfbd2b5cc783e285d2bbefe0
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 20:01:06 2018 +0100

Finalise perldelta

---

Summary of changes:
 dist/Module-CoreList/lib/Module/CoreList.pm |  76 ++
 pod/perldelta.pod   | 361 +++-
 pod/perlhist.pod|   1 +
 3 files changed, 113 insertions(+), 325 deletions(-)

diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm 
b/dist/Module-CoreList/lib/Module/CoreList.pm
index 168bd93635..3cdd436b0b 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -15635,8 +15635,84 @@ for my $version ( sort { $a <=> $b } keys %released ) {
 changed => {
 'B::Op_private' => '5.029002',
 'Config'=> '5.029002',
+'Config::Extensions'=> '0.03',
+'Cwd'   => '3.75',
+'Data::Dumper'  => '2.171',
+'Filter::Util::Call'=> '1.59',
+'HTTP::Tiny'=> '0.076',
 'Module::CoreList'  => '5.20180820',
 'Module::CoreList::Utils'=> '5.20180820',
+'PerlIO::scalar'=> '0.30',
+'Storable'  => '3.12',
+'Test2' => '1.302140',
+'Test2::API'=> '1.302140',
+'Test2::API::Breakage'  => '1.302140',
+'Test2::API::Context'   => '1.302140',
+'Test2::API::Instance'  => '1.302140',
+'Test2::API::Stack' => '1.302140',
+'Test2::Event'  => '1.302140',
+'Test2::Event::Bail'=> '1.302140',
+'Test2::Event::Diag'=> '1.302140',
+'Test2::Event::Encoding'=> '1.302140',
+'Test2::Event::Exception'=> '1.302140',
+'Test2::Event::Fail'=> '1.302140',
+'Test2::Event::Generic' => '1.302140',
+'Test2::Event::Note'=> '1.302140',
+'Test2::Event::Ok'  => '1.302140',
+'Test2::Event::Pass'=> '1.302140',
+'Test2::Event::Plan'=> '1.302140',
+'Test2::Event::Skip'=> '1.302140',
+'Test2::Event::Subtest' => '1.302140',
+'Test2::Event::TAP::Version'=> '1.302140',
+'Test2::Event::V2'  => '1.302140',
+'Test2::Event::Waiting' => '1.302140',
+'Test2::EventFacet' => '1.302140',
+'Test2::EventFacet::About'=> '1.302140',
+'Test2::EventFacet::Amnesty'=> '1.302140',
+'Test2::EventFacet::Assert'=> '1.302140',
+'Test2::EventFacet::Control'=> '1.302140',
+'Test2::EventFacet::Error'=> '1.302140',
+'Test2::EventFacet::Hub'=> '1.302140',
+'Test2::EventFacet::Info'=> '1.302140',
+'Test2::EventFacet::Meta'=> '1.302140',
+'Test2::EventFacet::Parent'=> '1.302140',
+'Test2::EventFacet::Plan'=> '1.302140',
+'Test2::EventFacet::Render'=> '1.302140',
+'Test2::EventFacet::Trace'=> '1.302140',
+'Test2::Formatter'  => '1.302140',
+'Test2::Formatter::TAP' => '1.302140',
+'Test2::Hub'=> '1.302140',
+'Test2::Hub::Interceptor'=> '1.302140',
+'Test2::Hub::Interceptor::Terminator'=> '1.302140',
+'Test2::Hub::Subtest'   => '1.302140',
+'Test2::IPC'=> '1.302140',
+'Test2::IPC::Driver'=> '1.302140',
+'Test2::IPC::Driver::Files'=> '1.302140',
+'Test2::Tools::Tiny'=> '1.302140',
+'Test2::Util'   => '1.302140',
+'Test2::Util::ExternalMeta'=> '1.302140',
+'Test2::Util::Facets2Legacy'=> '1.302140',
+'Test2::Util::HashBase' => '1.302140',
+'Test2::Util::Trace'=> '1.302140',
+'Test::Builder' => '1.302140',
+'Test::Builder::Formatter'=> '1.302140',
+'Test::Builder::Module' => '1.302140',
+'Test::Builder::Tester' => '1

[perl.git] branch blead updated. v5.29.1-117-g4b93f2ab9a

2018-08-20 Thread Dagfinn Ilmari Mannsåker
In perl.git, the branch blead has been updated



- Log -
commit 4b93f2ab9a0f57cc9ca4d362c01f6f44646e881e
Author: Dagfinn Ilmari Mannsåker 
Date:   Mon Aug 20 20:52:16 2018 +0100

Fix missing space in perlguts C<< >> POD directive

---

Summary of changes:
 pod/perlguts.pod | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index 5dce945cf1..16bd0ecba7 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -3447,7 +3447,7 @@ is likely to be imminently called which will do a 
C, so there's
 no need to do that either.
 
 The next step is to pop savestack entries: C is just
-defined as C>. Note that during the
+defined as C<< LEAVE_SCOPE(cx->blk_oldsaveix) >>. Note that during the
 popping, it's possible for perl to call destructors, call C to undo
 localisations of tied vars, and so on. Any of these can die or call
 C. In this case, C will be called, and the current

-- 
Perl5 Master Repository


[perl.git] branch blead updated. v5.29.1-116-g3d74616334

2018-08-20 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit 3d74616334d940df3e648ff7f770055ccdc8ef4e
Author: Karl Williamson 
Date:   Wed Aug 15 15:22:03 2018 -0600

Make sv_setsv_flags accept an inversion list src

Inversion lists are a type of SV, but aren't really convertible to other
types, nor has there been a need to.  But it makes things more
convenient for a future commit to allow one to just clobber whatever is
in an SV and replace it with an inversion list.

Even after this commit, there are restrictions to what the SV can have
that gets clobbered.  But this is a step towards more generality

commit 0fc466a3aa56ce982618130d8081815999d72a50
Author: Karl Williamson 
Date:   Wed Aug 15 15:14:53 2018 -0600

Allow invlist_clone to accept a destination SV

This will allow it to clone into an existing SV instead of always
creating a new one.

commit 1bb572bb87cb622034f23143df9f2eeac5d1cc1c
Author: Karl Williamson 
Date:   Wed Aug 15 15:07:20 2018 -0600

Make static function non-static

This is in preparation for it to be called from outside this file

commit 28118b9ce33d886927f709097d5d5034d6732d65
Author: Karl Williamson 
Date:   Wed Aug 15 14:32:31 2018 -0600

regcomp.c: Add second parameter to static function

This parameter can only be NULL until a future commit

commit c8f84db6860ef8bc20f6d868424148b2d56609f6
Author: Karl Williamson 
Date:   Wed Aug 15 14:02:57 2018 -0600

regcomp.c: Extract code into separate function

This is in preparation for it to be called from a second place

commit fabc17e98e99c91c611d780a980fc920041e9bae
Author: Karl Williamson 
Date:   Wed Aug 15 13:49:55 2018 -0600

regcomp.c: Replace code with fcn that does the same thing

This makes one less place that has to know certain details.  Since the
function is inline, there should be no change in the compiled code

commit 891fd405747731eb85d112cac6bb9d04f3425909
Author: Karl Williamson 
Date:   Sun Aug 19 22:36:32 2018 -0600

utf8.h: Update outmoded comment

commit 40606899cf45753bd7fa4ad211cc7425b43e718a
Author: Karl Williamson 
Date:   Sun Aug 19 22:35:29 2018 -0600

utf8.c: Rename macro and move to utf8.h, and use it in regcomp.c

This hides an internal detail

commit e6166da6d81d4b0e0ec10df5ed68f7591584bc33
Author: Karl Williamson 
Date:   Sun Aug 19 22:05:04 2018 -0600

invlist_inline.h: Two symbols no longer needed in utf8.c

This is because the code using them has been moved to regcomp.c
in cef721997e14497f2fbc4be17ab736ad7ddfda29

commit 510ceaa0c9bf44a9e138845a271b86714d52406f
Author: Karl Williamson 
Date:   Sun Aug 19 22:01:09 2018 -0600

Add inline function to hide implementation details

---

Summary of changes:
 embed.fnc|   6 ++-
 embed.h  |  10 -
 invlist_inline.h |  14 +--
 proto.h  |  22 +++
 regcomp.c| 118 ---
 sv.c |   5 ++-
 utf8.c   |  10 ++---
 utf8.h   |   4 +-
 8 files changed, 119 insertions(+), 70 deletions(-)

diff --git a/embed.fnc b/embed.fnc
index dde212c7bf..5164a99ede 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -1710,8 +1710,8 @@ EiMn  |void   |invlist_set_previous_index|NN SV* 
const invlist|const IV index
 EiMRn  |IV |invlist_previous_index|NN SV* const invlist
 EiMn   |void   |invlist_trim   |NN SV* invlist
 EiM|void   |invlist_clear  |NN SV* invlist
+sM |void   |initialize_invlist_guts|NN SV* invlist|const Size_t 
initial_size
 #endif
-EiMR   |SV*|invlist_clone  |NN SV* const invlist
 EiMRn  |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
 EiMn   |void   |invlist_iterinit|NN SV* invlist
 EsMRn  |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
@@ -1740,6 +1740,9 @@ EXMpR |SV*|_add_range_to_invlist  |NULLOK SV* 
invlist|UV start|UV end
 EXMpR  |SV*|_setup_canned_invlist|const STRLEN size|const UV element0|NN 
UV** other_elements_ptr
 EXMpn  |void   |_invlist_populate_swatch   |NN SV* const invlist|const UV 
start|const UV end|NN U8* swatch
 #endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
+EMpX   |SV*|invlist_clone  |NN SV* const invlist|NULLOK SV* newlist
+#endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || 
defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
 EXp|SV*|_core_swash_init|NN const char* pkg|NN const char* name \
|NN SV* listsv|I32 minbits|I32 none \
@@ -1747,6 +1750,7 @@ EXp   |SV*|_core_swash_init|NN const char* pkg|NN 
const char* name \
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || 
defined(PERL_IN_TOKE_C) 

[perl.git] branch blead updated. v5.29.1-106-g327cef2fad

2018-08-20 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit 327cef2fad130e3c780624e5dd3f4256bb41e6f6
Author: Karl Williamson 
Date:   Mon Aug 6 17:12:08 2018 -0600

t/re/regexp_unicode_prop.t: Add tests for run-time

User-defined \p{} properties can be referred to in a regex pattern
compilation before their definition is encountered.  This is supposed to
work, and their definitions get compiled when needed at run-time.  But
there was only one test that this worked.  This commit restructures
things so that every user-defined property is compiled into a pattern
before its definition is known, and also into another pattern after its
definition is known.

This removes the need to special case the earlier single one that did
this test.

commit 1e51e719b895db9563993262fb6d610326b3143c
Author: Karl Williamson 
Date:   Mon Aug 6 16:57:20 2018 -0600

t/re/regexp_unicode_prop.t: Reorder a few tests

This is based on knowledge of how the code works, to stress it a little
more.

commit 170b30c3a52dfde0f85d306526372ef815926790
Author: Karl Williamson 
Date:   Mon Aug 6 16:53:23 2018 -0600

t/re/regexp_unicode_prop.t: Avoid a TEST crash if failure

This changes the logic to not do a 'like' unless we know that the
operand is a valid pattern.

commit d82cefba2906b5813c94d895f9182c8b3d304c97
Author: Karl Williamson 
Date:   Mon Aug 6 16:47:59 2018 -0600

t/re/regexp_unicode_prop.t: Add check no warnings generated

commit 3a0825d5befb293a2031be8487afdb5440b9d6b6
Author: Karl Williamson 
Date:   Mon Aug 6 16:46:37 2018 -0600

t/re/regexp_unicode_prop.t: Extract code into a function

This is in preparation for it to be called from a 2nd place

commit 3b9fb37400e38d82b5690e90461199c0fab75d8f
Author: Karl Williamson 
Date:   Mon Aug 6 16:37:32 2018 -0600

t/re/regexp_unicode_prop.t: White-space only

Indent some lines that a future commit will surround with a block,
and outdent others where a block will be removed

---

Summary of changes:
 t/re/regexp_unicode_prop.t | 194 -
 1 file changed, 122 insertions(+), 72 deletions(-)

diff --git a/t/re/regexp_unicode_prop.t b/t/re/regexp_unicode_prop.t
index 5fbcf2fe59..e720339e8d 100644
--- a/t/re/regexp_unicode_prop.t
+++ b/t/re/regexp_unicode_prop.t
@@ -8,6 +8,9 @@ use strict;
 use warnings;
 use 5.010;
 
+my @warnings;
+local $SIG {__WARN__} = sub {push @warnings, "@_"};
+
 BEGIN {
 chdir 't' if -d 't';
 require './test.pl';
@@ -16,6 +19,27 @@ BEGIN {
 
 sub run_tests;
 
+sub get_str_name($) {
+my $char = shift;
+
+my ($str, $name);
+
+if ($char =~ /^\\/) {
+$str  = eval qq ["$char"];
+$name =  qq ["$char"];
+}
+elsif ($char =~ /^0x([0-9A-Fa-f]+)$/) {
+$str  =  chr hex $1;
+$name = "chr ($char)";
+}
+else {
+$str  =  $char;
+$name = qq ["$char"];
+}
+
+return ($str, $name);
+}
+
 #
 # This is the data to test.
 #
@@ -81,38 +105,72 @@ my @CLASSES = (
 
 );
 
-my @USER_DEFINED_PROPERTIES = (
-   #
-   # User defined properties
-   #
-   InKana1   => ['\x{3040}', '!\x{303F}'],
-   InKana2   => ['\x{3040}', '!\x{303F}'],
-   InKana3   => ['\x{3041}', '!\x{3040}'],
-   InNotKana => ['\x{3040}', '!\x{3041}'],
-   InConsonant   => ['d','!e'],
-   IsSyriac1 => ['\x{0712}', '!\x{072F}'],
-   IsSyriac1KanaMark => ['\x{309A}', '!\x{3090}'],
-   IsSyriac1KanaMark => ['\x{0730}', '!\x{0712}'],
-   '# User-defined character properties may lack \n at the end',
-   InGreekSmall  => ['\N{GREEK SMALL LETTER PI}',
- '\N{GREEK SMALL LETTER FINAL SIGMA}'],
-   InGreekCapital=> ['\N{GREEK CAPITAL LETTER PI}', '!\x{03A2}'],
-   Dash  => ['-'],
-   ASCII_Hex_Digit   => ['!-', 'A'],
-   IsAsciiHexAndDash => ['-', 'A'],
-
-   # This overrides the official one
-   InLatin1  => ['\x{0100}', '!\x{00FF}'],
-);
+my @USER_DEFINED_PROPERTIES;
+my @USER_CASELESS_PROPERTIES;
+my @DEFERRED;
+BEGIN {
 
-my @USER_CASELESS_PROPERTIES = (
-   #
-   # User defined properties which differ depending on /i.  Second entry is
-   # false normally, true under /i
-   #
-   'IsMyUpper'=> ["M", "!m" ],
-);
+# We defined these at compile time, so that the subroutines that they
+# refer to aren't known, so that we can test properties not known until
+# runtime
+
+@USER_DEFINED_PROPERTIES = (
+#
+# User defined properties
+#
+InKana1  

[perl.git] branch blead updated. v5.29.1-100-g2a4bf710d5

2018-08-20 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit 2a4bf710d5d230746ef6ca1e7a12f43531b31002
Author: Karl Williamson 
Date:   Mon Jul 30 22:11:52 2018 -0600

regcomp.c: Use isFOO_A instead of isFOO

They evaluate to the same thing, but this change emphasizes that only
ASCII characters can pass.

commit b41284b964ece1eea32f929b5d51dba68a9b0274
Author: Karl Williamson 
Date:   Mon Jul 30 21:26:32 2018 -0600

regcomp.c: Change parameter name

This makes it clearer what variable this length is for

---

Summary of changes:
 embed.fnc |  2 +-
 proto.h   |  2 +-
 regcomp.c | 63 +--
 3 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/embed.fnc b/embed.fnc
index 4d0daf4df8..dde212c7bf 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -2508,7 +2508,7 @@ EnsR  |int|edit_distance  |NN const UV *src   
\
|const STRLEN y \
|const SSize_t maxDistance
 EXp|SV *   |parse_uniprop_string|NN const char * const name   \
-|const Size_t len \
+|const Size_t name_len\
 |const bool to_fold   \
 |NN bool * invert
 #  ifdef DEBUGGING
diff --git a/proto.h b/proto.h
index a708a611f4..b0979f46c4 100644
--- a/proto.h
+++ b/proto.h
@@ -5500,7 +5500,7 @@ STATIC void   S_output_or_return_posix_warnings(pTHX_ 
RExC_state_t *pRExC_state, A
 STATIC voidS_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state);
 #define PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS   \
assert(pRExC_state)
-PERL_CALLCONV SV * Perl_parse_uniprop_string(pTHX_ const char * const 
name, const Size_t len, const bool to_fold, bool * invert);
+PERL_CALLCONV SV * Perl_parse_uniprop_string(pTHX_ const char * const 
name, const Size_t name_len, const bool to_fold, bool * invert);
 #define PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING  \
assert(name); assert(invert)
 STATIC voidS_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** 
invlist_ptr);
diff --git a/regcomp.c b/regcomp.c
index a2609adf0a..57f87b0507 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -21562,12 +21562,13 @@ Perl_init_uniprops(pTHX)
 }
 
 SV *
-Perl_parse_uniprop_string(pTHX_ const char * const name, const Size_t len, 
const bool to_fold, bool * invert)
+Perl_parse_uniprop_string(pTHX_ const char * const name, const Size_t name_len,
+const bool to_fold, bool * invert)
 {
-/* Parse the interior meat of \p{} passed to this in 'name' with length 
'len',
- * and return an inversion list if a property with 'name' is found, or NULL
- * if not.  'name' point to the input with leading and trailing space 
trimmed.
- * 'to_fold' indicates if /i is in effect.
+/* Parse the interior meat of \p{} passed to this in 'name' with length
+ * 'name_len', and return an inversion list if a property with 'name' is
+ * found, or NULL if not.  'name' point to the input with leading and
+ * trailing space trimmed.  'to_fold' indicates if /i is in effect.
  *
  * When the return is an inversion list, '*invert' will be set to a boolean
  * indicating if it should be inverted or not
@@ -21593,23 +21594,23 @@ Perl_parse_uniprop_string(pTHX_ const char * const 
name, const Size_t len, const
 PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING;
 
 /* The input will be modified into 'lookup_name' */
-Newx(lookup_name, len, char);
+Newx(lookup_name, name_len, char);
 SAVEFREEPV(lookup_name);
 
 /* Parse the input. */
-for (i = 0; i < len; i++) {
+for (i = 0; i < name_len; i++) {
 char cur = name[i];
 
 /* These characters can be freely ignored in most situations.  Later it
  * may turn out we shouldn't have ignored them, and we have to reparse,
  * but we don't have enough information yet to make that decision */
-if (cur == '-' || cur == '_' || isSPACE(cur)) {
+if (cur == '-' || cur == '_' || isSPACE_A(cur)) {
 continue;
 }
 
 /* Case differences are also ignored.  Our lookup routine assumes
  * everything is lowercase */
-if (isUPPER(cur)) {
+if (isUPPER_A(cur)) {
 lookup_name[j++] = toLOWER(cur);
 continue;
 }
@@ -21620,7 +21621,7 @@ Perl_parse_uniprop_string(pTHX_ const char * const 
name, const Size_t len, const
  *
  * But a single colon is a synonym for '=' */
 if (cur == ':') {

[perl.git] branch blead updated. v5.29.1-98-ge718569540

2018-08-20 Thread Karl Williamson
In perl.git, the branch blead has been updated



- Log -
commit e718569540d629c82a9e9e9692fe9cdef9c5fc5f
Author: Karl Williamson 
Date:   Mon Jul 9 15:59:16 2018 -0600

inline.h: Use 'do {} while' instead of 'while {}'

commit 0a441b11194e53e58982ddce10828ba344f772a5
Author: Karl Williamson 
Date:   Wed Aug 15 13:55:43 2018 -0600

t/re/regexp_unicode_prop.t: Make sure returns true

commit 8acc4762216e9d92442e752e58d4629cdac78fca
Author: Karl Williamson 
Date:   Wed Aug 15 16:33:58 2018 -0600

Handle 3 digit exponents in \p{nv=%e}

Prior to this commit, Windows machines which format %e to have a minimum
of 3 digits would fail in looking up the Numeric value properties, and
would revert to the old swash method of doing it.

commit 7e659d181665d5c61b402279e99da3381e2af78e
Author: Karl Williamson 
Date:   Wed Aug 15 15:18:06 2018 -0600

mktables: Handle platforms with 3 digit exponents

C99 says there shouldn't be more than 2 digits in an exponent unless
needed.  But Windows uses three.  This messes some stuff up that is
expecting two.  Change to remove leading zeros so that only two digits
are used.  This allows mktables to properly operate on Windows.

---

Summary of changes:
 charclass_invlists.h   |  2 +-
 inline.h   |  4 ++--
 lib/unicore/mktables   |  5 +
 regcharclass.h |  2 +-
 regcomp.c  | 27 +++
 t/re/regexp_unicode_prop.t |  2 ++
 uni_keywords.h |  2 +-
 7 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/charclass_invlists.h b/charclass_invlists.h
index 9965fbee31..d77a74bbcd 100644
--- a/charclass_invlists.h
+++ b/charclass_invlists.h
@@ -383417,7 +383417,7 @@ static const U8 WB_table[23][23] = {
  * 018e20fa2f469667cc7ccd8a3d4a4a8cce8ad9bdf5fce5b2f61137660ea1065f 
lib/unicore/extracted/DLineBreak.txt
  * 88c30a794011f5e6dc62154342e8bab1bd4ce2d0c0ab06fb69ba47134dc75b23 
lib/unicore/extracted/DNumType.txt
  * dab1e84f48990e30635a4f489d33212b25d0e35d80839c08e33a8afe5736346c 
lib/unicore/extracted/DNumValues.txt
- * 63f4f8e66cba85b3b52bc4a37548c2efa300549222039a43756318114e8038c3 
lib/unicore/mktables
+ * aa29d36570237ec49c1fbd59d9cfafefcce690a286d3273ff4da49da1dfc88f2 
lib/unicore/mktables
  * 7bd6bcbe3813e0cd55e0998053d182b7bc8c97dcfd0b85028e9f7f55af4ad61b 
lib/unicore/version
  * 4bb677187a1a64e39d48f2e341b5ecb6c99857e49d7a79cf503bd8a3c70b 
regen/charset_translations.pl
  * 03e51b0f07beebd5da62ab943899aa4934eee1f792fa27c1fb638c33bf4ac6ea 
regen/mk_PL_charclass.pl
diff --git a/inline.h b/inline.h
index 638f8189eb..0d436564dc 100644
--- a/inline.h
+++ b/inline.h
@@ -1597,9 +1597,9 @@ Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 
*start)
 assert(off <= 0);
 
 while (off++ && s > start) {
-s--;
-while (UTF8_IS_CONTINUATION(*s) && s > start)
+do {
 s--;
+} while (UTF8_IS_CONTINUATION(*s) && s > start);
 }
 
 GCC_DIAG_IGNORE(-Wcast-qual)
diff --git a/lib/unicore/mktables b/lib/unicore/mktables
index 38f5c9fa3e..da5a919f8e 100644
--- a/lib/unicore/mktables
+++ b/lib/unicore/mktables
@@ -12968,6 +12968,11 @@ sub register_fraction($) {
 
 my $float = eval $rational;
 $float = sprintf "%.*e", $E_FLOAT_PRECISION, $float;
+
+# Strip off any leading zeros beyond 2 digits to make it C99 compliant.
+# (Windows has 3 digit exponents, contrary to C99)
+$float =~ s/ ( .* e [-+] ) 0* ( \d{2,}? ) /$1$2/x;
+
 if (   defined $nv_floating_to_rational{$float}
 && $nv_floating_to_rational{$float} ne $rational)
 {
diff --git a/regcharclass.h b/regcharclass.h
index 5240fdca4f..f67e86dd0f 100644
--- a/regcharclass.h
+++ b/regcharclass.h
@@ -1909,7 +1909,7 @@
  * 018e20fa2f469667cc7ccd8a3d4a4a8cce8ad9bdf5fce5b2f61137660ea1065f 
lib/unicore/extracted/DLineBreak.txt
  * 88c30a794011f5e6dc62154342e8bab1bd4ce2d0c0ab06fb69ba47134dc75b23 
lib/unicore/extracted/DNumType.txt
  * dab1e84f48990e30635a4f489d33212b25d0e35d80839c08e33a8afe5736346c 
lib/unicore/extracted/DNumValues.txt
- * 63f4f8e66cba85b3b52bc4a37548c2efa300549222039a43756318114e8038c3 
lib/unicore/mktables
+ * aa29d36570237ec49c1fbd59d9cfafefcce690a286d3273ff4da49da1dfc88f2 
lib/unicore/mktables
  * 7bd6bcbe3813e0cd55e0998053d182b7bc8c97dcfd0b85028e9f7f55af4ad61b 
lib/unicore/version
  * 4bb677187a1a64e39d48f2e341b5ecb6c99857e49d7a79cf503bd8a3c70b 
regen/charset_translations.pl
  * f4fe24c2a005b636f6e7418df060c6c9a57ddcae4219b54d0cb18baf312dbc3a 
regen/regcharclass.pl
diff --git a/regcomp.c b/regcomp.c
index 64a81e3581..a2609adf0a 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -21900,9 +21900,36 @@ Perl_parse_uniprop_string(pTHX_ const char * con

[perl.git] branch blead updated. v5.29.1-94-g9d890beed6

2018-08-20 Thread Chris 'Bingos' Williams
In perl.git, the branch blead has been updated



- Log -
commit 9d890beed61e079102335ef5859d652b4e2c32ac
Author: Chris 'BinGOs' Williams 
Date:   Mon Aug 20 11:15:20 2018 +0100

Update Time-Piece to CPAN version 1.33

  [DELTA]

1.332018-08-18
- Allow objects in overloaded methods

---

Summary of changes:
 Porting/Maintainers.pl |  2 +-
 cpan/Time-Piece/Piece.pm   | 40 
 cpan/Time-Piece/Seconds.pm |  2 +-
 cpan/Time-Piece/t/06subclass.t | 15 +++
 4 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index eaf9ed3262..a137ee9483 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -1208,7 +1208,7 @@ use File::Glob qw(:case);
 },
 
 'Time::Piece' => {
-'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3204.tar.gz',
+'DISTRIBUTION' => 'ESAYM/Time-Piece-1.33.tar.gz',
 'FILES'=> q[cpan/Time-Piece],
 'EXCLUDED' => [ qw[reverse_deps.txt] ],
 },
diff --git a/cpan/Time-Piece/Piece.pm b/cpan/Time-Piece/Piece.pm
index 8acba86e76..d5624636c6 100644
--- a/cpan/Time-Piece/Piece.pm
+++ b/cpan/Time-Piece/Piece.pm
@@ -6,6 +6,7 @@ use XSLoader ();
 use Time::Seconds;
 use Carp;
 use Time::Local;
+use Scalar::Util qw/ blessed /;
 
 use Exporter ();
 
@@ -18,7 +19,7 @@ our %EXPORT_TAGS = (
 ':override' => 'internal',
 );
 
-our $VERSION = '1.3204';
+our $VERSION = '1.33';
 
 XSLoader::load( 'Time::Piece', $VERSION );
 
@@ -63,13 +64,27 @@ sub gmtime {
 $class->_mktime($time, 0);
 }
 
+
+# Check if the supplied param is either a normal array (as returned from
+# localtime in list context) or a Time::Piece-like wrapper around one.
+#
+# We need to differentiate between an array ref that we can interrogate and
+# other blessed objects (like overloaded values).
+sub _is_time_struct {
+return 1 if ref($_[1]) eq 'ARRAY';
+return 1 if blessed($_[1]) && $_[1]->isa('Time::Piece');
+
+return 0;
+}
+
+
 sub new {
 my $class = shift;
 my ($time) = @_;
 
 my $self;
 
-if (ref($time)) {
+if ($class->_is_time_struct($time)) {
 $self = $time->[c_islocal] ? $class->localtime($time) : 
$class->gmtime($time);
 }
 elsif (defined($time)) {
@@ -106,10 +121,9 @@ sub parse {
 sub _mktime {
 my ($class, $time, $islocal) = @_;
 
-$class = eval { (ref $class) && (ref $class)->isa('Time::Piece') }
-   ? ref $class
-   : $class;
-if (ref($time)) {
+$class = blessed($class) || $class;
+
+if ($class->_is_time_struct($time)) {
 my @new_time = @$time;
 my @tm_parts = (@new_time[c_sec .. c_mon], $new_time[c_year]+1900);
 $new_time[c_epoch] = $islocal ? timelocal(@tm_parts) : 
timegm(@tm_parts);
@@ -639,7 +653,8 @@ sub cdate {
 
 sub str_compare {
 my ($lhs, $rhs, $reverse) = @_;
-if (UNIVERSAL::isa($rhs, 'Time::Piece')) {
+
+if (blessed($rhs) && $rhs->isa('Time::Piece')) {
 $rhs = "$rhs";
 }
 return $reverse ? $rhs cmp $lhs->cdate : $lhs->cdate cmp $rhs;
@@ -652,9 +667,6 @@ use overload
 sub subtract {
 my $time = shift;
 my $rhs = shift;
-if (UNIVERSAL::isa($rhs, 'Time::Seconds')) {
-$rhs = $rhs->seconds;
-}
 
 if (shift)
 {
@@ -667,7 +679,7 @@ sub subtract {
return $rhs - "$time";
 }
 
-if (UNIVERSAL::isa($rhs, 'Time::Piece')) {
+if (blessed($rhs) && $rhs->isa('Time::Piece')) {
 return Time::Seconds->new($time->epoch - $rhs->epoch);
 }
 else {
@@ -679,10 +691,6 @@ sub subtract {
 sub add {
 my $time = shift;
 my $rhs = shift;
-if (UNIVERSAL::isa($rhs, 'Time::Seconds')) {
-$rhs = $rhs->seconds;
-}
-croak "Invalid rhs of addition: $rhs" if ref($rhs);
 
 return $time->_mktime(($time->epoch + $rhs), $time->[c_islocal]);
 }
@@ -692,7 +700,7 @@ use overload
 
 sub get_epochs {
 my ($lhs, $rhs, $reverse) = @_;
-if (!UNIVERSAL::isa($rhs, 'Time::Piece')) {
+unless (blessed($rhs) && $rhs->isa('Time::Piece')) {
 $rhs = $lhs->new($rhs);
 }
 if ($reverse) {
diff --git a/cpan/Time-Piece/Seconds.pm b/cpan/Time-Piece/Seconds.pm
index 3a56b74485..71a4bd27f2 100644
--- a/cpan/Time-Piece/Seconds.pm
+++ b/cpan/Time-Piece/Seconds.pm
@@ -1,7 +1,7 @@
 package Time::Seconds;
 use strict;
 
-our $VERSION = '1.3204';
+our $VERSION = '1.33';
 
 use Exporter 5.57 'import';
 
diff --git a/cpan/Time-Piece/t/06subclass.t b/cpan/Time-Piece/t/06subclass.t
index d6e4315c8f..a72cfb89ac 100644
--- a/cpan/Time-Piece/t/06subclass.t
+++ b/cpan/Time-Piece/t/06subclass.t
@@ -35,6 +35,21 @@ for my $method (qw(new localtime gmtime)) {
   isa_ok($dif