fix array gc bug; new gc error chasing

This commit is contained in:
2026-02-13 16:58:42 -06:00
parent c1430fd59b
commit e80e615634
15 changed files with 9585 additions and 9446 deletions

View File

@@ -6,7 +6,7 @@
"nr_slots": 5,
"nr_close_slots": 0,
"instructions": [
["get", 2, 6, 1, 18, 10],
["get", 2, 7, 1, 18, 10],
["is_array", 3, 2, 18, 15],
["jump_false", 3, "push_err_0", 18, 15],
["push", 2, 1, 18, 15],
@@ -274,7 +274,7 @@
"nr_slots": 48,
"nr_close_slots": 0,
"instructions": [
["get", 5, 9, 1, 47, 9],
["get", 5, 13, 1, 47, 9],
["load_dynamic", 6, 5, 1, 47, 19],
["null", 7, 47, 27],
["is_identical", 8, 6, 7, 47, 27],
@@ -322,7 +322,7 @@
["true", 8, 47, 27],
"ne_done_4",
["jump_false", 8, "if_else_2", 47, 27],
["get", 11, 9, 1, 47, 40],
["get", 11, 13, 1, 47, 40],
["load_dynamic", 12, 11, 1, 47, 50],
["return", 12, 47, 50],
"_nop_ur_1",
@@ -412,7 +412,7 @@
"push_err_12",
["disrupt", 53, 20],
"push_done_13",
["get", 46, 9, 1, 54, 5],
["get", 46, 13, 1, 54, 5],
["store_dynamic", 46, 2, 1, 54, 15],
["return", 2, 55, 12],
"_nop_ur_2",
@@ -662,12 +662,12 @@
["null", 14, 85, 14],
["null", 5, 86, 14],
["null", 12, 88, 13],
["null", 16, 89, 14],
["null", 17, 89, 14],
["null", 6, 90, 14],
["access", 7, 0, 91, 18],
["access", 15, 0, 92, 20],
["access", 17, 0, 93, 14],
["access", 18, 0, 94, 21],
["access", 16, 0, 92, 20],
["access", 18, 0, 93, 14],
["access", 15, 0, 94, 21],
["array", 37, 0, 1, 1],
["push", 37, 8, 1, 1],
[
@@ -1468,7 +1468,7 @@
"if_else_94",
["is_text", 276, 14, 162, 28],
["jump_false", 276, "if_else_98", 162, 28],
["get", 278, 13, 1, 163, 16],
["get", 278, 14, 1, 163, 16],
["frame", 279, 278, 1, 163, 16],
["null", 280, 163, 16],
["setarg", 279, 0, 280, 163, 16],
@@ -1555,7 +1555,7 @@
"eq_done_104",
["jump_false", 298, "if_else_102", 166, 26],
["load_field", 301, 14, "name", 167, 29],
["get", 303, 13, 1, 167, 18],
["get", 303, 14, 1, 167, 18],
["frame", 304, 303, 1, 167, 18],
["null", 305, 167, 18],
["setarg", 304, 0, 305, 167, 18],
@@ -1943,7 +1943,7 @@
"eq_done_141",
["jump_false", 400, "if_else_139", 177, 33],
["load_field", 403, 14, "value", 178, 29],
["get", 405, 13, 1, 178, 18],
["get", 405, 14, 1, 178, 18],
["frame", 406, 405, 1, 178, 18],
["null", 407, 178, 18],
["setarg", 406, 0, 407, 178, 18],
@@ -8142,64 +8142,64 @@
["false", 2410, 496, 17],
"eq_done_654",
["jump_false", 2410, "if_else_652", 496, 17],
["get", 2414, 14, 1, 497, 14],
["get", 2414, 5, 1, 497, 14],
["frame", 2415, 2414, 1, 497, 14],
["null", 2416, 497, 14],
["setarg", 2415, 0, 2416, 497, 14],
["setarg", 2415, 1, 5, 497, 14],
["invoke", 2415, 2413, 497, 14],
["move", 16, 2413, 497, 14],
["move", 17, 2413, 497, 14],
["null", 2417, 498, 19],
["is_identical", 2418, 16, 2417, 498, 19],
["is_identical", 2418, 17, 2417, 498, 19],
["jump_true", 2418, "ne_nid_663", 498, 19],
["jump", "ne_ni_664", 498, 19],
"ne_nid_663",
["false", 2418, 498, 19],
["jump", "ne_done_662", 498, 19],
"ne_ni_664",
["is_int", 2419, 16, 498, 19],
["is_int", 2419, 17, 498, 19],
["jump_false", 2419, "ne_nn_665", 498, 19],
"_nop_tc_397",
["jump", "ne_nn_665", 498, 19],
["ne_int", 2418, 16, 2417, 498, 19],
["ne_int", 2418, 17, 2417, 498, 19],
["jump", "ne_done_662", 498, 19],
"ne_nn_665",
["is_num", 2419, 16, 498, 19],
["is_num", 2419, 17, 498, 19],
["jump_false", 2419, "ne_nt_666", 498, 19],
"_nop_tc_398",
["jump", "ne_nt_666", 498, 19],
["ne_float", 2418, 16, 2417, 498, 19],
["ne_float", 2418, 17, 2417, 498, 19],
["jump", "ne_done_662", 498, 19],
"ne_nt_666",
["is_text", 2419, 16, 498, 19],
["is_text", 2419, 17, 498, 19],
["jump_false", 2419, "ne_nnl_667", 498, 19],
"_nop_tc_399",
["jump", "ne_nnl_667", 498, 19],
["ne_text", 2418, 16, 2417, 498, 19],
["ne_text", 2418, 17, 2417, 498, 19],
["jump", "ne_done_662", 498, 19],
"ne_nnl_667",
["is_null", 2419, 16, 498, 19],
["is_null", 2419, 17, 498, 19],
["jump_false", 2419, "ne_nb_668", 498, 19],
"_nop_tc_400",
"_nop_tc_401",
["false", 2418, 498, 19],
["jump", "ne_done_662", 498, 19],
"ne_nb_668",
["is_bool", 2419, 16, 498, 19],
["is_bool", 2419, 17, 498, 19],
["jump_false", 2419, "ne_mis_669", 498, 19],
"_nop_tc_402",
["jump", "ne_mis_669", 498, 19],
["ne_bool", 2418, 16, 2417, 498, 19],
["ne_bool", 2418, 17, 2417, 498, 19],
["jump", "ne_done_662", 498, 19],
"ne_mis_669",
["true", 2418, 498, 19],
"ne_done_662",
["jump_false", 2418, "if_else_660", 498, 19],
["get", 2422, 13, 1, 499, 16],
["get", 2422, 14, 1, 499, 16],
["frame", 2423, 2422, 1, 499, 16],
["null", 2424, 499, 16],
["setarg", 2423, 0, 2424, 499, 16],
["setarg", 2423, 1, 16, 499, 16],
["setarg", 2423, 1, 17, 499, 16],
["invoke", 2423, 2421, 499, 16],
["move", 6, 2421, 499, 16],
["get", 2426, 12, 1, 1, 1],
@@ -8533,64 +8533,64 @@
["false", 2527, 517, 17],
"eq_done_688",
["jump_false", 2527, "if_else_686", 517, 17],
["get", 2531, 14, 1, 519, 14],
["get", 2531, 5, 1, 519, 14],
["frame", 2532, 2531, 1, 519, 14],
["null", 2533, 519, 14],
["setarg", 2532, 0, 2533, 519, 14],
["setarg", 2532, 1, 5, 519, 14],
["invoke", 2532, 2530, 519, 14],
["move", 16, 2530, 519, 14],
["move", 17, 2530, 519, 14],
["null", 2534, 520, 19],
["is_identical", 2535, 16, 2534, 520, 19],
["is_identical", 2535, 17, 2534, 520, 19],
["jump_true", 2535, "ne_nid_697", 520, 19],
["jump", "ne_ni_698", 520, 19],
"ne_nid_697",
["false", 2535, 520, 19],
["jump", "ne_done_696", 520, 19],
"ne_ni_698",
["is_int", 2536, 16, 520, 19],
["is_int", 2536, 17, 520, 19],
["jump_false", 2536, "ne_nn_699", 520, 19],
"_nop_tc_421",
["jump", "ne_nn_699", 520, 19],
["ne_int", 2535, 16, 2534, 520, 19],
["ne_int", 2535, 17, 2534, 520, 19],
["jump", "ne_done_696", 520, 19],
"ne_nn_699",
["is_num", 2536, 16, 520, 19],
["is_num", 2536, 17, 520, 19],
["jump_false", 2536, "ne_nt_700", 520, 19],
"_nop_tc_422",
["jump", "ne_nt_700", 520, 19],
["ne_float", 2535, 16, 2534, 520, 19],
["ne_float", 2535, 17, 2534, 520, 19],
["jump", "ne_done_696", 520, 19],
"ne_nt_700",
["is_text", 2536, 16, 520, 19],
["is_text", 2536, 17, 520, 19],
["jump_false", 2536, "ne_nnl_701", 520, 19],
"_nop_tc_423",
["jump", "ne_nnl_701", 520, 19],
["ne_text", 2535, 16, 2534, 520, 19],
["ne_text", 2535, 17, 2534, 520, 19],
["jump", "ne_done_696", 520, 19],
"ne_nnl_701",
["is_null", 2536, 16, 520, 19],
["is_null", 2536, 17, 520, 19],
["jump_false", 2536, "ne_nb_702", 520, 19],
"_nop_tc_424",
"_nop_tc_425",
["false", 2535, 520, 19],
["jump", "ne_done_696", 520, 19],
"ne_nb_702",
["is_bool", 2536, 16, 520, 19],
["is_bool", 2536, 17, 520, 19],
["jump_false", 2536, "ne_mis_703", 520, 19],
"_nop_tc_426",
["jump", "ne_mis_703", 520, 19],
["ne_bool", 2535, 16, 2534, 520, 19],
["ne_bool", 2535, 17, 2534, 520, 19],
["jump", "ne_done_696", 520, 19],
"ne_mis_703",
["true", 2535, 520, 19],
"ne_done_696",
["jump_false", 2535, "if_else_694", 520, 19],
["get", 2539, 13, 1, 521, 16],
["get", 2539, 14, 1, 521, 16],
["frame", 2540, 2539, 1, 521, 16],
["null", 2541, 521, 16],
["setarg", 2540, 0, 2541, 521, 16],
["setarg", 2540, 1, 16, 521, 16],
["setarg", 2540, 1, 17, 521, 16],
["invoke", 2540, 2538, 521, 16],
["move", 6, 2538, 521, 16],
["get", 2543, 12, 1, 1, 1],
@@ -10834,7 +10834,7 @@
["access", 3182, 0, 643, 38],
["move", 3181, 3182, 643, 38],
"tern_end_857",
["move", 15, 3181, 643, 38],
["move", 16, 3181, 643, 38],
["get", 3184, 12, 1, 1, 1],
["frame", 3185, 3184, 1, 1, 1],
["null", 3186, 1, 1],
@@ -10868,36 +10868,36 @@
["setarg", 3195, 1, 3190, 644, 9],
["invoke", 3195, 3193, 644, 9],
["access", 3197, 0, 645, 14],
["move", 17, 3197, 645, 14],
["move", 18, 3197, 645, 14],
"while_start_866",
["is_int", 3199, 17, 646, 21],
["is_int", 3199, 18, 646, 21],
["jump_false", 3199, "rel_ni_868", 646, 21],
["is_int", 3200, 15, 646, 21],
["is_int", 3200, 16, 646, 21],
["jump_false", 3200, "rel_ni_868", 646, 21],
["lt_int", 3198, 17, 15, 646, 21],
["lt_int", 3198, 18, 16, 646, 21],
["jump", "rel_done_870", 646, 21],
"rel_ni_868",
["is_num", 3199, 17, 646, 21],
["is_num", 3199, 18, 646, 21],
["jump_false", 3199, "rel_nn_869", 646, 21],
["is_num", 3200, 15, 646, 21],
["is_num", 3200, 16, 646, 21],
["jump_false", 3200, "rel_nn_869", 646, 21],
["lt_float", 3198, 17, 15, 646, 21],
["lt_float", 3198, 18, 16, 646, 21],
["jump", "rel_done_870", 646, 21],
"rel_nn_869",
["is_text", 3199, 17, 646, 21],
["is_text", 3199, 18, 646, 21],
["jump_false", 3199, "rel_err_871", 646, 21],
["is_text", 3200, 15, 646, 21],
["is_text", 3200, 16, 646, 21],
["jump_false", 3200, "rel_err_871", 646, 21],
["lt_text", 3198, 17, 15, 646, 21],
["lt_text", 3198, 18, 16, 646, 21],
["jump", "rel_done_870", 646, 21],
"rel_err_871",
["disrupt", 646, 21],
"rel_done_870",
["jump_false", 3198, "while_end_867", 646, 21],
["access", 3201, 3, 647, 29],
["add", 3202, 3201, 17, 647, 33],
["add", 3202, 3201, 18, 647, 33],
["load_dynamic", 3203, 19, 3202, 647, 33],
["move", 18, 3203, 647, 33],
["move", 15, 3203, 647, 33],
["get", 3205, 12, 1, 1, 1],
["frame", 3206, 3205, 1, 1, 1],
["null", 3207, 1, 1],
@@ -10918,13 +10918,13 @@
["frame", 3210, 3209, 1, 1, 1],
["null", 3211, 1, 1],
["setarg", 3210, 0, 3211, 1, 1],
["setarg", 3210, 1, 17, 1, 1],
["setarg", 3210, 1, 18, 1, 1],
["invoke", 3210, 3208, 1, 1],
["get", 3213, 12, 1, 1, 1],
["frame", 3214, 3213, 1, 1, 1],
["null", 3215, 1, 1],
["setarg", 3214, 0, 3215, 1, 1],
["setarg", 3214, 1, 18, 1, 1],
["setarg", 3214, 1, 15, 1, 1],
["invoke", 3214, 3212, 1, 1],
["array", 3216, 0, 1, 1],
["push", 3216, 3204, 1, 1],
@@ -10955,8 +10955,8 @@
["setarg", 3224, 1, 3219, 648, 11],
["invoke", 3224, 3222, 648, 11],
["access", 3226, 1, 649, 21],
["add", 3227, 17, 3226, 649, 21],
["move", 17, 3227, 649, 21],
["add", 3227, 18, 3226, 649, 21],
["move", 18, 3227, 649, 21],
["jump", "while_start_866", 649, 21],
"while_end_867",
["frame", 3229, 9, 1, 651, 9],
@@ -11554,11 +11554,11 @@
"nr_close_slots": 0,
"instructions": [
["array", 18, 0, 7, 13],
["move", 6, 18, 7, 13],
["move", 7, 18, 7, 13],
["array", 19, 0, 8, 18],
["move", 3, 19, 8, 18],
["record", 20, 0],
["move", 9, 20, 9, 19],
["move", 13, 20, 9, 19],
["access", 4, 0, 10, 16],
["access", 16, 0, 11, 13],
["function", 21, 0, 17, 14],
@@ -11570,58 +11570,58 @@
["function", 24, 3, 30, 18],
["move", 15, 24, 30, 18],
["function", 25, 4, 46, 20],
["move", 13, 25, 46, 20],
["move", 14, 25, 46, 20],
["function", 26, 5, 62, 19],
["move", 14, 26, 62, 19],
["move", 5, 26, 62, 19],
["function", 27, 7, 75, 20],
["move", 8, 27, 75, 20],
["access", 7, 0, 701, 12],
["move", 9, 27, 75, 20],
["access", 8, 0, 701, 12],
"while_start_920",
["load_field", 28, 1, "functions", 702, 22],
["length", 29, 28, 702, 22],
["is_int", 31, 7, 702, 22],
["is_int", 31, 8, 702, 22],
["jump_false", 31, "rel_ni_922", 702, 22],
"_nop_tc_1",
"_nop_tc_2",
["lt_int", 30, 7, 29, 702, 22],
["lt_int", 30, 8, 29, 702, 22],
["jump", "rel_done_924", 702, 22],
"rel_ni_922",
["is_num", 31, 7, 702, 22],
["is_num", 31, 8, 702, 22],
["jump_false", 31, "rel_nn_923", 702, 22],
"_nop_tc_3",
"_nop_tc_4",
["lt_float", 30, 7, 29, 702, 22],
["lt_float", 30, 8, 29, 702, 22],
["jump", "rel_done_924", 702, 22],
"rel_nn_923",
["is_text", 31, 7, 702, 22],
["is_text", 31, 8, 702, 22],
["jump_false", 31, "rel_err_925", 702, 22],
"_nop_tc_5",
["jump", "rel_err_925", 702, 22],
["lt_text", 30, 7, 29, 702, 22],
["lt_text", 30, 8, 29, 702, 22],
["jump", "rel_done_924", 702, 22],
"rel_err_925",
["disrupt", 702, 22],
"rel_done_924",
["jump_false", 30, "while_end_921", 702, 22],
["load_field", 33, 1, "functions", 703, 16],
["load_dynamic", 34, 33, 7, 703, 29],
["load_dynamic", 34, 33, 8, 703, 29],
["false", 35, 703, 38],
["frame", 37, 8, 3, 703, 5],
["frame", 37, 9, 3, 703, 5],
["null", 38, 703, 5],
["setarg", 37, 0, 38, 703, 5],
["setarg", 37, 1, 34, 703, 5],
["setarg", 37, 2, 7, 703, 5],
["setarg", 37, 2, 8, 703, 5],
["setarg", 37, 3, 35, 703, 5],
["invoke", 37, 36, 703, 5],
["access", 39, 1, 704, 15],
["add", 40, 7, 39, 704, 15],
["move", 7, 40, 704, 15],
["add", 40, 8, 39, 704, 15],
["move", 8, 40, 704, 15],
["jump", "while_start_920", 704, 15],
"while_end_921",
["load_field", 41, 1, "main", 707, 14],
["access", 42, -1, 707, 23],
["true", 43, 707, 27],
["frame", 45, 8, 3, 707, 3],
["frame", 45, 9, 3, 707, 3],
["null", 46, 707, 3],
["setarg", 45, 0, 46, 707, 3],
["setarg", 45, 1, 41, 707, 3],
@@ -11629,7 +11629,7 @@
["setarg", 45, 3, 43, 707, 3],
["invoke", 45, 44, 707, 3],
["array", 47, 0, 710, 16],
["move", 5, 47, 710, 16],
["move", 6, 47, 710, 16],
["access", 17, 0, 711, 12],
"while_start_926",
["length", 48, 3, 712, 22],
@@ -11658,9 +11658,9 @@
"rel_done_930",
["jump_false", 49, "while_end_927", 712, 22],
["load_dynamic", 52, 3, 17, 713, 27],
["is_array", 53, 5, 713, 27],
["is_array", 53, 6, 713, 27],
["jump_false", 53, "push_err_932", 713, 27],
["push", 5, 52, 713, 27],
["push", 6, 52, 713, 27],
["jump", "push_done_933", 713, 27],
"push_err_932",
["disrupt", 713, 27],
@@ -11697,9 +11697,9 @@
"rel_done_938",
["jump_false", 58, "if_else_934", 716, 26],
["access", 61, "", 716, 42],
["is_array", 62, 5, 716, 42],
["is_array", 62, 6, 716, 42],
["jump_false", 62, "push_err_940", 716, 42],
["push", 5, 61, 716, 42],
["push", 6, 61, 716, 42],
["jump", "push_done_941", 716, 42],
"push_err_940",
["disrupt", 716, 42],
@@ -11710,7 +11710,7 @@
["access", 63, 0, 718, 8],
["move", 17, 63, 718, 8],
"while_start_942",
["length", 64, 6, 719, 22],
["length", 64, 7, 719, 22],
["is_int", 66, 17, 719, 22],
["jump_false", 66, "rel_ni_944", 719, 22],
"_nop_tc_20",
@@ -11735,10 +11735,10 @@
["disrupt", 719, 22],
"rel_done_946",
["jump_false", 65, "while_end_943", 719, 22],
["load_dynamic", 68, 6, 17, 720, 22],
["is_array", 69, 5, 720, 22],
["load_dynamic", 68, 7, 17, 720, 22],
["is_array", 69, 6, 720, 22],
["jump_false", 69, "push_err_948", 720, 22],
["push", 5, 68, 720, 22],
["push", 6, 68, 720, 22],
["jump", "push_done_949", 720, 22],
"push_err_948",
["disrupt", 720, 22],
@@ -11763,7 +11763,7 @@
["frame", 75, 74, 2, 724, 10],
["null", 76, 724, 10],
["setarg", 75, 0, 76, 724, 10],
["setarg", 75, 1, 5, 724, 10],
["setarg", 75, 1, 6, 724, 10],
["setarg", 75, 2, 72, 724, 10],
["tail_invoke", 75, 73, 724, 10],
["return", 73, 724, 10],