This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
5 years agoperlapi: Use C<> instead of I<> for parameter names, etc
Karl Williamson [Thu, 7 May 2015 16:28:43 +0000 (10:28 -0600)]
perlapi: Use C<> instead of I<> for parameter names, etc

The majority of perlapi uses C<> to specify these things, but a few
things used I<> instead.  Standardize to C<>.

5 years agore/re_tests: Rmv comment
Karl Williamson [Thu, 9 Apr 2015 18:41:53 +0000 (12:41 -0600)]
re/re_tests: Rmv comment

This was a comment I added for debugging, and forgot to remove

5 years agotoke.c: White-space, comment, added braces only
Karl Williamson [Tue, 7 Apr 2015 04:35:02 +0000 (22:35 -0600)]
toke.c: White-space, comment, added braces only

This makes && and || begin lines instead of end them for easier
following of the logic, as suggested in Perl Best Practices.  A couple
of { } pairs were added to make the code within an 'if' stand out from
the 'if' test itself.

5 years agoUpgrade Filter-Util-Call from version 1.54 to 1.55
Steve Hay [Fri, 31 Jul 2015 07:50:26 +0000 (08:50 +0100)]
Upgrade Filter-Util-Call from version 1.54 to 1.55

5 years agoUpgrade Encode from version 2.75 to 2.76
Steve Hay [Fri, 31 Jul 2015 07:20:18 +0000 (08:20 +0100)]
Upgrade Encode from version 2.75 to 2.76

5 years agoAdd Ivan Pozdeev to AUTHORS
H.Merijn Brand [Thu, 30 Jul 2015 10:38:52 +0000 (12:38 +0200)]
Add Ivan Pozdeev to AUTHORS

5 years agoextra guard against spaces in paths (spotted by Ivan Pozdeev)
H.Merijn Brand [Thu, 30 Jul 2015 09:08:38 +0000 (11:08 +0200)]
extra guard against spaces in paths (spotted by Ivan Pozdeev)

5 years agoConsistently use -o a.out (spotted by Ivan Pozdeev)
H.Merijn Brand [Thu, 30 Jul 2015 08:48:51 +0000 (10:48 +0200)]
Consistently use -o a.out (spotted by Ivan Pozdeev)

5 years agoThere is no default dflt for usedtrace (spotted by Ivan Pozdeev)
H.Merijn Brand [Thu, 30 Jul 2015 08:39:07 +0000 (10:39 +0200)]
There is no default dflt for usedtrace (spotted by Ivan Pozdeev)

5 years agoperldelta for 3480fbaaaea8
Tony Cook [Thu, 30 Jul 2015 02:01:17 +0000 (12:01 +1000)]
perldelta for 3480fbaaaea8

5 years agoCwd.pm, dont repeatedly access magic %ENV vars
Daniel Dragan [Wed, 29 Jul 2015 13:54:51 +0000 (09:54 -0400)]
Cwd.pm, dont repeatedly access magic %ENV vars

%ENV is magic/tied, a lexical is faster than calling out to magic APIs
with gets and sets (or checks for them). Less glob and hash lookups too.

Return the lexical instead of the magic var so there isn't a search for
magic from pp_leavesub's sv_mortalcopy. Even though env mg vtable doesn't
have a getter or GMAGIC, SvVSTRING_mg executes mg_find for random, get
and set magic inside Perl_sv_setsv_flags.

5 years agoUpdate perlfaq to CPAN version 5.021010
Chris 'BinGOs' Williams [Wed, 29 Jul 2015 13:42:45 +0000 (14:42 +0100)]
Update perlfaq to CPAN version 5.021010

  [DELTA]

5.021010    20152015-07-28 18:30:48Z
  * Fix typo (Douglas L. Jenkins)
  * Fix Time::Seconds example (Niko Tyni)
  * Basic README.pod (Shlomi Fish)

5 years agoUse U64 (a type) instead of U64TYPE (a define).
Jarkko Hietaniemi [Tue, 28 Jul 2015 23:11:38 +0000 (19:11 -0400)]
Use U64 (a type) instead of U64TYPE (a define).

Builds on top of 16d89be8.

5 years agoAllow perl to work again with all Unicode releases
Karl Williamson [Wed, 29 Jul 2015 04:17:01 +0000 (22:17 -0600)]
Allow perl to work again with all Unicode releases

Compiling perl to work with early Unicode releases is a goal, but has
been broken since 5.18.  This sequence of commits gets this working
again, actually better than before.

5 years agoperldelta entry for mktables changes
Karl Williamson [Wed, 29 Jul 2015 03:24:40 +0000 (21:24 -0600)]
perldelta entry for mktables changes

5 years agolib/unicore/README.perl: Update
Karl Williamson [Wed, 29 Jul 2015 03:19:52 +0000 (21:19 -0600)]
lib/unicore/README.perl: Update

This makes some changes and adds instructions for compiling older
Unicode versions.

5 years agomktables: Minimize use of version numbers for decisions
Karl Williamson [Wed, 29 Jul 2015 02:52:57 +0000 (20:52 -0600)]
mktables: Minimize use of version numbers for decisions

I found these places where file existence can be used instead of knowing
what version something happened in.  Sometimes those numbers are wrong,
and one of these was.  If it can be avoided, better not to use version
numbers

5 years agomktables: improve LineBreak table for early Unicodes
Karl Williamson [Wed, 29 Jul 2015 02:34:22 +0000 (20:34 -0600)]
mktables: improve LineBreak table for early Unicodes

It turns out that the generated map files look better (even if
functionally equivalent) if the default mapping is the one to the
above-Unicode code points.  This was the only one that had it different.

5 years agomktables: Make sure \p{Space} works in all Unicodes
Karl Williamson [Tue, 28 Jul 2015 21:58:47 +0000 (15:58 -0600)]
mktables: Make sure \p{Space} works in all Unicodes

This isn't defined by Unicode until a later version, but Perl wants it
in all versions.

5 years agomktables: Fix up Name_Alias in early Unicodes
Karl Williamson [Tue, 28 Jul 2015 21:21:16 +0000 (15:21 -0600)]
mktables: Fix up Name_Alias in early Unicodes

perl needs the Name_Alias property accessible in all releases in order
for charnames to work properly.  However the property was not created
until Unicode version 5.0.  Previously, the property was made available
to all Unicode versions, which is contrary to the policy of exposing
properties to public use only when Unicode so exposes them.  Thus the
behavior is as close as possible to Unicode-specified.  This commit
creates an internal-only property for the perl core, and removes the
general access on early Unicode releases.

5 years agomktables: Add handling of WB and SB for early Unicodes
Karl Williamson [Tue, 28 Jul 2015 04:45:31 +0000 (22:45 -0600)]
mktables: Add handling of WB and SB for early Unicodes

This allows \b{wb} and \b{sb} to work on all Unicode releases.  The huge
number of differences in charclass_invlists.h is only because the names
of the SB and WB tables change, and the code automatically
re-alphabetizes things.

5 years agomktables: Fix GCB to work on early Unicodes
Karl Williamson [Mon, 27 Jul 2015 14:12:02 +0000 (08:12 -0600)]
mktables: Fix GCB to work on early Unicodes

The GCB property was not properly being generated in early Unicode
releases.  The huge commit diff is due solely to the fact that the name
changes of this property so it is sure to not be accessible outside the
perl core, and the property tables are automatically resorted
alphabetically.

5 years agomktables: Convert Hangul_Syllable_Type to use new early infrastructure
Karl Williamson [Mon, 27 Jul 2015 04:57:51 +0000 (22:57 -0600)]
mktables: Convert Hangul_Syllable_Type to use new early infrastructure

This allows us to remove some special handling.

5 years agomktables: Convert PropValueAliases.txt to use new early infrastructure
Karl Williamson [Mon, 27 Jul 2015 04:47:56 +0000 (22:47 -0600)]
mktables: Convert PropValueAliases.txt to use new early infrastructure

This file is crucial to compiling perl these days.  This commit converts
to use the new infrastructure for dealing with compiling Unicode
releases prior to when this file was made available.

5 years agomktables: Convert PropertyAliases.txt to use new early infrastructure
Karl Williamson [Mon, 27 Jul 2015 04:40:39 +0000 (22:40 -0600)]
mktables: Convert PropertyAliases.txt to use new early infrastructure

This file is crucial to compiling perl these days.  This commit converts
to use the new infrastructure for dealing with compiling Unicode
releases prior to when this file was made available.

5 years agomktables: Add code for easier handling of early Unicode versions
Karl Williamson [Mon, 27 Jul 2015 04:35:02 +0000 (22:35 -0600)]
mktables: Add code for easier handling of early Unicode versions

This adds infrastructure to the constructor of the Input_file class to
allow an alternative to be specified when compiling a Unicode release
that is earlier than the file first became available.

This is only used when the property is used by core perl and has to work
in all releases.  For example the qr/\X/ construct should always work,
but relies on a property that isn't specified before Unicode 4.1.  This
allows for easier specification of how to handle this type of case.

5 years agomktables: Use Input_file class for always skipped files
Karl Williamson [Mon, 27 Jul 2015 04:18:02 +0000 (22:18 -0600)]
mktables: Use Input_file class for always skipped files

Until this commit there were two mechanisms available to specify files
in the Unicode Character Database are not used by mktables.  Now there
is one.  The global that contained such files is deleted, and instead
all such files are specified by an Input_file class object.  This has
the advantage of just one method, and the constructor already has
parameters to specify when a file first appeared, and when it was
removed.  This allows automatic generation of the pod, listing just the
appropriate files for the version being compiled.  It also allows for
the automatic check of all files to see that they are DOS 8.3 filesystem
compatible.  And it allows for some code simplification.

Unicode specifies some .html files in the UCD.  These are always skipped
(so far, and likely forever), and were in the global.  Now they are in
the constructor, which means that the code that looks for potential
files that aren't being handled has to be changed to also look for .html
files as well.

5 years agomktables: For 8.3 filesystems, the suffix matters
Karl Williamson [Mon, 27 Jul 2015 04:25:57 +0000 (22:25 -0600)]
mktables: For 8.3 filesystems, the suffix matters

Two files can have the same file name, but be different if they have
different suffixes.  Until this commit, mktables thought they were the
same, because it ignored the suffix when calculating this.  Some files
are version strings like "3.1" which look like a floating point number.
These are converted to like "3_1" first so that the .1 doesn't look like
a suffix.

5 years agomktables: Use new infrastructure for optional files
Karl Williamson [Sun, 26 Jul 2015 16:33:21 +0000 (10:33 -0600)]
mktables: Use new infrastructure for optional files

This follows up the previous commit by actually using the new
infrastructure it created.  The optional Unihan files are switched to
use the new capabilities.  This means that the globals they previously
used are no longer necessary, and are ripped out here.

5 years agomktables: Improve handling of optional files
Karl Williamson [Sun, 26 Jul 2015 16:14:11 +0000 (10:14 -0600)]
mktables: Improve handling of optional files

Some files in the Unicode Character Database are optional for perl.
Currently these are all Unihan files for East Asian languages.  This
commit adds infrastructure to the class for input file objects to more
automatically handle the case when the file is present vs not.
Currently, one has to hand edit mktables to cope with the file getting
plunked down in the directory to be compiled.  This commit is a step
towards making the editing unnecessary.

5 years agomktables: Add specifiable construction handler for Input_file class
Karl Williamson [Mon, 27 Jul 2015 03:30:07 +0000 (21:30 -0600)]
mktables: Add specifiable construction handler for Input_file class

This object is for the files in the Unicode Character Database.  This
commit adds the capability for the constructor new() to be passed a code
reference to call after everything else is constructed, but before
control is returned.

5 years agomktables: Unicode has withdrawn some files in the UCD
Karl Williamson [Sun, 26 Jul 2015 04:35:36 +0000 (22:35 -0600)]
mktables: Unicode has withdrawn some files in the UCD

This adds the capability to mktables to seamlessly handle the case where
Unicode has removed a file from the Unicode Character Database that
existed in prior versions.  The constructor for the object tells what
release no longer has it.  The file is looked for only when compiling a
Unicode version in the window that had it.

5 years agomktables: Revamp constructor and run method for input objects
Karl Williamson [Sun, 26 Jul 2015 03:45:46 +0000 (21:45 -0600)]
mktables: Revamp constructor and run method for input objects

Each .txt file that Unicode furnishes as part of the Unicode Character
Database has an object created for it, and there is a run() method to
actually look at the input file and process it.  This commit moves some
code from the run() method into the constructor to pave the way for
future commits (hence some of the awkward constructs and indentation in
this one; these minimize the commitdiffs in later ones).

5 years agomktables: Allow multiple eof handlers for input files
Karl Williamson [Sun, 26 Jul 2015 01:19:05 +0000 (19:19 -0600)]
mktables: Allow multiple eof handlers for input files

The Input_file class is hereby extended so there can be more than one
subroutine stacked to call when an EOF is encountered.  This new
capability will be used in later commits.  There is no current need for
any outside class to look at this, so that capability is removed.

5 years agomktables: Suppress output files that shouldn't be written
Karl Williamson [Sun, 26 Jul 2015 01:11:40 +0000 (19:11 -0600)]
mktables: Suppress output files that shouldn't be written

mktables takes files as input as furnished by Unicode, munges things,
and outputs files containing tables that are more suitable for use by
the rest of perl.  A placeholder table is one that isn't supposed to be
output, but whose values are needed for internal calculations.  Prior to
this commit, those tables were being output.

5 years agomktables: Rmv extraneous sub return value
Karl Williamson [Sun, 26 Jul 2015 01:04:03 +0000 (19:04 -0600)]
mktables: Rmv extraneous sub return value

The return value of this function isn't looked at.

5 years agomktables: Handle default for Gc property better
Karl Williamson [Sun, 26 Jul 2015 00:57:13 +0000 (18:57 -0600)]
mktables: Handle default for Gc property better

Unicode changed the default name they specify in their data from the
abbreviation to the long form in version 7

5 years agomktables: Handle \b{gcb}, \X better in Unicode 1
Karl Williamson [Sun, 26 Jul 2015 00:52:37 +0000 (18:52 -0600)]
mktables: Handle \b{gcb}, \X better in Unicode 1

The Hangul syllables in version 1 of Unicode were withdrawn and replaced
with the ones we know in version 2.  Should perl ever be compiled on
version 1, this commit causes the old syllables to work better than they
do now, though imperfectly.  This is used only in the \X and \b{gcb}
constructs.

5 years agomktables: Two files came along later than mktables thinks
Karl Williamson [Sat, 25 Jul 2015 04:43:55 +0000 (22:43 -0600)]
mktables: Two files came along later than mktables thinks

NormTest.txt LBTest.txt were really in later releases.  This fixes that
and moves each constructor to be in the respective release's group of
files.

5 years agomktables: Use variables for repeated text
Karl Williamson [Fri, 24 Jul 2015 14:44:25 +0000 (08:44 -0600)]
mktables: Use variables for repeated text

This text is actually used to group values in the generated pod.  By
using a variable, we make sure it is exact in every usage, so the values
are sure to get grouped properly.

5 years agomktables: Rmv wrong code point in list
Karl Williamson [Fri, 24 Jul 2015 03:04:03 +0000 (21:04 -0600)]
mktables: Rmv wrong code point in list

This was a typo, but it hasn't done any harm as it is an unassigned code
point, which gets weeded out.  Still it has no business being here.

5 years agomktables: Easier debugging
Karl Williamson [Sun, 5 Jul 2015 04:23:41 +0000 (22:23 -0600)]
mktables: Easier debugging

This turns off some inconsequential annoying warnings during certain
debugging situations

5 years agomktables: Remove unused assignment
Karl Williamson [Sat, 11 Jul 2015 04:09:18 +0000 (22:09 -0600)]
mktables: Remove unused assignment

5 years agomktables: Reindent after prev. commit
Karl Williamson [Mon, 27 Jul 2015 04:02:19 +0000 (22:02 -0600)]
mktables: Reindent after prev. commit

That commit added a nesting block, so indent an extra level, and reflow
the text to fit in 79 columns.

5 years agoProperly handle the Unicode kIICore property
Karl Williamson [Sat, 4 Jul 2015 18:01:18 +0000 (12:01 -0600)]
Properly handle the Unicode kIICore property

This property is not included in the standard Perl distribution, but it
is normative in the Unicode Unihan database and perl can be compiled to
include it.  This property is currently unique in that it operates much
like how Perl defines string truthfulness: non-empty values are
considered true.  That is \p{kIICore} matches all characters which have
a non-empty value for this property, plus the actual values have
meaning that may need to be examined in some circumstances.  These can
be retrieved via Unicode::UCD::prop_invmap().

Unicode 7.0 changed this property without my noticing, and went a very
different direction with it than I anticipated.  And the perl
interpreter would loop when trying to deal with it under some
circumstances.

This property is true for all 'core' Chinese/Japanese/Korean characters
that every implementation of CJK things should strive to handle, i.e., the
minimally acceptable set, though the values now specify a precedence as
their first letter, A, B, or C (I suppose this means one could implement
just the A level ones first).  The remaining letters in each value
encode the standards which were used as the source for the character.
In previous versions of the Standard, every non-null value was the
string "2.1".

5 years agoperluniprops: Don't list longer name as shorter
Karl Williamson [Sat, 4 Jul 2015 17:43:16 +0000 (11:43 -0600)]
perluniprops: Don't list longer name as shorter

perluniprops has cross references to shorter synonyms for properties.
In the section for the properties accessible by Unicode::UCD (not \p{}),
sometimes the shorter name wasn't actually shorter.  This fixes that.

5 years agoUnicode::UCD: Handle inverted input
Karl Williamson [Sun, 5 Jul 2015 04:28:05 +0000 (22:28 -0600)]
Unicode::UCD: Handle inverted input

No current input comes inverted, but it could some time in the future,
and we wouldn't know.  In one case, it's easy to handle, so do so; in
another, die with a message so won't sneak past.  At that point, if and
when it happens, time could be spent figuring out the best way to handle
the situation.

5 years agolib/Unicode/UCD.t: White-space only
Karl Williamson [Wed, 1 Jul 2015 20:13:21 +0000 (14:13 -0600)]
lib/Unicode/UCD.t: White-space only

Re-indent after the previous commit

5 years agolib/Unicode/UCD.t: Fix to work on older Unicodes
Karl Williamson [Sat, 27 Jun 2015 21:43:01 +0000 (15:43 -0600)]
lib/Unicode/UCD.t: Fix to work on older Unicodes

This commit causes this test to pass tests even when run on old
Unicodes, back to 3.0, where it becomes just too much.  Most tests
aren't structured to pass on older Unicodes, but it's somewhat important
that this one does.

5 years agoUnicode::UCD: Add pod text about old Unicodes
Karl Williamson [Sat, 27 Jun 2015 21:33:43 +0000 (15:33 -0600)]
Unicode::UCD: Add pod text about old Unicodes

5 years agoUnicode::UCD: Handle old Unicode files
Karl Williamson [Sat, 27 Jun 2015 21:32:49 +0000 (15:32 -0600)]
Unicode::UCD: Handle old Unicode files

The formats of some older Unicode releases can be different than
previously expected.

5 years agoUnicode::UCD: Handle old Unicode Blocks file format
Karl Williamson [Sat, 27 Jun 2015 21:31:31 +0000 (15:31 -0600)]
Unicode::UCD: Handle old Unicode Blocks file format

5 years agoXS-APItest/t/handy.t: Handle early Unicodes
Karl Williamson [Sat, 27 Jun 2015 21:26:55 +0000 (15:26 -0600)]
XS-APItest/t/handy.t: Handle early Unicodes

This changes, for properties that aren't defined in all Unicode
versions, to use synonyms that are defined in all.  It also better
checks for empty property tables, and knows that the format of some
returns can be different than previously constrained to be.

5 years agoregen/mk_invlists.pl: Handle early Unicodes CF
Karl Williamson [Sat, 27 Jun 2015 21:19:52 +0000 (15:19 -0600)]
regen/mk_invlists.pl: Handle early Unicodes CF

In very early Unicode releases, the case folding table can be in a
different format.

5 years agoregen/mk_invlists.pl: White-space only
Karl Williamson [Sat, 27 Jun 2015 20:32:15 +0000 (14:32 -0600)]
regen/mk_invlists.pl: White-space only

Reindent after the previous commit introduced an outer block

5 years agoregen/mk_invlists.pl: Properly handle empty properties
Karl Williamson [Sat, 27 Jun 2015 20:30:30 +0000 (14:30 -0600)]
regen/mk_invlists.pl: Properly handle empty properties

This failed to adequately handle empty properties; something that wasn't
seen until compiling older Unicode releases.

5 years agoregen/mk_PL_charclass.pl: Use names known in all Unicodes
Karl Williamson [Sat, 27 Jun 2015 20:14:31 +0000 (14:14 -0600)]
regen/mk_PL_charclass.pl: Use names known in all Unicodes

This just changes, for properties that aren't defined in all Unicode
versions, to use synonyms that are defined in all

5 years agoregen/regcharclass.pl: Work on early Unicodes
Karl Williamson [Sat, 27 Jun 2015 20:11:04 +0000 (14:11 -0600)]
regen/regcharclass.pl: Work on early Unicodes

This just changes, for properties that aren't defined in all Unicode
versions, to use synonyms that are defined in all

5 years agomktables: Add new alias status for internal-only
Karl Williamson [Sat, 27 Jun 2015 19:46:14 +0000 (13:46 -0600)]
mktables: Add new alias status for internal-only

This makes it easier to control whether a synonym for a property value
is shown to and is accessible by users.

5 years agomktables: Get fold generation to work on early Unicodes
Karl Williamson [Fri, 26 Jun 2015 20:17:06 +0000 (14:17 -0600)]
mktables: Get fold generation to work on early Unicodes

CaseFolding.txt isn't present in early Unicodes.  For these lowercasing
is used instead.  But the format of the lowercasing table isn't quite
the same, so add code to handle the differences.

5 years agomktables: Skip Hangul autogeneration on early Unicodes
Karl Williamson [Fri, 26 Jun 2015 19:20:18 +0000 (13:20 -0600)]
mktables: Skip Hangul autogeneration on early Unicodes

Unicode Version 1 used completely different Hangul Syllables, so the
algorithm for the later versions doesn't apply

5 years agomktables: White-space, comment, debugging changes only
Karl Williamson [Fri, 26 Jun 2015 18:27:41 +0000 (12:27 -0600)]
mktables: White-space, comment, debugging changes only

This adds comments, fixes up some white space and adds some things to
trace (when enabled)

5 years agomktables: Make surrogates work in all Unicodes
Karl Williamson [Fri, 26 Jun 2015 18:23:13 +0000 (12:23 -0600)]
mktables: Make surrogates work in all Unicodes

Surrogates aren't in all Unicode releases.  This creates a table that is
accessible in all releases, but is empty in those that don't have
surrogates.

5 years agomktables: Fixup Unicode 5.0 propvalue aliases for Blocks
Karl Williamson [Fri, 26 Jun 2015 18:14:12 +0000 (12:14 -0600)]
mktables: Fixup Unicode 5.0 propvalue aliases for Blocks

These used an anomalous form in this release only.

5 years agomktables: Add true/false aliases in early Unicodes
Karl Williamson [Fri, 26 Jun 2015 18:12:16 +0000 (12:12 -0600)]
mktables: Add true/false aliases in early Unicodes

Before Unicode 5.0, the aliases for True and False were just assumed,
and not specifically mentioned.  This commit adds them for those early
releases.

5 years agoutf8_heavy.pl: White-space only
Karl Williamson [Fri, 26 Jun 2015 17:59:30 +0000 (11:59 -0600)]
utf8_heavy.pl: White-space only

Reindent after previous commit added an outer block

5 years agomktables: Allow strictly named map tables
Karl Williamson [Fri, 26 Jun 2015 17:50:18 +0000 (11:50 -0600)]
mktables: Allow strictly named map tables

There are several types of tables generated by mktables.  Most are
binary (match) tables, but another class is mapping tables.  The names
for these may be loosely matched, but until this commit only the match
tables could have strict matching applied.

Strict matching is used for certain table names where loose could be
ambiguous, and for all names that aren't to be used by anything except
the perl core.

5 years agomktables: Move debugging line out of loop
Karl Williamson [Fri, 26 Jun 2015 17:27:49 +0000 (11:27 -0600)]
mktables: Move debugging line out of loop

It should only be printed once, when it does get printed (as it is
usually commented out).

5 years agomktables: Define non-char in all Unicode releases
Karl Williamson [Fri, 26 Jun 2015 04:10:22 +0000 (22:10 -0600)]
mktables: Define non-char in all Unicode releases

Perl needs the NChar property to compile, but Unicode did not furnish it
in early releases.  This commit will use the Unicode definition if
available, but otherwise computes it itself.

5 years agomktables: Define quotemeta better in early Unicode releases
Karl Williamson [Fri, 26 Jun 2015 04:05:54 +0000 (22:05 -0600)]
mktables: Define quotemeta better in early Unicode releases

This property is needed by Perl to compile properly in all Unicode
releases, but Unicode did not furnish data for it in early releases.
Prior to this commit, the definition in such releases was set lazily to
an inaccurate value.  But it's not hard to do it correctly.

5 years agomktables: Define PatWS for Unicode versions missing it
Karl Williamson [Fri, 26 Jun 2015 03:56:17 +0000 (21:56 -0600)]
mktables: Define PatWS for Unicode versions missing it

This property is used by Perl in all Unicode releases, so needs to be
present in all releases, but Unicode did not define it in early
releases, though it should have the same short definition in all of
them.  If there is no Unicode data defining it, hard-code the definition
into mktables.

5 years agomktables: Escape literal "{" in regex
Karl Williamson [Fri, 26 Jun 2015 03:38:57 +0000 (21:38 -0600)]
mktables: Escape literal "{" in regex

It's now deprecated if we fail to do so.

5 years agoregen/mk_PL_charclass.pl: Don't confuse simple with multi folds
Karl Williamson [Wed, 24 Jun 2015 18:37:55 +0000 (12:37 -0600)]
regen/mk_PL_charclass.pl: Don't confuse simple with multi folds

On early Unicode releases, this was saying that a character had a simple
fold from above Latin1, whereas it didn't.  This was caused by not
keeping the simple folds separate from the multi-character ones.
The solution is to keep a separate data structure for the simple ones.

5 years agof
Karl Williamson [Wed, 29 Jul 2015 03:42:14 +0000 (21:42 -0600)]
f

5 years agoHandle Unicode 3.0.1 /i Turkish "i" rules
Karl Williamson [Wed, 24 Jun 2015 17:22:02 +0000 (11:22 -0600)]
Handle Unicode 3.0.1 /i Turkish "i" rules

Actually, there are no special rules for this Unicode release.  All the
4 "i" characters are considered equivalent under /i only in this
release.  (Upper and lowercase dotted and dotless "i").  This
adds special cases that are only compiled in for that release.

5 years agoregen/unicode_constants.pl: Add U+130, +131
Karl Williamson [Wed, 24 Jun 2015 16:22:07 +0000 (10:22 -0600)]
regen/unicode_constants.pl: Add U+130, +131

These will be used in the next commit

5 years agoregen/mk_PL_charclass.pl: Add extra info to debug line
Karl Williamson [Mon, 22 Jun 2015 17:18:48 +0000 (11:18 -0600)]
regen/mk_PL_charclass.pl: Add extra info to debug line

This is currently commented out, but this is helpful during
the times when it is used.

5 years agoregen/regcharclass.pl: Handle empty lists
Karl Williamson [Mon, 22 Jun 2015 16:46:39 +0000 (10:46 -0600)]
regen/regcharclass.pl: Handle empty lists

Short circuit the remaining code and return a 0 if the input doesn't
match anything

5 years agolib/locale.t: Fail more gracefully
Karl Williamson [Mon, 22 Jun 2015 16:22:34 +0000 (10:22 -0600)]
lib/locale.t: Fail more gracefully

If a character's name is unknown, say that instead of an unitialized
warning.

5 years agomktables: Handle early Unicodes' script names
Karl Williamson [Mon, 22 Jun 2015 16:06:45 +0000 (10:06 -0600)]
mktables: Handle early Unicodes' script names

These were all caps in early releases

5 years agouc(sharp s) is itself in very early Unicode versions
Karl Williamson [Mon, 22 Jun 2015 03:52:58 +0000 (21:52 -0600)]
uc(sharp s) is itself in very early Unicode versions

5 years agoThere are no folds to multiple chars in early Unicode versions
Karl Williamson [Mon, 22 Jun 2015 03:38:32 +0000 (21:38 -0600)]
There are no folds to multiple chars in early Unicode versions

Several places require special handling because of this, notably for the
lowercase Sharp S, but not in Unicodes before 3.0.1

5 years agoUnicode::UCD: Remove dead code
Karl Williamson [Sun, 21 Jun 2015 00:01:14 +0000 (18:01 -0600)]
Unicode::UCD: Remove dead code

Nothing should get executed after a croak.

5 years agoregen/unicode_constants.pl: Generate #defines giving which Unicode version
Karl Williamson [Sat, 20 Jun 2015 23:20:46 +0000 (17:20 -0600)]
regen/unicode_constants.pl: Generate #defines giving which Unicode version

Future commits will want to take different actions depending on which
Unicode version is being used.

5 years agomktables: Calculate \p{Assigned} earlier in build
Karl Williamson [Sat, 20 Jun 2015 22:55:49 +0000 (16:55 -0600)]
mktables: Calculate \p{Assigned} earlier in build

Future commits will want this table earlier than it is currently
calculated.  This commit also changes one place to use this table.

5 years agot/uni/variables.t: Fix nits in comments
Karl Williamson [Sat, 20 Jun 2015 22:26:59 +0000 (16:26 -0600)]
t/uni/variables.t: Fix nits in comments

5 years agomktables: Remove redundant test
Karl Williamson [Sat, 20 Jun 2015 20:59:14 +0000 (14:59 -0600)]
mktables: Remove redundant test

This test is a duplicate of the one that got us to take this branch to
begin with, so is redundant.

5 years agomktables: White-space only
Karl Williamson [Sat, 20 Jun 2015 15:38:45 +0000 (09:38 -0600)]
mktables: White-space only

reindent after removing a surrounding block in the previous commit

5 years agomktables: Move code wrongly inside a block
Karl Williamson [Sat, 20 Jun 2015 15:33:58 +0000 (09:33 -0600)]
mktables: Move code wrongly inside a block

This would fail to be executed only for very early Unicode versions, so
wasn't a visible bug.

5 years agomktables: Add missing /x
Karl Williamson [Sat, 20 Jun 2015 15:23:32 +0000 (09:23 -0600)]
mktables: Add missing /x

Because of this the pattern didn't match what it was expected to match.
But it only showed up if the Unicode version was an early one.

5 years agomktables: Fix off-by-one error
Karl Williamson [Sat, 20 Jun 2015 15:11:01 +0000 (09:11 -0600)]
mktables: Fix off-by-one error

This only affects when compiling an earlier Unicode version.  This
property came along one release earlier than the code thought.

5 years agomktables: Define ok(), needed by a required script.
Karl Williamson [Thu, 2 Jul 2015 04:24:26 +0000 (22:24 -0600)]
mktables: Define ok(), needed by a required script.

loc_tools.pl wants this function to be defined.

5 years agomktables: Don't hard-code number of code points
Karl Williamson [Thu, 2 Jul 2015 04:21:49 +0000 (22:21 -0600)]
mktables: Don't hard-code number of code points

Unicode 1 only had 2**16 code points.  It is simple to fix to have a
varying number.

5 years agoregcomp.c: Rmv useless 'continue'
Karl Williamson [Sat, 6 Jun 2015 03:38:58 +0000 (21:38 -0600)]
regcomp.c: Rmv useless 'continue'

This is the final statement of the short loop.  It does nothing.

5 years agomktables: Remove unused assignment
Karl Williamson [Sat, 6 Jun 2015 03:35:22 +0000 (21:35 -0600)]
mktables: Remove unused assignment

5 years agomktables: White-space only
Karl Williamson [Fri, 5 Jun 2015 17:13:30 +0000 (11:13 -0600)]
mktables: White-space only

Outdent subroutine that doesn't need to be indented

5 years agomktables: Don't assume a decimal number is hex
Karl Williamson [Fri, 5 Jun 2015 05:04:55 +0000 (23:04 -0600)]
mktables: Don't assume a decimal number is hex

This caused invalid data to be generated for early releases of Unicode
for the Lowercase property.

5 years agoAllow Perl to compile and work on Unicode releases without U+1E9E
Karl Williamson [Tue, 19 May 2015 19:25:21 +0000 (13:25 -0600)]
Allow Perl to compile and work on Unicode releases without U+1E9E

U+1E9E LATIN CAPITAL LETTER SHARP S is handled specially by Perl,
because of its relationship to the infamous LATIN SMALL LETTER SHARP S,
which folds to 'ss', being the only character whose code point is < 256
to have a multi char fold, and this creates lots of special cases.

But U+1E9E wasn't in all Unicode releases.  Because Perl is supposed to
work with any release, we need to be able to compile when this character
isn't defined.  In some of those cases we use U+017F (LATIN SMALL LETTER
LONG S instead, which is in all releases.

5 years agoregen/unicode_constants.pl: Skip U+1E9E if not in Unicode version
Karl Williamson [Tue, 19 May 2015 19:31:09 +0000 (13:31 -0600)]
regen/unicode_constants.pl: Skip U+1E9E if not in Unicode version

LATIN CAPITAL LETTER SHARP S is not available in all Unicode releases;
simply skip generating things when it isn't there.

5 years agomktables: Remove wrong warning message
Karl Williamson [Mon, 18 May 2015 19:13:07 +0000 (13:13 -0600)]
mktables: Remove wrong warning message

This warning should not be raised.  The extra parameter it warns about
is an indent that is in fact passed on.