This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Steve Hay [Sun, 10 Nov 2019 14:55:51 +0000 (14:55 +0000)]
Update Module-CoreList with data for 5.30.1
Steve Hay [Sun, 10 Nov 2019 14:31:50 +0000 (14:31 +0000)]
Tick off 5.30.1
Steve Hay [Sun, 10 Nov 2019 14:30:53 +0000 (14:30 +0000)]
Add epigraph for 5.30.1
Steve Hay [Sun, 10 Nov 2019 12:20:29 +0000 (12:20 +0000)]
5.30.1 today
Tomasz Konojacki [Sat, 9 Nov 2019 01:26:38 +0000 (02:26 +0100)]
UTF8_CHK_SKIP uses MIN() too
This fixes compilation with Visual C++
Nicolas R [Fri, 8 Nov 2019 17:16:04 +0000 (10:16 -0700)]
sync with cpan release of Devel-PPPort 3.55
Nicolas R [Thu, 7 Nov 2019 18:40:08 +0000 (11:40 -0700)]
Prepare Changelog and version for coming release
Karl Williamson [Sun, 27 Oct 2019 00:53:08 +0000 (18:53 -0600)]
parts/inc/misc: Convert to use ivers()
Doing this showed me a redundant test.
I didn't have to take out the zeros, it just looks better without them.
(cherry picked from commit
9e0e078a1aefa78df3322c87b01323862e05c397)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 27 Oct 2019 00:51:29 +0000 (18:51 -0600)]
parts/inc/inctools: ivers(): Add version string inputs
(cherry picked from commit
bb54da9a565f7fcf13708a69ed6a33a36bb32745)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 27 Oct 2019 00:47:58 +0000 (18:47 -0600)]
HACKERS: add more details; use of ivers()
(cherry picked from commit
1f521ca952d70d2a93afa18e7069b162d64949f0)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Thu, 24 Oct 2019 17:26:43 +0000 (11:26 -0600)]
parts/inc/inctools: Add short synonym for int_parse_version
(cherry picked from commit
3df9d356984187e51559b28cd6653cfffef94bff)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Thu, 24 Oct 2019 17:16:24 +0000 (11:16 -0600)]
mktests.PL: Require inctools in .t files
This will allow them to use the functions therein.
(cherry picked from commit
48bb078538a75f644588489b4d59f39d1d3d5711)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Thu, 24 Oct 2019 03:19:47 +0000 (21:19 -0600)]
utf8_to_uvchr_buf() Return proper length
When input UTF-8 is 13 bytes, return 13, even on 32 bit machines where
overflow happens at 7 UTF-8 bytes.
(cherry picked from commit
f379e2ee4277fc855a37b82c6c94294c4e0e8c8d)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Thu, 24 Oct 2019 01:53:32 +0000 (19:53 -0600)]
Regenerate after new backportings
(cherry picked from commit
237f5af008eeb7e48fa94eb14952cc1f37d7807e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 20:19:16 +0000 (14:19 -0600)]
parts/inc/misc: Change version validity criteria
I'm not sure why I think this is a good idea, but I know Unicode
handling started in 5.6, and am converting to use that criterium
(cherry picked from commit
d69dce5eb7ab3ae39718aad250fcba2189773621)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 20:12:31 +0000 (14:12 -0600)]
Backport isFOO_LC_utf8_safe()
This also involves some test refactoring
(cherry picked from commit
7149d3266cce3561c90c73f57ec932db73105311)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 23 Oct 2019 00:01:39 +0000 (18:01 -0600)]
parts/inc/misc: Backport some isFOO_LC macros
A few of this class of macros did not go back very far. This makes a
reasonable attempt to get things right, but very early versions may have
some wrong answers, but unlikely.
This was complicated by the fact that isascii() and isblank() may not be
available on a given platform. So this just uses the plain non-locale
version for those very early Perl versions.
I didn't add tests. It is hard to portably test locales. The next
commits will backport functions that call these and do have tests.
(cherry picked from commit
a8f88b13766d8f2820f5bba560bb282188124b34)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 19:00:08 +0000 (13:00 -0600)]
parts/inc/misc: White-space only
Mostly indenting a newly formed block
(cherry picked from commit
820b22a12ec9783c819b7f2400201908bceed04d)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 20:03:30 +0000 (14:03 -0600)]
parts/inc/misc: Generalize a test
The result of this commit is a loop that runs once; that will change in
two commits from now, when it runs with different values
(cherry picked from commit
1d9bacdd128c8dc51c3b54b05e9d112a39c25e4a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 19:28:32 +0000 (13:28 -0600)]
Backport toFOO_uvchr()
(cherry picked from commit
1123d46ee9d608669383de3bf540882072690ad4)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 19:21:03 +0000 (13:21 -0600)]
Backport isFOO_uvchr()
(cherry picked from commit
9ae426cf5b257cb458fcf48427524a6aa4332cad)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 19:10:23 +0000 (13:10 -0600)]
parts/inc/misc: Change internal macro name
This is to distinguish it from a macro with similar intent about to be
added.
(cherry picked from commit
cd875ece2bd9cf79a62016767589f8b5821293d6)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 19:05:44 +0000 (13:05 -0600)]
parts/inc/misc: early toFOLD_utf8_safe() is toLOWER
On early perls, there was no distinction between fold and lowercase, so
just call lower from fold.
(cherry picked from commit
0450a74631276c933399241c46616508ce32c299)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Mon, 21 Oct 2019 21:18:44 +0000 (14:18 -0700)]
parts/inc/misc: Use hash and loop to generalize code
This converts the testing of certain tests that are nearly identical to
use a loop with a hash to store the differences, leading to simpler,
extensible code.
(cherry picked from commit
14ec6258920f199e95c72891c23139f6ff10e511)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Fri, 18 Oct 2019 22:20:17 +0000 (15:20 -0700)]
Backport UTF8_MAXBYTES_CASE
This constant was wrong in earlier perls.
(cherry picked from commit
6e55485b5c4486d7883a50325a42a51dcca42ab8)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 23 Oct 2019 00:01:05 +0000 (18:01 -0600)]
parts/inc/misc: Fix EBCDIC bug
We were double xlating the underscore
(cherry picked from commit
dc1ee4fcc8bc4d1f627c33228ab30432e57f0a9a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Fri, 18 Oct 2019 22:19:07 +0000 (15:19 -0700)]
parts/inc/utf8: Refactor a little for clarity
(cherry picked from commit
eddcc8663f05c54bedd22e22242d751af34e61d3)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Fri, 18 Oct 2019 22:09:21 +0000 (15:09 -0700)]
Can test isASCII_utf8_safe to earlier
This doesn't really depend on any UTF-8, so by slightly rewriting it, we
can backport it earlier.
(cherry picked from commit
621fa67cacff3079f35a57baf2bd737b03158601)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Thu, 24 Oct 2019 20:21:06 +0000 (14:21 -0600)]
HACKERS: Update, correct
(cherry picked from commit
c2ab6b2df5c405ba7a4b0e98d14fbd7cc19f70ad)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Tue, 22 Oct 2019 18:47:33 +0000 (12:47 -0600)]
Generate latest apidoc.fnc from blead
(cherry picked from commit
535722786ead0041913879fc51ed4eaacc27a693)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Pali [Fri, 25 Oct 2019 13:58:50 +0000 (15:58 +0200)]
Implement G_RETHROW for eval_sv
(cherry picked from commit
73a4fb176de5b198cebeb88d08a57b0ad4bbf1f3)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Pali [Thu, 24 Oct 2019 08:11:10 +0000 (10:11 +0200)]
Partially revert 9f84bc0 which broke generating Makefile for non-blead perl versions
(cherry picked from commit
e85ddb627f9f99461f45ae482506cc276c7e8165)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Nicolas R [Fri, 11 Oct 2019 22:13:28 +0000 (16:13 -0600)]
Make dist generate a fresh PPPort.pm
(cherry picked from commit
d811f7d36e88cdb964f3fece5e2eff8c0d6a252b)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Fri, 11 Oct 2019 17:44:29 +0000 (11:44 -0600)]
Backport toLOWER_utf8_safe and kin
These now are backported to 5.6.0
(cherry picked from commit
3d196ee9ca5e58cd9908fa8f60ab7339bb2f3160)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 17:51:26 +0000 (11:51 -0600)]
Regenerate to latest
This updates parts/base, parts/todo based on blead and changes to D:P
(cherry picked from commit
d391de2e81ef30cc86e1e96c36b94bb9888c3f3c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Fri, 11 Oct 2019 10:05:16 +0000 (04:05 -0600)]
Perl 7.0 had a space as being a graphic char
(cherry picked from commit
36f9cc037debdf1d07fa92b2b99fa9b27ba3e8e2)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 9 Oct 2019 15:19:58 +0000 (09:19 -0600)]
Change isUTF8_CHAR to use macro, not expansion
Use the macro instead of duplicating its definition ourselves--
(cherry picked from commit
a02174d23a38cb41bfc90fcc646dbb8a748b6807)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 17:59:15 +0000 (11:59 -0600)]
Add warning about UTF-8 unreliable in early perls
(cherry picked from commit
f5227a1c2cb19045b6e5a5e36454fdf893f88f8c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:59:53 +0000 (21:59 -0600)]
isPSXSPC() is a synonym for isSPACE
They used to have a slightly different meaning, but that was changed a
long time ago.
(cherry picked from commit
baa6a68a10d1cd881d989a5c593d58e04593d0e1)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:51:35 +0000 (21:51 -0600)]
Backport isFOO_utf8_safe() macros
This tests every code point between 0..255. Doing so caught several
bugs.
(cherry picked from commit
f899f86bd25f0fd9a84f892598cedb32d18f20ce)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:45:55 +0000 (21:45 -0600)]
Add tests for NATIVE_TO_LATIN1, vice-versa
(cherry picked from commit
be9d71690938fec20465f21e2f57ac206753db99)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:38:43 +0000 (21:38 -0600)]
Fix isGRAPH_L1() bug
This was including NBSP as printable
(cherry picked from commit
63ece791ac466f042e9ebc4eaeab7f476eb4d22a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:36:27 +0000 (21:36 -0600)]
parts/inc/misc: Add withinCOUNT and inRANGE
These are too new to be in the public API, but their presence here helps
with backporting things, so provide them, but undocumented.
(cherry picked from commit
eb85beedef0dfeca24cb5a011f17a893525cb098)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:32:16 +0000 (21:32 -0600)]
parts/inc/utf8: Backport some basic UTF-8 stuff
These are not in the public API because no module writer should be
dealing at this level, but they are needed for backporting some things,
and so they are provided here without publicly announcing their
availability.
Included is an internal helper function
(cherry picked from commit
4ebf864379b0c46d16a19d5546e36062b2545eae)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 03:29:07 +0000 (21:29 -0600)]
Fix typos in HACKERS; add clarification
(cherry picked from commit
3f7ae74acac1e4fa34913985e9fc9119d517ca6c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 9 Oct 2019 15:12:49 +0000 (09:12 -0600)]
Backport UTF8_CHK_SKIP
And revise an existing item to use it.
(cherry picked from commit
45578f404ccd72c0dbfb539cb5c438e8a46106fa)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 9 Oct 2019 15:10:42 +0000 (09:10 -0600)]
Backport UTF8_SKIP
which is just a synonym for UTF8SKIP
(cherry picked from commit
393aff27a03ba3dfe30531be2950e3702fc07bd2)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 9 Oct 2019 15:05:06 +0000 (09:05 -0600)]
parts/inc/misc: Backport UNI to/from NATIVE
And change the way we setup similar defines. On perls before EBCDIC
existed, these simply return their arguments. But a module now can
unconditionally include these, and it will do the right thing.
(cherry picked from commit
e836478411ddc77f5155d0fd4e4f2a25f28dc47e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 04:02:05 +0000 (22:02 -0600)]
Updated apidoc.fnc to latest blead
(cherry picked from commit
89cfe197a6de2c56f9d7ef5e75ce074b6f7c8579)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Sun, 6 Oct 2019 04:01:46 +0000 (22:01 -0600)]
Get latest blead embed.fnc
(cherry picked from commit
1d506a06fb1782b574eae0c8177b0af23823f1ed)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Wed, 9 Oct 2019 14:52:19 +0000 (08:52 -0600)]
devel/regenerate: Add --yes option
This answers yes to the standard questions automatically. It's handy
when you want to run the job nohup, and really know what you're doing.
(cherry picked from commit
e8dfa8b9ad3c70c21ed7c7c33d9049c94ea8cbbc)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Nicolas R [Tue, 8 Oct 2019 15:26:36 +0000 (09:26 -0600)]
cat_file util in Makefile
References #137
(cherry picked from commit
fb6dad1b13facfbcdf834a6b95db2320410d7c78)
Signed-off-by: Nicolas R <atoomic@cpan.org>
Karl Williamson [Fri, 8 Nov 2019 17:29:05 +0000 (10:29 -0700)]
PATCH: gh#17227 heap-buffer-overflow
There were two problems this uncovered. One was that a floating point
expression with both operands ints truncated before becoming floating.
One operand needs to be floating.
The second is that the expansion of a non-UTF-8 byte needs to be
considered based on non-UTF-8, rather than its UTF-8 representation.
Karl Williamson [Fri, 8 Nov 2019 17:14:33 +0000 (10:14 -0700)]
Fix tr/// compilation on VMS
64-bits on that platform require a long long, and 1UL isn't. I should
have copied more carefully the similar code in utf8.h
(reported to me privately by Craig Berry)
Dan Book [Thu, 7 Nov 2019 23:44:47 +0000 (18:44 -0500)]
Link to more useful section of perlop from readpipe
qx is only briefly mentioned in the "I/O Operators" section of perlop. It is better to link to the section where it is discussed in detail.
Dan Book [Thu, 7 Nov 2019 23:53:14 +0000 (18:53 -0500)]
perlop - Make "STRING" section heading consistent
All of the similar section headings are enclosed in C<>.
Karl Williamson [Thu, 7 Nov 2019 20:32:18 +0000 (13:32 -0700)]
perlguts: Revise pod of UTF8f
This is really about strings. SVs are more conveniently printed using
SVf.
Karl Williamson [Thu, 7 Nov 2019 17:41:28 +0000 (10:41 -0700)]
Silence some compiler warnings
These were introduced in the tr/// changes in the series
merged in
240494d6992696a7a350217c131e1d5dc1444a0c
Karl Williamson [Thu, 7 Nov 2019 04:23:18 +0000 (21:23 -0700)]
Merge branch 'Remove swashes from core' into blead
This branch reimplements the final use of swashes in core, tr///, and
then proceeds to remove the swash implementation from core.
Swashes are still used in Unicode::UCD, though this can also be changed.
But there are higher priority tasks to do at the moment.
I started work on this more than two releases ago, and it finally is
ready.
Karl Williamson [Wed, 6 Nov 2019 17:32:31 +0000 (10:32 -0700)]
Remove lib/unicore/Heavy.pl
This file was for the use of utf8_heavy.pl. But now that that is
incorporated into Unicode::UCD, move the definitions from Heavy.pl to
lib/unicore/UCD.pl which is used by Unicode::UCD. This allows removing
package names.
Karl Williamson [Wed, 6 Nov 2019 17:02:45 +0000 (10:02 -0700)]
UCD.pm: Remove 'none' from swash
This was only used by tr///, and hence is no longer relevant. I never
really understood it.
Karl Williamson [Wed, 6 Nov 2019 16:40:11 +0000 (09:40 -0700)]
Remove utf8_heavy.pl
The only remaining user of this is Unicode::UCD, and so most of the code
from utf8_heavy.pl is moved into that UCD.pm.
It removes a no-longer relevant test (that had been changed into a skip
anyway), and it changes or removes the no-longer relevant references in
comments to utf8_heavy.pl
Later commits will do some simplification as not all the previous
functionality is needed. This commit removed only the parts that were
preventing compilation and tests passing.
Karl Williamson [Tue, 5 Nov 2019 05:27:39 +0000 (22:27 -0700)]
Remove swashes from core
Also references to the term.
Karl Williamson [Tue, 5 Nov 2019 05:18:05 +0000 (22:18 -0700)]
op.c: Remove no-longer used function
Karl Williamson [Tue, 5 Nov 2019 05:17:08 +0000 (22:17 -0700)]
handy.h: Change references to swashes
As these are no longer used.
Karl Williamson [Tue, 5 Nov 2019 05:14:30 +0000 (22:14 -0700)]
Porting/todo.pod: Rmv reference to fixing swashes
Karl Williamson [Tue, 5 Nov 2019 05:10:56 +0000 (22:10 -0700)]
UnTODO some tests fixed by the previous commit
Karl Williamson [Tue, 5 Nov 2019 04:30:48 +0000 (21:30 -0700)]
Reimplement tr/// without swashes
This large commit removes the last use of swashes from core.
It replaces swashes by inversion maps. This data structure is already
in use for some Unicode properties, such as case changing.
The inversion map data structure leads to straight forward
implementation code, so I collapsed the two doop.c routines
do_trans_complex_utf8() and do_trans_simple_utf8() into one. A few
conditionals could be avoided in the loop if this function were split so
that one version didn't have to test for, e.g., squashing, but I suspect
these are in the noise in the loop, which has to deal with UTF-8
conversions. This should be faster than the previous implementation
anyway. I measured the differences some releases back, and inversion
maps were faster than the equivalent swash for up to 512 or 1024
different ranges. These numbers are unlikely to be exceeded in tr///
except possibly in machine-generated ones.
Inversion maps are capable of handling both UTF-8 and non-UTF-8 cases,
but I left in the existing non-UTF-8 implementation, which uses tables,
because I suspect it is faster. This means that there is extra code,
purely for runtime performance.
An inversion map is always created from the input, and then if the table
implementation is to be used, the table is easily derived from the map.
Prior to this commit, the table implementation was used in certain edge
cases involving code points above 255. Those cases are now handled by
the inversion map implementation, because it would have taken extra code
to detect them, and I didn't think it was worth it. That could be
changed if I am wrong.
Creating an inversion map for all inputs essentially normalizes them,
and then the same logic is usable for all. This fixes some false
negatives in the previous implementation. It also allows for detecting
if the actual transliteration can be done in place. Previously, the
code mostly punted on that detection for the UTF-8 case.
This also allows for accurate counting of the lengths of the two sides,
fixing some longstanding TODO warning tests.
A new flag is created, OPpTRANS_CAN_FORCE_UTF8, when the tr/// has a
below 256 character resolving to one that requires UTF-8. If this isn't
set, the code knows that a non-UTF-8 input won't become UTF-8 in the
process, and so can take short cuts. The bit representing this flag is
the same as OPpTRANS_FROM_UTF, which is no longer used. That name is
left in so that the dozen-ish modules in cpan that refer to it can still
compile. AFAICT none of them actually use the flag, as well they
shouldn't since it is private to the core.
Inversion maps are ideally suited for tr/// implementations. An issue
with them in general is that for some pathological data, they can become
fragmented requiring more space than you would expect, to represent the
underlying data. However, the typical tr/// would not have this issue,
requiring only very short inversion maps to represent; in some cases
shorter than the table implementation.
Inversion maps are also easier to deparse than swashes. A deparse TODO
was also fixed by this commit, and the code to deparse UTF-8 inputs is
simplified.
One could implement specialized data structures for specific types of
inputs. For example, a common tr/// form is a single range, like
tr/A-Z/a-z/. That could be implemented without a table and be quite
fast. An intermediate step would be to use the inversion map
implementation always when the transliteration is a single range, and
then special case length=1 maps at execution time.
Thanks to Nicholas Rochemagne for his help on B
Karl Williamson [Thu, 3 Oct 2019 04:34:37 +0000 (22:34 -0600)]
intrpvar.h: Add variable for use in tr///
This is part of this branch of changes.
Karl Williamson [Tue, 19 Feb 2019 04:14:47 +0000 (21:14 -0700)]
op.c: Add debugging dump function
This function dumps out an inversion map
Karl Williamson [Mon, 4 Nov 2019 21:59:02 +0000 (14:59 -0700)]
op.h: Add synonyms for some tr/// values
Karl Williamson [Mon, 4 Nov 2019 21:55:16 +0000 (14:55 -0700)]
Change names of some OPpTRANS flags
These two flags will shortly become obsolete, replaced by ones with
different meanings. This flag makes the new ones the normal ones, and
makes the old names synonyms so that code that refers to them can
compile.
Karl Williamson [Mon, 4 Nov 2019 21:38:58 +0000 (14:38 -0700)]
doop.c: Refactor do_trans_complex()
I had trouble understanding how this uncommented routine worked. And it
turned out to be broken, squeezing the pre-transliterated characters
instead of the post-transliterated ones. This fixes the TODO test added
in the previous commit.
Karl Williamson [Tue, 5 Nov 2019 05:13:43 +0000 (22:13 -0700)]
t/op/tr.t: Add tests, incl. a TODO
This adds a TODO test which demonstrates that the current tr/// is
broken, to be fixed by the next commit.
It adds other tests designed to stress the forthcoming revisions in the
implementation of tr///.
Karl Williamson [Mon, 4 Nov 2019 21:17:09 +0000 (14:17 -0700)]
doop.c: Change name of variable
This helped me understand what was going on in this function
Karl Williamson [Mon, 4 Nov 2019 20:12:21 +0000 (13:12 -0700)]
doop.c: Change out-of-bounds value
This currently uses 0xfeedface as a marker for something that isn't a
legal value. But that could in fact become legal at same point. This
defines a value TR_OOB that can be guaranteed not to become legal.
Karl Williamson [Sat, 2 Nov 2019 16:15:22 +0000 (10:15 -0600)]
doop.c: Add, revise comments
Karl Williamson [Sun, 27 Oct 2019 15:55:10 +0000 (09:55 -0600)]
op.c: Simplify expression.
This also makes sure 'struct_size' has the correct value in it for any
future uses.
Karl Williamson [Wed, 2 Oct 2019 21:36:19 +0000 (15:36 -0600)]
regen/ebcdic.pl: Add tables that partition by UTF-8 length
These will be used in a future commit. This creates equivalence classes
of ranges of code points whose UTF-8 representations are the same length
Karl Williamson [Wed, 2 Oct 2019 20:47:24 +0000 (14:47 -0600)]
op.c, doop.c Use mnemonics instead of numeric values
For legibility and maintainability
Karl Williamson [Wed, 2 Oct 2019 18:33:01 +0000 (12:33 -0600)]
doop.c: Add a parameter to a few fcns
instead of deriving it each time from inside the function. This is in
preparation for future commits.
Karl Williamson [Wed, 2 Oct 2019 15:38:53 +0000 (09:38 -0600)]
Change macro name in tr/// code
This makes it more mnemonic. Also add an explanation in toke.c
Karl Williamson [Wed, 27 Feb 2019 21:05:18 +0000 (14:05 -0700)]
op.c: Comments only
Indent for clarity, and add a comment
Karl Williamson [Wed, 27 Feb 2019 20:56:00 +0000 (13:56 -0700)]
doop.c, op.c: White-space only
Remove trailing blanks and outdent a doubly indented block
Karl Williamson [Wed, 27 Feb 2019 20:26:53 +0000 (13:26 -0700)]
op.c: Indent some code
This is in preparation for a future commit which will surround this with
an 'if'.
Karl Williamson [Sat, 2 Nov 2019 20:45:23 +0000 (14:45 -0600)]
toke.c: comment, White-space only
Wrap a too-long line
Karl Williamson [Wed, 2 Oct 2019 21:29:05 +0000 (15:29 -0600)]
Allow core to work with code points above IV_MAX
Higher has been reserved for core use, and a future commit will want to
finally do this.
Karl Williamson [Tue, 19 Feb 2019 02:37:53 +0000 (19:37 -0700)]
Move some static fcns from regcomp.c to invlist_inline.h
They are still only accessible from regcomp.c, but this is in
preparation for them to be usable from other core files as well.
Karl Williamson [Wed, 2 Oct 2019 03:57:59 +0000 (21:57 -0600)]
regcomp.c: Change name of static function.
This removes an unnecessary leading underscore
Karl Williamson [Tue, 19 Feb 2019 02:31:25 +0000 (19:31 -0700)]
invlist_inline.h: White space only
Fold a too-long line
Karl Williamson [Tue, 19 Feb 2019 02:30:31 +0000 (19:30 -0700)]
invlist_inline.h: Restrict files symbols are in
These are only needed in regcomp.c, so restrict them to that file
Chris 'BinGOs' Williams [Wed, 6 Nov 2019 22:06:58 +0000 (22:06 +0000)]
Update IO-Compress to CPAN version 2.089
[DELTA]
2.089 3 November 2019
* bin/streamzip
Add zipstream to EXE_FILES
https://github.com/pmqs/IO-Compress/issues/5
7f5ed78e5652125c9ba78aab720e18d384d59c00
fb8cd6480af6303f58fd2e12d4999cd1830f0c5f
2.088 31 October 2019
* t/105oneshot-zip-only.t
Fix reset of CompSize
6034da95f1dc5a594edc0d26e6add8d86990ad56
* Add Support Details
ad66b6ec4cf175a70e53f74572eed5f403648f11
* Update site for Bzip2 to sourceware
77497aeb2a234889a2b2c4ac7ea2f620895b16a9
* Fix number of tests
bc4e234449a82fb00f66af752dfc4c96097b2a4d
* Add streamzip script to bin
76d2795d0587bafb0cc398e97142740acba82a42
* zipdetails
* Update zipdetails to version 1.11
8958cb3aa90745a4b3369479846846fdca6b4f76
* Zip64 extra field typo
f186380d701fe5257f9fc92d69160dc6382cfc24
* t/105oneshot-zip-only.t
test with deflated directory
16bfffcf5089af67cb7f68685cc61d06409cba73
* t/105oneshot-zip-only.t
Add test for encrypted Zip files
5ad813115aed000f88d7df28261b43c00ae56525
2c64e255feb5a1ee33d033f7eccb6feca12ebe97
* Documentation Updates
https://github.com/pmqs/IO-Compress/issues/2
e1fd0d4eda0a8496981cbd83ad06906f4ae586a5
* Mention xz, lzma etc
https://github.com/pmqs/IO-Compress/issues/4
126f7b9da97b572d0fb89a9bdcc190c5405c72b8
Chris 'BinGOs' Williams [Wed, 6 Nov 2019 22:00:47 +0000 (22:00 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.089
[Delta]
2.089 3 November 2019
* No Changes
2.088 31 October 2019
* Add Support Details
37e04fb3dc50287a3512b004282425c6eedb8af6
* upgrade to Bzip2 1.0.8
027a30848ee57731b435d2ea7af09e532bf6fbfd
Chris 'BinGOs' Williams [Wed, 6 Nov 2019 21:59:15 +0000 (21:59 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.089
[DELTA]
2.089 3 November 2019
* No Changes
2.088 31 October 2019
* Add SUPPORT section
d348ad76c2073a2973d094891fbd0c2e24bf397d
* 000prereq.t: dump Perl version
e1afe502818cb1ccf5bad917b14b029b408f47f1
Tony Cook [Sun, 3 Nov 2019 22:52:22 +0000 (09:52 +1100)]
prevent a race between name-based stat and an open modifying atime
Most linux systems rarely update atime, so it's very unlikely
for this issue to trigger there, but on a system with classic atime
behaviour this was a race between open modifying atime and time()
ticking over.
gh #17234
Yves Orton [Tue, 5 Nov 2019 23:32:06 +0000 (00:32 +0100)]
add defensive parens
Yves Orton [Tue, 5 Nov 2019 23:05:17 +0000 (00:05 +0100)]
rework U8TOxx_LE macros to force unsigned access
This introduces a _shifted_octet() utility macro to make things
more clear, it also adds support for USE_UNALIGNED_PTR_DEREF for
little-endian platforms that allow unaligned access. This must
be manually defined and ONLY affects little endian builds currently,
and is there primarily for -g builds on x86 (eg for perl developers
themselves).
Matt Turner [Tue, 5 Nov 2019 18:22:58 +0000 (10:22 -0800)]
Fix the UTO*_LE macros
Embarrassingly I got confused and swapped them (BYTEORDER == 0x1234 etc
is not great...). Somehow the perl test suite still passes with this,
but fortunately the test suite for modules like
Algorithm-MinPerfHashTwoLevel caught the problem.
Fixes: https://github.com/Perl/perl5/issues/17244
Fixes: https://github.com/Perl/perl5/issues/17247
Fixes: https://rt.cpan.org/Ticket/Display.html?id=130890
Steve Peters [Tue, 5 Nov 2019 17:08:13 +0000 (11:08 -0600)]
Remove compiler in .travis.yml
SInce `clang` was removed as a compiler option in the previous change to `.travis.yml`, no need to exclude Linux from using it. Also, no need for the excludes for OS X since was removed.
Karl Williamson [Sat, 2 Nov 2019 20:41:49 +0000 (14:41 -0600)]
perlop.pod: Slight clarification