This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge branch 'const_posix_invlists' into blead
authorKarl Williamson <public@khwilliamson.com>
Thu, 4 Jul 2013 01:51:45 +0000 (19:51 -0600)
committerKarl Williamson <public@khwilliamson.com>
Thu, 4 Jul 2013 01:51:45 +0000 (19:51 -0600)
commitdab1d6f279e5792c6a935eeaeeec652a883df979
tree3b83940e35f28b4e594bf89d4c66038363d5d742
parentccbd2626ed2f48a52d8b29a6c007fb3736570c9e
parente0ce103ae532f9576f54a5938a24d1ee98dfb928
Merge branch 'const_posix_invlists' into blead

What characters certain POSIX classes match, like [[:xdigit:]] are
compiled into a C header file, thus avoiding the necessity of reading
them in from disk at run-time.  This merge makes those fully const, so
that they can get loaded as part of a read-only text segment.  The sv's
that contain these are set so that SvLEN is 0; this means (from my
looking at the code without any experience in this area) that copies are
not made when they are dup'd, such as when threads are created.

A new svtype is created for inversion lists, using the single
available slot, renumbering them.

The first few commits instead use an existing svtype, repurposing
some of its fields for use by inversion lists.  This was done so that
this could be done in a maintenance release, if necessary.  (Their not
being fully const can interfere with -DPERL_GLOBAL_STRUCT_PRIVATE.)
And also, should it become necessary to create an svtype for some other
purpose, we can revert to that point in the branch.