Merge branch 'const_posix_invlists' into blead
authorKarl Williamson <public@khwilliamson.com>
Tue, 16 Jul 2013 19:59:03 +0000 (13:59 -0600)
committerKarl Williamson <public@khwilliamson.com>
Tue, 16 Jul 2013 19:59:03 +0000 (13:59 -0600)
commit49fb45ddc8d9f3f37c5080633e16ae291297ddc2
tree6fe559069a877628fbbab7873bcfd09fa539b6e0
parentd212d2222867b5b63a5f6d8c3243d0d45a26988c
parent4c60406d0e89efe615812945449c96f48bf70433
Merge branch 'const_posix_invlists' into blead

This is the second attempt to put this functionality into blead.  The
first was in commit dab1d6f279e5792c6a935eeaeeec652a883df979.  Its
elements had to be backed out because it turns out there were array
bounds errors.  This new commit should have fixed those.  The revised
commit message is:

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