summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-09-24 17:07:44 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-10-03 23:24:37 -0400
commited0e29f1f51664dd7591935967838ff25de6a8bd (patch)
treec794123893244ff29e3a22b314581f19b19729f1
parent91cd124843d3c03639ec12a62b2b43d9b45a8d52 (diff)
downloadhaskell-ed0e29f1f51664dd7591935967838ff25de6a8bd.tar.gz
base: Update Unicode database to 14.0
Closes #20404.
-rw-r--r--libraries/base/cbits/README.Unicode5
-rw-r--r--libraries/base/cbits/WCsubst.c183
-rwxr-xr-xlibraries/base/cbits/update-unicode.sh10
-rw-r--r--libraries/base/include/UnicodeVersion.h4
-rw-r--r--libraries/base/tests/unicode002.stdout118
5 files changed, 208 insertions, 112 deletions
diff --git a/libraries/base/cbits/README.Unicode b/libraries/base/cbits/README.Unicode
index 70e4e2ead9..6d7590a7f6 100644
--- a/libraries/base/cbits/README.Unicode
+++ b/libraries/base/cbits/README.Unicode
@@ -3,9 +3,6 @@ Generating GHC's Unicode table
WCsubst.c is generated with:
- version=13.0.0
- url=https://www.unicode.org/Public/$version/ucd/UnicodeData.txt
- curl -L $url > UnicodeData.txt
- sh ubconfc 12.0.0 < UnicodeData.txt > WCsubst.c
+ bash update-unicode.sh 14.0.0
Don't forget to mention the update in the User's Guide.
diff --git a/libraries/base/cbits/WCsubst.c b/libraries/base/cbits/WCsubst.c
index 3e9512b15c..8e91a5c49a 100644
--- a/libraries/base/cbits/WCsubst.c
+++ b/libraries/base/cbits/WCsubst.c
@@ -1,6 +1,6 @@
/*-------------------------------------------------------------------------
This is an automatically generated file: do not edit
-Generated by ubconfc at Tue 23 Mar 2021 08:47:53 PM EDT
+Generated by ubconfc at Fri Sep 24 05:07:27 PM EDT 2021
@generated
-------------------------------------------------------------------------*/
@@ -90,11 +90,11 @@ struct _charblock_
#define GENCAT_MN 2097152
#define GENCAT_LO 16384
#define MAX_UNI_CHAR 1114109
-#define NUM_BLOCKS 3396
-#define NUM_CONVBLOCKS 1332
+#define NUM_BLOCKS 3467
+#define NUM_CONVBLOCKS 1348
#define NUM_SPACEBLOCKS 7
#define NUM_LAT1BLOCKS 63
-#define NUM_RULES 205
+#define NUM_RULES 207
static const struct _convrule_ rule183={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
static const struct _convrule_ rule171={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
static const struct _convrule_ rule182={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
@@ -115,6 +115,7 @@ static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
static const struct _convrule_ rule149={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
static const struct _convrule_ rule125={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
+static const struct _convrule_ rule204={GENCAT_LL, NUMCAT_LL, 1, -39, 0, -39};
static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
static const struct _convrule_ rule45={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
@@ -123,6 +124,7 @@ static const struct _convrule_ rule202={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
static const struct _convrule_ rule97={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
+static const struct _convrule_ rule203={GENCAT_LU, NUMCAT_LU, 1, 0, 39, 0};
static const struct _convrule_ rule89={GENCAT_LL, NUMCAT_LL, 1, 42261, 0, 42261};
static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
static const struct _convrule_ rule35={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
@@ -145,7 +147,7 @@ static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
static const struct _convrule_ rule140={GENCAT_LL, NUMCAT_LL, 1, 35384, 0, 35384};
static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
-static const struct _convrule_ rule204={GENCAT_LL, NUMCAT_LL, 1, -34, 0, -34};
+static const struct _convrule_ rule206={GENCAT_LL, NUMCAT_LL, 1, -34, 0, -34};
static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
static const struct _convrule_ rule192={GENCAT_LU, NUMCAT_LU, 1, 0, -42261, 0};
@@ -255,7 +257,7 @@ static const struct _convrule_ rule148={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
static const struct _convrule_ rule41={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
-static const struct _convrule_ rule203={GENCAT_LU, NUMCAT_LU, 1, 0, 34, 0};
+static const struct _convrule_ rule205={GENCAT_LU, NUMCAT_LU, 1, 0, 34, 0};
static const struct _convrule_ rule134={GENCAT_LL, NUMCAT_LL, 1, -6236, 0, -6236};
static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
@@ -1066,7 +1068,7 @@ static const struct _charblock_ allchars[]={
{1552, 11, &rule92},
{1563, 1, &rule2},
{1564, 1, &rule16},
- {1566, 2, &rule2},
+ {1565, 3, &rule2},
{1568, 32, &rule14},
{1600, 1, &rule91},
{1601, 10, &rule14},
@@ -1122,9 +1124,14 @@ static const struct _charblock_ allchars[]={
{2137, 3, &rule92},
{2142, 1, &rule2},
{2144, 11, &rule14},
- {2208, 21, &rule14},
- {2230, 18, &rule14},
- {2259, 15, &rule92},
+ {2160, 24, &rule14},
+ {2184, 1, &rule10},
+ {2185, 6, &rule14},
+ {2192, 2, &rule16},
+ {2200, 8, &rule92},
+ {2208, 41, &rule14},
+ {2249, 1, &rule91},
+ {2250, 24, &rule92},
{2274, 1, &rule16},
{2275, 32, &rule92},
{2307, 1, &rule124},
@@ -1279,6 +1286,7 @@ static const struct _charblock_ allchars[]={
{3086, 3, &rule14},
{3090, 23, &rule14},
{3114, 16, &rule14},
+ {3132, 1, &rule92},
{3133, 1, &rule14},
{3134, 3, &rule92},
{3137, 4, &rule124},
@@ -1286,6 +1294,7 @@ static const struct _charblock_ allchars[]={
{3146, 4, &rule92},
{3157, 2, &rule92},
{3160, 3, &rule14},
+ {3165, 1, &rule14},
{3168, 2, &rule14},
{3170, 2, &rule92},
{3174, 10, &rule8},
@@ -1311,7 +1320,7 @@ static const struct _charblock_ allchars[]={
{3274, 2, &rule124},
{3276, 2, &rule92},
{3285, 2, &rule124},
- {3294, 1, &rule14},
+ {3293, 2, &rule14},
{3296, 2, &rule14},
{3298, 2, &rule92},
{3302, 10, &rule8},
@@ -1497,11 +1506,12 @@ static const struct _charblock_ allchars[]={
{5867, 3, &rule2},
{5870, 3, &rule128},
{5873, 8, &rule14},
- {5888, 13, &rule14},
- {5902, 4, &rule14},
+ {5888, 18, &rule14},
{5906, 3, &rule92},
- {5920, 18, &rule14},
- {5938, 3, &rule92},
+ {5909, 1, &rule124},
+ {5919, 19, &rule14},
+ {5938, 2, &rule92},
+ {5940, 1, &rule124},
{5941, 2, &rule2},
{5952, 18, &rule14},
{5970, 2, &rule92},
@@ -1529,6 +1539,7 @@ static const struct _charblock_ allchars[]={
{6151, 4, &rule2},
{6155, 3, &rule92},
{6158, 1, &rule16},
+ {6159, 1, &rule92},
{6160, 10, &rule8},
{6176, 35, &rule14},
{6211, 1, &rule91},
@@ -1583,7 +1594,7 @@ static const struct _charblock_ allchars[]={
{6824, 6, &rule2},
{6832, 14, &rule92},
{6846, 1, &rule119},
- {6847, 2, &rule92},
+ {6847, 16, &rule92},
{6912, 4, &rule92},
{6916, 1, &rule124},
{6917, 47, &rule14},
@@ -1595,12 +1606,13 @@ static const struct _charblock_ allchars[]={
{6973, 5, &rule124},
{6978, 1, &rule92},
{6979, 2, &rule124},
- {6981, 7, &rule14},
+ {6981, 8, &rule14},
{6992, 10, &rule8},
{7002, 7, &rule2},
{7009, 10, &rule13},
{7019, 9, &rule92},
{7028, 9, &rule13},
+ {7037, 2, &rule2},
{7040, 2, &rule92},
{7042, 1, &rule124},
{7043, 30, &rule14},
@@ -1669,8 +1681,7 @@ static const struct _charblock_ allchars[]={
{7566, 1, &rule140},
{7567, 12, &rule20},
{7579, 37, &rule91},
- {7616, 58, &rule92},
- {7675, 5, &rule92},
+ {7616, 64, &rule92},
{7680, 1, &rule22},
{7681, 1, &rule23},
{7682, 1, &rule22},
@@ -2043,7 +2054,7 @@ static const struct _charblock_ allchars[]={
{8333, 1, &rule4},
{8334, 1, &rule5},
{8336, 13, &rule91},
- {8352, 32, &rule3},
+ {8352, 33, &rule3},
{8400, 13, &rule92},
{8413, 4, &rule119},
{8417, 1, &rule92},
@@ -2224,8 +2235,8 @@ static const struct _charblock_ allchars[]={
{11085, 39, &rule13},
{11126, 32, &rule13},
{11159, 105, &rule13},
- {11264, 47, &rule122},
- {11312, 47, &rule123},
+ {11264, 48, &rule122},
+ {11312, 48, &rule123},
{11360, 1, &rule22},
{11361, 1, &rule23},
{11362, 1, &rule172},
@@ -2420,7 +2431,16 @@ static const struct _charblock_ allchars[]={
{11842, 1, &rule4},
{11843, 13, &rule2},
{11856, 2, &rule13},
- {11858, 1, &rule2},
+ {11858, 3, &rule2},
+ {11861, 1, &rule4},
+ {11862, 1, &rule5},
+ {11863, 1, &rule4},
+ {11864, 1, &rule5},
+ {11865, 1, &rule4},
+ {11866, 1, &rule5},
+ {11867, 1, &rule4},
+ {11868, 1, &rule5},
+ {11869, 1, &rule7},
{11904, 26, &rule13},
{11931, 89, &rule13},
{12032, 214, &rule13},
@@ -2496,8 +2516,7 @@ static const struct _charblock_ allchars[]={
{12992, 320, &rule13},
{13312, 6592, &rule14},
{19904, 64, &rule13},
- {19968, 20989, &rule14},
- {40960, 21, &rule14},
+ {19968, 21013, &rule14},
{40981, 1, &rule91},
{40982, 1143, &rule14},
{42128, 55, &rule13},
@@ -2749,6 +2768,8 @@ static const struct _charblock_ allchars[]={
{42941, 1, &rule23},
{42942, 1, &rule22},
{42943, 1, &rule23},
+ {42944, 1, &rule22},
+ {42945, 1, &rule23},
{42946, 1, &rule22},
{42947, 1, &rule23},
{42948, 1, &rule194},
@@ -2758,6 +2779,15 @@ static const struct _charblock_ allchars[]={
{42952, 1, &rule23},
{42953, 1, &rule22},
{42954, 1, &rule23},
+ {42960, 1, &rule22},
+ {42961, 1, &rule23},
+ {42963, 1, &rule20},
+ {42965, 1, &rule20},
+ {42966, 1, &rule22},
+ {42967, 1, &rule23},
+ {42968, 1, &rule22},
+ {42969, 1, &rule23},
+ {42994, 3, &rule91},
{42997, 1, &rule22},
{42998, 1, &rule23},
{42999, 1, &rule14},
@@ -2911,15 +2941,17 @@ static const struct _charblock_ allchars[]={
{64320, 2, &rule14},
{64323, 2, &rule14},
{64326, 108, &rule14},
- {64434, 16, &rule10},
+ {64434, 17, &rule10},
{64467, 363, &rule14},
{64830, 1, &rule5},
{64831, 1, &rule4},
+ {64832, 16, &rule13},
{64848, 64, &rule14},
{64914, 54, &rule14},
+ {64975, 1, &rule13},
{65008, 12, &rule14},
{65020, 1, &rule3},
- {65021, 1, &rule13},
+ {65021, 3, &rule13},
{65024, 16, &rule92},
{65040, 7, &rule2},
{65047, 1, &rule4},
@@ -3066,9 +3098,20 @@ static const struct _charblock_ allchars[]={
{66816, 40, &rule14},
{66864, 52, &rule14},
{66927, 1, &rule2},
+ {66928, 11, &rule203},
+ {66940, 15, &rule203},
+ {66956, 7, &rule203},
+ {66964, 2, &rule203},
+ {66967, 11, &rule204},
+ {66979, 15, &rule204},
+ {66995, 7, &rule204},
+ {67003, 2, &rule204},
{67072, 311, &rule14},
{67392, 22, &rule14},
{67424, 8, &rule14},
+ {67456, 6, &rule91},
+ {67463, 42, &rule91},
+ {67506, 9, &rule91},
{67584, 6, &rule14},
{67592, 1, &rule14},
{67594, 44, &rule14},
@@ -3145,6 +3188,9 @@ static const struct _charblock_ allchars[]={
{69446, 11, &rule92},
{69457, 4, &rule17},
{69461, 5, &rule2},
+ {69488, 18, &rule14},
+ {69506, 4, &rule92},
+ {69510, 4, &rule2},
{69552, 21, &rule14},
{69573, 7, &rule17},
{69600, 23, &rule14},
@@ -3156,6 +3202,10 @@ static const struct _charblock_ allchars[]={
{69703, 7, &rule2},
{69714, 20, &rule17},
{69734, 10, &rule8},
+ {69744, 1, &rule92},
+ {69745, 2, &rule14},
+ {69747, 2, &rule92},
+ {69749, 1, &rule14},
{69759, 3, &rule92},
{69762, 1, &rule124},
{69763, 45, &rule14},
@@ -3166,6 +3216,7 @@ static const struct _charblock_ allchars[]={
{69819, 2, &rule2},
{69821, 1, &rule16},
{69822, 4, &rule2},
+ {69826, 1, &rule92},
{69837, 1, &rule16},
{69840, 25, &rule14},
{69872, 10, &rule8},
@@ -3300,6 +3351,7 @@ static const struct _charblock_ allchars[]={
{71350, 1, &rule124},
{71351, 1, &rule92},
{71352, 1, &rule14},
+ {71353, 1, &rule2},
{71360, 10, &rule8},
{71424, 27, &rule14},
{71453, 3, &rule92},
@@ -3311,6 +3363,7 @@ static const struct _charblock_ allchars[]={
{71482, 2, &rule17},
{71484, 3, &rule2},
{71487, 1, &rule13},
+ {71488, 7, &rule14},
{71680, 44, &rule14},
{71724, 3, &rule124},
{71727, 9, &rule92},
@@ -3369,7 +3422,7 @@ static const struct _charblock_ allchars[]={
{72346, 3, &rule2},
{72349, 1, &rule14},
{72350, 5, &rule2},
- {72384, 57, &rule14},
+ {72368, 73, &rule14},
{72704, 9, &rule14},
{72714, 37, &rule14},
{72751, 1, &rule124},
@@ -3425,6 +3478,8 @@ static const struct _charblock_ allchars[]={
{74752, 111, &rule128},
{74864, 5, &rule2},
{74880, 196, &rule14},
+ {77712, 97, &rule14},
+ {77809, 2, &rule2},
{77824, 1071, &rule14},
{78896, 9, &rule16},
{82944, 583, &rule14},
@@ -3432,6 +3487,8 @@ static const struct _charblock_ allchars[]={
{92736, 31, &rule14},
{92768, 10, &rule8},
{92782, 2, &rule2},
+ {92784, 79, &rule14},
+ {92864, 10, &rule8},
{92880, 30, &rule14},
{92912, 5, &rule92},
{92917, 1, &rule2},
@@ -3464,7 +3521,10 @@ static const struct _charblock_ allchars[]={
{94208, 6136, &rule14},
{100352, 1238, &rule14},
{101632, 9, &rule14},
- {110592, 287, &rule14},
+ {110576, 4, &rule91},
+ {110581, 7, &rule91},
+ {110589, 2, &rule91},
+ {110592, 291, &rule14},
{110928, 3, &rule14},
{110948, 4, &rule14},
{110960, 396, &rule14},
@@ -3476,6 +3536,9 @@ static const struct _charblock_ allchars[]={
{113821, 2, &rule92},
{113823, 1, &rule2},
{113824, 4, &rule16},
+ {118528, 46, &rule92},
+ {118576, 23, &rule92},
+ {118608, 116, &rule13},
{118784, 246, &rule13},
{119040, 39, &rule13},
{119081, 60, &rule13},
@@ -3489,7 +3552,7 @@ static const struct _charblock_ allchars[]={
{119173, 7, &rule92},
{119180, 30, &rule13},
{119210, 4, &rule92},
- {119214, 59, &rule13},
+ {119214, 61, &rule13},
{119296, 66, &rule13},
{119362, 3, &rule92},
{119365, 1, &rule13},
@@ -3578,6 +3641,9 @@ static const struct _charblock_ allchars[]={
{121479, 5, &rule2},
{121499, 5, &rule92},
{121505, 15, &rule92},
+ {122624, 10, &rule20},
+ {122634, 1, &rule14},
+ {122635, 20, &rule20},
{122880, 7, &rule92},
{122888, 17, &rule92},
{122907, 7, &rule92},
@@ -3589,15 +3655,21 @@ static const struct _charblock_ allchars[]={
{123200, 10, &rule8},
{123214, 1, &rule14},
{123215, 1, &rule13},
+ {123536, 30, &rule14},
+ {123566, 1, &rule92},
{123584, 44, &rule14},
{123628, 4, &rule92},
{123632, 10, &rule8},
{123647, 1, &rule3},
+ {124896, 7, &rule14},
+ {124904, 4, &rule14},
+ {124909, 2, &rule14},
+ {124912, 15, &rule14},
{124928, 197, &rule14},
{125127, 9, &rule17},
{125136, 7, &rule92},
- {125184, 34, &rule203},
- {125218, 34, &rule204},
+ {125184, 34, &rule205},
+ {125218, 34, &rule206},
{125252, 7, &rule92},
{125259, 1, &rule91},
{125264, 10, &rule8},
@@ -3660,33 +3732,34 @@ static const struct _charblock_ allchars[]={
{127744, 251, &rule13},
{127995, 5, &rule10},
{128000, 728, &rule13},
- {128736, 13, &rule13},
+ {128733, 16, &rule13},
{128752, 13, &rule13},
{128768, 116, &rule13},
{128896, 89, &rule13},
{128992, 12, &rule13},
+ {129008, 1, &rule13},
{129024, 12, &rule13},
{129040, 56, &rule13},
{129104, 10, &rule13},
{129120, 40, &rule13},
{129168, 30, &rule13},
{129200, 2, &rule13},
- {129280, 121, &rule13},
- {129402, 82, &rule13},
- {129485, 135, &rule13},
+ {129280, 340, &rule13},
{129632, 14, &rule13},
{129648, 5, &rule13},
- {129656, 3, &rule13},
+ {129656, 5, &rule13},
{129664, 7, &rule13},
- {129680, 25, &rule13},
- {129712, 7, &rule13},
- {129728, 3, &rule13},
- {129744, 7, &rule13},
+ {129680, 29, &rule13},
+ {129712, 11, &rule13},
+ {129728, 6, &rule13},
+ {129744, 10, &rule13},
+ {129760, 8, &rule13},
+ {129776, 7, &rule13},
{129792, 147, &rule13},
{129940, 55, &rule13},
{130032, 10, &rule8},
- {131072, 42718, &rule14},
- {173824, 4149, &rule14},
+ {131072, 42720, &rule14},
+ {173824, 4153, &rule14},
{177984, 222, &rule14},
{178208, 5762, &rule14},
{183984, 7473, &rule14},
@@ -4657,8 +4730,8 @@ static const struct _charblock_ convchars[]={
{8580, 1, &rule23},
{9398, 26, &rule170},
{9424, 26, &rule171},
- {11264, 47, &rule122},
- {11312, 47, &rule123},
+ {11264, 48, &rule122},
+ {11312, 48, &rule123},
{11360, 1, &rule22},
{11361, 1, &rule23},
{11362, 1, &rule172},
@@ -5004,6 +5077,8 @@ static const struct _charblock_ convchars[]={
{42941, 1, &rule23},
{42942, 1, &rule22},
{42943, 1, &rule23},
+ {42944, 1, &rule22},
+ {42945, 1, &rule23},
{42946, 1, &rule22},
{42947, 1, &rule23},
{42948, 1, &rule194},
@@ -5013,6 +5088,12 @@ static const struct _charblock_ convchars[]={
{42952, 1, &rule23},
{42953, 1, &rule22},
{42954, 1, &rule23},
+ {42960, 1, &rule22},
+ {42961, 1, &rule23},
+ {42966, 1, &rule22},
+ {42967, 1, &rule23},
+ {42968, 1, &rule22},
+ {42969, 1, &rule23},
{42997, 1, &rule22},
{42998, 1, &rule23},
{43859, 1, &rule197},
@@ -5023,14 +5104,22 @@ static const struct _charblock_ convchars[]={
{66600, 40, &rule202},
{66736, 36, &rule201},
{66776, 36, &rule202},
+ {66928, 11, &rule203},
+ {66940, 15, &rule203},
+ {66956, 7, &rule203},
+ {66964, 2, &rule203},
+ {66967, 11, &rule204},
+ {66979, 15, &rule204},
+ {66995, 7, &rule204},
+ {67003, 2, &rule204},
{68736, 51, &rule97},
{68800, 51, &rule102},
{71840, 32, &rule9},
{71872, 32, &rule12},
{93760, 32, &rule9},
{93792, 32, &rule12},
- {125184, 34, &rule203},
- {125218, 34, &rule204}
+ {125184, 34, &rule205},
+ {125218, 34, &rule206}
};
static const struct _charblock_ spacechars[]={
{32, 1, &rule1},
diff --git a/libraries/base/cbits/update-unicode.sh b/libraries/base/cbits/update-unicode.sh
new file mode 100755
index 0000000000..1f7623f57e
--- /dev/null
+++ b/libraries/base/cbits/update-unicode.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+version="$1"
+if [ -z "$version" ]; then
+ echo "usage: $0 [unicode version]"
+ exit 1
+fi
+url=https://www.unicode.org/Public/$version/ucd/UnicodeData.txt
+curl -L $url > UnicodeData.txt
+sh ubconfc $1 < UnicodeData.txt > WCsubst.c
+
diff --git a/libraries/base/include/UnicodeVersion.h b/libraries/base/include/UnicodeVersion.h
index 5d1042aa8b..6b7446ccf0 100644
--- a/libraries/base/include/UnicodeVersion.h
+++ b/libraries/base/include/UnicodeVersion.h
@@ -1,7 +1,7 @@
#if 0
This is an automatically generated file: do not edit
-Generated by ubconfc at Tue 23 Mar 2021 08:47:53 PM EDT
+Generated by ubconfc at Fri Sep 24 05:07:27 PM EDT 2021
@generated
#endif
-#define UNICODE_VERSION_NUMS [12,0,0]
+#define UNICODE_VERSION_NUMS [14,0,0]
diff --git a/libraries/base/tests/unicode002.stdout b/libraries/base/tests/unicode002.stdout
index aa8dabe205..478c75ba73 100644
--- a/libraries/base/tests/unicode002.stdout
+++ b/libraries/base/tests/unicode002.stdout
@@ -1564,7 +1564,7 @@ Code C P S U L A D
1562 F T F F F F F
1563 F T F F F F F
1564 F F F F F F F
-1565 F F F F F F F
+1565 F T F F F F F
1566 F T F F F F F
1567 F T F F F F F
1568 F T F F F T F
@@ -2159,37 +2159,37 @@ Code C P S U L A D
2157 F F F F F F F
2158 F F F F F F F
2159 F F F F F F F
-2160 F F F F F F F
-2161 F F F F F F F
-2162 F F F F F F F
-2163 F F F F F F F
-2164 F F F F F F F
-2165 F F F F F F F
-2166 F F F F F F F
-2167 F F F F F F F
-2168 F F F F F F F
-2169 F F F F F F F
-2170 F F F F F F F
-2171 F F F F F F F
-2172 F F F F F F F
-2173 F F F F F F F
-2174 F F F F F F F
-2175 F F F F F F F
-2176 F F F F F F F
-2177 F F F F F F F
-2178 F F F F F F F
-2179 F F F F F F F
-2180 F F F F F F F
-2181 F F F F F F F
-2182 F F F F F F F
-2183 F F F F F F F
-2184 F F F F F F F
-2185 F F F F F F F
-2186 F F F F F F F
-2187 F F F F F F F
-2188 F F F F F F F
-2189 F F F F F F F
-2190 F F F F F F F
+2160 F T F F F T F
+2161 F T F F F T F
+2162 F T F F F T F
+2163 F T F F F T F
+2164 F T F F F T F
+2165 F T F F F T F
+2166 F T F F F T F
+2167 F T F F F T F
+2168 F T F F F T F
+2169 F T F F F T F
+2170 F T F F F T F
+2171 F T F F F T F
+2172 F T F F F T F
+2173 F T F F F T F
+2174 F T F F F T F
+2175 F T F F F T F
+2176 F T F F F T F
+2177 F T F F F T F
+2178 F T F F F T F
+2179 F T F F F T F
+2180 F T F F F T F
+2181 F T F F F T F
+2182 F T F F F T F
+2183 F T F F F T F
+2184 F T F F F F F
+2185 F T F F F T F
+2186 F T F F F T F
+2187 F T F F F T F
+2188 F T F F F T F
+2189 F T F F F T F
+2190 F T F F F T F
2191 F F F F F F F
2192 F F F F F F F
2193 F F F F F F F
@@ -2199,14 +2199,14 @@ Code C P S U L A D
2197 F F F F F F F
2198 F F F F F F F
2199 F F F F F F F
-2200 F F F F F F F
-2201 F F F F F F F
-2202 F F F F F F F
-2203 F F F F F F F
-2204 F F F F F F F
-2205 F F F F F F F
-2206 F F F F F F F
-2207 F F F F F F F
+2200 F T F F F F F
+2201 F T F F F F F
+2202 F T F F F F F
+2203 F T F F F F F
+2204 F T F F F F F
+2205 F T F F F F F
+2206 F T F F F F F
+2207 F T F F F F F
2208 F T F F F T F
2209 F T F F F T F
2210 F T F F F T F
@@ -2228,7 +2228,7 @@ Code C P S U L A D
2226 F T F F F T F
2227 F T F F F T F
2228 F T F F F T F
-2229 F F F F F F F
+2229 F T F F F T F
2230 F T F F F T F
2231 F T F F F T F
2232 F T F F F T F
@@ -2247,17 +2247,17 @@ Code C P S U L A D
2245 F T F F F T F
2246 F T F F F T F
2247 F T F F F T F
-2248 F F F F F F F
-2249 F F F F F F F
-2250 F F F F F F F
-2251 F F F F F F F
-2252 F F F F F F F
-2253 F F F F F F F
-2254 F F F F F F F
-2255 F F F F F F F
-2256 F F F F F F F
-2257 F F F F F F F
-2258 F F F F F F F
+2248 F T F F F T F
+2249 F T F F F T F
+2250 F T F F F F F
+2251 F T F F F F F
+2252 F T F F F F F
+2253 F T F F F F F
+2254 F T F F F F F
+2255 F T F F F F F
+2256 F T F F F F F
+2257 F T F F F F F
+2258 F T F F F F F
2259 F T F F F F F
2260 F T F F F F F
2261 F T F F F F F
@@ -3131,7 +3131,7 @@ Code C P S U L A D
3129 F T F F F T F
3130 F F F F F F F
3131 F F F F F F F
-3132 F F F F F F F
+3132 F T F F F F F
3133 F T F F F T F
3134 F T F F F F F
3135 F T F F F F F
@@ -3164,7 +3164,7 @@ Code C P S U L A D
3162 F T F F F T F
3163 F F F F F F F
3164 F F F F F F F
-3165 F F F F F F F
+3165 F T F F F T F
3166 F F F F F F F
3167 F F F F F F F
3168 F T F F F T F
@@ -3292,7 +3292,7 @@ Code C P S U L A D
3290 F F F F F F F
3291 F F F F F F F
3292 F F F F F F F
-3293 F F F F F F F
+3293 F T F F F T F
3294 F T F F F T F
3295 F F F F F F F
3296 F T F F F T F
@@ -5900,7 +5900,7 @@ Code C P S U L A D
5898 F T F F F T F
5899 F T F F F T F
5900 F T F F F T F
-5901 F F F F F F F
+5901 F T F F F T F
5902 F T F F F T F
5903 F T F F F T F
5904 F T F F F T F
@@ -5908,7 +5908,7 @@ Code C P S U L A D
5906 F T F F F F F
5907 F T F F F F F
5908 F T F F F F F
-5909 F F F F F F F
+5909 F T F F F F F
5910 F F F F F F F
5911 F F F F F F F
5912 F F F F F F F
@@ -5918,7 +5918,7 @@ Code C P S U L A D
5916 F F F F F F F
5917 F F F F F F F
5918 F F F F F F F
-5919 F F F F F F F
+5919 F T F F F T F
5920 F T F F F T F
5921 F T F F F T F
5922 F T F F F T F
@@ -6158,7 +6158,7 @@ Code C P S U L A D
6156 F T F F F F F
6157 F T F F F F F
6158 F F F F F F F
-6159 F F F F F F F
+6159 F T F F F F F
6160 F T F F F F F
6161 F T F F F F F
6162 F T F F F F F