This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Avoid some work
authorKarl Williamson <khw@cpan.org>
Tue, 21 Nov 2017 18:44:11 +0000 (11:44 -0700)
committerKarl Williamson <khw@cpan.org>
Thu, 23 Nov 2017 21:18:51 +0000 (14:18 -0700)
commit86452548f54ae14813026a35a2c67498bfcdf626
tree9d0fd7b48911269b4c5a52bf7cde818f948625f7
parent40b85b808db0f3032a304d8d25831f80bb7a83b9
mktables: Avoid some work

Some tables generated by this program are completely described as the
complements of other tables.  There is no need to thus generate them, as
when their value is needed, they can be generated from the other one.
However, this takes time, and so this commit caches the result the first
time it is needed, and returns that for any future needs.

This must not be done until after the controlling table is fully
populated, or else the cache would have to be invalidated.  Since there
is unlikely to be the need for getting the value before the populating
is one, What is done here is to simply lock the controlling table, so
that any attempt to change it will raise an error, and the code can be
fixed at that time, if the need ever does arise.
charclass_invlists.h
lib/unicore/mktables
regcharclass.h