This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Steve Hay [Wed, 4 Jul 2018 16:51:34 +0000 (17:51 +0100)]
Upgrade bignum from version 0.49 to 0.50
H.Merijn Brand [Wed, 4 Jul 2018 18:23:50 +0000 (20:23 +0200)]
Update Config::Perl::V to 0.30
Steve Hay [Wed, 4 Jul 2018 12:54:41 +0000 (13:54 +0100)]
Note that .appveyor.yml is EXCLUDED from Filter::Util::Call
Steve Hay [Tue, 3 Jul 2018 11:18:02 +0000 (12:18 +0100)]
Upgrade Math::BigRat from version 0.2613 to 0.2614
Steve Hay [Tue, 3 Jul 2018 11:13:44 +0000 (12:13 +0100)]
Upgrade Math::BigInt::FastCalc from version 0.5006 to 0.5007
Steve Hay [Wed, 4 Jul 2018 11:50:46 +0000 (12:50 +0100)]
Upgrade experimental from version 0.019 to 0.020
(This retains blead customizations from
da4e040f42 and
14e4cec412.)
Steve Hay [Wed, 4 Jul 2018 08:01:56 +0000 (09:01 +0100)]
Sync with version-0.9924
(There are no material changes to any files in core.)
Steve Hay [Wed, 4 Jul 2018 07:51:51 +0000 (08:51 +0100)]
version is in sync with 0.9923; vxs.inc is not customized
Steve Hay [Tue, 3 Jul 2018 12:49:05 +0000 (13:49 +0100)]
Upgrade Time::Local from version 1.25 to 1.28
Steve Hay [Tue, 3 Jul 2018 12:47:10 +0000 (13:47 +0100)]
Upgrade Test::Simple from vesion 1.302133 to 1.302136
Steve Hay [Tue, 3 Jul 2018 12:36:04 +0000 (13:36 +0100)]
Upgrade podlators from version 4.10 to 4.11
(This includes the former blead customization.)
Steve Hay [Tue, 3 Jul 2018 12:24:10 +0000 (13:24 +0100)]
Upgrade perlfaq from version 5.021011 to 5.
20180605
(Existing blead customizations are retained.)
Steve Hay [Tue, 3 Jul 2018 12:16:14 +0000 (13:16 +0100)]
Upgrade Locale-Codes from version 3.56 to 3.57
Steve Hay [Tue, 3 Jul 2018 08:07:35 +0000 (09:07 +0100)]
Upgrade IPC::Cmd from version 1.00 to 1.02
Steve Hay [Tue, 3 Jul 2018 08:06:01 +0000 (09:06 +0100)]
Upgrade IO-Compress from version 2.074 to 2.081
Steve Hay [Tue, 3 Jul 2018 08:00:48 +0000 (09:00 +0100)]
Upgrade File::Temp from version 2.034 to 2.036
Steve Hay [Tue, 3 Jul 2018 07:53:53 +0000 (08:53 +0100)]
Upgrade ExtUtils::Manifest from version 1.70 to 1.71
Steve Hay [Tue, 3 Jul 2018 07:49:45 +0000 (08:49 +0100)]
ExtUtils-Constant is synced with version 0.25
Steve Hay [Tue, 3 Jul 2018 07:40:09 +0000 (08:40 +0100)]
Upgrade Digest::SHA from version 6.01 to 6.02
Steve Hay [Tue, 3 Jul 2018 07:34:44 +0000 (08:34 +0100)]
Upgrade DB_File from version 1.840 to 1.841
Steve Hay [Tue, 3 Jul 2018 07:32:45 +0000 (08:32 +0100)]
Upgrade Compress::Raw::Zlib from 2.076 to 2.081
Steve Hay [Tue, 3 Jul 2018 07:32:03 +0000 (08:32 +0100)]
Upgrade Compress::Raw::Bzip2 from version 2.074 to 2.081
H.Merijn Brand [Mon, 2 Jul 2018 16:25:16 +0000 (18:25 +0200)]
Disable optimizer on pp_pack for HP C-ANSI-C on HP-UX 11.11
with optimize levels +O1 and higher:
$ ./miniperl -I./lib -wE'$a = pack "Cn4", 1, 3726, 32, 2'
Character in 'C' format wrapped in pack at -e line 1.
with +O0 (or no -O/+O) all goes well
Chances are too small to care that this will ever be fixed
This was found as the Test::Smoke run on this system created a
log-file of over 350 Mb with 4016149 warnings like the above
Karl Williamson [Mon, 2 Jul 2018 14:41:37 +0000 (08:41 -0600)]
Regen uni_keywords.h
This is as a result of
72196ef94b98987bb277d8bf6db6efaacd624c3c.
and the MD5 for the file it changed needing to be recalculated
Yves Orton [Mon, 2 Jul 2018 13:46:54 +0000 (15:46 +0200)]
fix issue in regen/mph under 32 bit builds
the multiplication overflows so perl "helpfully" convers to a float,
which then makes things go horribly horribly wrong. `use integer` to the rescue
Karl Williamson [Wed, 23 May 2018 21:32:47 +0000 (15:32 -0600)]
Fix to compile under -DNO_LOCALE
Several problems with this compile option were not caught before 5.28
was frozen.
Karl Williamson [Mon, 11 Jun 2018 18:58:25 +0000 (12:58 -0600)]
utf8.h: Add assert for utf8n_to_uvchr_buf()
The Perl_utf8n_to_uvchr_buf() version of this function has an assert;
this adds it as well to the macro that bypasses the function.
Karl Williamson [Mon, 11 Jun 2018 19:26:24 +0000 (13:26 -0600)]
perl.h: Add parens around macro arguments
Arguments used within macros need to be parenthesized in case they are
called with an expression. This commit changes
_CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG() to do that.
Karl Williamson [Mon, 11 Jun 2018 19:28:53 +0000 (13:28 -0600)]
regexec.c: Call macro with correct args.
The second argument to this macro is a pointer to the end, as opposed to
a length.
Karl Williamson [Sat, 30 Jun 2018 21:17:51 +0000 (15:17 -0600)]
PATCH: [perl #133311] BBC GRANTM/Encoding-FixLatin
This effectively reverts a portion of
a74bb78e4469c9f5ea806b57b155df6265d07975.
I got confused when I wrote that commit, and conflated ASCII and POSIX
regnodes.
Jim Cromie [Sat, 30 Jun 2018 02:26:21 +0000 (20:26 -0600)]
fix stren in PERL_MEM_LOG builds
Karl Williamson [Fri, 29 Jun 2018 14:29:24 +0000 (08:29 -0600)]
perldeprecation: Clean up text about grapheme delims
This changes the text to make more sense in light of the fact that the
the deprecation has changed to illegality.
David Mitchell [Fri, 29 Jun 2018 13:38:10 +0000 (14:38 +0100)]
[MERGE] fixups to Perl_my_setenv()
David Mitchell [Fri, 29 Jun 2018 13:30:17 +0000 (14:30 +0100)]
Perl_my_setenv(): re-indent cpp directive lines
The indentation was all over the place. Whitespace-only changes apart
from fixing code comments at end of '#endif' lines.
David Mitchell [Fri, 29 Jun 2018 13:12:18 +0000 (14:12 +0100)]
Perl_my_setenv: move code comment
This comment about VMS seems to have drifted over time away from the
ifdef it refs to
David Mitchell [Fri, 29 Jun 2018 12:37:03 +0000 (13:37 +0100)]
Perl_my_setenv(); handle integer wrap
RT #133204
Wean this function off int/I32 and onto UV/Size_t.
Also, replace all malloc-ish calls with a wrapper that does
overflow checks,
In particular, it was doing (nlen + vlen + 2) which could wrap when
the combined length of the environment variable name and value
exceeded around 0x7fffffff.
The wrapper check function is probably overkill, but belt and braces...
NB this function has several variant parts, #ifdef'ed by platform
type; I have blindly changed the parts that aren't compiled under linux.
Karl Williamson [Sun, 20 May 2018 23:09:37 +0000 (17:09 -0600)]
utf8.c: Use abbreviations consistently
Elsewhere in this function some abbreviations were introduced and used.
This is the one area not using them.
Karl Williamson [Fri, 29 Jun 2018 03:58:23 +0000 (21:58 -0600)]
Remove some deprecated functions from mathoms.c
These have been deprecated since 5.18, and have security issues, as they
can try to read beyond the end of the buffer.
Chris 'BinGOs' Williams [Thu, 28 Jun 2018 12:59:06 +0000 (13:59 +0100)]
IO is actually 1.39
Nicholas Clark [Thu, 28 Jun 2018 08:11:12 +0000 (10:11 +0200)]
`make distclean` now removes dist/Time-HiRes/xdefine if it's still there.
The Time::HiRes Makefile *should* remove dist/Time-HiRes/xdefine for
'clean', but it's possible to get a rebuilt checkout into a state where it
can't run distclean, and can't recover until the file is gone.
There's no harm in adding it to the top level 'distclean' target - it should
anyway by then, and miniperl is long gone.
Sawyer X [Thu, 28 Jun 2018 06:50:24 +0000 (09:50 +0300)]
Adding a few release managers for this cycle
Sawyer X [Wed, 27 Jun 2018 11:09:47 +0000 (14:09 +0300)]
add data for 5.28.0 release in perlhist
Sawyer X [Wed, 27 Jun 2018 11:03:15 +0000 (14:03 +0300)]
Update epigraphs with links
Sawyer X [Wed, 27 Jun 2018 06:41:04 +0000 (09:41 +0300)]
Update and bump Module-CoreList
Sawyer X [Tue, 26 Jun 2018 22:05:13 +0000 (01:05 +0300)]
regen opcodes for 5.29.1
Sawyer X [Tue, 26 Jun 2018 22:04:21 +0000 (01:04 +0300)]
Fix Module::CoreList tests for 5.29.1
Sawyer X [Tue, 26 Jun 2018 21:37:51 +0000 (00:37 +0300)]
bump version for 5.29.1
Sawyer X [Tue, 26 Jun 2018 21:36:13 +0000 (00:36 +0300)]
new perldelta for 5.29.1
Sawyer X [Tue, 26 Jun 2018 21:30:17 +0000 (00:30 +0300)]
tick off
Sawyer X [Tue, 26 Jun 2018 21:29:49 +0000 (00:29 +0300)]
Update epigraph
Sawyer X [Tue, 26 Jun 2018 20:36:02 +0000 (23:36 +0300)]
add new release to perlhist
Sawyer X [Tue, 26 Jun 2018 20:26:54 +0000 (23:26 +0300)]
Finalize perldelta
Sawyer X [Tue, 26 Jun 2018 20:15:59 +0000 (23:15 +0300)]
Update Module::CoreList for 5.29.0
Sawyer X [Tue, 26 Jun 2018 20:10:13 +0000 (23:10 +0300)]
Clean up perldelta
Abigail [Tue, 26 Jun 2018 17:45:17 +0000 (19:45 +0200)]
Remove 5.27 entries from Porting/release_schedule.
Abigail [Tue, 26 Jun 2018 17:43:14 +0000 (19:43 +0200)]
I've committed to do two back-to-back releases.
For December 2018 and January 2019.
James E Keenan [Tue, 26 Jun 2018 00:23:19 +0000 (20:23 -0400)]
Correct release schedule for 5.29/5.30.
Signed-off-by: Abigail <abigail@abigail.be>
Karl Williamson [Sun, 20 May 2018 21:23:38 +0000 (15:23 -0600)]
handy.h: Remove obsolete comment
Karl Williamson [Sun, 20 May 2018 18:52:33 +0000 (12:52 -0600)]
Don't allow non-graphemes as pattern delimiters
This has been deprecated, and scheduled for removal in 5.30.
Karl Williamson [Sun, 20 May 2018 18:52:17 +0000 (12:52 -0600)]
toke.c: Move some code into called function
It makes more sense for this code to be in the function called, rather
than separated out.
Karl Williamson [Thu, 26 Apr 2018 18:08:18 +0000 (12:08 -0600)]
t/test.pl: Add $|=1;
This makes the warning/error messages adjacent to the problematic code.
A bunch of tests already do this individually, but when I asked if there
was a problem in doing it globally, I got no response.
http://nntp.perl.org/group/perl.perl5.porters/249600
There were two failures in the test suite as a result of this change, so
for those files, this commit turns it off.
This commit is being done early in the test cycle to see what other ill
effects it might have.
Karl Williamson [Mon, 25 Jun 2018 13:25:57 +0000 (07:25 -0600)]
mktables: Correct L<> for perluniprops; rmv trail space
Karl Williamson [Sun, 6 May 2018 15:08:06 +0000 (09:08 -0600)]
t/porting/regen.t: Add test for new uni_keywords.h
Karl Williamson [Sun, 6 May 2018 04:07:55 +0000 (22:07 -0600)]
regen/mk_invlists.pl: Fix outdated comments
Karl Williamson [Sun, 6 May 2018 03:21:45 +0000 (21:21 -0600)]
regen/mk_invlists.pl: use re 'qr/aa'
This makes sure that all patterns in this file are compiled under /aa.
Doing this can catch bugs. The bug the previous commit fixes would have
been caught if we did this.
Karl Williamson [Sun, 6 May 2018 02:46:21 +0000 (20:46 -0600)]
regen/mk_invlists.pl: Fix chicken and egg problem
The problem here is that it was using a regular expression pattern to
determine if a code point is the integer 0. When a new Unicode release
comes along and adds a new block of decimals, this routine should be run
before the interpreter is compiled for real. And the pattern won't know
about the new block, so this would fail.
Solve the problem by using only Unicode::UCD to discover this info, and
not a pattern.
Karl Williamson [Sun, 6 May 2018 01:53:18 +0000 (19:53 -0600)]
mktables: Add, change some comments
Karl Williamson [Sat, 5 May 2018 18:13:37 +0000 (12:13 -0600)]
utf8.c: Use a more generic enum instead of explicit ptr
This changes, where possible, the reference to an inversion list, from
its specific name, to using an enum value (or a #define to an enum
value) which is an offset into a list of inversion lists.
This seems slightly more robust to me, as we don't have to know the
precise name of the table, but can use an enum which may have #define's
for it to create synonyms. Some versions of Unicode may not have the
precise name, but regen/mk_invlists.pl creates synonyms where possible,
so the chances of it being undefined go down.
Currently there is an inconsistency in the tables' names. Some recent
ones all begin with 'PL_'. That was when I thought these tables were
all going to be public. But then it turned out that they could just be
defined in one file (utf8.c), so the prefix is probably unnecessary.
Older tables didn't have that, and haven't changed. I'm not sure how it
will or should turn out.
Karl Williamson [Sat, 5 May 2018 18:01:27 +0000 (12:01 -0600)]
utf8.c: Reorder some initialization code
This puts the code into various related groups.
Karl Williamson [Sat, 5 May 2018 17:38:18 +0000 (11:38 -0600)]
utf8.c: Fix \p{} to work on old Unicodes
This change to use one #define instead of a synonym causes the code to
work unchanged on any Unicode version. The synonym isn't defined in
very old Unicodes, so this wouldn't compile for them.
Karl Williamson [Sat, 5 May 2018 17:28:09 +0000 (11:28 -0600)]
utf8.c: qr/\p{}/ Handle Unihan numeric properties
The Unihan data base is not shipped with perl due to its size. But we
allow someone to copy its files into the unicore directory and recompile
perl in order to get access to its properties. Some of those properties
are numeric, which, like the nv property, require special handling in
utf8.c. This commit adds that handling.
Karl Williamson [Sat, 5 May 2018 04:25:54 +0000 (22:25 -0600)]
mktables: Handle cjkiicore properly
This property is not normally compiled by perl, but an installation may
choose to use it. It was failing some tests because this is a special
property that is like a perl dual-var. It is both binary, and
non-binary, and commit
346f9bfbe12 forgot that.
Karl Williamson [Tue, 1 May 2018 23:26:42 +0000 (17:26 -0600)]
regen/mk_invlists.pl: Fix-ups for early Unicode versions
In some of these, certain properties aren't defined yet, so have no
entries. Just add a check for that, and compensate.
Karl Williamson [Tue, 1 May 2018 22:42:29 +0000 (16:42 -0600)]
regcomp.c: Simplify
Under /a pattern matching, the matches of the [:posix:] classes are
restricted to the ASCII range. Previously, in a time/space trade-off
that favored space, we created the list of matching characters at
pattern compilation time by ANDing the full-range Posix class with the
set of ASCII characters.
But now, the tables for just the ASCII-range classes are generated
anyway, so there's no need to do that compilation-time intersection.
This slightly simplifies the code.
Karl Williamson [Tue, 1 May 2018 21:47:11 +0000 (15:47 -0600)]
mktables: Add guard against Unicode breakage
This adds a check that a new Unicode version doesn't create a rational
number that is too close to a current rational for our existing
floating point precision. Should this happen, we can increase the
precision we use.
Karl Williamson [Tue, 1 May 2018 21:24:19 +0000 (15:24 -0600)]
Add tests for qr/\p{}/
This adds tests for nv=integer, where 'integer' is expressed in %e.
Karl Williamson [Tue, 1 May 2018 01:05:54 +0000 (19:05 -0600)]
utf8.c: Handle qr!\p{nv=6/8}!
I thought this worked before, but it turns out it never did. This
commit allows the rational number specified in looking up the Numeric
Value property to not be in lowest possible terms. Unicode even
furnishes some of its data in non-lowest form, so we should accept
this.
Karl Williamson [Mon, 30 Apr 2018 16:39:46 +0000 (10:39 -0600)]
utf8.c: Use \p{nv=float}
Now that the float data is available to us (in the previous commit), we
can take advantage of it, and avoid swash creation.
We just use the perl atof() to convert the input string to an NV, and
then convert back to a string, but in guaranteed canonical form. Then
we look that up.
Karl Williamson [Thu, 26 Apr 2018 18:29:54 +0000 (12:29 -0600)]
regen/mk_invlists.pl: Add \p{nv=float} data
The previous commit revised how nv=float is handled. This commit adds
data for handling that to charclass_invlists.h, so that the next commit
can use that and avoid swash creation.
Karl Williamson [Mon, 30 Apr 2018 03:08:37 +0000 (21:08 -0600)]
Revise \p{nv=float} lookup
The Numeric Value property allows one to find all code points that have
a certain numeric value. An example would be to match against any
character in any of the world's scripts which is effectively equivalent
to the digit zero.
It is documented that we accept either integers (like \p{nv=9}) or
rationals (like \p{nv=1/2}). But we also accept floating point
representations in case a conversion to numeric has happened. I think
it is right that we not document these and their vagaries. One reason
is that Unicode might someday create a new rational number that, to the
precision we currently accept, is indistinguishable from an existing
one, so that we would have to increase the precision.
But there was a bug I introduced years ago. I thought that in order for
a float to be considered to match a close rational, that 3 significant
digits of precision would be needed, like .667 to match 2/3. That still
seems reasonable. But I didn't implement that concept. Instead, prior
to this commit, it was 3 (not necessarily significant) digits, so that
for 1/160, it would match .001.
This commit corrects that, and makes the lookup simpler. mktables will
use sprintf %e to get the number normalized and having the 3 signicant
digits required. At runtime, a floating number is normalized using the
same format, and the result looked up in a hash. This eliminates the
need to worry about matching within some epsilon.
Further simplifications in utf8_heavy.pl are achieved by making a more
precise definition as to what an acceptable number looks like, so we
don't have to check later to see if what matched really was one.
Karl Williamson [Thu, 26 Apr 2018 03:18:59 +0000 (21:18 -0600)]
regen/mk_invlists.pl: Add to list of props to keep together
Using the same idea as pp_hot.c, the Unicode properties actually used by
perl are attempted to be kept together so that paging in one is likely
to page in others. A few were omitted prior to this commit.
Karl Williamson [Thu, 26 Apr 2018 08:08:53 +0000 (02:08 -0600)]
regen/mk_invlists.pl: Create synonyms for perl props
This allows our code to not have to be so precise as to which alias for
a property it uses.
Karl Williamson [Thu, 26 Apr 2018 08:02:05 +0000 (02:02 -0600)]
regen/mk_invlists.pl: Prefer certain property names
This sorts various properties to be first, so that there names will be
used instead of others. This gives more stability to the core using
particular names: a new version of the Unicode standard is less likely
to come up with a different name, which, if it did, the core would have
to change to use it.
The preferred names are available in all Unicode versions
Karl Williamson [Thu, 26 Apr 2018 07:55:34 +0000 (01:55 -0600)]
regen/mk_invlists.pl: Add comment
Karl Williamson [Thu, 26 Apr 2018 02:58:47 +0000 (20:58 -0600)]
regen/mk_invlists.pl: Remove some unnecessary #if's
Things aren't actually getting switched here, so no need for them.
Karl Williamson [Wed, 25 Apr 2018 22:53:07 +0000 (16:53 -0600)]
regen/mk_invlists.pl: Change die into warning
I found an instance in compiling early Unicode releases where this
circumstance is legitimate
Karl Williamson [Mon, 30 Apr 2018 16:06:14 +0000 (10:06 -0600)]
utf8.c: Use menominic variable name
Karl Williamson [Wed, 25 Apr 2018 22:51:22 +0000 (16:51 -0600)]
utf8.c: Fix typo in comment
Karl Williamson [Wed, 25 Apr 2018 22:36:09 +0000 (16:36 -0600)]
regen/mk_invlists.pl: Slight speed up
Instead of checking each time if an element already exists in an array
before adding it, just add it, and afterwards remove all redundant ones.
Karl Williamson [Mon, 30 Apr 2018 03:14:48 +0000 (21:14 -0600)]
utf8.c: Use variable instead of repeating expression
Set a variable to the result of this expression which is used in
multiple places.
Karl Williamson [Wed, 25 Apr 2018 22:20:50 +0000 (16:20 -0600)]
Remove support for qr/\p{_CanonDCIJ}
This is the third and final obsolete property that is being removed in 3
sequential commits. The property is not used in cpan, and is being
removed as part of the cleanup instigated because another of the 3 would
require extra code to handle if we were to keep it around.
Karl Williamson [Wed, 25 Apr 2018 20:21:04 +0000 (14:21 -0600)]
Remove support for qr/\p{_Comb_Above}/
This property is no longer used in the core, nor in cpan, and is marked
as for core use only, not necessarily stable. I have kept it around
because it was work to remove it, but now the revamping of the property
lookup scheme was causing failures with a similar property, and the
previous commit removed that one.
There are just three of these properties, and I think it's time to
remove support for all three. The next commit will do the same for the
third one.
Karl Williamson [Wed, 25 Apr 2018 21:07:14 +0000 (15:07 -0600)]
Remove qr/\p{_Case_Ignorable}/
This property is no longer used in the core, nor in cpan, and is marked
as for core use only, not necessarily stable. I have kept it around
because it was work to remove it, but now the revamping of the property
lookup scheme was causing failures with it, when compiling on early
Unicode releases. That could be fixed with extra work, but simply
removing it also fixes the problem and avoids future maintenance
costs.
Karl Williamson [Wed, 25 Apr 2018 19:27:34 +0000 (13:27 -0600)]
qr/\p{...}/: Rmv redundant text from warning msg detail
This text is emitted when compiling a pattern using a deprecated
property. The text is added detail to the main text of the message
(which isn't changing), and is redundant because it just says it's
deprecated, and the main message already says that.
Karl Williamson [Wed, 25 Apr 2018 18:49:19 +0000 (12:49 -0600)]
Unicode::UCD: Avoid uninit message
I found a case where this array can be empty, so add a test for that to
avoid trying to look at the first (non-existent) element.
Karl Williamson [Wed, 25 Apr 2018 04:02:21 +0000 (22:02 -0600)]
regen/mph.pl: Add comment to generated code
That code is uni_keywords.h
Karl Williamson [Fri, 20 Apr 2018 17:37:20 +0000 (11:37 -0600)]
regen/charset_translations.pl: #if indent is 2 spaces
It was instead making it 3,7,11...
Karl Williamson [Fri, 20 Apr 2018 17:26:27 +0000 (11:26 -0600)]
Make the SCX enums public
These enums are scheduled to be used outside the files that they now are
defined in.
Karl Williamson [Tue, 24 Apr 2018 23:46:03 +0000 (17:46 -0600)]
regen/mk_invlists.pl: Omit unnecessary #if's
In places, #endifs were unconditionally added followed by the
same #ifdef they just ended.
Karl Williamson [Fri, 20 Apr 2018 16:59:40 +0000 (10:59 -0600)]
regen/mk_invlists.pl: uni_keywords.c no longer exists
So no need to do an #ifdef for it.