Have run_code_generation only call vpython when needed

gen_builtin_symbols.py uses a vpython module to generate
a perfect hash function
Also seeded the perfect hash function to make it deterministic

Bug: angleproject:3747
Change-Id: I660fe71bd6b2213be9d4ccc2f68641637a49a047
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738747
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This commit is contained in:
Clemen Deng
2019-08-06 13:31:01 -04:00
committed by Commit Bot
parent 483ee3fa23
commit 44f518b584
4 changed files with 147 additions and 162 deletions

View File

@@ -1,6 +1,6 @@
{
"src/compiler/translator/ImmutableString_autogen.cpp":
"325dc410635436401990388b73531c11",
"e7c9b98db7d7b435f57ff26fc265efb3",
"src/compiler/translator/ParseContext_autogen.h":
"58786d2f352ee1a58d529fb7572c86a4",
"src/compiler/translator/SymbolTable_autogen.cpp":
@@ -12,7 +12,7 @@
"src/compiler/translator/builtin_variables.json":
"04f763459cfbd47831bec22299287e82",
"src/compiler/translator/gen_builtin_symbols.py":
"5fca8cb433dcbbd956ec27dc583ccee8",
"466747c0158bab9d4792f066b70bf5ed",
"src/compiler/translator/tree_util/BuiltIn_autogen.h":
"69268b2f3bda048ba8aaabe60c9b9912",
"src/tests/compiler_tests/ImmutableString_test_autogen.cpp":

View File

@@ -38,12 +38,18 @@ def rebase_script_path(script_path, relative_path):
return os.path.relpath(os.path.join(os.path.dirname(script_path), relative_path), root_dir)
def get_executable_name():
return 'vpython.bat' if platform.system() == 'Windows' else 'vpython'
# Check if we need a module from vpython
def get_executable_name(first_line):
if 'vpython' in first_line:
return 'vpython.bat' if platform.system() == 'Windows' else 'vpython'
return 'python'
def grab_from_script(script, param):
res = subprocess.check_output([get_executable_name(), script, param]).strip()
res = ''
f = open(os.path.basename(script), "r")
res = subprocess.check_output([get_executable_name(f.readline()), script, param]).strip()
f.close()
if res == '':
return []
return [clean_path_slashes(rebase_script_path(script, name)) for name in res.split(',')]
@@ -190,8 +196,12 @@ def main():
os.chdir(get_child_script_dirname(script))
print('Running ' + name + ' code generator')
if subprocess.call([get_executable_name(), os.path.basename(script)]) != 0:
f = open(os.path.basename(script), "r")
if subprocess.call([get_executable_name(f.readline()),
os.path.basename(script)]) != 0:
sys.exit(1)
f.close()
# Update the hash dictionary.
all_new_hashes[fname] = new_hashes

View File

@@ -24,160 +24,134 @@ std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str)
namespace
{
constexpr int kT1[] = {1449, 850, 687, 94, 1160, 2137, 389, 55, 2314, 1465, 1942, 1342,
1619, 2259, 2238, 725, 2029, 881, 2320, 1229, 684, 853, 1921, 239,
413, 1657, 236, 654, 237, 1663, 2284, 2208, 952, 1152, 691};
constexpr int kT2[] = {1352, 2323, 1943, 1117, 1361, 512, 1103, 2213, 1371, 523, 1964, 995,
1843, 714, 179, 1093, 1916, 1705, 1050, 1026, 1497, 2043, 438, 1129,
1461, 2114, 344, 618, 1274, 1858, 1343, 1528, 1923, 1407, 838};
constexpr int kT1[] = {854, 583, 1017, 1261, 74, 1264, 17, 772, 177, 1669, 50, 1311,
893, 984, 500, 729, 837, 870, 944, 1614, 1220, 358, 887, 44,
685, 841, 335, 1676, 1170, 1028, 99, 444, 879, 1844, 1182};
constexpr int kT2[] = {736, 1561, 1876, 1663, 997, 1012, 1216, 1376, 1420, 1081, 773, 536,
1426, 114, 1851, 1914, 1734, 1715, 1851, 1162, 1616, 1379, 341, 310,
1449, 1759, 1789, 384, 1106, 1661, 1460, 1570, 539, 640, 724};
constexpr int kG[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2303, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 169, 1553, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 186, 702, 0, 0, 2256, 0, 0, 630, 0, 0,
0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 654, 2017, 963, 2266, 0, 0, 0, 0, 0, 0, 0, 0,
1496, 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 2309, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 2071, 0, 1778, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 689, 1754, 30, 494, 0, 0, 590, 0,
0, 0, 455, 1392, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 1983, 629, 0, 0, 0, 106,
0, 0, 1403, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 2272, 197, 1880, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1093, 0, 0, 0, 0, 749, 437, 560, 918, 0, 0, 0, 0,
1871, 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1035, 0, 0, 501, 0, 2246, 0, 0, 939, 0, 0, 81, 0,
0, 0, 0, 355, 943, 0, 0, 0, 0, 858, 0, 1029, 0, 939, 870, 0,
0, 0, 0, 0, 0, 0, 0, 0, 321, 367, 0, 0, 0, 585, 0, 1685,
0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0,
0, 11, 0, 0, 0, 0, 0, 2035, 0, 0, 2194, 0, 0, 323, 0, 2291,
1876, 0, 447, 0, 417, 0, 0, 0, 0, 0, 0, 0, 221, 0, 927, 0,
0, 0, 2268, 0, 0, 0, 0, 0, 1738, 738, 32, 367, 0, 0, 0, 0,
150, 0, 0, 1724, 0, 1169, 0, 0, 392, 0, 2156, 2042, 0, 0, 0, 2333,
894, 234, 0, 437, 0, 2072, 0, 561, 0, 1005, 165, 775, 0, 0, 0, 0,
0, 814, 0, 0, 682, 0, 0, 73, 1035, 0, 0, 0, 47, 0, 541, 0,
0, 0, 0, 396, 0, 0, 0, 0, 0, 2315, 223, 786, 379, 0, 872, 0,
2121, 62, 0, 0, 0, 907, 0, 0, 0, 335, 0, 0, 0, 2210, 406, 0,
0, 339, 0, 0, 0, 1047, 0, 0, 2026, 2304, 0, 0, 582, 1909, 0, 0,
0, 0, 0, 661, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0,
0, 438, 0, 0, 725, 0, 701, 1019, 0, 4, 264, 0, 0, 822, 0, 1021,
641, 0, 0, 0, 617, 0, 999, 1863, 0, 189, 83, 319, 0, 0, 1893, 239,
1026, 0, 916, 0, 846, 0, 0, 0, 0, 2171, 0, 260, 0, 0, 1310, 0,
470, 0, 255, 0, 601, 0, 1885, 0, 0, 0, 0, 530, 0, 0, 527, 0,
0, 460, 782, 0, 1981, 0, 0, 0, 965, 333, 0, 0, 954, 0, 2313, 0,
0, 303, 1234, 0, 0, 51, 0, 75, 0, 0, 112, 0, 0, 0, 1008, 0,
0, 0, 0, 1602, 0, 0, 0, 0, 2132, 1056, 1020, 1726, 2236, 1057, 992, 0,
0, 0, 767, 0, 0, 853, 0, 0, 879, 81, 0, 0, 0, 483, 299, 0,
0, 645, 0, 0, 2045, 0, 0, 0, 431, 0, 2126, 0, 0, 432, 0, 987,
0, 1075, 1152, 0, 326, 1902, 0, 0, 723, 0, 0, 607, 0, 2190, 406, 0,
964, 321, 600, 0, 0, 0, 0, 0, 1977, 0, 0, 0, 0, 1255, 0, 1681,
0, 0, 1091, 0, 0, 1551, 885, 0, 532, 0, 0, 362, 0, 0, 1478, 0,
0, 0, 418, 0, 1003, 0, 0, 274, 544, 0, 0, 147, 821, 0, 828, 327,
0, 0, 0, 0, 0, 2198, 0, 139, 222, 0, 345, 0, 1473, 145, 1013, 0,
2307, 2166, 0, 1844, 0, 321, 0, 0, 2010, 0, 0, 0, 0, 0, 0, 0,
0, 1189, 386, 0, 0, 0, 0, 0, 0, 1463, 1159, 908, 0, 0, 0, 0,
0, 1284, 2129, 0, 838, 0, 0, 0, 0, 2149, 342, 67, 924, 0, 0, 2161,
878, 0, 0, 1870, 520, 0, 724, 622, 822, 676, 0, 0, 2145, 0, 52, 0,
0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 1901, 8, 0, 0, 0, 311,
0, 2202, 509, 667, 0, 642, 199, 0, 268, 1717, 0, 0, 0, 0, 1389, 2325,
0, 1202, 0, 766, 496, 0, 559, 95, 0, 277, 0, 0, 0, 1827, 2182, 0,
79, 879, 0, 289, 0, 0, 0, 0, 260, 982, 541, 689, 0, 1725, 0, 0,
0, 0, 246, 1589, 576, 0, 2201, 0, 238, 967, 0, 0, 683, 0, 0, 270,
0, 0, 0, 375, 1, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595,
152, 0, 996, 560, 603, 297, 0, 2175, 330, 284, 0, 178, 0, 0, 0, 757,
0, 859, 0, 641, 0, 479, 1020, 0, 676, 697, 0, 0, 0, 2165, 2044, 2140,
470, 0, 2250, 0, 2048, 0, 2313, 0, 0, 0, 96, 1840, 0, 1328, 0, 0,
1990, 0, 338, 1977, 0, 781, 0, 206, 293, 991, 383, 467, 1961, 269, 0, 714,
0, 0, 0, 845, 0, 0, 531, 0, 0, 1841, 0, 1740, 0, 163, 372, 644,
0, 1055, 0, 410, 568, 439, 1611, 0, 0, 0, 0, 0, 581, 470, 1052, 0,
1583, 0, 0, 659, 0, 245, 0, 175, 0, 195, 0, 880, 0, 0, 381, 0,
0, 1030, 0, 126, 0, 0, 0, 344, 0, 0, 32, 98, 0, 1792, 0, 2117,
176, 0, 0, 0, 268, 0, 0, 0, 0, 2261, 0, 0, 0, 97, 0, 702,
0, 25, 0, 194, 0, 0, 439, 1868, 350, 829, 1784, 754, 0, 0, 0, 0,
582, 313, 0, 268, 0, 0, 250, 0, 0, 463, 1567, 2308, 0, 100, 0, 1743,
428, 149, 0, 492, 587, 0, 0, 301, 0, 808, 217, 0, 0, 0, 1518, 1799,
0, 0, 485, 0, 362, 2212, 0, 0, 0, 518, 42, 0, 0, 1462, 1016, 730,
0, 0, 0, 2261, 382, 0, 94, 0, 0, 580, 0, 0, 0, 153, 0, 0,
0, 0, 719, 210, 382, 0, 0, 1191, 2078, 0, 228, 1014, 385, 0, 0, 397,
0, 0, 0, 692, 0, 105, 0, 500, 0, 0, 500, 0, 686, 0, 1268, 0,
565, 892, 0, 0, 436, 0, 0, 566, 62, 0, 351, 0, 0, 1670, 0, 696,
685, 0, 934, 243, 379, 593, 332, 0, 0, 0, 0, 0, 2258, 1512, 2033, 0,
948, 0, 2343, 2233, 308, 224, 1802, 0, 0, 512, 0, 0, 0, 0, 0, 2029,
1038, 0, 0, 210, 0, 0, 0, 0, 1428, 542, 0, 1753, 171, 266, 1787, 405,
1408, 0, 0, 0, 1424, 0, 518, 0, 547, 728, 530, 0, 0, 619, 0, 0,
647, 0, 379, 814, 312, 2081, 1700, 92, 0, 0, 1331, 698, 0, 87, 0, 0,
0, 2174, 0, 460, 1074, 1215, 1849, 13, 9, 0, 0, 0, 729, 955, 784, 399,
993, 0, 167, 0, 0, 647, 186, 0, 0, 0, 0, 1075, 0, 984, 125, 1917,
1429, 0, 306, 705, 0, 0, 0, 0, 0, 1405, 0, 1000, 0, 0, 0, 1480,
0, 0, 334, 1776, 800, 1497, 1938, 0, 7, 67, 0, 662, 656, 181, 489, 0,
655, 263, 0, 0, 961, 0, 653, 920, 1416, 232, 0, 733, 0, 2, 2192, 2322,
0, 0, 387, 1850, 547, 639, 2292, 2197, 2083, 445, 0, 0, 474, 0, 357, 465,
1124, 1479, 476, 0, 0, 0, 340, 0, 1743, 1317, 170, 0, 0, 989, 0, 1837,
290, 811, 0, 38, 0, 1198, 0, 61, 0, 772, 543, 0, 0, 0, 905, 707,
138, 2225, 176, 2284, 0, 0, 2344, 0, 0, 0, 1218, 0, 0, 0, 1503, 1015,
0, 251, 442, 0, 0, 0, 1631, 0, 210, 1257, 179, 1903, 0, 0, 0, 59,
0, 0, 0, 0, 371, 558, 359, 188, 588, 0, 0, 670, 103, 1580, 942, 963,
0, 55, 1935, 510, 2236, 589, 1834, 2340, 0, 721, 0, 1067, 0, 0, 110, 1764,
49, 402, 0, 0, 0, 0, 1990, 430, 0, 0, 243, 282, 0, 978, 408, 226,
0, 0, 0, 517, 0, 2103, 2331, 0, 0, 0, 0, 0, 0, 736, 0, 0,
685, 0, 291, 14, 0, 0, 618, 231, 0, 0, 744, 0, 0, 442, 1084, 0,
857, 1857, 0, 463, 2262, 0, 908, 507, 99, 1547, 379, 0, 629, 0, 0, 273,
2184, 0, 0, 0, 0, 0, 0, 814, 1301, 1283, 1060, 761, 1767, 5, 0, 0,
780, 0, 2280, 0, 908, 0, 319, 0, 996, 2331, 1575, 618, 2334, 0, 0, 0,
0, 0, 0, 240, 0, 0, 796, 1006, 0, 55, 0, 0, 603, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2038, 907, 1081, 0, 0, 0, 2117, 0, 440, 0,
2343, 0, 712, 0, 365, 162, 1116, 296, 407, 0, 0, 930, 0, 0, 616, 568,
1308, 0, 0, 1054, 819, 0, 2204, 0, 0, 1391, 865, 0, 0, 2197, 869, 185,
551, 456, 0, 681, 0, 0, 582, 112, 0, 2298, 580, 0, 0, 0, 810, 0,
867, 900, 990, 0, 2335, 320, 0, 485, 723, 0, 553, 866, 0, 1556, 0, 0,
0, 0, 0, 0, 0, 2172, 157, 2049, 0, 10, 2301, 0, 851, 1913, 2269, 439,
0, 0, 0, 0, 0, 1377, 0, 0, 0, 0, 0, 148, 0, 425, 1929, 212,
2083, 668, 826, 0, 190, 0, 0, 0, 0, 310, 28, 0, 0, 0, 2310, 856,
2210, 0, 1813, 556, 0, 383, 0, 184, 481, 0, 0, 121, 0, 0, 156, 61,
0, 1854, 0, 856, 740, 0, 986, 584, 932, 977, 805, 0, 258, 0, 0, 1685,
495, 0, 2250, 1524, 107, 0, 0, 0, 0, 1159, 0, 107, 433, 37, 0, 0,
1105, 0, 0, 342, 1687, 1448, 836, 5, 1971, 2219, 0, 0, 448, 465, 0, 1619,
0, 0, 577, 0, 0, 0, 76, 0, 0, 142, 0, 0, 0, 0, 0, 1037,
879, 171, 291, 0, 700, 2228, 0, 0, 0, 2270, 0, 896, 77, 0, 0, 796,
235, 0, 0, 0, 269, 112, 1039, 1560, 0, 0, 2262, 0, 0, 861, 113, 0,
904, 0, 0, 0, 0, 0, 568, 2022, 110, 1027, 648, 374, 0, 759, 0, 356,
0, 0, 2111, 456, 0, 285, 0, 0, 203, 0, 657, 53, 643, 0, 74, 335,
1939, 103, 2165, 30, 192, 2072, 97, 562, 454, 316, 2061, 172, 0, 0, 926, 0,
0, 750, 1934, 0, 0, 0, 0, 0, 816, 0, 941, 0, 897, 0, 690, 615,
0, 853, 0, 662, 1910, 0, 350, 0, 0, 0, 0, 759, 0, 988, 0, 281,
0, 0, 0, 447, 420, 58, 0, 124, 51, 2228, 0, 0, 0, 138, 0, 0,
127, 0, 0, 0, 185, 970, 0, 2205, 230, 468, 0, 448, 287, 0, 66, 1665,
302, 1430, 2080, 0, 1109, 1863, 0, 180, 0, 467, 771, 2147, 0, 2129, 0, 441,
89, 498, 448, 1076, 0, 1966, 0, 2263, 2293, 0, 0, 3, 0, 1053, 0, 1065,
2059, 240, 261, 1134, 644, 0, 197, 342, 0, 0, 631, 0, 19, 1053, 0, 214,
0, 0, 0, 0, 0, 336, 16, 0, 0, 809, 0, 0, 214, 193, 0, 449,
0, 139, 0, 0, 0, 355, 580, 123, 478, 187, 550, 0, 0, 0, 0, 704,
791, 812, 0, 0, 0, 0, 302, 721, 829, 414, 0, 204, 163, 0, 331, 2233,
18, 9, 687, 0, 0, 974, 82, 959, 0, 0, 938, 570, 475, 650, 833, 0,
347, 0, 115, 0, 1415, 623, 227, 0, 804, 0, 2347, 2242, 0, 258, 0, 1808,
0, 0, 602, 0, 501, 893, 0, 0, 155, 928, 15, 0, 190, 1271, 1076, 1028,
155, 0, 679, 1043, 0, 738, 287, 711, 0, 0, 0, 0, 0, 0, 1809, 0,
0, 1043, 0, 370, 0, 0, 0, 768, 0, 0, 994, 0, 0, 0, 2324, 618,
1924, 0, 64, 0, 0, 0, 0, 7, 1816, 418, 1083, 0, 0, 54, 85, 0,
216, 0, 0, 2048, 0, 0, 0, 807, 187, 0, 131, 524, 973, 670, 0, 1860,
0, 0, 0, 986, 0, 317, 202, 0, 0, 0, 608, 618, 2262, 0, 0, 0,
92, 150, 699, 0, 68, 844, 0, 0, 567, 158, 921, 868, 0, 0, 937, 0,
2202, 846, 0, 111, 352, 958, 0, 435, 434, 301, 847, 0, 0, 953, 2216, 134,
0, 0, 0, 358, 916, 515, 2284, 0, 0, 0, 522, 0, 0, 214, 0, 890,
188, 169, 0, 0, 0, 837, 2128, 0, 636, 691, 0, 712, 685, 0, 221, 0,
1031, 0, 0, 0, 273, 583, 571, 0, 1487, 0, 239, 93, 0, 33, 0, 1861,
624, 1357, 2214, 641, 1493, 65, 0, 36, 0, 634, 883, 0, 0, 517, 574, 373,
380, 624, 987, 0, 303, 698, 1287, 33, 0, 0, 490, 1025, 645, 219, 1058, 719,
378, 524, 508, 338, 627, 341, 753, 0, 253, 0, 713, 0, 0, 0, 295, 0,
852, 2244, 141, 0, 0, 466, 578, 0, 0, 121, 0, 169, 890, 0, 0, 0,
0, 0, 0, 361, 841, 0, 351, 1005, 0, 0, 0, 0, 0, 311, 0, 0,
246, 5, 849, 182, 2142, 2198, 0, 391, 1259, 0, 0, 709, 116, 114, 364, 1986,
204, 0, 398, 321, 816, 777, 0, 0, 894, 0, 1046, 0, 319, 0, 590, 240,
0, 0, 1866, 0, 0, 0, 629, 0, 763, 1826, 452, 28, 872, 0, 451, 891,
696, 1055, 2199, 0, 0, 2135, 499, 0, 792, 200, 0, 0, 1068, 750, 2124, 2257,
542, 835, 0, 57, 0, 2, 718, 0, 0, 2163, 322, 1799};
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1929, 0, 0, 1733, 0,
0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 1394, 0, 763, 0, 0,
0, 0, 0, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 1575, 0, 0, 0,
0, 0, 0, 1807, 0, 1619, 1061, 0, 0, 430, 0, 0, 1033, 0, 0, 336,
0, 0, 1633, 1714, 0, 0, 0, 0, 0, 472, 668, 1687, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1913, 1079, 0, 0, 0, 1411, 0, 521, 0, 0, 0,
0, 0, 0, 1865, 0, 314, 0, 0, 0, 0, 0, 1494, 1065, 893, 413, 1505,
111, 0, 495, 0, 0, 1835, 892, 68, 0, 214, 1310, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1227, 0, 0, 1496, 0, 0, 0, 0, 335, 125, 0, 514,
0, 0, 0, 458, 980, 0, 0, 0, 718, 437, 0, 0, 0, 0, 921, 0,
0, 1675, 1586, 0, 0, 0, 0, 0, 106, 0, 0, 720, 0, 1684, 0, 0,
1733, 0, 1223, 0, 0, 1854, 0, 0, 260, 395, 0, 0, 0, 344, 0, 0,
0, 0, 1611, 1879, 0, 703, 1701, 1301, 0, 0, 0, 0, 0, 0, 0, 776,
0, 397, 1751, 0, 0, 0, 0, 1244, 828, 0, 0, 0, 0, 0, 1108, 0,
0, 0, 0, 0, 0, 0, 1795, 637, 0, 0, 0, 251, 1542, 0, 1794, 0,
1895, 0, 372, 0, 245, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 761,
0, 0, 1269, 0, 0, 193, 0, 501, 1237, 517, 1509, 0, 223, 0, 380, 0,
0, 0, 0, 0, 935, 0, 0, 0, 832, 1474, 0, 0, 1475, 752, 0, 377,
79, 165, 0, 0, 521, 0, 1041, 969, 273, 602, 26, 0, 1838, 180, 0, 0,
494, 445, 1059, 0, 0, 351, 0, 312, 0, 0, 0, 530, 1745, 0, 365, 1108,
0, 0, 1042, 613, 72, 1244, 508, 547, 0, 0, 0, 0, 0, 0, 1262, 0,
354, 833, 0, 70, 1004, 0, 101, 342, 0, 0, 557, 0, 0, 341, 264, 0,
0, 988, 0, 0, 0, 931, 50, 1703, 0, 144, 384, 1729, 0, 390, 531, 0,
0, 437, 1463, 0, 846, 1632, 0, 0, 9, 491, 283, 0, 790, 0, 0, 916,
0, 285, 1839, 0, 1885, 1555, 1, 0, 924, 0, 0, 0, 1618, 795, 0, 0,
1554, 540, 0, 0, 119, 0, 0, 955, 1458, 0, 0, 927, 1798, 1170, 0, 275,
457, 0, 0, 0, 1875, 653, 0, 0, 0, 675, 0, 621, 0, 0, 419, 0,
551, 0, 0, 1104, 0, 0, 0, 1907, 1848, 0, 0, 762, 0, 1621, 0, 0,
0, 0, 1568, 0, 393, 529, 0, 0, 0, 297, 0, 0, 988, 298, 1400, 0,
1747, 0, 0, 497, 583, 0, 175, 1136, 718, 786, 0, 94, 741, 0, 0, 0,
1526, 0, 1595, 386, 0, 661, 0, 0, 0, 0, 1868, 1383, 1201, 357, 0, 183,
1926, 0, 126, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
1070, 15, 0, 773, 199, 488, 0, 968, 974, 0, 0, 0, 832, 593, 580, 0,
1364, 0, 954, 0, 925, 309, 673, 1893, 0, 0, 0, 300, 0, 442, 0, 1003,
0, 0, 306, 0, 1409, 0, 734, 1107, 1230, 0, 186, 8, 692, 0, 0, 840,
0, 1002, 1695, 0, 847, 806, 0, 1595, 482, 0, 0, 935, 0, 0, 915, 0,
0, 1590, 433, 0, 0, 949, 68, 96, 698, 0, 0, 1929, 0, 0, 464, 0,
0, 216, 0, 0, 0, 0, 33, 1314, 0, 0, 222, 0, 0, 758, 0, 1911,
0, 868, 1845, 938, 1337, 0, 287, 151, 0, 1382, 639, 0, 0, 0, 1481, 1160,
1199, 667, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 1275, 87, 1604, 340,
260, 1427, 0, 1856, 28, 764, 594, 595, 423, 0, 0, 0, 948, 1619, 0, 0,
0, 1864, 471, 0, 103, 634, 1279, 124, 0, 27, 479, 1041, 275, 1435, 479, 368,
0, 0, 1557, 662, 64, 0, 0, 957, 574, 0, 0, 444, 0, 0, 0, 699,
0, 0, 0, 197, 0, 0, 0, 1305, 1220, 0, 0, 615, 483, 915, 121, 0,
0, 792, 0, 0, 447, 1652, 1039, 1795, 1371, 732, 542, 19, 345, 337, 1108, 0,
0, 56, 0, 0, 0, 622, 750, 0, 898, 0, 1256, 0, 0, 455, 0, 0,
0, 0, 0, 0, 0, 0, 0, 694, 646, 0, 888, 0, 794, 0, 415, 195,
0, 962, 1200, 0, 0, 1435, 0, 0, 0, 1643, 581, 0, 433, 580, 52, 0,
1777, 665, 0, 623, 0, 688, 581, 429, 0, 222, 434, 0, 0, 0, 134, 0,
892, 177, 595, 826, 1442, 0, 0, 1913, 0, 0, 449, 0, 722, 0, 508, 749,
0, 0, 0, 1299, 0, 0, 0, 0, 0, 0, 316, 1540, 566, 0, 203, 0,
498, 861, 911, 770, 1007, 398, 0, 768, 124, 663, 0, 0, 173, 0, 0, 0,
0, 993, 1109, 745, 421, 870, 494, 1874, 0, 157, 82, 0, 1082, 1390, 472, 326,
1291, 0, 557, 797, 0, 384, 0, 0, 1382, 1514, 0, 994, 0, 0, 0, 1123,
0, 822, 0, 854, 0, 1735, 0, 198, 195, 1791, 898, 0, 1588, 577, 370, 0,
0, 0, 626, 1341, 54, 0, 0, 816, 1911, 0, 0, 0, 0, 381, 966, 0,
0, 996, 0, 728, 0, 300, 0, 477, 0, 1227, 0, 1717, 1760, 986, 1442, 583,
458, 1088, 0, 819, 229, 1344, 348, 0, 1816, 58, 0, 0, 0, 1379, 0, 0,
1461, 487, 0, 1255, 0, 58, 0, 0, 1710, 1821, 0, 812, 0, 0, 1232, 468,
1866, 0, 135, 343, 477, 0, 0, 1901, 828, 0, 863, 665, 227, 0, 210, 1140,
1231, 0, 0, 758, 154, 0, 651, 32, 1381, 0, 720, 978, 431, 1063, 0, 419,
733, 0, 170, 0, 0, 0, 235, 0, 86, 1574, 549, 10, 0, 1266, 0, 0,
542, 0, 693, 579, 0, 0, 0, 0, 248, 277, 1215, 19, 253, 0, 1797, 724,
0, 821, 516, 417, 169, 1702, 5, 0, 584, 0, 0, 954, 0, 0, 0, 945,
183, 241, 0, 566, 1557, 425, 0, 417, 558, 0, 0, 0, 0, 799, 0, 364,
371, 552, 1225, 0, 0, 0, 987, 13, 1713, 947, 0, 1723, 0, 898, 1878, 883,
586, 0, 599, 713, 0, 1207, 192, 1878, 262, 188, 0, 763, 503, 989, 0, 0,
1701, 0, 963, 1568, 0, 0, 0, 370, 102, 19, 1699, 198, 1737, 658, 1262, 947,
690, 831, 0, 688, 1290, 735, 0, 102, 80, 130, 1785, 1855, 695, 0, 0, 612,
320, 0, 0, 0, 1414, 328, 0, 1890, 966, 0, 267, 496, 165, 1301, 104, 188,
808, 0, 161, 0, 906, 0, 1844, 1042, 1829, 912, 0, 0, 0, 0, 560, 211,
0, 0, 964, 0, 0, 0, 0, 0, 1527, 16, 115, 649, 51, 455, 859, 1271,
1363, 0, 1843, 870, 983, 1519, 0, 0, 91, 0, 535, 491, 0, 0, 209, 964,
0, 186, 0, 0, 135, 629, 798, 1422, 0, 0, 0, 903, 658, 0, 951, 1149,
510, 284, 1530, 329, 395, 443, 0, 256, 0, 3, 0, 276, 127, 0, 6, 498,
1079, 1401, 0, 121, 523, 223, 7, 313, 0, 0, 813, 1004, 0, 0, 1155, 0,
59, 204, 25, 1652, 1458, 1833, 950, 0, 605, 0, 173, 0, 1850, 461, 631, 0,
1734, 151, 403, 0, 0, 0, 1407, 926, 60, 111, 0, 0, 51, 0, 1590, 843,
706, 1761, 496, 1355, 0, 0, 0, 0, 6, 13, 1855, 0, 8, 365, 70, 0,
0, 1051, 712, 0, 0, 1923, 1511, 497, 1685, 1859, 142, 0, 0, 1899, 0, 0,
0, 0, 1063, 204, 1834, 0, 565, 749, 0, 191, 1674, 985, 0, 1544, 310, 501,
175, 286, 0, 0, 0, 134, 201, 0, 0, 309, 335, 0, 0, 1039, 962, 0,
0, 0, 139, 0, 0, 0, 440, 0, 1172, 1709, 0, 1255, 1883, 0, 344, 118,
0, 1087, 1398, 0, 1352, 250, 1521, 1902, 583, 0, 0, 583, 766, 0, 1590, 484,
834, 1425, 141, 400, 728, 225, 0, 0, 0, 1111, 417, 1237, 39, 0, 307, 0,
800, 0, 0, 0, 337, 0, 0, 188, 1540, 1052, 0, 0, 1044, 199, 289, 417,
426, 313, 676, 886, 0, 0, 1468, 0, 0, 1629, 1559, 1778, 0, 133, 108, 0,
0, 80, 1014, 68, 622, 710, 0, 0, 179, 458, 0, 1458, 0, 1064, 1667, 67,
380, 818, 480, 0, 440, 0, 907, 1275, 655, 0, 1569, 0, 0, 402, 839, 225,
917, 1034, 783, 379, 303, 144, 0, 1183, 743, 488, 869, 1552, 0, 1475, 0, 1535,
1550, 1303, 0, 1736, 0, 1352, 506, 1609, 1219, 756, 812, 0, 712, 273, 0, 387,
0, 1707, 326, 0, 107, 1123, 1932, 0, 981, 47, 0, 0, 654, 1272, 1619, 1930,
0, 0, 0, 0, 1023, 285, 1594, 1753, 0, 736, 1905, 31, 0, 1808, 483, 1393,
213, 360, 931, 1638, 283, 0, 1680, 1342, 0, 0, 287, 1041, 0, 163, 430, 0,
0, 1527, 521, 0, 509, 597, 0, 566, 68, 870, 625, 0, 258, 82, 757, 718,
541, 162, 871, 0, 0, 334, 113, 881, 1025, 0, 1669, 1879, 0, 0, 0, 1912,
840, 94, 0, 262, 115, 0, 1012, 0, 1068, 537, 473, 1305, 1750, 1912, 1725, 22,
1579, 746, 0, 900, 0, 0, 0, 844, 128, 934, 0, 0, 1427, 661, 0, 212,
0, 594, 1485, 0, 722, 1026, 0, 0, 609, 792, 0, 487, 270, 0, 1242, 666,
0, 0, 0, 388, 0, 1622, 181, 0, 374, 877, 955, 252, 376, 291, 583, 151,
666, 553, 0, 279, 349, 880, 1564, 450, 0, 417, 584, 0, 0, 1771, 1831, 196,
212, 269, 536, 249, 111, 1763, 1903, 0, 200, 0, 210, 1530, 787, 1141, 1679, 878,
0, 992, 628, 0, 1672, 136, 0, 734, 0, 711, 842, 1911, 705, 0, 0, 951,
0, 0, 1415, 117, 1674, 1768, 0, 1065, 1422, 979, 1234, 0, 0, 0, 774, 113,
807, 587, 310, 1225, 535, 0, 0, 0, 1367, 0, 0, 1799, 0, 475, 0, 1927,
1024, 750, 0, 0, 521, 0, 118, 1375, 1809, 729, 0, 281, 562, 1431, 0, 462,
0, 0, 617, 262, 1080, 159, 0, 1824, 1342, 0, 0, 1854, 0, 1009, 311, 0,
1002, 612, 0, 0, 0, 1615, 357, 676, 1831, 445, 803, 0, 863, 1225, 1001, 692,
331, 0, 473, 1885, 271, 0, 544, 930, 1091, 0, 0, 1053, 998, 1209, 495, 213,
454, 892, 0, 0, 1044, 0, 1839, 153, 1675, 0, 0, 632, 0, 0, 0, 364,
0, 0, 85, 269, 1145, 0, 0, 1690, 1455, 500, 868, 0, 0, 444, 212, 1449,
1557, 1880, 0, 0, 136, 807, 522, 0, 207, 1341, 1400, 1915, 215, 757, 715, 993,
0, 0, 1406, 0, 844, 187, 746, 476, 0, 505, 703, 1325, 0, 137, 547, 935,
0, 0, 44, 449, 641, 0, 1482, 1128, 2, 0, 0, 332, 1727, 403, 0, 1896,
644, 0, 308, 605, 1868, 327, 0, 0, 0, 755, 0, 0, 0, 960, 0, 982,
0, 1131, 818, 1544, 1055, 0, 120, 1867, 436, 771, 659, 0, 609, 0, 0, 866,
0, 1860, 0, 1486, 0, 273, 624, 0, 229, 407, 0, 294, 284, 0, 551, 106,
0, 1666, 0, 420, 0, 22, 0, 0, 432, 125, 0, 509, 1172, 1921, 0, 339,
966, 1659, 1278, 16, 726, 24, 0, 632, 0, 0, 0, 1322, 326, 0, 815, 502,
0, 979, 391, 0, 0, 595, 0, 1569, 470, 307, 772, 149, 15, 0, 832, 0,
0, 0, 0, 0, 572, 1491, 1247, 140, 0, 177, 0, 0, 1486, 0};
int HashG(const char *key, const int *T)
{
@@ -186,7 +160,7 @@ int HashG(const char *key, const int *T)
for (int i = 0; key[i] != '\0'; i++)
{
sum += T[i] * key[i];
sum %= 2348;
sum %= 1934;
}
return kG[sum];
}
@@ -196,7 +170,7 @@ int PerfectHash(const char *key)
if (strlen(key) > 35)
return 0;
return (HashG(key, kT1) + HashG(key, kT2)) % 2348;
return (HashG(key, kT1) + HashG(key, kT2)) % 1934;
}
} // namespace

View File

@@ -23,6 +23,7 @@ import json
import re
import os
import sys
import random
template_immutablestring_cpp = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {variable_data_source_name} and
@@ -1248,7 +1249,7 @@ def process_variable_group(parent_condition, group_name, group, builtin_id_decla
def main():
random.seed(0)
set_working_dir()
parser = argparse.ArgumentParser()