This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Allow generation of delta tables
authorKarl Williamson <public@khwilliamson.com>
Fri, 27 Jan 2012 17:50:47 +0000 (10:50 -0700)
committerKarl Williamson <public@khwilliamson.com>
Sat, 4 Feb 2012 23:29:31 +0000 (16:29 -0700)
commitbbed833aa72f5b47077a7ce37c457c9fb380db22
tree50f091ffa3c7355aade07923a320d65726a30c5a
parent74a3abe0e7addbcdde921481b9bc91158da5de65
mktables: Allow generation of delta tables

Delta tables are those in which the mapping is not stored as-is, but is
modified to be the delta between the actual mapping and the code point
it is for.  This allows for smaller tables that are faster to search and
require less memory to store.

For example, consider the lower case mapping of A=>a, B=b, ... Z=>z.
Prior to this patch, this requires 26 entries in the table; now it
requires just one.  This is because A=65 and a=97.  We store 97-65=32.
And 32 is the same delta for each of A-Z, so we can store these as a
single range each with the same value, 32.

The delta tables tend to be half as large as the non-ones, or even
smaller.

This just enables the feature.  No tables currently use it.  For that,
changes in other Unicode::UCD need to be coordinated.
lib/unicore/mktables