This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agoFix test label.
Jarkko Hietaniemi [Wed, 5 Aug 2015 03:01:00 +0000 (23:01 -0400)]
Fix test label.

6 years agoComment tweaks.
Jarkko Hietaniemi [Wed, 5 Aug 2015 03:00:49 +0000 (23:00 -0400)]
Comment tweaks.

6 years agoSanity x86 long double check.
Jarkko Hietaniemi [Wed, 5 Aug 2015 03:00:33 +0000 (23:00 -0400)]
Sanity x86 long double check.

6 years agohints comments tweak.
Jarkko Hietaniemi [Sat, 8 Aug 2015 21:52:30 +0000 (17:52 -0400)]
hints comments tweak.

6 years agoGive a better error if malloc.c is used without MYMALLOC
Jarkko Hietaniemi [Sat, 8 Aug 2015 20:39:25 +0000 (16:39 -0400)]
Give a better error if malloc.c is used without MYMALLOC

The build will die already on errors because of the missing ASSERT
macros (plus get warnings on the implicit declarations, i.e. missing
prototypes), but better to give a clear error.

FWIW, looking at hints/*, only HP-UX of the even remotely
common/current systems seems to use Perl's malloc anymore,
and then only if perlio is NOT being used.

(Other platforms that seemingly use Perl's malloc include ancient
SysVs like SCO 2.3.4, NCR Tower, Tektronix' UTek V, then Unicos and
Unicos/mk of Cray, and NEC's SUPER-UX.)  (OS/2 still probably does
use it, given all the work ilyaz used to pour on it.)

6 years agobump $ExtUtils::ParseXS::VERSION to 3.29
Tony Cook [Mon, 10 Aug 2015 01:39:07 +0000 (11:39 +1000)]
bump $ExtUtils::ParseXS::VERSION to 3.29

6 years agoFix INCLUDE_COMMAND $^X for Perl In Space
Ed J [Sun, 14 Jun 2015 23:40:36 +0000 (00:40 +0100)]
Fix INCLUDE_COMMAND $^X for Perl In Space

6 years agoCPAN-Meta-YAML is now synced with 0.017-TRIAL
Steve Hay [Fri, 7 Aug 2015 07:39:07 +0000 (08:39 +0100)]
CPAN-Meta-YAML is now synced with 0.017-TRIAL

Delete Changes file. We don't put IGNORABLEs in cpan/ folders.

6 years agoremove the byte-order-mark introduced to sv.c by 5488d373
Tony Cook [Fri, 7 Aug 2015 04:20:36 +0000 (14:20 +1000)]
remove the byte-order-mark introduced to sv.c by 5488d373

This causes the build to fail on NetBSD

6 years agot/00-report-prereqs.dd no longer part of CPAN-Meta-YAML.
James E Keenan [Wed, 5 Aug 2015 01:50:47 +0000 (21:50 -0400)]
t/00-report-prereqs.dd no longer part of CPAN-Meta-YAML.

Removed it from MANIFEST.  Added two more files missing from MANIFEST.

Had to run ./perl -Ilib Porting/metadata to update META.yml.

Maintainer reports that the "patch is safe to be merged now"; hence,
merging notwithstanding '-TRIAL' comment.

For: RT #125748

6 years agoUpgrade CPAN-Meta-YAML from 0.016 to 0.017-TRIAL
Karen Etheridge [Tue, 4 Aug 2015 15:30:31 +0000 (08:30 -0700)]
Upgrade CPAN-Meta-YAML from 0.016 to 0.017-TRIAL

from https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/CPAN-Meta-YAML-0.017-TRIAL.tar.gz

meta files omitted:
LICENSE
MANIFEST
META.json
META.yml
README
t/00-report-prereqs.t
xt/

6 years agodouble-double long double %a fixes
Sisyphus [Wed, 5 Aug 2015 20:53:38 +0000 (16:53 -0400)]
double-double long double %a fixes

- reserve enough buffer space
- name the two different errors differently
- test around the problem spot

6 years agoBring list of directories requiring custom TAP up-to-date.
James E Keenan [Sun, 2 Aug 2015 13:15:52 +0000 (09:15 -0400)]
Bring list of directories requiring custom TAP up-to-date.

The list of directories in 'perltodo' which t/test.pl may not be used and in
which hand-rolled TAP is required was out-of-date.  It did not reflect the
creation in 2012 of the t/opbasic directory.  It failed to include the t/comp
directory.

6 years ago[perl #120826] correct documentation of sv parameter of call_sv()
Tony Cook [Mon, 3 Aug 2015 06:48:01 +0000 (16:48 +1000)]
[perl #120826] correct documentation of sv parameter of call_sv()

6 years agoAdded {unlock,lock}_hashref_recurse to @EXPORT_OK
Aaron Priven [Wed, 5 Aug 2015 00:08:56 +0000 (20:08 -0400)]
Added {unlock,lock}_hashref_recurse to @EXPORT_OK

In Hash::Util, the functions lock_hashref_recurse and
unlock_hashref_recurse were omitted from the @EXPORT_OK array,
the synopsis in the POD, and the test for exported functions in
t/Util.t. This commit adds those functions in all three places.

For: RT #125730

6 years agoGuarantee that, after unlocking, the hash is actually assignable.
James E Keenan [Thu, 30 Jul 2015 00:58:42 +0000 (20:58 -0400)]
Guarantee that, after unlocking, the hash is actually assignable.

Hash::Util::unlock_hashref_recurse(); Hash::Util::unlock_hash_recurse().

Thanks to report from Diab Jerius.

For: RT #125721

6 years agoadd a small note that find2perl is not in core
Ricardo Signes [Mon, 3 Aug 2015 02:44:21 +0000 (22:44 -0400)]
add a small note that find2perl is not in core

6 years agoSafefree(NULL) reduction
Daniel Dragan [Wed, 29 Jul 2015 07:31:23 +0000 (03:31 -0400)]
Safefree(NULL) reduction

locale.c:
- the pointers are always null at this point, see
  http://www.nntp.perl.org/group/perl.perl5.porters/2015/07/msg229533.html
pp.c:
- reduce scope of temp_buffer and svrecode, into an inner branch
- in some permutations, either temp_buffer is never set to non-null, or
  svrecode, in permutations where it is known that the var hasn't been set
  yet, skip the freeing calls at the end, this doesn't eliminate all
  permutations with NULL being passed to Safefree and SvREFCNT_dec, but
  only some of them
regcomp.c
- dont create a save stack entry to call Safefree(NULL), see ticket for
  this patch for some profiling stats

6 years agouse a more sensible homepage value for XSLoader
Tony Cook [Mon, 3 Aug 2015 01:41:42 +0000 (11:41 +1000)]
use a more sensible homepage value for XSLoader

6 years agoxs_boot_epilog (Xp): change ax from U32 to I32
Reini Urban [Fri, 13 Mar 2015 15:34:38 +0000 (16:34 +0100)]
xs_boot_epilog (Xp): change ax from U32 to I32

we need to match the declaration of ax

6 years agoRemove uselongdoubles false claim.
Jarkko Hietaniemi [Sun, 2 Aug 2015 12:39:32 +0000 (08:39 -0400)]
Remove uselongdoubles false claim.

Missed this spot in 568793b6.

6 years agoCheck for POSIX locales once.
Jarkko Hietaniemi [Sun, 2 Aug 2015 02:50:39 +0000 (22:50 -0400)]
Check for POSIX locales once.

Makes loc_tools users safe under minitest.
Currently op/quotemeta.t and op/taint.t are failing there.

6 years agoutf8.h: Add dummy param for when macros placed in API
Karl Williamson [Fri, 15 May 2015 19:49:31 +0000 (13:49 -0600)]
utf8.h: Add dummy param for when macros placed in API

These macros are not in the public API, but they might be someday.  We
may want to check for valide UTF-8 at some point.  Add a parameter so
that is possible then without having to change the API.

This also changes to use the short name of one macro

6 years agot/op/tr.t: Fix comment
Karl Williamson [Fri, 15 May 2015 19:32:23 +0000 (13:32 -0600)]
t/op/tr.t: Fix comment

This was confusing, and a likely interpretation is wrong: [i-j]  doesn't
match the gap characters in EBCDIC

6 years agoutf8.h: Fix typo in macro name definition
Karl Williamson [Fri, 15 May 2015 15:16:18 +0000 (09:16 -0600)]
utf8.h: Fix typo in macro name definition

The trailing underscore was unintended.

6 years agoutf8.h, utfebcdic.h: Add comments; white-space only
Karl Williamson [Fri, 15 May 2015 15:05:14 +0000 (09:05 -0600)]
utf8.h, utfebcdic.h: Add comments; white-space only

6 years agot/opbasic/cmp.t: Add test for NUL
Karl Williamson [Thu, 14 May 2015 01:25:22 +0000 (19:25 -0600)]
t/opbasic/cmp.t: Add test for NUL

NUL can present problems for string handling; better test it

6 years agopp_pack.c: Add comment
Karl Williamson [Wed, 13 May 2015 23:53:55 +0000 (17:53 -0600)]
pp_pack.c: Add comment

6 years agopp.c: Fix typo in comment
Karl Williamson [Wed, 13 May 2015 23:53:26 +0000 (17:53 -0600)]
pp.c: Fix typo in comment

6 years agoregen/mk_PL_charclass.pl: Suppress extra null array element
Karl Williamson [Wed, 13 May 2015 23:46:00 +0000 (17:46 -0600)]
regen/mk_PL_charclass.pl: Suppress extra null array element

We don't output a trailing comma after the final element in these C
arrays, and thus prevent the C compiler from generating a useless null
element

6 years agoutf8.h: Add UTF8_SKIP as a synonym for UTF8SKIP
Karl Williamson [Wed, 13 May 2015 23:27:48 +0000 (17:27 -0600)]
utf8.h: Add UTF8_SKIP as a synonym for UTF8SKIP

Most of the other names in utf8.h have an underscore; this allows
someone to keep things consistent in their code.

6 years agoutfebcdic.h: Comments only
Karl Williamson [Wed, 13 May 2015 23:25:28 +0000 (17:25 -0600)]
utfebcdic.h: Comments only

6 years agoutf8.h: White-space only
Karl Williamson [Sun, 10 May 2015 00:21:55 +0000 (18:21 -0600)]
utf8.h: White-space only

Align some macro definitions vertically to make it easier to read

6 years agohandy.h: White-space only
Karl Williamson [Sat, 9 May 2015 19:28:11 +0000 (13:28 -0600)]
handy.h: White-space only

Stops lines from exceeding 80 cols, and aligns columns vertical for
easier reading

6 years agoop.c: Fix typo in comment
Karl Williamson [Sat, 9 May 2015 03:23:34 +0000 (21:23 -0600)]
op.c: Fix typo in comment

6 years agoperlapi: Use F<> around file names
Karl Williamson [Thu, 7 May 2015 17:11:41 +0000 (11:11 -0600)]
perlapi: Use F<> around file names

6 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<>.

6 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

6 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.

6 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

6 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

6 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

6 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)

6 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)

6 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)

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

6 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.

6 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)

6 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.

6 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.

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

6 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.

6 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

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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).

6 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.

6 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.

6 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.

6 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

6 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.

6 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.

6 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.

6 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.

6 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

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

6 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.

6 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".

6 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.

6 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.

6 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

6 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.

6 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

6 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.

6 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

6 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.

6 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.

6 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

6 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.

6 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

6 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

6 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.

6 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.

6 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

6 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)

6 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.

6 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.