This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
IDStart and IDCont no longer go out to disk
authorKarl Williamson <public@khwilliamson.com>
Mon, 6 Jan 2014 20:41:46 +0000 (13:41 -0700)
committerKarl Williamson <public@khwilliamson.com>
Thu, 9 Jan 2014 21:05:45 +0000 (14:05 -0700)
These are the base names for various macros used in parsing identifiers.
Prior to this patch, parsing a code point above Latin1 caused loading
disk files.  This patch causes all the information to be compiled into
the Perl binary.

charclass_invlists.h
embed.fnc
embed.h
proto.h
regen/mk_invlists.pl
utf8.c

index 3ab935b..9f40681 100644 (file)
@@ -9253,4 +9253,2164 @@ static const UV UpperLatin1_invlist[] = {
 
 #endif
 
+#ifndef PERL_IN_XSUB_RE
+
+static const UV _Perl_IDStart_invlist[] = {
+       995,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       65,
+       91,
+       95,
+       96,
+       97,
+       123,
+       170,
+       171,
+       181,
+       182,
+       186,
+       187,
+       192,
+       215,
+       216,
+       247,
+       248,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       880,
+       885,
+       886,
+       888,
+       891,
+       894,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1320,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1488,
+       1515,
+       1520,
+       1523,
+       1568,
+       1611,
+       1646,
+       1648,
+       1649,
+       1748,
+       1749,
+       1750,
+       1765,
+       1767,
+       1774,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1809,
+       1810,
+       1840,
+       1869,
+       1958,
+       1969,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2070,
+       2074,
+       2075,
+       2084,
+       2085,
+       2088,
+       2089,
+       2112,
+       2137,
+       2208,
+       2209,
+       2210,
+       2221,
+       2308,
+       2362,
+       2365,
+       2366,
+       2384,
+       2385,
+       2392,
+       2402,
+       2417,
+       2424,
+       2425,
+       2432,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2494,
+       2510,
+       2511,
+       2524,
+       2526,
+       2527,
+       2530,
+       2544,
+       2546,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2649,
+       2653,
+       2654,
+       2655,
+       2674,
+       2677,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2750,
+       2768,
+       2769,
+       2784,
+       2786,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2878,
+       2908,
+       2910,
+       2911,
+       2914,
+       2929,
+       2930,
+       2947,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3024,
+       3025,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3124,
+       3125,
+       3130,
+       3133,
+       3134,
+       3160,
+       3162,
+       3168,
+       3170,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3262,
+       3294,
+       3295,
+       3296,
+       3298,
+       3313,
+       3315,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3390,
+       3406,
+       3407,
+       3424,
+       3426,
+       3450,
+       3456,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3585,
+       3633,
+       3634,
+       3635,
+       3648,
+       3655,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3761,
+       3762,
+       3763,
+       3773,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3976,
+       3981,
+       4096,
+       4139,
+       4159,
+       4160,
+       4176,
+       4182,
+       4186,
+       4190,
+       4193,
+       4194,
+       4197,
+       4199,
+       4206,
+       4209,
+       4213,
+       4226,
+       4238,
+       4239,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5873,
+       5888,
+       5901,
+       5902,
+       5906,
+       5920,
+       5938,
+       5952,
+       5970,
+       5984,
+       5997,
+       5998,
+       6001,
+       6016,
+       6068,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6313,
+       6314,
+       6315,
+       6320,
+       6390,
+       6400,
+       6429,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6593,
+       6600,
+       6656,
+       6679,
+       6688,
+       6741,
+       6823,
+       6824,
+       6917,
+       6964,
+       6981,
+       6988,
+       7043,
+       7073,
+       7086,
+       7088,
+       7098,
+       7142,
+       7168,
+       7204,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7410,
+       7413,
+       7415,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42623,
+       42648,
+       42656,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42900,
+       42912,
+       42923,
+       43000,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43043,
+       43072,
+       43124,
+       43138,
+       43188,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43302,
+       43312,
+       43335,
+       43360,
+       43389,
+       43396,
+       43443,
+       43471,
+       43472,
+       43520,
+       43561,
+       43584,
+       43587,
+       43588,
+       43596,
+       43616,
+       43639,
+       43642,
+       43643,
+       43648,
+       43696,
+       43697,
+       43698,
+       43701,
+       43703,
+       43705,
+       43710,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43755,
+       43762,
+       43765,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43968,
+       44003,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64286,
+       64287,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65438,
+       65440,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66335,
+       66352,
+       66379,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68097,
+       68112,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68608,
+       68681,
+       69635,
+       69688,
+       69763,
+       69808,
+       69840,
+       69865,
+       69891,
+       69927,
+       70019,
+       70067,
+       70081,
+       70085,
+       71296,
+       71339,
+       73728,
+       74607,
+       74752,
+       74851,
+       77824,
+       78895,
+       92160,
+       92729,
+       93952,
+       94021,
+       94032,
+       94033,
+       94099,
+       94112,
+       110592,
+       110594,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+#endif
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV _Perl_IDCont_invlist[] = {
+       1143,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       48,
+       58,
+       65,
+       91,
+       95,
+       96,
+       97,
+       123,
+       170,
+       171,
+       181,
+       182,
+       186,
+       187,
+       192,
+       215,
+       216,
+       247,
+       248,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       891,
+       894,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1160,
+       1162,
+       1320,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2209,
+       2210,
+       2221,
+       2276,
+       2303,
+       2304,
+       2404,
+       2406,
+       2416,
+       2417,
+       2424,
+       2425,
+       2432,
+       2433,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3073,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3124,
+       3125,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3202,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3330,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5873,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6429,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7424,
+       7655,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8413,
+       8417,
+       8418,
+       8421,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42608,
+       42612,
+       42622,
+       42623,
+       42648,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42900,
+       42912,
+       42923,
+       43000,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43644,
+       43648,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65024,
+       65040,
+       65056,
+       65063,
+       65075,
+       65077,
+       65101,
+       65104,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66335,
+       66352,
+       66379,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69760,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       70016,
+       70085,
+       70096,
+       70106,
+       71296,
+       71352,
+       71360,
+       71370,
+       73728,
+       74607,
+       74752,
+       74851,
+       77824,
+       78895,
+       92160,
+       92729,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+#endif
+
 /* ex: set ro: */
index 6acb8b6..dc6beb7 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1098,7 +1098,7 @@ Ap        |void   |regdump        |NN const regexp* r
 Ap     |SV*    |regclass_swash |NULLOK const regexp *prog \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp|NULLOK SV **altsvp
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
 AMpR   |SV*    |_new_invlist_C_array|NN const UV* const list
 : Not used currently: EXMs     |bool   |_invlistEQ     |NN SV* const a|NN SV* const b|const bool complement_b
 #endif
diff --git a/embed.h b/embed.h
index e48b241..baf1030 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define warn_nocontext         Perl_warn_nocontext
 #define warner_nocontext       Perl_warner_nocontext
 #endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
 #define _new_invlist_C_array(a)        Perl__new_invlist_C_array(aTHX_ a)
 #endif
 #if defined(PERL_MAD)
diff --git a/proto.h b/proto.h
index 19f58a5..2007ef7 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -6950,7 +6950,7 @@ PERL_CALLCONV void        Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char*
        assert(file); assert(indent); assert(invlist)
 
 #endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
 PERL_CALLCONV SV*      Perl__new_invlist_C_array(pTHX_ const UV* const list)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
index 461b229..d112b30 100644 (file)
@@ -177,6 +177,8 @@ for my $prop (qw(
                 &NonL1_Perl_Non_Final_Folds
                 &_Perl_Multi_Char_Folds
                 &UpperLatin1
+                _Perl_IDStart
+                _Perl_IDCont
     )
 ) {
 
diff --git a/utf8.c b/utf8.c
index fa34f34..f4b9dc6 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -32,6 +32,7 @@
 #define PERL_IN_UTF8_C
 #include "perl.h"
 #include "inline_invlist.c"
+#include "charclass_invlists.h"
 
 static const char unees[] =
     "Malformed UTF-8 character (unexpected end of string)";
@@ -1901,20 +1902,28 @@ bool
 Perl__is_utf8_perl_idstart(pTHX_ const U8 *p)
 {
     dVAR;
+    SV* invlist = NULL;
 
     PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART;
 
-    return is_utf8_common(p, &PL_utf8_perl_idstart, "_Perl_IDStart", NULL);
+    if (! PL_utf8_perl_idstart) {
+        invlist = _new_invlist_C_array(_Perl_IDStart_invlist);
+    }
+    return is_utf8_common(p, &PL_utf8_perl_idstart, "", invlist);
 }
 
 bool
 Perl__is_utf8_perl_idcont(pTHX_ const U8 *p)
 {
     dVAR;
+    SV* invlist = NULL;
 
     PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT;
 
-    return is_utf8_common(p, &PL_utf8_perl_idcont, "_Perl_IDCont", NULL);
+    if (! PL_utf8_perl_idcont) {
+        invlist = _new_invlist_C_array(_Perl_IDCont_invlist);
+    }
+    return is_utf8_common(p, &PL_utf8_perl_idcont, "", invlist);
 }