diff --git a/Makefile b/Makefile index a06acf34..0661d357 100755 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ CELL_SHOP = $(HOME)/.cell CELL_CORE_PACKAGE = $(CELL_SHOP)/packages/core -# .cm sources that compile to .mach bytecode +# .cm sources that compile to .mcode bytecode MACH_SOURCES = tokenize.cm parse.cm fold.cm mcode.cm \ internal/bootstrap.cm internal/engine.cm diff --git a/boot/bootstrap.cm.mcode b/boot/bootstrap.cm.mcode new file mode 100644 index 00000000..c6110906 --- /dev/null +++ b/boot/bootstrap.cm.mcode @@ -0,0 +1,2791 @@ +{ + "name": "internal/bootstrap.cm", + "functions": [ + { + "disruption_pc": 0, + "nr_slots": 15, + "nr_close_slots": 0, + "instructions": [ + ["access", 2, "js_", 7, 24], + "_nop_tc_1", + ["jump", "add_ni_0", 7, 32], + ["is_int", 5, 1, 7, 32], + ["jump_false", 5, "add_ni_0", 7, 32], + ["add_int", 3, 2, 1, 7, 32], + ["jump", "add_done_2", 7, 32], + "add_ni_0", + ["is_text", 5, 1, 7, 32], + ["jump_false", 5, "add_nt_1", 7, 32], + ["concat", 3, 2, 1, 7, 32], + ["jump", "add_done_2", 7, 32], + "add_nt_1", + ["is_num", 4, 2, 7, 32], + ["jump_false", 4, "add_err_3", 7, 32], + ["is_num", 5, 1, 7, 32], + ["jump_false", 5, "add_err_3", 7, 32], + ["add_float", 3, 2, 1, 7, 32], + ["jump", "add_done_2", 7, 32], + "add_err_3", + ["disrupt", 7, 32], + "add_done_2", + ["access", 6, "_use", 7, 39], + ["is_int", 8, 3, 7, 39], + ["jump_false", 8, "add_ni_4", 7, 39], + "_nop_tc_2", + ["jump", "add_ni_4", 7, 39], + ["add_int", 7, 3, 6, 7, 39], + ["jump", "add_done_6", 7, 39], + "add_ni_4", + ["is_text", 8, 3, 7, 39], + ["jump_false", 8, "add_nt_5", 7, 39], + ["concat", 7, 3, 6, 7, 39], + ["jump", "add_done_6", 7, 39], + "add_nt_5", + ["is_num", 8, 3, 7, 39], + ["jump_false", 8, "add_err_7", 7, 39], + ["is_num", 9, 6, 7, 39], + ["jump_false", 9, "add_err_7", 7, 39], + ["add_float", 7, 3, 6, 7, 39], + ["jump", "add_done_6", 7, 39], + "add_err_7", + ["disrupt", 7, 39], + "add_done_6", + ["get", 11, 18, 1, 7, 10], + ["frame", 12, 11, 1, 7, 10], + ["null", 13, 7, 10], + ["setarg", 12, 0, 13, 7, 10], + ["setarg", 12, 1, 7, 7, 10], + ["invoke", 12, 10, 7, 10], + ["return", 10, 7, 10], + ["null", 14, 7, 10], + ["return", 14, 7, 10] + ], + "name": "use_embed", + "filename": "internal/bootstrap.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 17, + "nr_close_slots": 0, + "instructions": [ + ["get", 3, 19, 1, 21, 15], + ["is_proxy", 4, 3, 21, 15], + ["jump_false", 4, "record_path_8", 21, 15], + ["null", 5, 21, 15], + ["access", 6, "blake2", 21, 15], + ["array", 7, 0, 21, 15], + ["push", 7, 1, 21, 15], + ["frame", 8, 3, 2, 21, 15], + ["setarg", 8, 0, 5, 21, 15], + ["setarg", 8, 1, 6, 21, 15], + ["setarg", 8, 2, 7, 21, 15], + ["invoke", 8, 2, 21, 15], + ["jump", "call_done_9", 21, 15], + "record_path_8", + ["load_field", 9, 3, "blake2", 21, 15], + ["frame", 10, 9, 1, 21, 15], + ["setarg", 10, 0, 3, 21, 15], + ["setarg", 10, 1, 1, 21, 15], + ["invoke", 10, 2, 21, 15], + "call_done_9", + ["access", 11, "h", 21, 39], + [ + "access", + 13, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 21, + 10 + ], + ["frame", 14, 13, 2, 21, 10], + ["null", 15, 21, 10], + ["setarg", 14, 0, 15, 21, 10], + ["setarg", 14, 1, 2, 21, 10], + ["setarg", 14, 2, 11, 21, 10], + ["invoke", 14, 12, 21, 10], + ["return", 12, 21, 10], + ["null", 16, 21, 10], + ["return", 16, 21, 10] + ], + "name": "content_hash", + "filename": "internal/bootstrap.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 18, + "nr_close_slots": 0, + "instructions": [ + [ + "access", + 2, + { + "name": "shop_path", + "kind": "name", + "make": "intrinsic" + }, + 25, + 8 + ], + "_nop_bl_1", + ["jump_true", 2, "if_else_10", 25, 8], + ["null", 4, 25, 26], + ["return", 4, 25, 26], + ["jump", "if_end_11", 25, 26], + "if_else_10", + "if_end_11", + [ + "access", + 5, + { + "name": "shop_path", + "kind": "name", + "make": "intrinsic" + }, + 26, + 10 + ], + ["access", 6, "/build/", 26, 22], + ["is_int", 8, 5, 26, 22], + ["jump_false", 8, "add_ni_12", 26, 22], + "_nop_tc_1", + ["jump", "add_ni_12", 26, 22], + ["add_int", 7, 5, 6, 26, 22], + ["jump", "add_done_14", 26, 22], + "add_ni_12", + ["is_text", 8, 5, 26, 22], + ["jump_false", 8, "add_nt_13", 26, 22], + ["concat", 7, 5, 6, 26, 22], + ["jump", "add_done_14", 26, 22], + "add_nt_13", + ["is_num", 8, 5, 26, 22], + ["jump_false", 8, "add_err_15", 26, 22], + ["is_num", 9, 6, 26, 22], + ["jump_false", 9, "add_err_15", 26, 22], + ["add_float", 7, 5, 6, 26, 22], + ["jump", "add_done_14", 26, 22], + "add_err_15", + ["disrupt", 26, 22], + "add_done_14", + ["is_int", 11, 7, 26, 34], + ["jump_false", 11, "add_ni_16", 26, 34], + ["is_int", 12, 1, 26, 34], + ["jump_false", 12, "add_ni_16", 26, 34], + ["add_int", 10, 7, 1, 26, 34], + ["jump", "add_done_18", 26, 34], + "add_ni_16", + ["is_text", 11, 7, 26, 34], + ["jump_false", 11, "add_nt_17", 26, 34], + ["is_text", 12, 1, 26, 34], + ["jump_false", 12, "add_nt_17", 26, 34], + ["concat", 10, 7, 1, 26, 34], + ["jump", "add_done_18", 26, 34], + "add_nt_17", + ["is_num", 11, 7, 26, 34], + ["jump_false", 11, "add_err_19", 26, 34], + ["is_num", 12, 1, 26, 34], + ["jump_false", 12, "add_err_19", 26, 34], + ["add_float", 10, 7, 1, 26, 34], + ["jump", "add_done_18", 26, 34], + "add_err_19", + ["disrupt", 26, 34], + "add_done_18", + ["access", 13, ".mach", 26, 41], + ["is_int", 15, 10, 26, 41], + ["jump_false", 15, "add_ni_20", 26, 41], + "_nop_tc_2", + ["jump", "add_ni_20", 26, 41], + ["add_int", 14, 10, 13, 26, 41], + ["jump", "add_done_22", 26, 41], + "add_ni_20", + ["is_text", 15, 10, 26, 41], + ["jump_false", 15, "add_nt_21", 26, 41], + ["concat", 14, 10, 13, 26, 41], + ["jump", "add_done_22", 26, 41], + "add_nt_21", + ["is_num", 15, 10, 26, 41], + ["jump_false", 15, "add_err_23", 26, 41], + ["is_num", 16, 13, 26, 41], + ["jump_false", 16, "add_err_23", 26, 41], + ["add_float", 14, 10, 13, 26, 41], + ["jump", "add_done_22", 26, 41], + "add_err_23", + ["disrupt", 26, 41], + "add_done_22", + ["return", 14, 26, 41], + ["null", 17, 26, 41], + ["return", 17, 26, 41] + ], + "name": "cache_path", + "filename": "internal/bootstrap.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 30, + "nr_close_slots": 0, + "instructions": [ + [ + "access", + 2, + { + "name": "shop_path", + "kind": "name", + "make": "intrinsic" + }, + 30, + 8 + ], + "_nop_bl_1", + ["jump_true", 2, "if_else_24", 30, 8], + ["null", 4, 30, 26], + ["return", 4, 30, 26], + ["jump", "if_end_25", 30, 26], + "if_else_24", + "if_end_25", + [ + "access", + 5, + { + "name": "shop_path", + "kind": "name", + "make": "intrinsic" + }, + 31, + 13 + ], + ["access", 6, "/build", 31, 25], + ["is_int", 8, 5, 31, 25], + ["jump_false", 8, "add_ni_26", 31, 25], + "_nop_tc_1", + ["jump", "add_ni_26", 31, 25], + ["add_int", 7, 5, 6, 31, 25], + ["jump", "add_done_28", 31, 25], + "add_ni_26", + ["is_text", 8, 5, 31, 25], + ["jump_false", 8, "add_nt_27", 31, 25], + ["concat", 7, 5, 6, 31, 25], + ["jump", "add_done_28", 31, 25], + "add_nt_27", + ["is_num", 8, 5, 31, 25], + ["jump_false", 8, "add_err_29", 31, 25], + ["is_num", 9, 6, 31, 25], + ["jump_false", 9, "add_err_29", 31, 25], + ["add_float", 7, 5, 6, 31, 25], + ["jump", "add_done_28", 31, 25], + "add_err_29", + ["disrupt", 31, 25], + "add_done_28", + ["move", 1, 7, 31, 25], + ["get", 11, 15, 1, 32, 8], + ["is_proxy", 12, 11, 32, 8], + ["jump_false", 12, "record_path_32", 32, 8], + ["null", 13, 32, 8], + ["access", 14, "is_dir", 32, 8], + ["array", 15, 0, 32, 8], + ["push", 15, 1, 32, 8], + ["frame", 16, 11, 2, 32, 8], + ["setarg", 16, 0, 13, 32, 8], + ["setarg", 16, 1, 14, 32, 8], + ["setarg", 16, 2, 15, 32, 8], + ["invoke", 16, 10, 32, 8], + ["jump", "call_done_33", 32, 8], + "record_path_32", + ["load_field", 17, 11, "is_dir", 32, 8], + ["frame", 18, 17, 1, 32, 8], + ["setarg", 18, 0, 11, 32, 8], + ["setarg", 18, 1, 1, 32, 8], + ["invoke", 18, 10, 32, 8], + "call_done_33", + "_nop_bl_2", + ["jump_true", 10, "if_else_30", 32, 8], + ["get", 21, 15, 1, 33, 5], + ["is_proxy", 22, 21, 33, 5], + ["jump_false", 22, "record_path_34", 33, 5], + ["null", 23, 33, 5], + ["access", 24, "mkdir", 33, 5], + ["array", 25, 0, 33, 5], + ["push", 25, 1, 33, 5], + ["frame", 26, 21, 2, 33, 5], + ["setarg", 26, 0, 23, 33, 5], + ["setarg", 26, 1, 24, 33, 5], + ["setarg", 26, 2, 25, 33, 5], + ["invoke", 26, 20, 33, 5], + ["jump", "call_done_35", 33, 5], + "record_path_34", + ["load_field", 27, 21, "mkdir", 33, 5], + ["frame", 28, 27, 1, 33, 5], + ["setarg", 28, 0, 21, 33, 5], + ["setarg", 28, 1, 1, 33, 5], + ["invoke", 28, 20, 33, 5], + "call_done_35", + ["jump", "if_end_31", 33, 5], + "if_else_30", + "if_end_31", + ["return", 1, 35, 10], + ["null", 29, 35, 10], + ["return", 29, 35, 10] + ], + "name": "ensure_build_dir", + "filename": "internal/bootstrap.cm", + "nr_args": 0 + }, + { + "disruption_pc": 0, + "nr_slots": 19, + "nr_close_slots": 0, + "instructions": [ + ["get", 3, 22, 1, 40, 7], + ["load_dynamic", 4, 3, 1, 40, 17], + ["jump_false", 4, "if_else_36", 40, 17], + ["get", 5, 22, 1, 41, 12], + ["load_dynamic", 6, 5, 1, 41, 22], + ["return", 6, 41, 22], + ["jump", "if_end_37", 41, 22], + "if_else_36", + "if_end_37", + ["access", 7, "/", 42, 40], + ["access", 8, "_", 42, 45], + [ + "access", + 10, + { + "name": "replace", + "kind": "name", + "make": "intrinsic" + }, + 42, + 26 + ], + ["frame", 11, 10, 3, 42, 26], + ["null", 12, 42, 26], + ["setarg", 11, 0, 12, 42, 26], + ["setarg", 11, 1, 1, 42, 26], + ["setarg", 11, 2, 7, 42, 26], + ["setarg", 11, 3, 8, 42, 26], + ["invoke", 11, 9, 42, 26], + ["get", 14, 12, 1, 42, 16], + ["frame", 15, 14, 1, 42, 16], + ["null", 16, 42, 16], + ["setarg", 15, 0, 16, 42, 16], + ["setarg", 15, 1, 9, 42, 16], + ["invoke", 15, 13, 42, 16], + ["move", 2, 13, 42, 16], + ["get", 17, 22, 1, 43, 3], + ["store_dynamic", 17, 2, 1, 43, 13], + ["return", 2, 44, 10], + ["null", 18, 44, 10], + ["return", 18, 44, 10] + ], + "name": "use_basic", + "filename": "internal/bootstrap.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 108, + "nr_close_slots": 0, + "instructions": [ + [ + "access", + 9, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 49, + 20 + ], + ["access", 10, "/boot/", 49, 32], + ["is_int", 12, 9, 49, 32], + ["jump_false", 12, "add_ni_38", 49, 32], + "_nop_tc_1", + ["jump", "add_ni_38", 49, 32], + ["add_int", 11, 9, 10, 49, 32], + ["jump", "add_done_40", 49, 32], + "add_ni_38", + ["is_text", 12, 9, 49, 32], + ["jump_false", 12, "add_nt_39", 49, 32], + ["concat", 11, 9, 10, 49, 32], + ["jump", "add_done_40", 49, 32], + "add_nt_39", + ["is_num", 12, 9, 49, 32], + ["jump_false", 12, "add_err_41", 49, 32], + ["is_num", 13, 10, 49, 32], + ["jump_false", 13, "add_err_41", 49, 32], + ["add_float", 11, 9, 10, 49, 32], + ["jump", "add_done_40", 49, 32], + "add_err_41", + ["disrupt", 49, 32], + "add_done_40", + ["is_int", 15, 11, 49, 43], + ["jump_false", 15, "add_ni_42", 49, 43], + ["is_int", 16, 1, 49, 43], + ["jump_false", 16, "add_ni_42", 49, 43], + ["add_int", 14, 11, 1, 49, 43], + ["jump", "add_done_44", 49, 43], + "add_ni_42", + ["is_text", 15, 11, 49, 43], + ["jump_false", 15, "add_nt_43", 49, 43], + ["is_text", 16, 1, 49, 43], + ["jump_false", 16, "add_nt_43", 49, 43], + ["concat", 14, 11, 1, 49, 43], + ["jump", "add_done_44", 49, 43], + "add_nt_43", + ["is_num", 15, 11, 49, 43], + ["jump_false", 15, "add_err_45", 49, 43], + ["is_num", 16, 1, 49, 43], + ["jump_false", 16, "add_err_45", 49, 43], + ["add_float", 14, 11, 1, 49, 43], + ["jump", "add_done_44", 49, 43], + "add_err_45", + ["disrupt", 49, 43], + "add_done_44", + ["access", 17, ".cm.mcode", 49, 50], + ["is_int", 19, 14, 49, 50], + ["jump_false", 19, "add_ni_46", 49, 50], + "_nop_tc_2", + ["jump", "add_ni_46", 49, 50], + ["add_int", 18, 14, 17, 49, 50], + ["jump", "add_done_48", 49, 50], + "add_ni_46", + ["is_text", 19, 14, 49, 50], + ["jump_false", 19, "add_nt_47", 49, 50], + ["concat", 18, 14, 17, 49, 50], + ["jump", "add_done_48", 49, 50], + "add_nt_47", + ["is_num", 19, 14, 49, 50], + ["jump_false", 19, "add_err_49", 49, 50], + ["is_num", 20, 17, 49, 50], + ["jump_false", 20, "add_err_49", 49, 50], + ["add_float", 18, 14, 17, 49, 50], + ["jump", "add_done_48", 49, 50], + "add_err_49", + ["disrupt", 49, 50], + "add_done_48", + ["move", 8, 18, 49, 50], + ["null", 4, 50, 20], + ["null", 5, 51, 14], + ["null", 7, 52, 16], + ["null", 6, 53, 20], + ["null", 3, 54, 19], + ["get", 22, 15, 1, 55, 7], + ["is_proxy", 23, 22, 55, 7], + ["jump_false", 23, "record_path_52", 55, 7], + ["null", 24, 55, 7], + ["access", 25, "is_file", 55, 7], + ["array", 26, 0, 55, 7], + ["push", 26, 8, 55, 7], + ["frame", 27, 22, 2, 55, 7], + ["setarg", 27, 0, 24, 55, 7], + ["setarg", 27, 1, 25, 55, 7], + ["setarg", 27, 2, 26, 55, 7], + ["invoke", 27, 21, 55, 7], + ["jump", "call_done_53", 55, 7], + "record_path_52", + ["load_field", 28, 22, "is_file", 55, 7], + ["frame", 29, 28, 1, 55, 7], + ["setarg", 29, 0, 22, 55, 7], + ["setarg", 29, 1, 8, 55, 7], + ["invoke", 29, 21, 55, 7], + "call_done_53", + ["jump_false", 21, "if_else_50", 55, 7], + ["get", 31, 15, 1, 56, 18], + ["is_proxy", 32, 31, 56, 18], + ["jump_false", 32, "record_path_54", 56, 18], + ["null", 33, 56, 18], + ["access", 34, "slurp", 56, 18], + ["array", 35, 0, 56, 18], + ["push", 35, 8, 56, 18], + ["frame", 36, 31, 2, 56, 18], + ["setarg", 36, 0, 33, 56, 18], + ["setarg", 36, 1, 34, 56, 18], + ["setarg", 36, 2, 35, 56, 18], + ["invoke", 36, 30, 56, 18], + ["jump", "call_done_55", 56, 18], + "record_path_54", + ["load_field", 37, 31, "slurp", 56, 18], + ["frame", 38, 37, 1, 56, 18], + ["setarg", 38, 0, 31, 56, 18], + ["setarg", 38, 1, 8, 56, 18], + ["invoke", 38, 30, 56, 18], + "call_done_55", + ["move", 4, 30, 56, 18], + ["get", 40, 11, 1, 57, 12], + ["frame", 41, 40, 1, 57, 12], + ["null", 42, 57, 12], + ["setarg", 41, 0, 42, 57, 12], + ["setarg", 41, 1, 4, 57, 12], + ["invoke", 41, 39, 57, 12], + ["move", 5, 39, 57, 12], + ["get", 44, 13, 1, 58, 14], + ["frame", 45, 44, 1, 58, 14], + ["null", 46, 58, 14], + ["setarg", 45, 0, 46, 58, 14], + ["setarg", 45, 1, 5, 58, 14], + ["invoke", 45, 43, 58, 14], + ["move", 7, 43, 58, 14], + ["move", 47, 7, 59, 9], + ["jump_false", 47, "and_end_58", 59, 9], + ["get", 49, 15, 1, 59, 19], + ["is_proxy", 50, 49, 59, 19], + ["jump_false", 50, "record_path_59", 59, 19], + ["null", 51, 59, 19], + ["access", 52, "is_file", 59, 19], + ["array", 53, 0, 59, 19], + ["push", 53, 7, 59, 19], + ["frame", 54, 49, 2, 59, 19], + ["setarg", 54, 0, 51, 59, 19], + ["setarg", 54, 1, 52, 59, 19], + ["setarg", 54, 2, 53, 59, 19], + ["invoke", 54, 48, 59, 19], + ["jump", "call_done_60", 59, 19], + "record_path_59", + ["load_field", 55, 49, "is_file", 59, 19], + ["frame", 56, 55, 1, 59, 19], + ["setarg", 56, 0, 49, 59, 19], + ["setarg", 56, 1, 7, 59, 19], + ["invoke", 56, 48, 59, 19], + "call_done_60", + ["move", 47, 48, 59, 19], + "and_end_58", + ["jump_false", 47, "if_else_56", 59, 19], + ["get", 58, 15, 1, 60, 24], + ["is_proxy", 59, 58, 60, 24], + ["jump_false", 59, "record_path_61", 60, 24], + ["null", 60, 60, 24], + ["access", 61, "slurp", 60, 24], + ["array", 62, 0, 60, 24], + ["push", 62, 7, 60, 24], + ["frame", 63, 58, 2, 60, 24], + ["setarg", 63, 0, 60, 60, 24], + ["setarg", 63, 1, 61, 60, 24], + ["setarg", 63, 2, 62, 60, 24], + ["invoke", 63, 57, 60, 24], + ["jump", "call_done_62", 60, 24], + "record_path_61", + ["load_field", 64, 58, "slurp", 60, 24], + ["frame", 65, 64, 1, 60, 24], + ["setarg", 65, 0, 58, 60, 24], + ["setarg", 65, 1, 7, 60, 24], + ["invoke", 65, 57, 60, 24], + "call_done_62", + [ + "access", + 67, + { + "name": "mach_load", + "kind": "name", + "make": "intrinsic" + }, + 60, + 14 + ], + ["frame", 68, 67, 2, 60, 14], + ["null", 69, 60, 14], + ["setarg", 68, 0, 69, 60, 14], + ["setarg", 68, 1, 57, 60, 14], + ["setarg", 68, 2, 2, 60, 14], + ["invoke", 68, 66, 60, 14], + ["return", 66, 60, 14], + ["jump", "if_end_57", 60, 14], + "if_else_56", + "if_end_57", + [ + "access", + 71, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 62, + 18 + ], + ["frame", 72, 71, 1, 62, 18], + ["null", 73, 62, 18], + ["setarg", 72, 0, 73, 62, 18], + ["setarg", 72, 1, 4, 62, 18], + ["invoke", 72, 70, 62, 18], + ["move", 6, 70, 62, 18], + [ + "access", + 75, + { + "name": "mach_compile_mcode_bin", + "kind": "name", + "make": "intrinsic" + }, + 63, + 17 + ], + ["frame", 76, 75, 2, 63, 17], + ["null", 77, 63, 17], + ["setarg", 76, 0, 77, 63, 17], + ["setarg", 76, 1, 1, 63, 17], + ["setarg", 76, 2, 6, 63, 17], + ["invoke", 76, 74, 63, 17], + ["move", 3, 74, 63, 17], + ["jump_false", 7, "if_else_63", 64, 9], + ["get", 79, 1, 1, 65, 7], + ["frame", 80, 79, 0, 65, 7], + ["null", 81, 65, 7], + ["setarg", 80, 0, 81, 65, 7], + ["invoke", 80, 78, 65, 7], + ["get", 83, 15, 1, 66, 7], + ["is_proxy", 84, 83, 66, 7], + ["jump_false", 84, "record_path_65", 66, 7], + ["null", 85, 66, 7], + ["access", 86, "slurpwrite", 66, 7], + ["array", 87, 0, 66, 7], + ["push", 87, 7, 66, 7], + ["push", 87, 3, 66, 7], + ["frame", 88, 83, 2, 66, 7], + ["setarg", 88, 0, 85, 66, 7], + ["setarg", 88, 1, 86, 66, 7], + ["setarg", 88, 2, 87, 66, 7], + ["invoke", 88, 82, 66, 7], + ["jump", "call_done_66", 66, 7], + "record_path_65", + ["load_field", 89, 83, "slurpwrite", 66, 7], + ["frame", 90, 89, 2, 66, 7], + ["setarg", 90, 0, 83, 66, 7], + ["setarg", 90, 1, 7, 66, 7], + ["setarg", 90, 2, 3, 66, 7], + ["invoke", 90, 82, 66, 7], + "call_done_66", + ["jump", "if_end_64", 66, 7], + "if_else_63", + "if_end_64", + [ + "access", + 92, + { + "name": "mach_load", + "kind": "name", + "make": "intrinsic" + }, + 68, + 12 + ], + ["frame", 93, 92, 2, 68, 12], + ["null", 94, 68, 12], + ["setarg", 93, 0, 94, 68, 12], + ["setarg", 93, 1, 3, 68, 12], + ["setarg", 93, 2, 2, 68, 12], + ["invoke", 93, 91, 68, 12], + ["return", 91, 68, 12], + ["jump", "if_end_51", 68, 12], + "if_else_50", + "if_end_51", + ["access", 95, "error: missing bootstrap bytecode: ", 70, 9], + "_nop_tc_3", + ["jump", "add_ni_67", 70, 49], + ["is_int", 98, 1, 70, 49], + ["jump_false", 98, "add_ni_67", 70, 49], + ["add_int", 96, 95, 1, 70, 49], + ["jump", "add_done_69", 70, 49], + "add_ni_67", + ["is_text", 98, 1, 70, 49], + ["jump_false", 98, "add_nt_68", 70, 49], + ["concat", 96, 95, 1, 70, 49], + ["jump", "add_done_69", 70, 49], + "add_nt_68", + ["is_num", 97, 95, 70, 49], + ["jump_false", 97, "add_err_70", 70, 49], + ["is_num", 98, 1, 70, 49], + ["jump_false", 98, "add_err_70", 70, 49], + ["add_float", 96, 95, 1, 70, 49], + ["jump", "add_done_69", 70, 49], + "add_err_70", + ["disrupt", 70, 49], + "add_done_69", + ["access", 99, "\n", 70, 56], + ["is_int", 101, 96, 70, 56], + ["jump_false", 101, "add_ni_71", 70, 56], + "_nop_tc_4", + ["jump", "add_ni_71", 70, 56], + ["add_int", 100, 96, 99, 70, 56], + ["jump", "add_done_73", 70, 56], + "add_ni_71", + ["is_text", 101, 96, 70, 56], + ["jump_false", 101, "add_nt_72", 70, 56], + ["concat", 100, 96, 99, 70, 56], + ["jump", "add_done_73", 70, 56], + "add_nt_72", + ["is_num", 101, 96, 70, 56], + ["jump_false", 101, "add_err_74", 70, 56], + ["is_num", 102, 99, 70, 56], + ["jump_false", 102, "add_err_74", 70, 56], + ["add_float", 100, 96, 99, 70, 56], + ["jump", "add_done_73", 70, 56], + "add_err_74", + ["disrupt", 70, 56], + "add_done_73", + [ + "access", + 104, + { + "name": "print", + "kind": "name", + "make": "intrinsic" + }, + 70, + 3 + ], + ["frame", 105, 104, 1, 70, 3], + ["null", 106, 70, 3], + ["setarg", 105, 0, 106, 70, 3], + ["setarg", 105, 1, 100, 70, 3], + ["invoke", 105, 103, 70, 3], + ["disrupt", 71, 3], + ["null", 107, 71, 3], + ["return", 107, 71, 3] + ], + "name": "boot_load", + "filename": "internal/bootstrap.cm", + "nr_args": 2 + }, + { + "disruption_pc": 0, + "nr_slots": 140, + "nr_close_slots": 0, + "instructions": [ + ["record", 9, 0], + ["access", 10, "tokenize.cm", 90, 11], + ["store_field", 9, 10, "src", 90, 11], + ["access", 11, "boot/tokenize.cm.mcode", 90, 33], + ["store_field", 9, 11, "mcode", 90, 33], + ["record", 12, 0], + ["access", 13, "parse.cm", 91, 11], + ["store_field", 12, 13, "src", 91, 11], + ["access", 14, "boot/parse.cm.mcode", 91, 30], + ["store_field", 12, 14, "mcode", 91, 30], + ["record", 15, 0], + ["access", 16, "fold.cm", 92, 11], + ["store_field", 15, 16, "src", 92, 11], + ["access", 17, "boot/fold.cm.mcode", 92, 29], + ["store_field", 15, 17, "mcode", 92, 29], + ["record", 18, 0], + ["access", 19, "mcode.cm", 93, 11], + ["store_field", 18, 19, "src", 93, 11], + ["access", 20, "boot/mcode.cm.mcode", 93, 30], + ["store_field", 18, 20, "mcode", 93, 30], + ["record", 21, 0], + ["access", 22, "streamline.cm", 94, 11], + ["store_field", 21, 22, "src", 94, 11], + ["access", 23, "boot/streamline.cm.mcode", 94, 35], + ["store_field", 21, 23, "mcode", 94, 35], + ["record", 24, 0], + ["access", 25, "qbe.cm", 95, 11], + ["store_field", 24, 25, "src", 95, 11], + ["access", 26, "boot/qbe.cm.mcode", 95, 28], + ["store_field", 24, 26, "mcode", 95, 28], + ["record", 27, 0], + ["access", 28, "qbe_emit.cm", 96, 11], + ["store_field", 27, 28, "src", 96, 11], + ["access", 29, "boot/qbe_emit.cm.mcode", 96, 33], + ["store_field", 27, 29, "mcode", 96, 33], + ["record", 30, 0], + ["access", 31, "verify_ir.cm", 97, 11], + ["store_field", 30, 31, "src", 97, 11], + ["access", 32, "boot/verify_ir.cm.mcode", 97, 34], + ["store_field", 30, 32, "mcode", 97, 34], + ["record", 33, 0], + ["access", 34, "internal/bootstrap.cm", 98, 11], + ["store_field", 33, 34, "src", 98, 11], + ["access", 35, "boot/bootstrap.cm.mcode", 98, 43], + ["store_field", 33, 35, "mcode", 98, 43], + ["record", 36, 0], + ["access", 37, "internal/engine.cm", 99, 11], + ["store_field", 36, 37, "src", 99, 11], + ["access", 38, "boot/engine.cm.mcode", 99, 40], + ["store_field", 36, 38, "mcode", 99, 40], + ["array", 39, 0, 99, 40], + ["push", 39, 9, 99, 40], + ["push", 39, 12, 99, 40], + ["push", 39, 15, 99, 40], + ["push", 39, 18, 99, 40], + ["push", 39, 21, 99, 40], + ["push", 39, 24, 99, 40], + ["push", 39, 27, 99, 40], + ["push", 39, 30, 99, 40], + ["push", 39, 33, 99, 40], + ["push", 39, 36, 99, 40], + ["move", 6, 39, 99, 40], + ["array", 40, 0, 101, 15], + ["move", 3, 40, 101, 15], + ["access", 7, 0, 102, 12], + ["null", 1, 103, 17], + ["null", 8, 104, 20], + ["null", 4, 105, 17], + ["null", 5, 106, 23], + ["null", 2, 107, 15], + "while_start_75", + ["length", 41, 6, 108, 22], + ["is_int", 43, 7, 108, 22], + ["jump_false", 43, "rel_ni_77", 108, 22], + "_nop_tc_1", + "_nop_tc_2", + ["lt_int", 42, 7, 41, 108, 22], + ["jump", "rel_done_79", 108, 22], + "rel_ni_77", + ["is_num", 43, 7, 108, 22], + ["jump_false", 43, "rel_nn_78", 108, 22], + ["is_num", 44, 41, 108, 22], + ["jump_false", 44, "rel_nn_78", 108, 22], + ["lt_float", 42, 7, 41, 108, 22], + ["jump", "rel_done_79", 108, 22], + "rel_nn_78", + ["is_text", 43, 7, 108, 22], + ["jump_false", 43, "rel_err_80", 108, 22], + ["is_text", 44, 41, 108, 22], + ["jump_false", 44, "rel_err_80", 108, 22], + ["lt_text", 42, 7, 41, 108, 22], + ["jump", "rel_done_79", 108, 22], + "rel_err_80", + ["disrupt", 108, 22], + "rel_done_79", + ["jump_false", 42, "while_end_76", 108, 22], + ["load_dynamic", 45, 6, 7, 109, 21], + ["move", 2, 45, 109, 21], + [ + "access", + 46, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 110, + 15 + ], + ["access", 47, "/", 110, 27], + ["is_int", 49, 46, 110, 27], + ["jump_false", 49, "add_ni_81", 110, 27], + "_nop_tc_3", + ["jump", "add_ni_81", 110, 27], + ["add_int", 48, 46, 47, 110, 27], + ["jump", "add_done_83", 110, 27], + "add_ni_81", + ["is_text", 49, 46, 110, 27], + ["jump_false", 49, "add_nt_82", 110, 27], + ["concat", 48, 46, 47, 110, 27], + ["jump", "add_done_83", 110, 27], + "add_nt_82", + ["is_num", 49, 46, 110, 27], + ["jump_false", 49, "add_err_84", 110, 27], + ["is_num", 50, 47, 110, 27], + ["jump_false", 50, "add_err_84", 110, 27], + ["add_float", 48, 46, 47, 110, 27], + ["jump", "add_done_83", 110, 27], + "add_err_84", + ["disrupt", 110, 27], + "add_done_83", + ["load_field", 51, 2, "src", 110, 33], + ["is_int", 53, 48, 110, 33], + ["jump_false", 53, "add_ni_85", 110, 33], + ["is_int", 54, 51, 110, 33], + ["jump_false", 54, "add_ni_85", 110, 33], + ["add_int", 52, 48, 51, 110, 33], + ["jump", "add_done_87", 110, 33], + "add_ni_85", + ["is_text", 53, 48, 110, 33], + ["jump_false", 53, "add_nt_86", 110, 33], + ["is_text", 54, 51, 110, 33], + ["jump_false", 54, "add_nt_86", 110, 33], + ["concat", 52, 48, 51, 110, 33], + ["jump", "add_done_87", 110, 33], + "add_nt_86", + ["is_num", 53, 48, 110, 33], + ["jump_false", 53, "add_err_88", 110, 33], + ["is_num", 54, 51, 110, 33], + ["jump_false", 54, "add_err_88", 110, 33], + ["add_float", 52, 48, 51, 110, 33], + ["jump", "add_done_87", 110, 33], + "add_err_88", + ["disrupt", 110, 33], + "add_done_87", + ["move", 1, 52, 110, 33], + [ + "access", + 55, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 111, + 18 + ], + ["access", 56, "/", 111, 30], + ["is_int", 58, 55, 111, 30], + ["jump_false", 58, "add_ni_89", 111, 30], + "_nop_tc_4", + ["jump", "add_ni_89", 111, 30], + ["add_int", 57, 55, 56, 111, 30], + ["jump", "add_done_91", 111, 30], + "add_ni_89", + ["is_text", 58, 55, 111, 30], + ["jump_false", 58, "add_nt_90", 111, 30], + ["concat", 57, 55, 56, 111, 30], + ["jump", "add_done_91", 111, 30], + "add_nt_90", + ["is_num", 58, 55, 111, 30], + ["jump_false", 58, "add_err_92", 111, 30], + ["is_num", 59, 56, 111, 30], + ["jump_false", 59, "add_err_92", 111, 30], + ["add_float", 57, 55, 56, 111, 30], + ["jump", "add_done_91", 111, 30], + "add_err_92", + ["disrupt", 111, 30], + "add_done_91", + ["load_field", 60, 2, "mcode", 111, 36], + ["is_int", 62, 57, 111, 36], + ["jump_false", 62, "add_ni_93", 111, 36], + ["is_int", 63, 60, 111, 36], + ["jump_false", 63, "add_ni_93", 111, 36], + ["add_int", 61, 57, 60, 111, 36], + ["jump", "add_done_95", 111, 36], + "add_ni_93", + ["is_text", 62, 57, 111, 36], + ["jump_false", 62, "add_nt_94", 111, 36], + ["is_text", 63, 60, 111, 36], + ["jump_false", 63, "add_nt_94", 111, 36], + ["concat", 61, 57, 60, 111, 36], + ["jump", "add_done_95", 111, 36], + "add_nt_94", + ["is_num", 62, 57, 111, 36], + ["jump_false", 62, "add_err_96", 111, 36], + ["is_num", 63, 60, 111, 36], + ["jump_false", 63, "add_err_96", 111, 36], + ["add_float", 61, 57, 60, 111, 36], + ["jump", "add_done_95", 111, 36], + "add_err_96", + ["disrupt", 111, 36], + "add_done_95", + ["move", 8, 61, 111, 36], + ["get", 65, 15, 1, 112, 9], + ["is_proxy", 66, 65, 112, 9], + ["jump_false", 66, "record_path_100", 112, 9], + ["null", 67, 112, 9], + ["access", 68, "is_file", 112, 9], + ["array", 69, 0, 112, 9], + ["push", 69, 8, 112, 9], + ["frame", 70, 65, 2, 112, 9], + ["setarg", 70, 0, 67, 112, 9], + ["setarg", 70, 1, 68, 112, 9], + ["setarg", 70, 2, 69, 112, 9], + ["invoke", 70, 64, 112, 9], + ["jump", "call_done_101", 112, 9], + "record_path_100", + ["load_field", 71, 65, "is_file", 112, 9], + ["frame", 72, 71, 1, 112, 9], + ["setarg", 72, 0, 65, 112, 9], + ["setarg", 72, 1, 8, 112, 9], + ["invoke", 72, 64, 112, 9], + "call_done_101", + ["move", 73, 64, 112, 9], + ["jump_false", 73, "and_end_99", 112, 9], + ["get", 75, 15, 1, 112, 35], + ["is_proxy", 76, 75, 112, 35], + ["jump_false", 76, "record_path_102", 112, 35], + ["null", 77, 112, 35], + ["access", 78, "is_file", 112, 35], + ["array", 79, 0, 112, 35], + ["push", 79, 1, 112, 35], + ["frame", 80, 75, 2, 112, 35], + ["setarg", 80, 0, 77, 112, 35], + ["setarg", 80, 1, 78, 112, 35], + ["setarg", 80, 2, 79, 112, 35], + ["invoke", 80, 74, 112, 35], + ["jump", "call_done_103", 112, 35], + "record_path_102", + ["load_field", 81, 75, "is_file", 112, 35], + ["frame", 82, 81, 1, 112, 35], + ["setarg", 82, 0, 75, 112, 35], + ["setarg", 82, 1, 1, 112, 35], + ["invoke", 82, 74, 112, 35], + "call_done_103", + ["move", 73, 74, 112, 35], + "and_end_99", + ["jump_false", 73, "if_else_97", 112, 35], + ["get", 84, 15, 1, 113, 23], + ["is_proxy", 85, 84, 113, 23], + ["jump_false", 85, "record_path_104", 113, 23], + ["null", 86, 113, 23], + ["access", 87, "stat", 113, 23], + ["array", 88, 0, 113, 23], + ["push", 88, 8, 113, 23], + ["frame", 89, 84, 2, 113, 23], + ["setarg", 89, 0, 86, 113, 23], + ["setarg", 89, 1, 87, 113, 23], + ["setarg", 89, 2, 88, 113, 23], + ["invoke", 89, 83, 113, 23], + ["jump", "call_done_105", 113, 23], + "record_path_104", + ["load_field", 90, 84, "stat", 113, 23], + ["frame", 91, 90, 1, 113, 23], + ["setarg", 91, 0, 84, 113, 23], + ["setarg", 91, 1, 8, 113, 23], + ["invoke", 91, 83, 113, 23], + "call_done_105", + ["move", 5, 83, 113, 23], + ["get", 93, 15, 1, 114, 17], + ["is_proxy", 94, 93, 114, 17], + ["jump_false", 94, "record_path_106", 114, 17], + ["null", 95, 114, 17], + ["access", 96, "stat", 114, 17], + ["array", 97, 0, 114, 17], + ["push", 97, 1, 114, 17], + ["frame", 98, 93, 2, 114, 17], + ["setarg", 98, 0, 95, 114, 17], + ["setarg", 98, 1, 96, 114, 17], + ["setarg", 98, 2, 97, 114, 17], + ["invoke", 98, 92, 114, 17], + ["jump", "call_done_107", 114, 17], + "record_path_106", + ["load_field", 99, 93, "stat", 114, 17], + ["frame", 100, 99, 1, 114, 17], + ["setarg", 100, 0, 93, 114, 17], + ["setarg", 100, 1, 1, 114, 17], + ["invoke", 100, 92, 114, 17], + "call_done_107", + ["move", 4, 92, 114, 17], + ["load_field", 101, 4, "mtime", 115, 11], + ["load_field", 102, 5, "mtime", 115, 27], + ["is_int", 104, 101, 115, 27], + ["jump_false", 104, "rel_ni_110", 115, 27], + ["is_int", 105, 102, 115, 27], + ["jump_false", 105, "rel_ni_110", 115, 27], + ["gt_int", 103, 101, 102, 115, 27], + ["jump", "rel_done_112", 115, 27], + "rel_ni_110", + ["is_num", 104, 101, 115, 27], + ["jump_false", 104, "rel_nn_111", 115, 27], + ["is_num", 105, 102, 115, 27], + ["jump_false", 105, "rel_nn_111", 115, 27], + ["gt_float", 103, 101, 102, 115, 27], + ["jump", "rel_done_112", 115, 27], + "rel_nn_111", + ["is_text", 104, 101, 115, 27], + ["jump_false", 104, "rel_err_113", 115, 27], + ["is_text", 105, 102, 115, 27], + ["jump_false", 105, "rel_err_113", 115, 27], + ["gt_text", 103, 101, 102, 115, 27], + ["jump", "rel_done_112", 115, 27], + "rel_err_113", + ["disrupt", 115, 27], + "rel_done_112", + ["jump_false", 103, "if_else_108", 115, 27], + ["load_field", 106, 2, "src", 116, 21], + ["is_array", 107, 3, 116, 21], + ["jump_false", 107, "push_err_114", 116, 21], + ["push", 3, 106, 116, 21], + ["jump", "push_done_115", 116, 21], + "push_err_114", + ["disrupt", 116, 21], + "push_done_115", + ["jump", "if_end_109", 116, 21], + "if_else_108", + "if_end_109", + ["jump", "if_end_98", 116, 21], + "if_else_97", + "if_end_98", + ["access", 108, 1, 119, 15], + ["is_int", 110, 7, 119, 15], + ["jump_false", 110, "add_ni_116", 119, 15], + ["add_int", 109, 7, 108, 119, 15], + ["jump", "add_done_118", 119, 15], + "add_ni_116", + ["is_text", 110, 7, 119, 15], + ["jump_false", 110, "add_nt_117", 119, 15], + ["is_text", 111, 108, 119, 15], + ["jump_false", 111, "add_nt_117", 119, 15], + ["concat", 109, 7, 108, 119, 15], + ["jump", "add_done_118", 119, 15], + "add_nt_117", + ["is_num", 110, 7, 119, 15], + ["jump_false", 110, "add_err_119", 119, 15], + ["add_float", 109, 7, 108, 119, 15], + ["jump", "add_done_118", 119, 15], + "add_err_119", + ["disrupt", 119, 15], + "add_done_118", + ["move", 7, 109, 119, 15], + ["jump", "while_start_75", 119, 15], + "while_end_76", + ["length", 112, 3, 121, 14], + ["access", 113, 0, 121, 23], + "_nop_tc_5", + "_nop_tc_6", + "_nop_tc_7", + ["jump", "rel_ni_122", 121, 23], + ["gt_int", 114, 112, 113, 121, 23], + ["jump", "rel_done_124", 121, 23], + "rel_ni_122", + ["is_num", 115, 112, 121, 23], + ["jump_false", 115, "rel_nn_123", 121, 23], + ["is_num", 116, 113, 121, 23], + ["jump_false", 116, "rel_nn_123", 121, 23], + ["gt_float", 114, 112, 113, 121, 23], + ["jump", "rel_done_124", 121, 23], + "rel_nn_123", + ["is_text", 115, 112, 121, 23], + ["jump_false", 115, "rel_err_125", 121, 23], + ["is_text", 116, 113, 121, 23], + ["jump_false", 116, "rel_err_125", 121, 23], + ["gt_text", 114, 112, 113, 121, 23], + ["jump", "rel_done_124", 121, 23], + "rel_err_125", + ["disrupt", 121, 23], + "rel_done_124", + ["jump_false", 114, "if_else_120", 121, 23], + ["access", 117, "warning: bytecode is stale for: ", 122, 11], + ["access", 118, ", ", 122, 60], + [ + "access", + 120, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 122, + 48 + ], + ["frame", 121, 120, 2, 122, 48], + ["null", 122, 122, 48], + ["setarg", 121, 0, 122, 122, 48], + ["setarg", 121, 1, 3, 122, 48], + ["setarg", 121, 2, 118, 122, 48], + ["invoke", 121, 119, 122, 48], + "_nop_tc_8", + ["jump", "add_ni_126", 122, 48], + ["is_int", 125, 119, 122, 48], + ["jump_false", 125, "add_ni_126", 122, 48], + ["add_int", 123, 117, 119, 122, 48], + ["jump", "add_done_128", 122, 48], + "add_ni_126", + ["is_text", 125, 119, 122, 48], + ["jump_false", 125, "add_nt_127", 122, 48], + ["concat", 123, 117, 119, 122, 48], + ["jump", "add_done_128", 122, 48], + "add_nt_127", + ["is_num", 124, 117, 122, 48], + ["jump_false", 124, "add_err_129", 122, 48], + ["is_num", 125, 119, 122, 48], + ["jump_false", 125, "add_err_129", 122, 48], + ["add_float", 123, 117, 119, 122, 48], + ["jump", "add_done_128", 122, 48], + "add_err_129", + ["disrupt", 122, 48], + "add_done_128", + ["access", 126, "\n", 122, 68], + ["is_int", 128, 123, 122, 68], + ["jump_false", 128, "add_ni_130", 122, 68], + "_nop_tc_9", + ["jump", "add_ni_130", 122, 68], + ["add_int", 127, 123, 126, 122, 68], + ["jump", "add_done_132", 122, 68], + "add_ni_130", + ["is_text", 128, 123, 122, 68], + ["jump_false", 128, "add_nt_131", 122, 68], + ["concat", 127, 123, 126, 122, 68], + ["jump", "add_done_132", 122, 68], + "add_nt_131", + ["is_num", 128, 123, 122, 68], + ["jump_false", 128, "add_err_133", 122, 68], + ["is_num", 129, 126, 122, 68], + ["jump_false", 129, "add_err_133", 122, 68], + ["add_float", 127, 123, 126, 122, 68], + ["jump", "add_done_132", 122, 68], + "add_err_133", + ["disrupt", 122, 68], + "add_done_132", + [ + "access", + 131, + { + "name": "print", + "kind": "name", + "make": "intrinsic" + }, + 122, + 5 + ], + ["frame", 132, 131, 1, 122, 5], + ["null", 133, 122, 5], + ["setarg", 132, 0, 133, 122, 5], + ["setarg", 132, 1, 127, 122, 5], + ["invoke", 132, 130, 122, 5], + ["access", 134, "run 'make regen' to update\n", 123, 11], + [ + "access", + 136, + { + "name": "print", + "kind": "name", + "make": "intrinsic" + }, + 123, + 5 + ], + ["frame", 137, 136, 1, 123, 5], + ["null", 138, 123, 5], + ["setarg", 137, 0, 138, 123, 5], + ["setarg", 137, 1, 134, 123, 5], + ["invoke", 137, 135, 123, 5], + ["jump", "if_end_121", 123, 5], + "if_else_120", + "if_end_121", + ["null", 139, 123, 5], + ["return", 139, 123, 5] + ], + "name": "check_mach_stale", + "filename": "internal/bootstrap.cm", + "nr_args": 0 + }, + { + "disruption_pc": 0, + "nr_slots": 98, + "nr_close_slots": 0, + "instructions": [ + ["get", 14, 4, 1, 130, 20], + ["frame", 15, 14, 2, 130, 20], + ["null", 16, 130, 20], + ["setarg", 15, 0, 16, 130, 20], + ["setarg", 15, 1, 1, 130, 20], + ["setarg", 15, 2, 2, 130, 20], + ["invoke", 15, 13, 130, 20], + ["move", 4, 13, 130, 20], + ["load_field", 17, 4, "tokens", 131, 23], + ["get", 18, 4, 1, 131, 57], + ["get", 20, 16, 1, 131, 13], + ["frame", 21, 20, 4, 131, 13], + ["null", 22, 131, 13], + ["setarg", 21, 0, 22, 131, 13], + ["setarg", 21, 1, 17, 131, 13], + ["setarg", 21, 2, 1, 131, 13], + ["setarg", 21, 3, 2, 131, 13], + ["setarg", 21, 4, 18, 131, 13], + ["invoke", 21, 19, 131, 13], + ["move", 11, 19, 131, 13], + ["access", 7, 0, 132, 12], + ["access", 8, -1, 133, 19], + ["null", 6, 134, 18], + ["null", 12, 135, 11], + ["null", 3, 136, 13], + ["null", 5, 137, 14], + ["null", 9, 138, 13], + ["load_field", 23, 11, "errors", 139, 20], + ["null", 24, 139, 34], + ["is_identical", 25, 23, 24, 139, 34], + ["jump_true", 25, "ne_nid_136", 139, 34], + ["jump", "ne_ni_137", 139, 34], + "ne_nid_136", + ["false", 25, 139, 34], + ["jump", "ne_done_135", 139, 34], + "ne_ni_137", + ["is_int", 26, 23, 139, 34], + ["jump_false", 26, "ne_nn_138", 139, 34], + ["is_int", 27, 24, 139, 34], + ["jump_false", 27, "ne_nn_138", 139, 34], + ["ne_int", 25, 23, 24, 139, 34], + ["jump", "ne_done_135", 139, 34], + "ne_nn_138", + ["is_num", 26, 23, 139, 34], + ["jump_false", 26, "ne_nt_139", 139, 34], + ["is_num", 27, 24, 139, 34], + ["jump_false", 27, "ne_nt_139", 139, 34], + ["ne_float", 25, 23, 24, 139, 34], + ["jump", "ne_done_135", 139, 34], + "ne_nt_139", + ["is_text", 26, 23, 139, 34], + ["jump_false", 26, "ne_nnl_140", 139, 34], + ["is_text", 27, 24, 139, 34], + ["jump_false", 27, "ne_nnl_140", 139, 34], + ["ne_text", 25, 23, 24, 139, 34], + ["jump", "ne_done_135", 139, 34], + "ne_nnl_140", + ["is_null", 26, 23, 139, 34], + ["jump_false", 26, "ne_nb_141", 139, 34], + ["is_null", 27, 24, 139, 34], + ["jump_false", 27, "ne_nb_141", 139, 34], + ["false", 25, 139, 34], + ["jump", "ne_done_135", 139, 34], + "ne_nb_141", + ["is_bool", 26, 23, 139, 34], + ["jump_false", 26, "ne_mis_142", 139, 34], + ["is_bool", 27, 24, 139, 34], + ["jump_false", 27, "ne_mis_142", 139, 34], + ["ne_bool", 25, 23, 24, 139, 34], + ["jump", "ne_done_135", 139, 34], + "ne_mis_142", + ["true", 25, 139, 34], + "ne_done_135", + ["move", 28, 25, 139, 34], + ["jump_false", 28, "and_end_134", 139, 34], + ["load_field", 29, 11, "errors", 139, 49], + ["length", 30, 29, 139, 49], + ["access", 31, 0, 139, 63], + "_nop_tc_1", + "_nop_tc_2", + "_nop_tc_3", + ["jump", "rel_ni_143", 139, 63], + ["gt_int", 32, 30, 31, 139, 63], + ["jump", "rel_done_145", 139, 63], + "rel_ni_143", + ["is_num", 33, 30, 139, 63], + ["jump_false", 33, "rel_nn_144", 139, 63], + ["is_num", 34, 31, 139, 63], + ["jump_false", 34, "rel_nn_144", 139, 63], + ["gt_float", 32, 30, 31, 139, 63], + ["jump", "rel_done_145", 139, 63], + "rel_nn_144", + ["is_text", 33, 30, 139, 63], + ["jump_false", 33, "rel_err_146", 139, 63], + ["is_text", 34, 31, 139, 63], + ["jump_false", 34, "rel_err_146", 139, 63], + ["gt_text", 32, 30, 31, 139, 63], + ["jump", "rel_done_145", 139, 63], + "rel_err_146", + ["disrupt", 139, 63], + "rel_done_145", + ["move", 28, 32, 139, 63], + "and_end_134", + ["move", 10, 28, 139, 63], + ["jump_false", 10, "if_else_147", 140, 7], + "while_start_149", + ["load_field", 35, 11, "errors", 141, 24], + ["length", 36, 35, 141, 24], + ["is_int", 38, 7, 141, 24], + ["jump_false", 38, "rel_ni_151", 141, 24], + "_nop_tc_4", + "_nop_tc_5", + ["lt_int", 37, 7, 36, 141, 24], + ["jump", "rel_done_153", 141, 24], + "rel_ni_151", + ["is_num", 38, 7, 141, 24], + ["jump_false", 38, "rel_nn_152", 141, 24], + ["is_num", 39, 36, 141, 24], + ["jump_false", 39, "rel_nn_152", 141, 24], + ["lt_float", 37, 7, 36, 141, 24], + ["jump", "rel_done_153", 141, 24], + "rel_nn_152", + ["is_text", 38, 7, 141, 24], + ["jump_false", 38, "rel_err_154", 141, 24], + ["is_text", 39, 36, 141, 24], + ["jump_false", 39, "rel_err_154", 141, 24], + ["lt_text", 37, 7, 36, 141, 24], + ["jump", "rel_done_153", 141, 24], + "rel_err_154", + ["disrupt", 141, 24], + "rel_done_153", + ["jump_false", 37, "while_end_150", 141, 24], + ["load_field", 40, 11, "errors", 142, 11], + ["load_dynamic", 41, 40, 7, 142, 22], + ["move", 12, 41, 142, 22], + ["load_field", 42, 12, "message", 143, 13], + ["move", 3, 42, 143, 13], + ["load_field", 43, 12, "line", 144, 14], + ["move", 5, 43, 144, 14], + ["load_field", 44, 12, "column", 145, 13], + ["move", 9, 44, 145, 13], + ["is_identical", 45, 3, 6, 146, 18], + ["jump_true", 45, "ne_nid_159", 146, 18], + ["jump", "ne_ni_160", 146, 18], + "ne_nid_159", + ["false", 45, 146, 18], + ["jump", "ne_done_158", 146, 18], + "ne_ni_160", + ["is_int", 46, 3, 146, 18], + ["jump_false", 46, "ne_nn_161", 146, 18], + ["is_int", 47, 6, 146, 18], + ["jump_false", 47, "ne_nn_161", 146, 18], + ["ne_int", 45, 3, 6, 146, 18], + ["jump", "ne_done_158", 146, 18], + "ne_nn_161", + ["is_num", 46, 3, 146, 18], + ["jump_false", 46, "ne_nt_162", 146, 18], + ["is_num", 47, 6, 146, 18], + ["jump_false", 47, "ne_nt_162", 146, 18], + ["ne_float", 45, 3, 6, 146, 18], + ["jump", "ne_done_158", 146, 18], + "ne_nt_162", + ["is_text", 46, 3, 146, 18], + ["jump_false", 46, "ne_nnl_163", 146, 18], + ["is_text", 47, 6, 146, 18], + ["jump_false", 47, "ne_nnl_163", 146, 18], + ["ne_text", 45, 3, 6, 146, 18], + ["jump", "ne_done_158", 146, 18], + "ne_nnl_163", + ["is_null", 46, 3, 146, 18], + ["jump_false", 46, "ne_nb_164", 146, 18], + ["is_null", 47, 6, 146, 18], + ["jump_false", 47, "ne_nb_164", 146, 18], + ["false", 45, 146, 18], + ["jump", "ne_done_158", 146, 18], + "ne_nb_164", + ["is_bool", 46, 3, 146, 18], + ["jump_false", 46, "ne_mis_165", 146, 18], + ["is_bool", 47, 6, 146, 18], + ["jump_false", 47, "ne_mis_165", 146, 18], + ["ne_bool", 45, 3, 6, 146, 18], + ["jump", "ne_done_158", 146, 18], + "ne_mis_165", + ["true", 45, 146, 18], + "ne_done_158", + ["move", 48, 45, 146, 18], + ["jump_true", 48, "or_end_157", 146, 18], + ["is_identical", 49, 5, 8, 146, 38], + ["jump_true", 49, "ne_nid_167", 146, 38], + ["jump", "ne_ni_168", 146, 38], + "ne_nid_167", + ["false", 49, 146, 38], + ["jump", "ne_done_166", 146, 38], + "ne_ni_168", + ["is_int", 50, 5, 146, 38], + ["jump_false", 50, "ne_nn_169", 146, 38], + ["is_int", 51, 8, 146, 38], + ["jump_false", 51, "ne_nn_169", 146, 38], + ["ne_int", 49, 5, 8, 146, 38], + ["jump", "ne_done_166", 146, 38], + "ne_nn_169", + ["is_num", 50, 5, 146, 38], + ["jump_false", 50, "ne_nt_170", 146, 38], + ["is_num", 51, 8, 146, 38], + ["jump_false", 51, "ne_nt_170", 146, 38], + ["ne_float", 49, 5, 8, 146, 38], + ["jump", "ne_done_166", 146, 38], + "ne_nt_170", + ["is_text", 50, 5, 146, 38], + ["jump_false", 50, "ne_nnl_171", 146, 38], + ["is_text", 51, 8, 146, 38], + ["jump_false", 51, "ne_nnl_171", 146, 38], + ["ne_text", 49, 5, 8, 146, 38], + ["jump", "ne_done_166", 146, 38], + "ne_nnl_171", + ["is_null", 50, 5, 146, 38], + ["jump_false", 50, "ne_nb_172", 146, 38], + ["is_null", 51, 8, 146, 38], + ["jump_false", 51, "ne_nb_172", 146, 38], + ["false", 49, 146, 38], + ["jump", "ne_done_166", 146, 38], + "ne_nb_172", + ["is_bool", 50, 5, 146, 38], + ["jump_false", 50, "ne_mis_173", 146, 38], + ["is_bool", 51, 8, 146, 38], + ["jump_false", 51, "ne_mis_173", 146, 38], + ["ne_bool", 49, 5, 8, 146, 38], + ["jump", "ne_done_166", 146, 38], + "ne_mis_173", + ["true", 49, 146, 38], + "ne_done_166", + ["move", 48, 49, 146, 38], + "or_end_157", + ["jump_false", 48, "if_else_155", 146, 38], + ["null", 52, 147, 21], + ["is_identical", 53, 5, 52, 147, 21], + ["jump_true", 53, "ne_nid_178", 147, 21], + ["jump", "ne_ni_179", 147, 21], + "ne_nid_178", + ["false", 53, 147, 21], + ["jump", "ne_done_177", 147, 21], + "ne_ni_179", + ["is_int", 54, 5, 147, 21], + ["jump_false", 54, "ne_nn_180", 147, 21], + ["is_int", 55, 52, 147, 21], + ["jump_false", 55, "ne_nn_180", 147, 21], + ["ne_int", 53, 5, 52, 147, 21], + ["jump", "ne_done_177", 147, 21], + "ne_nn_180", + ["is_num", 54, 5, 147, 21], + ["jump_false", 54, "ne_nt_181", 147, 21], + ["is_num", 55, 52, 147, 21], + ["jump_false", 55, "ne_nt_181", 147, 21], + ["ne_float", 53, 5, 52, 147, 21], + ["jump", "ne_done_177", 147, 21], + "ne_nt_181", + ["is_text", 54, 5, 147, 21], + ["jump_false", 54, "ne_nnl_182", 147, 21], + ["is_text", 55, 52, 147, 21], + ["jump_false", 55, "ne_nnl_182", 147, 21], + ["ne_text", 53, 5, 52, 147, 21], + ["jump", "ne_done_177", 147, 21], + "ne_nnl_182", + ["is_null", 54, 5, 147, 21], + ["jump_false", 54, "ne_nb_183", 147, 21], + ["is_null", 55, 52, 147, 21], + ["jump_false", 55, "ne_nb_183", 147, 21], + ["false", 53, 147, 21], + ["jump", "ne_done_177", 147, 21], + "ne_nb_183", + ["is_bool", 54, 5, 147, 21], + ["jump_false", 54, "ne_mis_184", 147, 21], + ["is_bool", 55, 52, 147, 21], + ["jump_false", 55, "ne_mis_184", 147, 21], + ["ne_bool", 53, 5, 52, 147, 21], + ["jump", "ne_done_177", 147, 21], + "ne_mis_184", + ["true", 53, 147, 21], + "ne_done_177", + ["move", 56, 53, 147, 21], + ["jump_false", 56, "and_end_176", 147, 21], + ["null", 57, 147, 36], + ["is_identical", 58, 9, 57, 147, 36], + ["jump_true", 58, "ne_nid_186", 147, 36], + ["jump", "ne_ni_187", 147, 36], + "ne_nid_186", + ["false", 58, 147, 36], + ["jump", "ne_done_185", 147, 36], + "ne_ni_187", + ["is_int", 59, 9, 147, 36], + ["jump_false", 59, "ne_nn_188", 147, 36], + ["is_int", 60, 57, 147, 36], + ["jump_false", 60, "ne_nn_188", 147, 36], + ["ne_int", 58, 9, 57, 147, 36], + ["jump", "ne_done_185", 147, 36], + "ne_nn_188", + ["is_num", 59, 9, 147, 36], + ["jump_false", 59, "ne_nt_189", 147, 36], + ["is_num", 60, 57, 147, 36], + ["jump_false", 60, "ne_nt_189", 147, 36], + ["ne_float", 58, 9, 57, 147, 36], + ["jump", "ne_done_185", 147, 36], + "ne_nt_189", + ["is_text", 59, 9, 147, 36], + ["jump_false", 59, "ne_nnl_190", 147, 36], + ["is_text", 60, 57, 147, 36], + ["jump_false", 60, "ne_nnl_190", 147, 36], + ["ne_text", 58, 9, 57, 147, 36], + ["jump", "ne_done_185", 147, 36], + "ne_nnl_190", + ["is_null", 59, 9, 147, 36], + ["jump_false", 59, "ne_nb_191", 147, 36], + ["is_null", 60, 57, 147, 36], + ["jump_false", 60, "ne_nb_191", 147, 36], + ["false", 58, 147, 36], + ["jump", "ne_done_185", 147, 36], + "ne_nb_191", + ["is_bool", 59, 9, 147, 36], + ["jump_false", 59, "ne_mis_192", 147, 36], + ["is_bool", 60, 57, 147, 36], + ["jump_false", 60, "ne_mis_192", 147, 36], + ["ne_bool", 58, 9, 57, 147, 36], + ["jump", "ne_done_185", 147, 36], + "ne_mis_192", + ["true", 58, 147, 36], + "ne_done_185", + ["move", 56, 58, 147, 36], + "and_end_176", + ["jump_false", 56, "if_else_174", 147, 36], + [ + "access", + 62, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 63, 62, 1, 1, 1], + ["null", 64, 1, 1], + ["setarg", 63, 0, 64, 1, 1], + ["setarg", 63, 1, 5, 1, 1], + ["invoke", 63, 61, 1, 1], + [ + "access", + 66, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 67, 66, 1, 1, 1], + ["null", 68, 1, 1], + ["setarg", 67, 0, 68, 1, 1], + ["setarg", 67, 1, 9, 1, 1], + ["invoke", 67, 65, 1, 1], + ["array", 69, 0, 1, 1], + ["push", 69, 2, 1, 1], + ["push", 69, 61, 1, 1], + ["push", 69, 65, 1, 1], + ["push", 69, 3, 1, 1], + [ + "access", + 70, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 71, "{0}:{1}:{2}: error: {3}", 1, 1], + ["frame", 73, 70, 2, 1, 1], + ["null", 74, 1, 1], + ["setarg", 73, 0, 74, 1, 1], + ["setarg", 73, 1, 71, 1, 1], + ["setarg", 73, 2, 69, 1, 1], + ["invoke", 73, 72, 1, 1], + [ + "access", + 76, + { + "name": "print", + "kind": "name", + "make": "intrinsic" + }, + 148, + 11 + ], + ["frame", 77, 76, 1, 148, 11], + ["null", 78, 148, 11], + ["setarg", 77, 0, 78, 148, 11], + ["setarg", 77, 1, 72, 148, 11], + ["invoke", 77, 75, 148, 11], + ["jump", "if_end_175", 148, 11], + "if_else_174", + ["array", 79, 0, 1, 1], + ["push", 79, 2, 1, 1], + ["push", 79, 3, 1, 1], + [ + "access", + 80, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 81, "{0}: error: {1}", 1, 1], + ["frame", 83, 80, 2, 1, 1], + ["null", 84, 1, 1], + ["setarg", 83, 0, 84, 1, 1], + ["setarg", 83, 1, 81, 1, 1], + ["setarg", 83, 2, 79, 1, 1], + ["invoke", 83, 82, 1, 1], + [ + "access", + 86, + { + "name": "print", + "kind": "name", + "make": "intrinsic" + }, + 150, + 11 + ], + ["frame", 87, 86, 1, 150, 11], + ["null", 88, 150, 11], + ["setarg", 87, 0, 88, 150, 11], + ["setarg", 87, 1, 82, 150, 11], + ["invoke", 87, 85, 150, 11], + "if_end_175", + ["jump", "if_end_156", 150, 11], + "if_else_155", + "if_end_156", + ["move", 8, 5, 153, 19], + ["move", 6, 3, 154, 18], + ["access", 89, 1, 155, 17], + ["is_int", 91, 7, 155, 17], + ["jump_false", 91, "add_ni_193", 155, 17], + ["add_int", 90, 7, 89, 155, 17], + ["jump", "add_done_195", 155, 17], + "add_ni_193", + ["is_text", 91, 7, 155, 17], + ["jump_false", 91, "add_nt_194", 155, 17], + ["is_text", 92, 89, 155, 17], + ["jump_false", 92, "add_nt_194", 155, 17], + ["concat", 90, 7, 89, 155, 17], + ["jump", "add_done_195", 155, 17], + "add_nt_194", + ["is_num", 91, 7, 155, 17], + ["jump_false", 91, "add_err_196", 155, 17], + ["add_float", 90, 7, 89, 155, 17], + ["jump", "add_done_195", 155, 17], + "add_err_196", + ["disrupt", 155, 17], + "add_done_195", + ["move", 7, 90, 155, 17], + ["jump", "while_start_149", 155, 17], + "while_end_150", + ["disrupt", 157, 5], + ["jump", "if_end_148", 157, 5], + "if_else_147", + "if_end_148", + ["get", 94, 14, 1, 159, 9], + ["frame", 95, 94, 1, 159, 9], + ["null", 96, 159, 9], + ["setarg", 95, 0, 96, 159, 9], + ["setarg", 95, 1, 11, 159, 9], + ["invoke", 95, 93, 159, 9], + ["move", 11, 93, 159, 9], + ["return", 11, 160, 10], + ["null", 97, 160, 10], + ["return", 97, 160, 10] + ], + "name": "analyze", + "filename": "internal/bootstrap.cm", + "nr_args": 2 + }, + { + "disruption_pc": 0, + "nr_slots": 46, + "nr_close_slots": 0, + "instructions": [ + ["get", 7, 7, 1, 172, 18], + ["frame", 8, 7, 1, 172, 18], + ["null", 9, 172, 18], + ["setarg", 8, 0, 9, 172, 18], + ["setarg", 8, 1, 2, 172, 18], + ["invoke", 8, 6, 172, 18], + ["move", 4, 6, 172, 18], + [ + "access", + 10, + { + "name": "os", + "kind": "name", + "make": "intrinsic" + }, + 173, + 7 + ], + ["load_field", 11, 10, "_verify_ir", 173, 7], + ["jump_false", 11, "if_else_197", 173, 7], + ["get", 12, 17, 1, 174, 9], + ["null", 13, 174, 27], + ["is_identical", 14, 12, 13, 174, 27], + ["jump_true", 14, "eq_done_201", 174, 27], + ["is_int", 15, 12, 174, 27], + ["jump_false", 15, "eq_ni_202", 174, 27], + "_nop_tc_1", + ["jump", "eq_ni_202", 174, 27], + ["eq_int", 14, 12, 13, 174, 27], + ["jump", "eq_done_201", 174, 27], + "eq_ni_202", + ["is_num", 15, 12, 174, 27], + ["jump_false", 15, "eq_nn_203", 174, 27], + ["is_num", 16, 13, 174, 27], + ["jump_false", 16, "eq_nn_203", 174, 27], + ["eq_float", 14, 12, 13, 174, 27], + ["jump", "eq_done_201", 174, 27], + "eq_nn_203", + ["is_text", 15, 12, 174, 27], + ["jump_false", 15, "eq_nt_204", 174, 27], + ["is_text", 16, 13, 174, 27], + ["jump_false", 16, "eq_nt_204", 174, 27], + ["eq_text", 14, 12, 13, 174, 27], + ["jump", "eq_done_201", 174, 27], + "eq_nt_204", + ["is_null", 15, 12, 174, 27], + ["jump_false", 15, "eq_nnl_205", 174, 27], + ["is_null", 16, 13, 174, 27], + ["jump_false", 16, "eq_nnl_205", 174, 27], + ["true", 14, 174, 27], + ["jump", "eq_done_201", 174, 27], + "eq_nnl_205", + ["is_bool", 15, 12, 174, 27], + ["jump_false", 15, "eq_nb_206", 174, 27], + ["is_bool", 16, 13, 174, 27], + ["jump_false", 16, "eq_nb_206", 174, 27], + ["eq_bool", 14, 12, 13, 174, 27], + ["jump", "eq_done_201", 174, 27], + "eq_nb_206", + ["false", 14, 174, 27], + "eq_done_201", + ["jump_false", 14, "if_else_199", 174, 27], + ["access", 17, "verify_ir", 175, 34], + ["get", 18, 10, 1, 175, 47], + ["get", 20, 21, 1, 175, 24], + ["frame", 21, 20, 2, 175, 24], + ["null", 22, 175, 24], + ["setarg", 21, 0, 22, 175, 24], + ["setarg", 21, 1, 17, 175, 24], + ["setarg", 21, 2, 18, 175, 24], + ["invoke", 21, 19, 175, 24], + ["put", 19, 17, 1, 175, 24], + ["jump", "if_end_200", 175, 24], + "if_else_199", + "if_end_200", + ["true", 23, 177, 24], + ["store_field", 4, 23, "_verify", 177, 5], + ["get", 24, 17, 1, 178, 28], + ["store_field", 4, 24, "_verify_mod", 178, 5], + ["jump", "if_end_198", 178, 5], + "if_else_197", + "if_end_198", + ["get", 26, 24, 1, 180, 19], + ["frame", 27, 26, 1, 180, 19], + ["null", 28, 180, 19], + ["setarg", 27, 0, 28, 180, 19], + ["setarg", 27, 1, 4, 180, 19], + ["invoke", 27, 25, 180, 19], + ["move", 5, 25, 180, 19], + ["load_field", 29, 5, "_verify", 182, 7], + ["jump_false", 29, "if_else_207", 182, 7], + ["delete", 30, 5, "_verify"], + ["delete", 31, 5, "_verify_mod"], + ["jump", "if_end_208", 184, 12], + "if_else_207", + "if_end_208", + ["get", 33, 25, 1, 186, 32], + ["is_proxy", 34, 33, 186, 32], + ["jump_false", 34, "record_path_209", 186, 32], + ["null", 35, 186, 32], + ["access", 36, "encode", 186, 32], + ["array", 37, 0, 186, 32], + ["push", 37, 5, 186, 32], + ["frame", 38, 33, 2, 186, 32], + ["setarg", 38, 0, 35, 186, 32], + ["setarg", 38, 1, 36, 186, 32], + ["setarg", 38, 2, 37, 186, 32], + ["invoke", 38, 32, 186, 32], + ["jump", "call_done_210", 186, 32], + "record_path_209", + ["load_field", 39, 33, "encode", 186, 32], + ["frame", 40, 39, 1, 186, 32], + ["setarg", 40, 0, 33, 186, 32], + ["setarg", 40, 1, 5, 186, 32], + ["invoke", 40, 32, 186, 32], + "call_done_210", + [ + "access", + 42, + { + "name": "mach_eval_mcode", + "kind": "name", + "make": "intrinsic" + }, + 186, + 10 + ], + ["frame", 43, 42, 3, 186, 10], + ["null", 44, 186, 10], + ["setarg", 43, 0, 44, 186, 10], + ["setarg", 43, 1, 1, 186, 10], + ["setarg", 43, 2, 32, 186, 10], + ["setarg", 43, 3, 3, 186, 10], + ["invoke", 43, 41, 186, 10], + ["return", 41, 186, 10], + ["null", 45, 186, 10], + ["return", 45, 186, 10] + ], + "name": "run_ast", + "filename": "internal/bootstrap.cm", + "nr_args": 3 + }, + { + "disruption_pc": 0, + "nr_slots": 23, + "nr_close_slots": 0, + "instructions": [ + ["get", 6, 7, 1, 191, 18], + ["frame", 7, 6, 1, 191, 18], + ["null", 8, 191, 18], + ["setarg", 7, 0, 8, 191, 18], + ["setarg", 7, 1, 2, 191, 18], + ["invoke", 7, 5, 191, 18], + ["move", 4, 5, 191, 18], + ["get", 10, 25, 1, 192, 32], + ["is_proxy", 11, 10, 192, 32], + ["jump_false", 11, "record_path_211", 192, 32], + ["null", 12, 192, 32], + ["access", 13, "encode", 192, 32], + ["array", 14, 0, 192, 32], + ["push", 14, 4, 192, 32], + ["frame", 15, 10, 2, 192, 32], + ["setarg", 15, 0, 12, 192, 32], + ["setarg", 15, 1, 13, 192, 32], + ["setarg", 15, 2, 14, 192, 32], + ["invoke", 15, 9, 192, 32], + ["jump", "call_done_212", 192, 32], + "record_path_211", + ["load_field", 16, 10, "encode", 192, 32], + ["frame", 17, 16, 1, 192, 32], + ["setarg", 17, 0, 10, 192, 32], + ["setarg", 17, 1, 4, 192, 32], + ["invoke", 17, 9, 192, 32], + "call_done_212", + [ + "access", + 19, + { + "name": "mach_eval_mcode", + "kind": "name", + "make": "intrinsic" + }, + 192, + 10 + ], + ["frame", 20, 19, 3, 192, 10], + ["null", 21, 192, 10], + ["setarg", 20, 0, 21, 192, 10], + ["setarg", 20, 1, 1, 192, 10], + ["setarg", 20, 2, 9, 192, 10], + ["setarg", 20, 3, 3, 192, 10], + ["invoke", 20, 18, 192, 10], + ["return", 18, 192, 10], + ["null", 22, 192, 10], + ["return", 22, 192, 10] + ], + "name": "run_ast_noopt", + "filename": "internal/bootstrap.cm", + "nr_args": 3 + }, + { + "disruption_pc": 0, + "nr_slots": 119, + "nr_close_slots": 0, + "instructions": [ + [ + "access", + 11, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 197, + 20 + ], + ["access", 12, "/boot/engine.cm.mcode", 197, 32], + ["is_int", 14, 11, 197, 32], + ["jump_false", 14, "add_ni_213", 197, 32], + "_nop_tc_1", + ["jump", "add_ni_213", 197, 32], + ["add_int", 13, 11, 12, 197, 32], + ["jump", "add_done_215", 197, 32], + "add_ni_213", + ["is_text", 14, 11, 197, 32], + ["jump_false", 14, "add_nt_214", 197, 32], + ["concat", 13, 11, 12, 197, 32], + ["jump", "add_done_215", 197, 32], + "add_nt_214", + ["is_num", 14, 11, 197, 32], + ["jump_false", 14, "add_err_216", 197, 32], + ["is_num", 15, 12, 197, 32], + ["jump_false", 15, "add_err_216", 197, 32], + ["add_float", 13, 11, 12, 197, 32], + ["jump", "add_done_215", 197, 32], + "add_err_216", + ["disrupt", 197, 32], + "add_done_215", + ["move", 10, 13, 197, 32], + ["null", 3, 198, 20], + ["null", 4, 199, 14], + ["null", 9, 200, 16], + ["null", 8, 201, 20], + ["null", 2, 202, 19], + ["null", 5, 203, 20], + ["null", 6, 204, 20], + ["get", 17, 15, 1, 205, 7], + ["is_proxy", 18, 17, 205, 7], + ["jump_false", 18, "record_path_219", 205, 7], + ["null", 19, 205, 7], + ["access", 20, "is_file", 205, 7], + ["array", 21, 0, 205, 7], + ["push", 21, 10, 205, 7], + ["frame", 22, 17, 2, 205, 7], + ["setarg", 22, 0, 19, 205, 7], + ["setarg", 22, 1, 20, 205, 7], + ["setarg", 22, 2, 21, 205, 7], + ["invoke", 22, 16, 205, 7], + ["jump", "call_done_220", 205, 7], + "record_path_219", + ["load_field", 23, 17, "is_file", 205, 7], + ["frame", 24, 23, 1, 205, 7], + ["setarg", 24, 0, 17, 205, 7], + ["setarg", 24, 1, 10, 205, 7], + ["invoke", 24, 16, 205, 7], + "call_done_220", + ["jump_false", 16, "if_else_217", 205, 7], + ["get", 26, 15, 1, 206, 18], + ["is_proxy", 27, 26, 206, 18], + ["jump_false", 27, "record_path_221", 206, 18], + ["null", 28, 206, 18], + ["access", 29, "slurp", 206, 18], + ["array", 30, 0, 206, 18], + ["push", 30, 10, 206, 18], + ["frame", 31, 26, 2, 206, 18], + ["setarg", 31, 0, 28, 206, 18], + ["setarg", 31, 1, 29, 206, 18], + ["setarg", 31, 2, 30, 206, 18], + ["invoke", 31, 25, 206, 18], + ["jump", "call_done_222", 206, 18], + "record_path_221", + ["load_field", 32, 26, "slurp", 206, 18], + ["frame", 33, 32, 1, 206, 18], + ["setarg", 33, 0, 26, 206, 18], + ["setarg", 33, 1, 10, 206, 18], + ["invoke", 33, 25, 206, 18], + "call_done_222", + ["move", 3, 25, 206, 18], + ["get", 35, 11, 1, 207, 12], + ["frame", 36, 35, 1, 207, 12], + ["null", 37, 207, 12], + ["setarg", 36, 0, 37, 207, 12], + ["setarg", 36, 1, 3, 207, 12], + ["invoke", 36, 34, 207, 12], + ["move", 4, 34, 207, 12], + ["get", 39, 13, 1, 208, 14], + ["frame", 40, 39, 1, 208, 14], + ["null", 41, 208, 14], + ["setarg", 40, 0, 41, 208, 14], + ["setarg", 40, 1, 4, 208, 14], + ["invoke", 40, 38, 208, 14], + ["move", 9, 38, 208, 14], + ["move", 42, 9, 209, 9], + ["jump_false", 42, "and_end_225", 209, 9], + ["get", 44, 15, 1, 209, 19], + ["is_proxy", 45, 44, 209, 19], + ["jump_false", 45, "record_path_226", 209, 19], + ["null", 46, 209, 19], + ["access", 47, "is_file", 209, 19], + ["array", 48, 0, 209, 19], + ["push", 48, 9, 209, 19], + ["frame", 49, 44, 2, 209, 19], + ["setarg", 49, 0, 46, 209, 19], + ["setarg", 49, 1, 47, 209, 19], + ["setarg", 49, 2, 48, 209, 19], + ["invoke", 49, 43, 209, 19], + ["jump", "call_done_227", 209, 19], + "record_path_226", + ["load_field", 50, 44, "is_file", 209, 19], + ["frame", 51, 50, 1, 209, 19], + ["setarg", 51, 0, 44, 209, 19], + ["setarg", 51, 1, 9, 209, 19], + ["invoke", 51, 43, 209, 19], + "call_done_227", + ["move", 42, 43, 209, 19], + "and_end_225", + ["jump_false", 42, "if_else_223", 209, 19], + ["get", 53, 15, 1, 210, 24], + ["is_proxy", 54, 53, 210, 24], + ["jump_false", 54, "record_path_228", 210, 24], + ["null", 55, 210, 24], + ["access", 56, "slurp", 210, 24], + ["array", 57, 0, 210, 24], + ["push", 57, 9, 210, 24], + ["frame", 58, 53, 2, 210, 24], + ["setarg", 58, 0, 55, 210, 24], + ["setarg", 58, 1, 56, 210, 24], + ["setarg", 58, 2, 57, 210, 24], + ["invoke", 58, 52, 210, 24], + ["jump", "call_done_229", 210, 24], + "record_path_228", + ["load_field", 59, 53, "slurp", 210, 24], + ["frame", 60, 59, 1, 210, 24], + ["setarg", 60, 0, 53, 210, 24], + ["setarg", 60, 1, 9, 210, 24], + ["invoke", 60, 52, 210, 24], + "call_done_229", + [ + "access", + 62, + { + "name": "mach_load", + "kind": "name", + "make": "intrinsic" + }, + 210, + 14 + ], + ["frame", 63, 62, 2, 210, 14], + ["null", 64, 210, 14], + ["setarg", 63, 0, 64, 210, 14], + ["setarg", 63, 1, 52, 210, 14], + ["setarg", 63, 2, 1, 210, 14], + ["invoke", 63, 61, 210, 14], + ["return", 61, 210, 14], + ["jump", "if_end_224", 210, 14], + "if_else_223", + "if_end_224", + [ + "access", + 66, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 212, + 18 + ], + ["frame", 67, 66, 1, 212, 18], + ["null", 68, 212, 18], + ["setarg", 67, 0, 68, 212, 18], + ["setarg", 67, 1, 3, 212, 18], + ["invoke", 67, 65, 212, 18], + ["move", 8, 65, 212, 18], + ["access", 69, "engine", 213, 40], + [ + "access", + 71, + { + "name": "mach_compile_mcode_bin", + "kind": "name", + "make": "intrinsic" + }, + 213, + 17 + ], + ["frame", 72, 71, 2, 213, 17], + ["null", 73, 213, 17], + ["setarg", 72, 0, 73, 213, 17], + ["setarg", 72, 1, 69, 213, 17], + ["setarg", 72, 2, 8, 213, 17], + ["invoke", 72, 70, 213, 17], + ["move", 2, 70, 213, 17], + ["jump_false", 9, "if_else_230", 214, 9], + ["get", 75, 1, 1, 215, 7], + ["frame", 76, 75, 0, 215, 7], + ["null", 77, 215, 7], + ["setarg", 76, 0, 77, 215, 7], + ["invoke", 76, 74, 215, 7], + ["get", 79, 15, 1, 216, 7], + ["is_proxy", 80, 79, 216, 7], + ["jump_false", 80, "record_path_232", 216, 7], + ["null", 81, 216, 7], + ["access", 82, "slurpwrite", 216, 7], + ["array", 83, 0, 216, 7], + ["push", 83, 9, 216, 7], + ["push", 83, 2, 216, 7], + ["frame", 84, 79, 2, 216, 7], + ["setarg", 84, 0, 81, 216, 7], + ["setarg", 84, 1, 82, 216, 7], + ["setarg", 84, 2, 83, 216, 7], + ["invoke", 84, 78, 216, 7], + ["jump", "call_done_233", 216, 7], + "record_path_232", + ["load_field", 85, 79, "slurpwrite", 216, 7], + ["frame", 86, 85, 2, 216, 7], + ["setarg", 86, 0, 79, 216, 7], + ["setarg", 86, 1, 9, 216, 7], + ["setarg", 86, 2, 2, 216, 7], + ["invoke", 86, 78, 216, 7], + "call_done_233", + ["jump", "if_end_231", 216, 7], + "if_else_230", + "if_end_231", + [ + "access", + 88, + { + "name": "mach_load", + "kind": "name", + "make": "intrinsic" + }, + 218, + 12 + ], + ["frame", 89, 88, 2, 218, 12], + ["null", 90, 218, 12], + ["setarg", 89, 0, 90, 218, 12], + ["setarg", 89, 1, 2, 218, 12], + ["setarg", 89, 2, 1, 218, 12], + ["invoke", 89, 87, 218, 12], + ["return", 87, 218, 12], + ["jump", "if_end_218", 218, 12], + "if_else_217", + "if_end_218", + [ + "access", + 91, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 221, + 19 + ], + ["access", 92, "/internal/engine.cm", 221, 31], + ["is_int", 94, 91, 221, 31], + ["jump_false", 94, "add_ni_234", 221, 31], + "_nop_tc_2", + ["jump", "add_ni_234", 221, 31], + ["add_int", 93, 91, 92, 221, 31], + ["jump", "add_done_236", 221, 31], + "add_ni_234", + ["is_text", 94, 91, 221, 31], + ["jump_false", 94, "add_nt_235", 221, 31], + ["concat", 93, 91, 92, 221, 31], + ["jump", "add_done_236", 221, 31], + "add_nt_235", + ["is_num", 94, 91, 221, 31], + ["jump_false", 94, "add_err_237", 221, 31], + ["is_num", 95, 92, 221, 31], + ["jump_false", 95, "add_err_237", 221, 31], + ["add_float", 93, 91, 92, 221, 31], + ["jump", "add_done_236", 221, 31], + "add_err_237", + ["disrupt", 221, 31], + "add_done_236", + ["move", 7, 93, 221, 31], + ["get", 97, 15, 1, 222, 21], + ["is_proxy", 98, 97, 222, 21], + ["jump_false", 98, "record_path_238", 222, 21], + ["null", 99, 222, 21], + ["access", 100, "slurp", 222, 21], + ["array", 101, 0, 222, 21], + ["push", 101, 7, 222, 21], + ["frame", 102, 97, 2, 222, 21], + ["setarg", 102, 0, 99, 222, 21], + ["setarg", 102, 1, 100, 222, 21], + ["setarg", 102, 2, 101, 222, 21], + ["invoke", 102, 96, 222, 21], + ["jump", "call_done_239", 222, 21], + "record_path_238", + ["load_field", 103, 97, "slurp", 222, 21], + ["frame", 104, 103, 1, 222, 21], + ["setarg", 104, 0, 97, 222, 21], + ["setarg", 104, 1, 7, 222, 21], + ["invoke", 104, 96, 222, 21], + "call_done_239", + [ + "access", + 106, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 222, + 16 + ], + ["frame", 107, 106, 1, 222, 16], + ["null", 108, 222, 16], + ["setarg", 107, 0, 108, 222, 16], + ["setarg", 107, 1, 96, 222, 16], + ["invoke", 107, 105, 222, 16], + ["move", 5, 105, 222, 16], + ["get", 110, 8, 1, 223, 16], + ["frame", 111, 110, 2, 223, 16], + ["null", 112, 223, 16], + ["setarg", 111, 0, 112, 223, 16], + ["setarg", 111, 1, 5, 223, 16], + ["setarg", 111, 2, 7, 223, 16], + ["invoke", 111, 109, 223, 16], + ["move", 6, 109, 223, 16], + ["access", 113, "engine", 224, 18], + ["get", 115, 20, 1, 224, 10], + ["frame", 116, 115, 3, 224, 10], + ["null", 117, 224, 10], + ["setarg", 116, 0, 117, 224, 10], + ["setarg", 116, 1, 113, 224, 10], + ["setarg", 116, 2, 6, 224, 10], + ["setarg", 116, 3, 1, 224, 10], + ["invoke", 116, 114, 224, 10], + ["return", 114, 224, 10], + ["null", 118, 224, 10], + ["return", 118, 224, 10] + ], + "name": "load_engine", + "filename": "internal/bootstrap.cm", + "nr_args": 1 + } + ], + "main": { + "nr_args": 0, + "nr_close_slots": 0, + "nr_slots": 136, + "instructions": [ + ["function", 27, 0, 0, 0], + ["move", 12, 27, 0, 0], + ["function", 28, 1, 0, 0], + ["move", 11, 28, 0, 0], + ["function", 29, 2, 0, 0], + ["move", 13, 29, 0, 0], + ["function", 30, 3, 0, 0], + ["move", 1, 30, 0, 0], + ["function", 31, 4, 0, 0], + ["move", 2, 31, 0, 0], + ["function", 32, 5, 0, 0], + ["move", 21, 32, 0, 0], + ["function", 33, 6, 0, 0], + ["move", 9, 33, 0, 0], + ["function", 34, 7, 0, 0], + ["move", 8, 34, 0, 0], + ["function", 35, 8, 0, 0], + ["move", 20, 35, 0, 0], + ["function", 36, 9, 0, 0], + ["move", 26, 36, 0, 0], + ["function", 37, 10, 0, 0], + ["move", 3, 37, 0, 0], + [ + "access", + 38, + { + "name": "os", + "kind": "name", + "make": "intrinsic" + }, + 5, + 21 + ], + ["load_field", 39, 38, "load_internal", 5, 21], + ["move", 18, 39, 5, 21], + ["access", 40, "fd", 10, 20], + ["frame", 42, 12, 1, 10, 10], + ["null", 43, 10, 10], + ["setarg", 42, 0, 43, 10, 10], + ["setarg", 42, 1, 40, 10, 10], + ["invoke", 42, 41, 10, 10], + ["move", 15, 41, 10, 10], + ["access", 44, "json", 11, 22], + ["frame", 46, 12, 1, 11, 12], + ["null", 47, 11, 12], + ["setarg", 46, 0, 47, 11, 12], + ["setarg", 46, 1, 44, 11, 12], + ["invoke", 46, 45, 11, 12], + ["move", 25, 45, 11, 12], + ["access", 48, "crypto", 12, 24], + ["frame", 50, 12, 1, 12, 14], + ["null", 51, 12, 14], + ["setarg", 50, 0, 51, 12, 14], + ["setarg", 50, 1, 48, 12, 14], + ["invoke", 50, 49, 12, 14], + ["move", 19, 49, 12, 14], + ["record", 52, 0], + ["move", 22, 52, 14, 17], + ["access", 53, "fd", 15, 11], + ["store_field", 22, 15, 53, 15, 11], + [ + "access", + 54, + { + "name": "os", + "kind": "name", + "make": "intrinsic" + }, + 16, + 19 + ], + ["access", 55, "os", 16, 11], + ["store_field", 22, 54, 55, 16, 11], + ["access", 56, "json", 17, 11], + ["store_field", 22, 25, 56, 17, 11], + ["access", 57, "crypto", 18, 11], + ["store_field", 22, 19, 57, 18, 11], + ["record", 58, 0], + ["store_field", 58, 2, "use", 74, 22], + ["move", 10, 58, 74, 22], + ["access", 59, "tokenize", 75, 30], + ["frame", 61, 21, 2, 75, 20], + ["null", 62, 75, 20], + ["setarg", 61, 0, 62, 75, 20], + ["setarg", 61, 1, 59, 75, 20], + ["setarg", 61, 2, 10, 75, 20], + ["invoke", 61, 60, 75, 20], + ["move", 4, 60, 75, 20], + ["access", 63, "parse", 76, 27], + ["frame", 65, 21, 2, 76, 17], + ["null", 66, 76, 17], + ["setarg", 65, 0, 66, 76, 17], + ["setarg", 65, 1, 63, 76, 17], + ["setarg", 65, 2, 10, 76, 17], + ["invoke", 65, 64, 76, 17], + ["move", 16, 64, 76, 17], + ["access", 67, "fold", 77, 26], + ["frame", 69, 21, 2, 77, 16], + ["null", 70, 77, 16], + ["setarg", 69, 0, 70, 77, 16], + ["setarg", 69, 1, 67, 77, 16], + ["setarg", 69, 2, 10, 77, 16], + ["invoke", 69, 68, 77, 16], + ["move", 14, 68, 77, 16], + ["access", 71, "tokenize", 78, 11], + ["store_field", 22, 4, 71, 78, 11], + ["access", 72, "parse", 79, 11], + ["store_field", 22, 16, 72, 79, 11], + ["access", 73, "fold", 80, 11], + ["store_field", 22, 14, 73, 80, 11], + ["access", 74, "mcode", 83, 27], + ["frame", 76, 21, 2, 83, 17], + ["null", 77, 83, 17], + ["setarg", 76, 0, 77, 83, 17], + ["setarg", 76, 1, 74, 83, 17], + ["setarg", 76, 2, 10, 83, 17], + ["invoke", 76, 75, 83, 17], + ["move", 7, 75, 83, 17], + ["access", 78, "mcode", 84, 11], + ["store_field", 22, 7, 78, 84, 11], + ["null", 24, 85, 22], + ["frame", 80, 9, 0, 126, 1], + ["null", 81, 126, 1], + ["setarg", 80, 0, 81, 126, 1], + ["invoke", 80, 79, 126, 1], + ["access", 82, "streamline", 164, 28], + ["frame", 84, 21, 2, 164, 18], + ["null", 85, 164, 18], + ["setarg", 84, 0, 85, 164, 18], + ["setarg", 84, 1, 82, 164, 18], + ["setarg", 84, 2, 10, 164, 18], + ["invoke", 84, 83, 164, 18], + ["move", 24, 83, 164, 18], + ["access", 86, "streamline", 165, 11], + ["store_field", 22, 24, 86, 165, 11], + ["null", 17, 168, 22], + ["null", 23, 229, 15], + ["array", 87, 0, 230, 17], + ["move", 5, 87, 230, 17], + ["access", 6, 0, 231, 10], + [ + "access", + 88, + { + "name": "args", + "kind": "name", + "make": "intrinsic" + }, + 233, + 5 + ], + ["null", 89, 233, 13], + ["is_identical", 90, 88, 89, 233, 13], + ["jump_true", 90, "ne_nid_243", 233, 13], + ["jump", "ne_ni_244", 233, 13], + "ne_nid_243", + ["false", 90, 233, 13], + ["jump", "ne_done_242", 233, 13], + "ne_ni_244", + ["is_int", 91, 88, 233, 13], + ["jump_false", 91, "ne_nn_245", 233, 13], + ["is_int", 92, 89, 233, 13], + ["jump_false", 92, "ne_nn_245", 233, 13], + ["ne_int", 90, 88, 89, 233, 13], + ["jump", "ne_done_242", 233, 13], + "ne_nn_245", + ["is_num", 91, 88, 233, 13], + ["jump_false", 91, "ne_nt_246", 233, 13], + ["is_num", 92, 89, 233, 13], + ["jump_false", 92, "ne_nt_246", 233, 13], + ["ne_float", 90, 88, 89, 233, 13], + ["jump", "ne_done_242", 233, 13], + "ne_nt_246", + ["is_text", 91, 88, 233, 13], + ["jump_false", 91, "ne_nnl_247", 233, 13], + ["is_text", 92, 89, 233, 13], + ["jump_false", 92, "ne_nnl_247", 233, 13], + ["ne_text", 90, 88, 89, 233, 13], + ["jump", "ne_done_242", 233, 13], + "ne_nnl_247", + ["is_null", 91, 88, 233, 13], + ["jump_false", 91, "ne_nb_248", 233, 13], + ["is_null", 92, 89, 233, 13], + ["jump_false", 92, "ne_nb_248", 233, 13], + ["false", 90, 233, 13], + ["jump", "ne_done_242", 233, 13], + "ne_nb_248", + ["is_bool", 91, 88, 233, 13], + ["jump_false", 91, "ne_mis_249", 233, 13], + ["is_bool", 92, 89, 233, 13], + ["jump_false", 92, "ne_mis_249", 233, 13], + ["ne_bool", 90, 88, 89, 233, 13], + ["jump", "ne_done_242", 233, 13], + "ne_mis_249", + ["true", 90, 233, 13], + "ne_done_242", + ["jump_false", 90, "if_else_240", 233, 13], + [ + "access", + 93, + { + "name": "args", + "kind": "name", + "make": "intrinsic" + }, + 235, + 13 + ], + ["access", 94, 0, 235, 18], + ["load_index", 95, 93, 94, 235, 18], + ["move", 23, 95, 235, 18], + "_nop_bl_1", + ["jump_true", 23, "if_else_250", 236, 8], + ["access", 97, "error: no program specified\n", 237, 11], + [ + "access", + 99, + { + "name": "print", + "kind": "name", + "make": "intrinsic" + }, + 237, + 5 + ], + ["frame", 100, 99, 1, 237, 5], + ["null", 101, 237, 5], + ["setarg", 100, 0, 101, 237, 5], + ["setarg", 100, 1, 97, 237, 5], + ["invoke", 100, 98, 237, 5], + ["disrupt", 238, 5], + ["jump", "if_end_251", 238, 5], + "if_else_250", + "if_end_251", + ["access", 102, 1, 240, 8], + ["move", 6, 102, 240, 8], + "while_start_252", + [ + "access", + 103, + { + "name": "args", + "kind": "name", + "make": "intrinsic" + }, + 241, + 22 + ], + ["length", 104, 103, 241, 22], + ["is_int", 106, 6, 241, 22], + ["jump_false", 106, "rel_ni_254", 241, 22], + "_nop_tc_1", + "_nop_tc_2", + ["lt_int", 105, 6, 104, 241, 22], + ["jump", "rel_done_256", 241, 22], + "rel_ni_254", + ["is_num", 106, 6, 241, 22], + ["jump_false", 106, "rel_nn_255", 241, 22], + ["is_num", 107, 104, 241, 22], + ["jump_false", 107, "rel_nn_255", 241, 22], + ["lt_float", 105, 6, 104, 241, 22], + ["jump", "rel_done_256", 241, 22], + "rel_nn_255", + ["is_text", 106, 6, 241, 22], + ["jump_false", 106, "rel_err_257", 241, 22], + ["is_text", 107, 104, 241, 22], + ["jump_false", 107, "rel_err_257", 241, 22], + ["lt_text", 105, 6, 104, 241, 22], + ["jump", "rel_done_256", 241, 22], + "rel_err_257", + ["disrupt", 241, 22], + "rel_done_256", + ["jump_false", 105, "while_end_253", 241, 22], + [ + "access", + 108, + { + "name": "args", + "kind": "name", + "make": "intrinsic" + }, + 242, + 21 + ], + ["load_dynamic", 109, 108, 6, 242, 26], + ["is_array", 110, 5, 242, 26], + ["jump_false", 110, "push_err_258", 242, 26], + ["push", 5, 109, 242, 26], + ["jump", "push_done_259", 242, 26], + "push_err_258", + ["disrupt", 242, 26], + "push_done_259", + ["access", 111, 1, 243, 15], + ["is_int", 113, 6, 243, 15], + ["jump_false", 113, "add_ni_260", 243, 15], + ["add_int", 112, 6, 111, 243, 15], + ["jump", "add_done_262", 243, 15], + "add_ni_260", + ["is_text", 113, 6, 243, 15], + ["jump_false", 113, "add_nt_261", 243, 15], + ["is_text", 114, 111, 243, 15], + ["jump_false", 114, "add_nt_261", 243, 15], + ["concat", 112, 6, 111, 243, 15], + ["jump", "add_done_262", 243, 15], + "add_nt_261", + ["is_num", 113, 6, 243, 15], + ["jump_false", 113, "add_err_263", 243, 15], + ["add_float", 112, 6, 111, 243, 15], + ["jump", "add_done_262", 243, 15], + "add_err_263", + ["disrupt", 243, 15], + "add_done_262", + ["move", 6, 112, 243, 15], + ["jump", "while_start_252", 243, 15], + "while_end_253", + ["record", 115, 0], + [ + "access", + 116, + { + "name": "os", + "kind": "name", + "make": "intrinsic" + }, + 247, + 9 + ], + ["store_field", 115, 116, "os", 247, 9], + [ + "access", + 117, + { + "name": "actorsym", + "kind": "name", + "make": "intrinsic" + }, + 247, + 23 + ], + ["store_field", 115, 117, "actorsym", 247, 23], + ["record", 118, 0], + ["store_field", 118, 23, "program", 248, 21], + ["store_field", 118, 5, "arg", 248, 35], + ["store_field", 115, 118, "init", 248, 35], + [ + "access", + 119, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 249, + 16 + ], + ["store_field", 115, 119, "core_path", 249, 16], + [ + "access", + 120, + { + "name": "shop_path", + "kind": "name", + "make": "intrinsic" + }, + 249, + 38 + ], + ["store_field", 115, 120, "shop_path", 249, 38], + ["store_field", 115, 25, "json", 249, 55], + ["store_field", 115, 8, "analyze", 250, 14], + ["store_field", 115, 20, "run_ast_fn", 250, 35], + ["store_field", 115, 26, "run_ast_noopt_fn", 250, 62], + ["store_field", 115, 22, "use_cache", 251, 16], + ["frame", 122, 3, 1, 246, 3], + ["null", 123, 246, 3], + ["setarg", 122, 0, 123, 246, 3], + ["setarg", 122, 1, 115, 246, 3], + ["invoke", 122, 121, 246, 3], + ["jump", "if_end_241", 246, 3], + "if_else_240", + ["record", 124, 0], + [ + "access", + 125, + { + "name": "os", + "kind": "name", + "make": "intrinsic" + }, + 256, + 9 + ], + ["store_field", 124, 125, "os", 256, 9], + [ + "access", + 126, + { + "name": "actorsym", + "kind": "name", + "make": "intrinsic" + }, + 256, + 23 + ], + ["store_field", 124, 126, "actorsym", 256, 23], + [ + "access", + 127, + { + "name": "init", + "kind": "name", + "make": "intrinsic" + }, + 256, + 39 + ], + ["store_field", 124, 127, "init", 256, 39], + [ + "access", + 128, + { + "name": "core_path", + "kind": "name", + "make": "intrinsic" + }, + 257, + 16 + ], + ["store_field", 124, 128, "core_path", 257, 16], + [ + "access", + 129, + { + "name": "shop_path", + "kind": "name", + "make": "intrinsic" + }, + 257, + 38 + ], + ["store_field", 124, 129, "shop_path", 257, 38], + ["store_field", 124, 25, "json", 257, 55], + [ + "access", + 130, + { + "name": "nota", + "kind": "name", + "make": "intrinsic" + }, + 257, + 67 + ], + ["store_field", 124, 130, "nota", 257, 67], + [ + "access", + 131, + { + "name": "wota", + "kind": "name", + "make": "intrinsic" + }, + 257, + 79 + ], + ["store_field", 124, 131, "wota", 257, 79], + ["store_field", 124, 8, "analyze", 258, 14], + ["store_field", 124, 20, "run_ast_fn", 258, 35], + ["store_field", 124, 26, "run_ast_noopt_fn", 258, 62], + ["store_field", 124, 22, "use_cache", 259, 16], + ["frame", 133, 3, 1, 255, 3], + ["null", 134, 255, 3], + ["setarg", 133, 0, 134, 255, 3], + ["setarg", 133, 1, 124, 255, 3], + ["invoke", 133, 132, 255, 3], + "if_end_241", + ["null", 135, 255, 3], + ["return", 135, 255, 3] + ] + }, + "filename": "internal/bootstrap.cm", + "data": {} +} \ No newline at end of file diff --git a/internal/engine.cm.mcode b/boot/engine.cm.mcode similarity index 100% rename from internal/engine.cm.mcode rename to boot/engine.cm.mcode diff --git a/fold.cm.mcode b/boot/fold.cm.mcode similarity index 100% rename from fold.cm.mcode rename to boot/fold.cm.mcode diff --git a/mcode.cm.mcode b/boot/mcode.cm.mcode similarity index 100% rename from mcode.cm.mcode rename to boot/mcode.cm.mcode diff --git a/parse.cm.mcode b/boot/parse.cm.mcode similarity index 100% rename from parse.cm.mcode rename to boot/parse.cm.mcode diff --git a/qbe.cm.mcode b/boot/qbe.cm.mcode similarity index 100% rename from qbe.cm.mcode rename to boot/qbe.cm.mcode diff --git a/qbe_emit.cm.mcode b/boot/qbe_emit.cm.mcode similarity index 100% rename from qbe_emit.cm.mcode rename to boot/qbe_emit.cm.mcode diff --git a/streamline.cm.mcode b/boot/streamline.cm.mcode similarity index 100% rename from streamline.cm.mcode rename to boot/streamline.cm.mcode diff --git a/tokenize.cm.mcode b/boot/tokenize.cm.mcode similarity index 100% rename from tokenize.cm.mcode rename to boot/tokenize.cm.mcode diff --git a/boot/verify_ir.cm.mcode b/boot/verify_ir.cm.mcode new file mode 100644 index 00000000..124b5030 --- /dev/null +++ b/boot/verify_ir.cm.mcode @@ -0,0 +1,5299 @@ +{ + "name": "verify_ir.cm", + "functions": [ + { + "disruption_pc": 0, + "nr_slots": 99, + "nr_close_slots": 0, + "instructions": [ + ["load_field", 12, 1, "instructions", 161, 22], + ["move", 3, 12, 161, 22], + ["load_field", 13, 1, "nr_slots", 162, 18], + ["move", 2, 13, 162, 18], + ["array", 14, 0, 163, 16], + ["move", 9, 14, 163, 16], + ["access", 10, 0, 164, 11], + ["null", 5, 165, 15], + ["null", 7, 166, 12], + ["null", 11, 167, 19], + ["access", 8, 0, 168, 11], + ["null", 4, 169, 13], + ["null", 6, 170, 13], + ["null", 15, 172, 23], + ["is_identical", 16, 3, 15, 172, 23], + ["jump_true", 16, "eq_done_2", 172, 23], + ["is_int", 17, 3, 172, 23], + ["jump_false", 17, "eq_ni_3", 172, 23], + "_nop_tc_1", + ["jump", "eq_ni_3", 172, 23], + ["eq_int", 16, 3, 15, 172, 23], + ["jump", "eq_done_2", 172, 23], + "eq_ni_3", + ["is_num", 17, 3, 172, 23], + ["jump_false", 17, "eq_nn_4", 172, 23], + ["is_num", 18, 15, 172, 23], + ["jump_false", 18, "eq_nn_4", 172, 23], + ["eq_float", 16, 3, 15, 172, 23], + ["jump", "eq_done_2", 172, 23], + "eq_nn_4", + ["is_text", 17, 3, 172, 23], + ["jump_false", 17, "eq_nt_5", 172, 23], + ["is_text", 18, 15, 172, 23], + ["jump_false", 18, "eq_nt_5", 172, 23], + ["eq_text", 16, 3, 15, 172, 23], + ["jump", "eq_done_2", 172, 23], + "eq_nt_5", + ["is_null", 17, 3, 172, 23], + ["jump_false", 17, "eq_nnl_6", 172, 23], + ["is_null", 18, 15, 172, 23], + ["jump_false", 18, "eq_nnl_6", 172, 23], + ["true", 16, 172, 23], + ["jump", "eq_done_2", 172, 23], + "eq_nnl_6", + ["is_bool", 17, 3, 172, 23], + ["jump_false", 17, "eq_nb_7", 172, 23], + ["is_bool", 18, 15, 172, 23], + ["jump_false", 18, "eq_nb_7", 172, 23], + ["eq_bool", 16, 3, 15, 172, 23], + ["jump", "eq_done_2", 172, 23], + "eq_nb_7", + ["false", 16, 172, 23], + "eq_done_2", + ["jump_false", 16, "if_else_0", 172, 23], + ["return", 9, 172, 36], + ["jump", "if_end_1", 172, 36], + "if_else_0", + "if_end_1", + "while_start_8", + ["length", 19, 3, 174, 21], + ["is_int", 21, 10, 174, 21], + ["jump_false", 21, "rel_ni_10", 174, 21], + "_nop_tc_2", + "_nop_tc_3", + ["lt_int", 20, 10, 19, 174, 21], + ["jump", "rel_done_12", 174, 21], + "rel_ni_10", + ["is_num", 21, 10, 174, 21], + ["jump_false", 21, "rel_nn_11", 174, 21], + ["is_num", 22, 19, 174, 21], + ["jump_false", 22, "rel_nn_11", 174, 21], + ["lt_float", 20, 10, 19, 174, 21], + ["jump", "rel_done_12", 174, 21], + "rel_nn_11", + ["is_text", 21, 10, 174, 21], + ["jump_false", 21, "rel_err_13", 174, 21], + ["is_text", 22, 19, 174, 21], + ["jump_false", 22, "rel_err_13", 174, 21], + ["lt_text", 20, 10, 19, 174, 21], + ["jump", "rel_done_12", 174, 21], + "rel_err_13", + ["disrupt", 174, 21], + "rel_done_12", + ["jump_false", 20, "while_end_9", 174, 21], + ["load_dynamic", 23, 3, 10, 175, 26], + ["move", 5, 23, 175, 26], + ["is_array", 24, 5, 176, 18], + ["jump_false", 24, "if_else_14", 176, 18], + ["access", 25, 0, 177, 18], + ["load_index", 26, 5, 25, 177, 18], + ["move", 7, 26, 177, 18], + ["get", 27, 1, 1, 178, 19], + ["load_dynamic", 28, 27, 7, 178, 34], + ["move", 11, 28, 178, 34], + ["null", 29, 179, 24], + ["is_identical", 30, 11, 29, 179, 24], + ["jump_true", 30, "ne_nid_19", 179, 24], + ["jump", "ne_ni_20", 179, 24], + "ne_nid_19", + ["false", 30, 179, 24], + ["jump", "ne_done_18", 179, 24], + "ne_ni_20", + ["is_int", 31, 11, 179, 24], + ["jump_false", 31, "ne_nn_21", 179, 24], + ["is_int", 32, 29, 179, 24], + ["jump_false", 32, "ne_nn_21", 179, 24], + ["ne_int", 30, 11, 29, 179, 24], + ["jump", "ne_done_18", 179, 24], + "ne_nn_21", + ["is_num", 31, 11, 179, 24], + ["jump_false", 31, "ne_nt_22", 179, 24], + ["is_num", 32, 29, 179, 24], + ["jump_false", 32, "ne_nt_22", 179, 24], + ["ne_float", 30, 11, 29, 179, 24], + ["jump", "ne_done_18", 179, 24], + "ne_nt_22", + ["is_text", 31, 11, 179, 24], + ["jump_false", 31, "ne_nnl_23", 179, 24], + ["is_text", 32, 29, 179, 24], + ["jump_false", 32, "ne_nnl_23", 179, 24], + ["ne_text", 30, 11, 29, 179, 24], + ["jump", "ne_done_18", 179, 24], + "ne_nnl_23", + ["is_null", 31, 11, 179, 24], + ["jump_false", 31, "ne_nb_24", 179, 24], + ["is_null", 32, 29, 179, 24], + ["jump_false", 32, "ne_nb_24", 179, 24], + ["false", 30, 179, 24], + ["jump", "ne_done_18", 179, 24], + "ne_nb_24", + ["is_bool", 31, 11, 179, 24], + ["jump_false", 31, "ne_mis_25", 179, 24], + ["is_bool", 32, 29, 179, 24], + ["jump_false", 32, "ne_mis_25", 179, 24], + ["ne_bool", 30, 11, 29, 179, 24], + ["jump", "ne_done_18", 179, 24], + "ne_mis_25", + ["true", 30, 179, 24], + "ne_done_18", + ["jump_false", 30, "if_else_16", 179, 24], + ["access", 33, 0, 180, 13], + ["move", 8, 33, 180, 13], + "while_start_26", + ["length", 34, 11, 181, 27], + ["is_int", 36, 8, 181, 27], + ["jump_false", 36, "rel_ni_28", 181, 27], + "_nop_tc_4", + "_nop_tc_5", + ["lt_int", 35, 8, 34, 181, 27], + ["jump", "rel_done_30", 181, 27], + "rel_ni_28", + ["is_num", 36, 8, 181, 27], + ["jump_false", 36, "rel_nn_29", 181, 27], + ["is_num", 37, 34, 181, 27], + ["jump_false", 37, "rel_nn_29", 181, 27], + ["lt_float", 35, 8, 34, 181, 27], + ["jump", "rel_done_30", 181, 27], + "rel_nn_29", + ["is_text", 36, 8, 181, 27], + ["jump_false", 36, "rel_err_31", 181, 27], + ["is_text", 37, 34, 181, 27], + ["jump_false", 37, "rel_err_31", 181, 27], + ["lt_text", 35, 8, 34, 181, 27], + ["jump", "rel_done_30", 181, 27], + "rel_err_31", + ["disrupt", 181, 27], + "rel_done_30", + ["jump_false", 35, "while_end_27", 181, 27], + ["load_dynamic", 38, 11, 8, 182, 27], + ["access", 39, 1, 182, 32], + ["is_int", 41, 38, 182, 32], + ["jump_false", 41, "add_ni_32", 182, 32], + ["add_int", 40, 38, 39, 182, 32], + ["jump", "add_done_34", 182, 32], + "add_ni_32", + ["is_text", 41, 38, 182, 32], + ["jump_false", 41, "add_nt_33", 182, 32], + ["is_text", 42, 39, 182, 32], + ["jump_false", 42, "add_nt_33", 182, 32], + ["concat", 40, 38, 39, 182, 32], + ["jump", "add_done_34", 182, 32], + "add_nt_33", + ["is_num", 41, 38, 182, 32], + ["jump_false", 41, "add_err_35", 182, 32], + ["add_float", 40, 38, 39, 182, 32], + ["jump", "add_done_34", 182, 32], + "add_err_35", + ["disrupt", 182, 32], + "add_done_34", + ["move", 4, 40, 182, 32], + ["length", 43, 5, 183, 28], + ["access", 44, 2, 183, 37], + "_nop_tc_6", + "_nop_tc_7", + ["sub_int", 45, 43, 44, 183, 37], + ["jump", "num_done_39", 183, 37], + "num_ni_38", + ["is_num", 46, 43, 183, 37], + ["jump_false", 46, "num_err_40", 183, 37], + ["sub_float", 45, 43, 44, 183, 37], + ["jump", "num_done_39", 183, 37], + "num_err_40", + ["disrupt", 183, 37], + "num_done_39", + ["is_int", 49, 4, 183, 37], + ["jump_false", 49, "rel_ni_41", 183, 37], + ["is_int", 50, 45, 183, 37], + ["jump_false", 50, "rel_ni_41", 183, 37], + ["lt_int", 48, 4, 45, 183, 37], + ["jump", "rel_done_43", 183, 37], + "rel_ni_41", + ["is_num", 49, 4, 183, 37], + ["jump_false", 49, "rel_nn_42", 183, 37], + ["is_num", 50, 45, 183, 37], + ["jump_false", 50, "rel_nn_42", 183, 37], + ["lt_float", 48, 4, 45, 183, 37], + ["jump", "rel_done_43", 183, 37], + "rel_nn_42", + ["is_text", 49, 4, 183, 37], + ["jump_false", 49, "rel_err_44", 183, 37], + ["is_text", 50, 45, 183, 37], + ["jump_false", 50, "rel_err_44", 183, 37], + ["lt_text", 48, 4, 45, 183, 37], + ["jump", "rel_done_43", 183, 37], + "rel_err_44", + ["disrupt", 183, 37], + "rel_done_43", + ["jump_false", 48, "if_else_36", 183, 37], + ["load_dynamic", 51, 5, 4, 184, 25], + ["move", 6, 51, 184, 25], + ["is_num", 52, 6, 185, 27], + ["move", 53, 52, 185, 27], + ["jump_false", 53, "and_end_47", 185, 27], + ["access", 54, 0, 185, 42], + ["is_int", 56, 6, 185, 42], + ["jump_false", 56, "rel_ni_49", 185, 42], + "_nop_tc_8", + ["jump", "rel_ni_49", 185, 42], + ["lt_int", 55, 6, 54, 185, 42], + ["jump", "rel_done_51", 185, 42], + "rel_ni_49", + ["is_num", 56, 6, 185, 42], + ["jump_false", 56, "rel_nn_50", 185, 42], + ["is_num", 57, 54, 185, 42], + ["jump_false", 57, "rel_nn_50", 185, 42], + ["lt_float", 55, 6, 54, 185, 42], + ["jump", "rel_done_51", 185, 42], + "rel_nn_50", + ["is_text", 56, 6, 185, 42], + ["jump_false", 56, "rel_err_52", 185, 42], + ["is_text", 57, 54, 185, 42], + ["jump_false", 57, "rel_err_52", 185, 42], + ["lt_text", 55, 6, 54, 185, 42], + ["jump", "rel_done_51", 185, 42], + "rel_err_52", + ["disrupt", 185, 42], + "rel_done_51", + ["move", 58, 55, 185, 42], + ["jump_true", 58, "or_end_48", 185, 42], + ["is_int", 60, 6, 185, 54], + ["jump_false", 60, "rel_ni_53", 185, 54], + ["is_int", 61, 2, 185, 54], + ["jump_false", 61, "rel_ni_53", 185, 54], + ["ge_int", 59, 6, 2, 185, 54], + ["jump", "rel_done_55", 185, 54], + "rel_ni_53", + ["is_num", 60, 6, 185, 54], + ["jump_false", 60, "rel_nn_54", 185, 54], + ["is_num", 61, 2, 185, 54], + ["jump_false", 61, "rel_nn_54", 185, 54], + ["ge_float", 59, 6, 2, 185, 54], + ["jump", "rel_done_55", 185, 54], + "rel_nn_54", + ["is_text", 60, 6, 185, 54], + ["jump_false", 60, "rel_err_56", 185, 54], + ["is_text", 61, 2, 185, 54], + ["jump_false", 61, "rel_err_56", 185, 54], + ["ge_text", 59, 6, 2, 185, 54], + ["jump", "rel_done_55", 185, 54], + "rel_err_56", + ["disrupt", 185, 54], + "rel_done_55", + ["move", 58, 59, 185, 54], + "or_end_48", + ["move", 53, 58, 185, 54], + "and_end_47", + ["jump_false", 53, "if_else_45", 185, 54], + [ + "access", + 63, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 64, 63, 1, 1, 1], + ["null", 65, 1, 1], + ["setarg", 64, 0, 65, 1, 1], + ["setarg", 64, 1, 10, 1, 1], + ["invoke", 64, 62, 1, 1], + ["load_dynamic", 66, 11, 8, 1, 16], + [ + "access", + 68, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 69, 68, 1, 1, 1], + ["null", 70, 1, 1], + ["setarg", 69, 0, 70, 1, 1], + ["setarg", 69, 1, 66, 1, 1], + ["invoke", 69, 67, 1, 1], + [ + "access", + 72, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 73, 72, 1, 1, 1], + ["null", 74, 1, 1], + ["setarg", 73, 0, 74, 1, 1], + ["setarg", 73, 1, 6, 1, 1], + ["invoke", 73, 71, 1, 1], + ["access", 75, 1, 1, 17], + ["is_int", 77, 2, 1, 17], + ["jump_false", 77, "num_ni_57", 1, 17], + ["sub_int", 76, 2, 75, 1, 17], + ["jump", "num_done_58", 1, 17], + "num_ni_57", + ["is_num", 77, 2, 1, 17], + ["jump_false", 77, "num_err_59", 1, 17], + ["sub_float", 76, 2, 75, 1, 17], + ["jump", "num_done_58", 1, 17], + "num_err_59", + ["disrupt", 1, 17], + "num_done_58", + [ + "access", + 80, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 81, 80, 1, 1, 1], + ["null", 82, 1, 1], + ["setarg", 81, 0, 82, 1, 1], + ["setarg", 81, 1, 76, 1, 1], + ["invoke", 81, 79, 1, 1], + ["array", 83, 0, 1, 1], + ["push", 83, 62, 1, 1], + ["push", 83, 7, 1, 1], + ["push", 83, 67, 1, 1], + ["push", 83, 71, 1, 1], + ["push", 83, 79, 1, 1], + [ + "access", + 84, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 85, "slot_bounds: instr {0} op={1} slot[{2}]={3} out of range 0..{4}", 1, 1], + ["frame", 87, 84, 2, 1, 1], + ["null", 88, 1, 1], + ["setarg", 87, 0, 88, 1, 1], + ["setarg", 87, 1, 85, 1, 1], + ["setarg", 87, 2, 83, 1, 1], + ["invoke", 87, 86, 1, 1], + ["is_array", 89, 9, 1, 1], + ["jump_false", 89, "push_err_60", 1, 1], + ["push", 9, 86, 1, 1], + ["jump", "push_done_61", 1, 1], + "push_err_60", + ["disrupt", 1, 1], + "push_done_61", + ["jump", "if_end_46", 1, 1], + "if_else_45", + "if_end_46", + ["jump", "if_end_37", 1, 1], + "if_else_36", + "if_end_37", + ["access", 90, 1, 189, 19], + ["is_int", 92, 8, 189, 19], + ["jump_false", 92, "add_ni_62", 189, 19], + ["add_int", 91, 8, 90, 189, 19], + ["jump", "add_done_64", 189, 19], + "add_ni_62", + ["is_text", 92, 8, 189, 19], + ["jump_false", 92, "add_nt_63", 189, 19], + ["is_text", 93, 90, 189, 19], + ["jump_false", 93, "add_nt_63", 189, 19], + ["concat", 91, 8, 90, 189, 19], + ["jump", "add_done_64", 189, 19], + "add_nt_63", + ["is_num", 92, 8, 189, 19], + ["jump_false", 92, "add_err_65", 189, 19], + ["add_float", 91, 8, 90, 189, 19], + ["jump", "add_done_64", 189, 19], + "add_err_65", + ["disrupt", 189, 19], + "add_done_64", + ["move", 8, 91, 189, 19], + ["jump", "while_start_26", 189, 19], + "while_end_27", + ["jump", "if_end_17", 189, 19], + "if_else_16", + "if_end_17", + ["jump", "if_end_15", 189, 19], + "if_else_14", + "if_end_15", + ["access", 94, 1, 193, 13], + ["is_int", 96, 10, 193, 13], + ["jump_false", 96, "add_ni_66", 193, 13], + ["add_int", 95, 10, 94, 193, 13], + ["jump", "add_done_68", 193, 13], + "add_ni_66", + ["is_text", 96, 10, 193, 13], + ["jump_false", 96, "add_nt_67", 193, 13], + ["is_text", 97, 94, 193, 13], + ["jump_false", 97, "add_nt_67", 193, 13], + ["concat", 95, 10, 94, 193, 13], + ["jump", "add_done_68", 193, 13], + "add_nt_67", + ["is_num", 96, 10, 193, 13], + ["jump_false", 96, "add_err_69", 193, 13], + ["add_float", 95, 10, 94, 193, 13], + ["jump", "add_done_68", 193, 13], + "add_err_69", + ["disrupt", 193, 13], + "add_done_68", + ["move", 10, 95, 193, 13], + ["jump", "while_start_8", 193, 13], + "while_end_9", + ["return", 9, 195, 10], + ["null", 98, 195, 10], + ["return", 98, 195, 10] + ], + "name": "", + "filename": "verify_ir.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 78, + "nr_close_slots": 0, + "instructions": [ + ["load_field", 10, 1, "instructions", 201, 22], + ["move", 6, 10, 201, 22], + ["array", 11, 0, 202, 16], + ["move", 8, 11, 202, 16], + ["record", 12, 0], + ["move", 2, 12, 203, 16], + ["access", 9, 0, 204, 11], + ["null", 4, 205, 15], + ["null", 7, 206, 12], + ["null", 3, 207, 19], + ["null", 5, 208, 16], + ["null", 13, 210, 23], + ["is_identical", 14, 6, 13, 210, 23], + ["jump_true", 14, "eq_done_72", 210, 23], + ["is_int", 15, 6, 210, 23], + ["jump_false", 15, "eq_ni_73", 210, 23], + "_nop_tc_1", + ["jump", "eq_ni_73", 210, 23], + ["eq_int", 14, 6, 13, 210, 23], + ["jump", "eq_done_72", 210, 23], + "eq_ni_73", + ["is_num", 15, 6, 210, 23], + ["jump_false", 15, "eq_nn_74", 210, 23], + ["is_num", 16, 13, 210, 23], + ["jump_false", 16, "eq_nn_74", 210, 23], + ["eq_float", 14, 6, 13, 210, 23], + ["jump", "eq_done_72", 210, 23], + "eq_nn_74", + ["is_text", 15, 6, 210, 23], + ["jump_false", 15, "eq_nt_75", 210, 23], + ["is_text", 16, 13, 210, 23], + ["jump_false", 16, "eq_nt_75", 210, 23], + ["eq_text", 14, 6, 13, 210, 23], + ["jump", "eq_done_72", 210, 23], + "eq_nt_75", + ["is_null", 15, 6, 210, 23], + ["jump_false", 15, "eq_nnl_76", 210, 23], + ["is_null", 16, 13, 210, 23], + ["jump_false", 16, "eq_nnl_76", 210, 23], + ["true", 14, 210, 23], + ["jump", "eq_done_72", 210, 23], + "eq_nnl_76", + ["is_bool", 15, 6, 210, 23], + ["jump_false", 15, "eq_nb_77", 210, 23], + ["is_bool", 16, 13, 210, 23], + ["jump_false", 16, "eq_nb_77", 210, 23], + ["eq_bool", 14, 6, 13, 210, 23], + ["jump", "eq_done_72", 210, 23], + "eq_nb_77", + ["false", 14, 210, 23], + "eq_done_72", + ["jump_false", 14, "if_else_70", 210, 23], + ["return", 8, 210, 36], + ["jump", "if_end_71", 210, 36], + "if_else_70", + "if_end_71", + "while_start_78", + ["length", 17, 6, 213, 21], + ["is_int", 19, 9, 213, 21], + ["jump_false", 19, "rel_ni_80", 213, 21], + "_nop_tc_2", + "_nop_tc_3", + ["lt_int", 18, 9, 17, 213, 21], + ["jump", "rel_done_82", 213, 21], + "rel_ni_80", + ["is_num", 19, 9, 213, 21], + ["jump_false", 19, "rel_nn_81", 213, 21], + ["is_num", 20, 17, 213, 21], + ["jump_false", 20, "rel_nn_81", 213, 21], + ["lt_float", 18, 9, 17, 213, 21], + ["jump", "rel_done_82", 213, 21], + "rel_nn_81", + ["is_text", 19, 9, 213, 21], + ["jump_false", 19, "rel_err_83", 213, 21], + ["is_text", 20, 17, 213, 21], + ["jump_false", 20, "rel_err_83", 213, 21], + ["lt_text", 18, 9, 17, 213, 21], + ["jump", "rel_done_82", 213, 21], + "rel_err_83", + ["disrupt", 213, 21], + "rel_done_82", + ["jump_false", 18, "while_end_79", 213, 21], + ["load_dynamic", 21, 6, 9, 214, 26], + ["move", 4, 21, 214, 26], + ["is_text", 22, 4, 215, 17], + ["move", 23, 22, 215, 17], + ["jump_false", 23, "and_end_86", 215, 17], + ["access", 24, "_nop_", 215, 47], + [ + "access", + 26, + { + "name": "starts_with", + "kind": "name", + "make": "intrinsic" + }, + 215, + 28 + ], + ["frame", 27, 26, 2, 215, 28], + ["null", 28, 215, 28], + ["setarg", 27, 0, 28, 215, 28], + ["setarg", 27, 1, 4, 215, 28], + ["setarg", 27, 2, 24, 215, 28], + ["invoke", 27, 25, 215, 28], + ["not", 29, 25, 215, 28], + ["move", 23, 29, 215, 28], + "and_end_86", + ["jump_false", 23, "if_else_84", 215, 28], + ["true", 30, 216, 23], + ["store_dynamic", 2, 30, 4, 216, 14], + ["jump", "if_end_85", 216, 14], + "if_else_84", + "if_end_85", + ["access", 31, 1, 218, 13], + ["is_int", 33, 9, 218, 13], + ["jump_false", 33, "add_ni_87", 218, 13], + ["add_int", 32, 9, 31, 218, 13], + ["jump", "add_done_89", 218, 13], + "add_ni_87", + ["is_text", 33, 9, 218, 13], + ["jump_false", 33, "add_nt_88", 218, 13], + ["is_text", 34, 31, 218, 13], + ["jump_false", 34, "add_nt_88", 218, 13], + ["concat", 32, 9, 31, 218, 13], + ["jump", "add_done_89", 218, 13], + "add_nt_88", + ["is_num", 33, 9, 218, 13], + ["jump_false", 33, "add_err_90", 218, 13], + ["add_float", 32, 9, 31, 218, 13], + ["jump", "add_done_89", 218, 13], + "add_err_90", + ["disrupt", 218, 13], + "add_done_89", + ["move", 9, 32, 218, 13], + ["jump", "while_start_78", 218, 13], + "while_end_79", + ["access", 35, 0, 222, 7], + ["move", 9, 35, 222, 7], + "while_start_91", + ["length", 36, 6, 223, 21], + ["is_int", 38, 9, 223, 21], + ["jump_false", 38, "rel_ni_93", 223, 21], + "_nop_tc_4", + "_nop_tc_5", + ["lt_int", 37, 9, 36, 223, 21], + ["jump", "rel_done_95", 223, 21], + "rel_ni_93", + ["is_num", 38, 9, 223, 21], + ["jump_false", 38, "rel_nn_94", 223, 21], + ["is_num", 39, 36, 223, 21], + ["jump_false", 39, "rel_nn_94", 223, 21], + ["lt_float", 37, 9, 36, 223, 21], + ["jump", "rel_done_95", 223, 21], + "rel_nn_94", + ["is_text", 38, 9, 223, 21], + ["jump_false", 38, "rel_err_96", 223, 21], + ["is_text", 39, 36, 223, 21], + ["jump_false", 39, "rel_err_96", 223, 21], + ["lt_text", 37, 9, 36, 223, 21], + ["jump", "rel_done_95", 223, 21], + "rel_err_96", + ["disrupt", 223, 21], + "rel_done_95", + ["jump_false", 37, "while_end_92", 223, 21], + ["load_dynamic", 40, 6, 9, 224, 26], + ["move", 4, 40, 224, 26], + ["is_array", 41, 4, 225, 18], + ["jump_false", 41, "if_else_97", 225, 18], + ["access", 42, 0, 226, 18], + ["load_index", 43, 4, 42, 226, 18], + ["move", 7, 43, 226, 18], + ["get", 44, 4, 1, 227, 19], + ["load_dynamic", 45, 44, 7, 227, 34], + ["move", 3, 45, 227, 34], + ["null", 46, 228, 24], + ["is_identical", 47, 3, 46, 228, 24], + ["jump_true", 47, "ne_nid_102", 228, 24], + ["jump", "ne_ni_103", 228, 24], + "ne_nid_102", + ["false", 47, 228, 24], + ["jump", "ne_done_101", 228, 24], + "ne_ni_103", + ["is_int", 48, 3, 228, 24], + ["jump_false", 48, "ne_nn_104", 228, 24], + ["is_int", 49, 46, 228, 24], + ["jump_false", 49, "ne_nn_104", 228, 24], + ["ne_int", 47, 3, 46, 228, 24], + ["jump", "ne_done_101", 228, 24], + "ne_nn_104", + ["is_num", 48, 3, 228, 24], + ["jump_false", 48, "ne_nt_105", 228, 24], + ["is_num", 49, 46, 228, 24], + ["jump_false", 49, "ne_nt_105", 228, 24], + ["ne_float", 47, 3, 46, 228, 24], + ["jump", "ne_done_101", 228, 24], + "ne_nt_105", + ["is_text", 48, 3, 228, 24], + ["jump_false", 48, "ne_nnl_106", 228, 24], + ["is_text", 49, 46, 228, 24], + ["jump_false", 49, "ne_nnl_106", 228, 24], + ["ne_text", 47, 3, 46, 228, 24], + ["jump", "ne_done_101", 228, 24], + "ne_nnl_106", + ["is_null", 48, 3, 228, 24], + ["jump_false", 48, "ne_nb_107", 228, 24], + ["is_null", 49, 46, 228, 24], + ["jump_false", 49, "ne_nb_107", 228, 24], + ["false", 47, 228, 24], + ["jump", "ne_done_101", 228, 24], + "ne_nb_107", + ["is_bool", 48, 3, 228, 24], + ["jump_false", 48, "ne_mis_108", 228, 24], + ["is_bool", 49, 46, 228, 24], + ["jump_false", 49, "ne_mis_108", 228, 24], + ["ne_bool", 47, 3, 46, 228, 24], + ["jump", "ne_done_101", 228, 24], + "ne_mis_108", + ["true", 47, 228, 24], + "ne_done_101", + ["jump_false", 47, "if_else_99", 228, 24], + ["access", 50, 1, 229, 36], + ["is_int", 52, 3, 229, 36], + ["jump_false", 52, "add_ni_109", 229, 36], + ["add_int", 51, 3, 50, 229, 36], + ["jump", "add_done_111", 229, 36], + "add_ni_109", + ["is_text", 52, 3, 229, 36], + ["jump_false", 52, "add_nt_110", 229, 36], + ["is_text", 53, 50, 229, 36], + ["jump_false", 53, "add_nt_110", 229, 36], + ["concat", 51, 3, 50, 229, 36], + ["jump", "add_done_111", 229, 36], + "add_nt_110", + ["is_num", 52, 3, 229, 36], + ["jump_false", 52, "add_err_112", 229, 36], + ["add_float", 51, 3, 50, 229, 36], + ["jump", "add_done_111", 229, 36], + "add_err_112", + ["disrupt", 229, 36], + "add_done_111", + ["load_dynamic", 54, 4, 51, 229, 36], + ["move", 5, 54, 229, 36], + ["is_text", 55, 5, 230, 21], + ["move", 56, 55, 230, 21], + ["jump_false", 56, "and_end_115", 230, 21], + ["load_dynamic", 57, 2, 5, 230, 39], + ["true", 58, 230, 50], + ["is_identical", 59, 57, 58, 230, 50], + ["jump_true", 59, "ne_nid_117", 230, 50], + ["jump", "ne_ni_118", 230, 50], + "ne_nid_117", + ["false", 59, 230, 50], + ["jump", "ne_done_116", 230, 50], + "ne_ni_118", + ["is_int", 60, 57, 230, 50], + ["jump_false", 60, "ne_nn_119", 230, 50], + ["is_int", 61, 58, 230, 50], + ["jump_false", 61, "ne_nn_119", 230, 50], + ["ne_int", 59, 57, 58, 230, 50], + ["jump", "ne_done_116", 230, 50], + "ne_nn_119", + ["is_num", 60, 57, 230, 50], + ["jump_false", 60, "ne_nt_120", 230, 50], + ["is_num", 61, 58, 230, 50], + ["jump_false", 61, "ne_nt_120", 230, 50], + ["ne_float", 59, 57, 58, 230, 50], + ["jump", "ne_done_116", 230, 50], + "ne_nt_120", + ["is_text", 60, 57, 230, 50], + ["jump_false", 60, "ne_nnl_121", 230, 50], + ["is_text", 61, 58, 230, 50], + ["jump_false", 61, "ne_nnl_121", 230, 50], + ["ne_text", 59, 57, 58, 230, 50], + ["jump", "ne_done_116", 230, 50], + "ne_nnl_121", + ["is_null", 60, 57, 230, 50], + ["jump_false", 60, "ne_nb_122", 230, 50], + ["is_null", 61, 58, 230, 50], + ["jump_false", 61, "ne_nb_122", 230, 50], + ["false", 59, 230, 50], + ["jump", "ne_done_116", 230, 50], + "ne_nb_122", + ["is_bool", 60, 57, 230, 50], + ["jump_false", 60, "ne_mis_123", 230, 50], + ["is_bool", 61, 58, 230, 50], + ["jump_false", 61, "ne_mis_123", 230, 50], + ["ne_bool", 59, 57, 58, 230, 50], + ["jump", "ne_done_116", 230, 50], + "ne_mis_123", + ["true", 59, 230, 50], + "ne_done_116", + ["move", 56, 59, 230, 50], + "and_end_115", + ["jump_false", 56, "if_else_113", 230, 50], + [ + "access", + 63, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 64, 63, 1, 1, 1], + ["null", 65, 1, 1], + ["setarg", 64, 0, 65, 1, 1], + ["setarg", 64, 1, 9, 1, 1], + ["invoke", 64, 62, 1, 1], + ["array", 66, 0, 1, 1], + ["push", 66, 62, 1, 1], + ["push", 66, 7, 1, 1], + ["push", 66, 5, 1, 1], + [ + "access", + 67, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 68, "jump_targets: instr {0} op={1} target label \"{2}\" not found", 1, 1], + ["frame", 70, 67, 2, 1, 1], + ["null", 71, 1, 1], + ["setarg", 70, 0, 71, 1, 1], + ["setarg", 70, 1, 68, 1, 1], + ["setarg", 70, 2, 66, 1, 1], + ["invoke", 70, 69, 1, 1], + ["is_array", 72, 8, 1, 1], + ["jump_false", 72, "push_err_124", 1, 1], + ["push", 8, 69, 1, 1], + ["jump", "push_done_125", 1, 1], + "push_err_124", + ["disrupt", 1, 1], + "push_done_125", + ["jump", "if_end_114", 1, 1], + "if_else_113", + "if_end_114", + ["jump", "if_end_100", 1, 1], + "if_else_99", + "if_end_100", + ["jump", "if_end_98", 1, 1], + "if_else_97", + "if_end_98", + ["access", 73, 1, 235, 13], + ["is_int", 75, 9, 235, 13], + ["jump_false", 75, "add_ni_126", 235, 13], + ["add_int", 74, 9, 73, 235, 13], + ["jump", "add_done_128", 235, 13], + "add_ni_126", + ["is_text", 75, 9, 235, 13], + ["jump_false", 75, "add_nt_127", 235, 13], + ["is_text", 76, 73, 235, 13], + ["jump_false", 76, "add_nt_127", 235, 13], + ["concat", 74, 9, 73, 235, 13], + ["jump", "add_done_128", 235, 13], + "add_nt_127", + ["is_num", 75, 9, 235, 13], + ["jump_false", 75, "add_err_129", 235, 13], + ["add_float", 74, 9, 73, 235, 13], + ["jump", "add_done_128", 235, 13], + "add_err_129", + ["disrupt", 235, 13], + "add_done_128", + ["move", 9, 74, 235, 13], + ["jump", "while_start_91", 235, 13], + "while_end_92", + ["return", 8, 237, 10], + ["null", 77, 237, 10], + ["return", 77, 237, 10] + ], + "name": "", + "filename": "verify_ir.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 467, + "nr_close_slots": 0, + "instructions": [ + ["load_field", 20, 1, "instructions", 243, 22], + ["move", 4, 20, 243, 22], + ["array", 21, 0, 244, 16], + ["move", 18, 21, 244, 16], + ["record", 22, 0], + ["move", 14, 22, 245, 20], + ["access", 19, 0, 246, 11], + ["null", 12, 247, 15], + ["null", 15, 248, 12], + ["null", 2, 249, 12], + ["null", 13, 250, 12], + ["null", 9, 251, 12], + ["null", 16, 252, 12], + ["null", 23, 254, 23], + ["is_identical", 24, 4, 23, 254, 23], + ["jump_true", 24, "eq_done_132", 254, 23], + ["is_int", 25, 4, 254, 23], + ["jump_false", 25, "eq_ni_133", 254, 23], + "_nop_tc_1", + ["jump", "eq_ni_133", 254, 23], + ["eq_int", 24, 4, 23, 254, 23], + ["jump", "eq_done_132", 254, 23], + "eq_ni_133", + ["is_num", 25, 4, 254, 23], + ["jump_false", 25, "eq_nn_134", 254, 23], + ["is_num", 26, 23, 254, 23], + ["jump_false", 26, "eq_nn_134", 254, 23], + ["eq_float", 24, 4, 23, 254, 23], + ["jump", "eq_done_132", 254, 23], + "eq_nn_134", + ["is_text", 25, 4, 254, 23], + ["jump_false", 25, "eq_nt_135", 254, 23], + ["is_text", 26, 23, 254, 23], + ["jump_false", 26, "eq_nt_135", 254, 23], + ["eq_text", 24, 4, 23, 254, 23], + ["jump", "eq_done_132", 254, 23], + "eq_nt_135", + ["is_null", 25, 4, 254, 23], + ["jump_false", 25, "eq_nnl_136", 254, 23], + ["is_null", 26, 23, 254, 23], + ["jump_false", 26, "eq_nnl_136", 254, 23], + ["true", 24, 254, 23], + ["jump", "eq_done_132", 254, 23], + "eq_nnl_136", + ["is_bool", 25, 4, 254, 23], + ["jump_false", 25, "eq_nb_137", 254, 23], + ["is_bool", 26, 23, 254, 23], + ["jump_false", 26, "eq_nb_137", 254, 23], + ["eq_bool", 24, 4, 23, 254, 23], + ["jump", "eq_done_132", 254, 23], + "eq_nb_137", + ["false", 24, 254, 23], + "eq_done_132", + ["jump_false", 24, "if_else_130", 254, 23], + ["return", 18, 254, 36], + ["jump", "if_end_131", 254, 36], + "if_else_130", + "if_end_131", + ["access", 11, "int", 257, 15], + ["access", 10, "float", 258, 17], + ["access", 6, "text", 259, 16], + ["access", 7, "bool", 260, 16], + ["record", 27, 0], + ["true", 28, 263, 14], + ["store_field", 27, 28, "add_int", 263, 14], + ["true", 29, 263, 29], + ["store_field", 27, 29, "sub_int", 263, 29], + ["true", 30, 263, 44], + ["store_field", 27, 30, "mul_int", 263, 44], + ["true", 31, 263, 59], + ["store_field", 27, 31, "div_int", 263, 59], + ["true", 32, 263, 74], + ["store_field", 27, 32, "mod_int", 263, 74], + ["true", 33, 264, 13], + ["store_field", 27, 33, "eq_int", 264, 13], + ["true", 34, 264, 27], + ["store_field", 27, 34, "ne_int", 264, 27], + ["true", 35, 264, 41], + ["store_field", 27, 35, "lt_int", 264, 41], + ["true", 36, 264, 55], + ["store_field", 27, 36, "gt_int", 264, 55], + ["true", 37, 264, 69], + ["store_field", 27, 37, "le_int", 264, 69], + ["true", 38, 264, 83], + ["store_field", 27, 38, "ge_int", 264, 83], + ["true", 39, 265, 14], + ["store_field", 27, 39, "neg_int", 265, 14], + ["move", 3, 27, 265, 14], + ["record", 40, 0], + ["true", 41, 268, 16], + ["store_field", 40, 41, "add_float", 268, 16], + ["true", 42, 268, 33], + ["store_field", 40, 42, "sub_float", 268, 33], + ["true", 43, 268, 50], + ["store_field", 40, 43, "mul_float", 268, 50], + ["true", 44, 268, 67], + ["store_field", 40, 44, "div_float", 268, 67], + ["true", 45, 268, 84], + ["store_field", 40, 45, "mod_float", 268, 84], + ["true", 46, 269, 15], + ["store_field", 40, 46, "eq_float", 269, 15], + ["true", 47, 269, 31], + ["store_field", 40, 47, "ne_float", 269, 31], + ["true", 48, 269, 47], + ["store_field", 40, 48, "lt_float", 269, 47], + ["true", 49, 269, 63], + ["store_field", 40, 49, "gt_float", 269, 63], + ["true", 50, 269, 79], + ["store_field", 40, 50, "le_float", 269, 79], + ["true", 51, 269, 95], + ["store_field", 40, 51, "ge_float", 269, 95], + ["true", 52, 270, 16], + ["store_field", 40, 52, "neg_float", 270, 16], + ["move", 5, 40, 270, 16], + ["record", 53, 0], + ["true", 54, 273, 14], + ["store_field", 53, 54, "eq_text", 273, 14], + ["true", 55, 273, 29], + ["store_field", 53, 55, "ne_text", 273, 29], + ["true", 56, 273, 44], + ["store_field", 53, 56, "lt_text", 273, 44], + ["true", 57, 273, 59], + ["store_field", 53, 57, "gt_text", 273, 59], + ["true", 58, 273, 74], + ["store_field", 53, 58, "le_text", 273, 74], + ["true", 59, 273, 89], + ["store_field", 53, 59, "ge_text", 273, 89], + ["true", 60, 274, 13], + ["store_field", 53, 60, "concat", 274, 13], + ["move", 8, 53, 274, 13], + ["record", 61, 0], + ["true", 62, 277, 14], + ["store_field", 61, 62, "eq_bool", 277, 14], + ["true", 63, 277, 29], + ["store_field", 61, 63, "ne_bool", 277, 29], + ["true", 64, 277, 40], + ["store_field", 61, 64, "not", 277, 40], + ["true", 65, 277, 51], + ["store_field", 61, 65, "and", 277, 51], + ["true", 66, 277, 61], + ["store_field", 61, 66, "or", 277, 61], + ["move", 17, 61, 277, 61], + "while_start_138", + ["length", 67, 4, 280, 21], + ["is_int", 69, 19, 280, 21], + ["jump_false", 69, "rel_ni_140", 280, 21], + "_nop_tc_2", + "_nop_tc_3", + ["lt_int", 68, 19, 67, 280, 21], + ["jump", "rel_done_142", 280, 21], + "rel_ni_140", + ["is_num", 69, 19, 280, 21], + ["jump_false", 69, "rel_nn_141", 280, 21], + ["is_num", 70, 67, 280, 21], + ["jump_false", 70, "rel_nn_141", 280, 21], + ["lt_float", 68, 19, 67, 280, 21], + ["jump", "rel_done_142", 280, 21], + "rel_nn_141", + ["is_text", 69, 19, 280, 21], + ["jump_false", 69, "rel_err_143", 280, 21], + ["is_text", 70, 67, 280, 21], + ["jump_false", 70, "rel_err_143", 280, 21], + ["lt_text", 68, 19, 67, 280, 21], + ["jump", "rel_done_142", 280, 21], + "rel_err_143", + ["disrupt", 280, 21], + "rel_done_142", + ["jump_false", 68, "while_end_139", 280, 21], + ["load_dynamic", 71, 4, 19, 281, 26], + ["move", 12, 71, 281, 26], + ["is_text", 72, 12, 284, 17], + ["move", 73, 72, 284, 17], + ["jump_false", 73, "and_end_146", 284, 17], + ["access", 74, "_nop_", 284, 47], + [ + "access", + 76, + { + "name": "starts_with", + "kind": "name", + "make": "intrinsic" + }, + 284, + 28 + ], + ["frame", 77, 76, 2, 284, 28], + ["null", 78, 284, 28], + ["setarg", 77, 0, 78, 284, 28], + ["setarg", 77, 1, 12, 284, 28], + ["setarg", 77, 2, 74, 284, 28], + ["invoke", 77, 75, 284, 28], + ["not", 79, 75, 284, 28], + ["move", 73, 79, 284, 28], + "and_end_146", + ["jump_false", 73, "if_else_144", 284, 28], + ["record", 80, 0], + ["move", 14, 80, 285, 20], + ["access", 81, 1, 286, 15], + ["is_int", 83, 19, 286, 15], + ["jump_false", 83, "add_ni_147", 286, 15], + ["add_int", 82, 19, 81, 286, 15], + ["jump", "add_done_149", 286, 15], + "add_ni_147", + ["is_text", 83, 19, 286, 15], + ["jump_false", 83, "add_nt_148", 286, 15], + ["is_text", 84, 81, 286, 15], + ["jump_false", 84, "add_nt_148", 286, 15], + ["concat", 82, 19, 81, 286, 15], + ["jump", "add_done_149", 286, 15], + "add_nt_148", + ["is_num", 83, 19, 286, 15], + ["jump_false", 83, "add_err_150", 286, 15], + ["add_float", 82, 19, 81, 286, 15], + ["jump", "add_done_149", 286, 15], + "add_err_150", + ["disrupt", 286, 15], + "add_done_149", + ["move", 19, 82, 286, 15], + ["jump", "while_start_138", 287, 7], + ["jump", "if_end_145", 287, 7], + "if_else_144", + "if_end_145", + ["is_array", 85, 12, 290, 19], + "_nop_bl_1", + ["jump_true", 85, "if_else_151", 290, 19], + ["access", 87, 1, 291, 15], + ["is_int", 89, 19, 291, 15], + ["jump_false", 89, "add_ni_153", 291, 15], + ["add_int", 88, 19, 87, 291, 15], + ["jump", "add_done_155", 291, 15], + "add_ni_153", + ["is_text", 89, 19, 291, 15], + ["jump_false", 89, "add_nt_154", 291, 15], + ["is_text", 90, 87, 291, 15], + ["jump_false", 90, "add_nt_154", 291, 15], + ["concat", 88, 19, 87, 291, 15], + ["jump", "add_done_155", 291, 15], + "add_nt_154", + ["is_num", 89, 19, 291, 15], + ["jump_false", 89, "add_err_156", 291, 15], + ["add_float", 88, 19, 87, 291, 15], + ["jump", "add_done_155", 291, 15], + "add_err_156", + ["disrupt", 291, 15], + "add_done_155", + ["move", 19, 88, 291, 15], + ["jump", "while_start_138", 292, 7], + ["jump", "if_end_152", 292, 7], + "if_else_151", + "if_end_152", + ["access", 91, 0, 295, 16], + ["load_index", 92, 12, 91, 295, 16], + ["move", 15, 92, 295, 16], + ["access", 93, "int", 298, 15], + ["is_identical", 94, 15, 93, 298, 15], + ["jump_true", 94, "eq_done_159", 298, 15], + ["is_int", 95, 15, 298, 15], + ["jump_false", 95, "eq_ni_160", 298, 15], + "_nop_tc_4", + ["jump", "eq_ni_160", 298, 15], + ["eq_int", 94, 15, 93, 298, 15], + ["jump", "eq_done_159", 298, 15], + "eq_ni_160", + ["is_num", 95, 15, 298, 15], + ["jump_false", 95, "eq_nn_161", 298, 15], + ["is_num", 96, 93, 298, 15], + ["jump_false", 96, "eq_nn_161", 298, 15], + ["eq_float", 94, 15, 93, 298, 15], + ["jump", "eq_done_159", 298, 15], + "eq_nn_161", + ["is_text", 95, 15, 298, 15], + ["jump_false", 95, "eq_nt_162", 298, 15], + ["is_text", 96, 93, 298, 15], + ["jump_false", 96, "eq_nt_162", 298, 15], + ["eq_text", 94, 15, 93, 298, 15], + ["jump", "eq_done_159", 298, 15], + "eq_nt_162", + ["is_null", 95, 15, 298, 15], + ["jump_false", 95, "eq_nnl_163", 298, 15], + ["is_null", 96, 93, 298, 15], + ["jump_false", 96, "eq_nnl_163", 298, 15], + ["true", 94, 298, 15], + ["jump", "eq_done_159", 298, 15], + "eq_nnl_163", + ["is_bool", 95, 15, 298, 15], + ["jump_false", 95, "eq_nb_164", 298, 15], + ["is_bool", 96, 93, 298, 15], + ["jump_false", 96, "eq_nb_164", 298, 15], + ["eq_bool", 94, 15, 93, 298, 15], + ["jump", "eq_done_159", 298, 15], + "eq_nb_164", + ["false", 94, 298, 15], + "eq_done_159", + ["jump_false", 94, "if_else_157", 298, 15], + ["access", 97, 1, 299, 29], + ["load_index", 98, 12, 97, 299, 29], + [ + "access", + 100, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 299, + 18 + ], + ["frame", 101, 100, 1, 299, 18], + ["null", 102, 299, 18], + ["setarg", 101, 0, 102, 299, 18], + ["setarg", 101, 1, 98, 299, 18], + ["invoke", 101, 99, 299, 18], + ["store_dynamic", 14, 11, 99, 299, 18], + ["jump", "if_end_158", 299, 18], + "if_else_157", + ["access", 103, "access", 300, 22], + ["is_identical", 104, 15, 103, 300, 22], + ["jump_true", 104, "eq_done_167", 300, 22], + ["is_int", 105, 15, 300, 22], + ["jump_false", 105, "eq_ni_168", 300, 22], + "_nop_tc_5", + ["jump", "eq_ni_168", 300, 22], + ["eq_int", 104, 15, 103, 300, 22], + ["jump", "eq_done_167", 300, 22], + "eq_ni_168", + ["is_num", 105, 15, 300, 22], + ["jump_false", 105, "eq_nn_169", 300, 22], + ["is_num", 106, 103, 300, 22], + ["jump_false", 106, "eq_nn_169", 300, 22], + ["eq_float", 104, 15, 103, 300, 22], + ["jump", "eq_done_167", 300, 22], + "eq_nn_169", + ["is_text", 105, 15, 300, 22], + ["jump_false", 105, "eq_nt_170", 300, 22], + ["is_text", 106, 103, 300, 22], + ["jump_false", 106, "eq_nt_170", 300, 22], + ["eq_text", 104, 15, 103, 300, 22], + ["jump", "eq_done_167", 300, 22], + "eq_nt_170", + ["is_null", 105, 15, 300, 22], + ["jump_false", 105, "eq_nnl_171", 300, 22], + ["is_null", 106, 103, 300, 22], + ["jump_false", 106, "eq_nnl_171", 300, 22], + ["true", 104, 300, 22], + ["jump", "eq_done_167", 300, 22], + "eq_nnl_171", + ["is_bool", 105, 15, 300, 22], + ["jump_false", 105, "eq_nb_172", 300, 22], + ["is_bool", 106, 103, 300, 22], + ["jump_false", 106, "eq_nb_172", 300, 22], + ["eq_bool", 104, 15, 103, 300, 22], + ["jump", "eq_done_167", 300, 22], + "eq_nb_172", + ["false", 104, 300, 22], + "eq_done_167", + ["jump_false", 104, "if_else_165", 300, 22], + ["access", 107, 2, 301, 27], + ["load_index", 108, 12, 107, 301, 27], + ["is_num", 109, 108, 301, 27], + ["jump_false", 109, "if_else_173", 301, 27], + ["access", 110, 2, 302, 30], + ["load_index", 111, 12, 110, 302, 30], + ["is_int", 112, 111, 302, 30], + ["jump_false", 112, "if_else_175", 302, 30], + ["access", 113, 1, 303, 33], + ["load_index", 114, 12, 113, 303, 33], + [ + "access", + 116, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 303, + 22 + ], + ["frame", 117, 116, 1, 303, 22], + ["null", 118, 303, 22], + ["setarg", 117, 0, 118, 303, 22], + ["setarg", 117, 1, 114, 303, 22], + ["invoke", 117, 115, 303, 22], + ["store_dynamic", 14, 11, 115, 303, 22], + ["jump", "if_end_176", 303, 22], + "if_else_175", + ["access", 119, 1, 305, 33], + ["load_index", 120, 12, 119, 305, 33], + [ + "access", + 122, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 305, + 22 + ], + ["frame", 123, 122, 1, 305, 22], + ["null", 124, 305, 22], + ["setarg", 123, 0, 124, 305, 22], + ["setarg", 123, 1, 120, 305, 22], + ["invoke", 123, 121, 305, 22], + ["store_dynamic", 14, 10, 121, 305, 22], + "if_end_176", + ["jump", "if_end_174", 305, 22], + "if_else_173", + ["access", 125, 2, 307, 32], + ["load_index", 126, 12, 125, 307, 32], + ["is_text", 127, 126, 307, 32], + ["jump_false", 127, "if_else_177", 307, 32], + ["access", 128, 1, 308, 31], + ["load_index", 129, 12, 128, 308, 31], + [ + "access", + 131, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 308, + 20 + ], + ["frame", 132, 131, 1, 308, 20], + ["null", 133, 308, 20], + ["setarg", 132, 0, 133, 308, 20], + ["setarg", 132, 1, 129, 308, 20], + ["invoke", 132, 130, 308, 20], + ["store_dynamic", 14, 6, 130, 308, 20], + ["jump", "if_end_178", 308, 20], + "if_else_177", + "if_end_178", + "if_end_174", + ["jump", "if_end_166", 308, 20], + "if_else_165", + ["access", 134, "true", 310, 22], + ["is_identical", 135, 15, 134, 310, 22], + ["jump_true", 135, "eq_done_182", 310, 22], + ["is_int", 136, 15, 310, 22], + ["jump_false", 136, "eq_ni_183", 310, 22], + "_nop_tc_6", + ["jump", "eq_ni_183", 310, 22], + ["eq_int", 135, 15, 134, 310, 22], + ["jump", "eq_done_182", 310, 22], + "eq_ni_183", + ["is_num", 136, 15, 310, 22], + ["jump_false", 136, "eq_nn_184", 310, 22], + ["is_num", 137, 134, 310, 22], + ["jump_false", 137, "eq_nn_184", 310, 22], + ["eq_float", 135, 15, 134, 310, 22], + ["jump", "eq_done_182", 310, 22], + "eq_nn_184", + ["is_text", 136, 15, 310, 22], + ["jump_false", 136, "eq_nt_185", 310, 22], + ["is_text", 137, 134, 310, 22], + ["jump_false", 137, "eq_nt_185", 310, 22], + ["eq_text", 135, 15, 134, 310, 22], + ["jump", "eq_done_182", 310, 22], + "eq_nt_185", + ["is_null", 136, 15, 310, 22], + ["jump_false", 136, "eq_nnl_186", 310, 22], + ["is_null", 137, 134, 310, 22], + ["jump_false", 137, "eq_nnl_186", 310, 22], + ["true", 135, 310, 22], + ["jump", "eq_done_182", 310, 22], + "eq_nnl_186", + ["is_bool", 136, 15, 310, 22], + ["jump_false", 136, "eq_nb_187", 310, 22], + ["is_bool", 137, 134, 310, 22], + ["jump_false", 137, "eq_nb_187", 310, 22], + ["eq_bool", 135, 15, 134, 310, 22], + ["jump", "eq_done_182", 310, 22], + "eq_nb_187", + ["false", 135, 310, 22], + "eq_done_182", + ["move", 138, 135, 310, 22], + ["jump_true", 138, "or_end_181", 310, 22], + ["access", 139, "false", 310, 38], + ["is_identical", 140, 15, 139, 310, 38], + ["jump_true", 140, "eq_done_188", 310, 38], + ["is_int", 141, 15, 310, 38], + ["jump_false", 141, "eq_ni_189", 310, 38], + "_nop_tc_7", + ["jump", "eq_ni_189", 310, 38], + ["eq_int", 140, 15, 139, 310, 38], + ["jump", "eq_done_188", 310, 38], + "eq_ni_189", + ["is_num", 141, 15, 310, 38], + ["jump_false", 141, "eq_nn_190", 310, 38], + ["is_num", 142, 139, 310, 38], + ["jump_false", 142, "eq_nn_190", 310, 38], + ["eq_float", 140, 15, 139, 310, 38], + ["jump", "eq_done_188", 310, 38], + "eq_nn_190", + ["is_text", 141, 15, 310, 38], + ["jump_false", 141, "eq_nt_191", 310, 38], + ["is_text", 142, 139, 310, 38], + ["jump_false", 142, "eq_nt_191", 310, 38], + ["eq_text", 140, 15, 139, 310, 38], + ["jump", "eq_done_188", 310, 38], + "eq_nt_191", + ["is_null", 141, 15, 310, 38], + ["jump_false", 141, "eq_nnl_192", 310, 38], + ["is_null", 142, 139, 310, 38], + ["jump_false", 142, "eq_nnl_192", 310, 38], + ["true", 140, 310, 38], + ["jump", "eq_done_188", 310, 38], + "eq_nnl_192", + ["is_bool", 141, 15, 310, 38], + ["jump_false", 141, "eq_nb_193", 310, 38], + ["is_bool", 142, 139, 310, 38], + ["jump_false", 142, "eq_nb_193", 310, 38], + ["eq_bool", 140, 15, 139, 310, 38], + ["jump", "eq_done_188", 310, 38], + "eq_nb_193", + ["false", 140, 310, 38], + "eq_done_188", + ["move", 138, 140, 310, 38], + "or_end_181", + ["jump_false", 138, "if_else_179", 310, 38], + ["access", 143, 1, 311, 29], + ["load_index", 144, 12, 143, 311, 29], + [ + "access", + 146, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 311, + 18 + ], + ["frame", 147, 146, 1, 311, 18], + ["null", 148, 311, 18], + ["setarg", 147, 0, 148, 311, 18], + ["setarg", 147, 1, 144, 311, 18], + ["invoke", 147, 145, 311, 18], + ["store_dynamic", 14, 7, 145, 311, 18], + ["jump", "if_end_180", 311, 18], + "if_else_179", + "if_end_180", + "if_end_166", + "if_end_158", + ["load_dynamic", 149, 3, 15, 315, 17], + ["true", 150, 315, 24], + ["is_identical", 151, 149, 150, 315, 24], + ["jump_true", 151, "eq_done_197", 315, 24], + ["is_int", 152, 149, 315, 24], + ["jump_false", 152, "eq_ni_198", 315, 24], + "_nop_tc_8", + ["jump", "eq_ni_198", 315, 24], + ["eq_int", 151, 149, 150, 315, 24], + ["jump", "eq_done_197", 315, 24], + "eq_ni_198", + ["is_num", 152, 149, 315, 24], + ["jump_false", 152, "eq_nn_199", 315, 24], + ["is_num", 153, 150, 315, 24], + ["jump_false", 153, "eq_nn_199", 315, 24], + ["eq_float", 151, 149, 150, 315, 24], + ["jump", "eq_done_197", 315, 24], + "eq_nn_199", + ["is_text", 152, 149, 315, 24], + ["jump_false", 152, "eq_nt_200", 315, 24], + ["is_text", 153, 150, 315, 24], + ["jump_false", 153, "eq_nt_200", 315, 24], + ["eq_text", 151, 149, 150, 315, 24], + ["jump", "eq_done_197", 315, 24], + "eq_nt_200", + ["is_null", 152, 149, 315, 24], + ["jump_false", 152, "eq_nnl_201", 315, 24], + ["is_null", 153, 150, 315, 24], + ["jump_false", 153, "eq_nnl_201", 315, 24], + ["true", 151, 315, 24], + ["jump", "eq_done_197", 315, 24], + "eq_nnl_201", + ["is_bool", 152, 149, 315, 24], + ["jump_false", 152, "eq_nb_202", 315, 24], + ["is_bool", 153, 150, 315, 24], + ["jump_false", 153, "eq_nb_202", 315, 24], + ["eq_bool", 151, 149, 150, 315, 24], + ["jump", "eq_done_197", 315, 24], + "eq_nb_202", + ["false", 151, 315, 24], + "eq_done_197", + ["move", 154, 151, 315, 24], + ["jump_false", 154, "and_end_196", 315, 24], + ["length", 155, 12, 315, 39], + ["access", 156, 5, 315, 49], + "_nop_tc_9", + "_nop_tc_10", + "_nop_tc_11", + ["jump", "rel_ni_203", 315, 49], + ["ge_int", 157, 155, 156, 315, 49], + ["jump", "rel_done_205", 315, 49], + "rel_ni_203", + ["is_num", 158, 155, 315, 49], + ["jump_false", 158, "rel_nn_204", 315, 49], + ["is_num", 159, 156, 315, 49], + ["jump_false", 159, "rel_nn_204", 315, 49], + ["ge_float", 157, 155, 156, 315, 49], + ["jump", "rel_done_205", 315, 49], + "rel_nn_204", + ["is_text", 158, 155, 315, 49], + ["jump_false", 158, "rel_err_206", 315, 49], + ["is_text", 159, 156, 315, 49], + ["jump_false", 159, "rel_err_206", 315, 49], + ["ge_text", 157, 155, 156, 315, 49], + ["jump", "rel_done_205", 315, 49], + "rel_err_206", + ["disrupt", 315, 49], + "rel_done_205", + ["move", 154, 157, 315, 49], + "and_end_196", + ["jump_false", 154, "if_else_194", 315, 49], + ["access", 160, 2, 316, 23], + ["load_index", 161, 12, 160, 316, 23], + [ + "access", + 163, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 316, + 12 + ], + ["frame", 164, 163, 1, 316, 12], + ["null", 165, 316, 12], + ["setarg", 164, 0, 165, 316, 12], + ["setarg", 164, 1, 161, 316, 12], + ["invoke", 164, 162, 316, 12], + ["move", 2, 162, 316, 12], + ["load_dynamic", 166, 14, 2, 317, 23], + ["move", 9, 166, 317, 23], + ["null", 167, 318, 17], + ["is_identical", 168, 9, 167, 318, 17], + ["jump_true", 168, "ne_nid_212", 318, 17], + ["jump", "ne_ni_213", 318, 17], + "ne_nid_212", + ["false", 168, 318, 17], + ["jump", "ne_done_211", 318, 17], + "ne_ni_213", + ["is_int", 169, 9, 318, 17], + ["jump_false", 169, "ne_nn_214", 318, 17], + ["is_int", 170, 167, 318, 17], + ["jump_false", 170, "ne_nn_214", 318, 17], + ["ne_int", 168, 9, 167, 318, 17], + ["jump", "ne_done_211", 318, 17], + "ne_nn_214", + ["is_num", 169, 9, 318, 17], + ["jump_false", 169, "ne_nt_215", 318, 17], + ["is_num", 170, 167, 318, 17], + ["jump_false", 170, "ne_nt_215", 318, 17], + ["ne_float", 168, 9, 167, 318, 17], + ["jump", "ne_done_211", 318, 17], + "ne_nt_215", + ["is_text", 169, 9, 318, 17], + ["jump_false", 169, "ne_nnl_216", 318, 17], + ["is_text", 170, 167, 318, 17], + ["jump_false", 170, "ne_nnl_216", 318, 17], + ["ne_text", 168, 9, 167, 318, 17], + ["jump", "ne_done_211", 318, 17], + "ne_nnl_216", + ["is_null", 169, 9, 318, 17], + ["jump_false", 169, "ne_nb_217", 318, 17], + ["is_null", 170, 167, 318, 17], + ["jump_false", 170, "ne_nb_217", 318, 17], + ["false", 168, 318, 17], + ["jump", "ne_done_211", 318, 17], + "ne_nb_217", + ["is_bool", 169, 9, 318, 17], + ["jump_false", 169, "ne_mis_218", 318, 17], + ["is_bool", 170, 167, 318, 17], + ["jump_false", 170, "ne_mis_218", 318, 17], + ["ne_bool", 168, 9, 167, 318, 17], + ["jump", "ne_done_211", 318, 17], + "ne_mis_218", + ["true", 168, 318, 17], + "ne_done_211", + ["move", 171, 168, 318, 17], + ["jump_false", 171, "and_end_210", 318, 17], + ["is_identical", 172, 9, 11, 318, 31], + ["jump_true", 172, "ne_nid_220", 318, 31], + ["jump", "ne_ni_221", 318, 31], + "ne_nid_220", + ["false", 172, 318, 31], + ["jump", "ne_done_219", 318, 31], + "ne_ni_221", + ["is_int", 173, 9, 318, 31], + ["jump_false", 173, "ne_nn_222", 318, 31], + ["is_int", 174, 11, 318, 31], + ["jump_false", 174, "ne_nn_222", 318, 31], + ["ne_int", 172, 9, 11, 318, 31], + ["jump", "ne_done_219", 318, 31], + "ne_nn_222", + ["is_num", 173, 9, 318, 31], + ["jump_false", 173, "ne_nt_223", 318, 31], + ["is_num", 174, 11, 318, 31], + ["jump_false", 174, "ne_nt_223", 318, 31], + ["ne_float", 172, 9, 11, 318, 31], + ["jump", "ne_done_219", 318, 31], + "ne_nt_223", + ["is_text", 173, 9, 318, 31], + ["jump_false", 173, "ne_nnl_224", 318, 31], + ["is_text", 174, 11, 318, 31], + ["jump_false", 174, "ne_nnl_224", 318, 31], + ["ne_text", 172, 9, 11, 318, 31], + ["jump", "ne_done_219", 318, 31], + "ne_nnl_224", + ["is_null", 173, 9, 318, 31], + ["jump_false", 173, "ne_nb_225", 318, 31], + ["is_null", 174, 11, 318, 31], + ["jump_false", 174, "ne_nb_225", 318, 31], + ["false", 172, 318, 31], + ["jump", "ne_done_219", 318, 31], + "ne_nb_225", + ["is_bool", 173, 9, 318, 31], + ["jump_false", 173, "ne_mis_226", 318, 31], + ["is_bool", 174, 11, 318, 31], + ["jump_false", 174, "ne_mis_226", 318, 31], + ["ne_bool", 172, 9, 11, 318, 31], + ["jump", "ne_done_219", 318, 31], + "ne_mis_226", + ["true", 172, 318, 31], + "ne_done_219", + ["move", 171, 172, 318, 31], + "and_end_210", + ["move", 175, 171, 318, 31], + ["jump_false", 175, "and_end_209", 318, 31], + ["access", 176, "unknown", 318, 46], + ["is_identical", 177, 9, 176, 318, 46], + ["jump_true", 177, "ne_nid_228", 318, 46], + ["jump", "ne_ni_229", 318, 46], + "ne_nid_228", + ["false", 177, 318, 46], + ["jump", "ne_done_227", 318, 46], + "ne_ni_229", + ["is_int", 178, 9, 318, 46], + ["jump_false", 178, "ne_nn_230", 318, 46], + ["is_int", 179, 176, 318, 46], + ["jump_false", 179, "ne_nn_230", 318, 46], + ["ne_int", 177, 9, 176, 318, 46], + ["jump", "ne_done_227", 318, 46], + "ne_nn_230", + ["is_num", 178, 9, 318, 46], + ["jump_false", 178, "ne_nt_231", 318, 46], + ["is_num", 179, 176, 318, 46], + ["jump_false", 179, "ne_nt_231", 318, 46], + ["ne_float", 177, 9, 176, 318, 46], + ["jump", "ne_done_227", 318, 46], + "ne_nt_231", + ["is_text", 178, 9, 318, 46], + ["jump_false", 178, "ne_nnl_232", 318, 46], + ["is_text", 179, 176, 318, 46], + ["jump_false", 179, "ne_nnl_232", 318, 46], + ["ne_text", 177, 9, 176, 318, 46], + ["jump", "ne_done_227", 318, 46], + "ne_nnl_232", + ["is_null", 178, 9, 318, 46], + ["jump_false", 178, "ne_nb_233", 318, 46], + ["is_null", 179, 176, 318, 46], + ["jump_false", 179, "ne_nb_233", 318, 46], + ["false", 177, 318, 46], + ["jump", "ne_done_227", 318, 46], + "ne_nb_233", + ["is_bool", 178, 9, 318, 46], + ["jump_false", 178, "ne_mis_234", 318, 46], + ["is_bool", 179, 176, 318, 46], + ["jump_false", 179, "ne_mis_234", 318, 46], + ["ne_bool", 177, 9, 176, 318, 46], + ["jump", "ne_done_227", 318, 46], + "ne_mis_234", + ["true", 177, 318, 46], + "ne_done_227", + ["move", 175, 177, 318, 46], + "and_end_209", + ["jump_false", 175, "if_else_207", 318, 46], + [ + "access", + 181, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 182, 181, 1, 1, 1], + ["null", 183, 1, 1], + ["setarg", 182, 0, 183, 1, 1], + ["setarg", 182, 1, 19, 1, 1], + ["invoke", 182, 180, 1, 1], + ["array", 184, 0, 1, 1], + ["push", 184, 180, 1, 1], + ["push", 184, 15, 1, 1], + ["push", 184, 2, 1, 1], + ["push", 184, 9, 1, 1], + [ + "access", + 185, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 186, "type_consistency: instr {0} op={1} src1 slot {2} has type {3}, expected int", 1, 1], + ["frame", 188, 185, 2, 1, 1], + ["null", 189, 1, 1], + ["setarg", 188, 0, 189, 1, 1], + ["setarg", 188, 1, 186, 1, 1], + ["setarg", 188, 2, 184, 1, 1], + ["invoke", 188, 187, 1, 1], + ["is_array", 190, 18, 1, 1], + ["jump_false", 190, "push_err_235", 1, 1], + ["push", 18, 187, 1, 1], + ["jump", "push_done_236", 1, 1], + "push_err_235", + ["disrupt", 1, 1], + "push_done_236", + ["jump", "if_end_208", 1, 1], + "if_else_207", + "if_end_208", + ["length", 191, 12, 321, 18], + ["access", 192, 6, 321, 28], + "_nop_tc_12", + "_nop_tc_13", + "_nop_tc_14", + ["jump", "rel_ni_239", 321, 28], + ["ge_int", 193, 191, 192, 321, 28], + ["jump", "rel_done_241", 321, 28], + "rel_ni_239", + ["is_num", 194, 191, 321, 28], + ["jump_false", 194, "rel_nn_240", 321, 28], + ["is_num", 195, 192, 321, 28], + ["jump_false", 195, "rel_nn_240", 321, 28], + ["ge_float", 193, 191, 192, 321, 28], + ["jump", "rel_done_241", 321, 28], + "rel_nn_240", + ["is_text", 194, 191, 321, 28], + ["jump_false", 194, "rel_err_242", 321, 28], + ["is_text", 195, 192, 321, 28], + ["jump_false", 195, "rel_err_242", 321, 28], + ["ge_text", 193, 191, 192, 321, 28], + ["jump", "rel_done_241", 321, 28], + "rel_err_242", + ["disrupt", 321, 28], + "rel_done_241", + ["jump_false", 193, "if_else_237", 321, 28], + ["access", 196, 3, 322, 25], + ["load_index", 197, 12, 196, 322, 25], + [ + "access", + 199, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 322, + 14 + ], + ["frame", 200, 199, 1, 322, 14], + ["null", 201, 322, 14], + ["setarg", 200, 0, 201, 322, 14], + ["setarg", 200, 1, 197, 322, 14], + ["invoke", 200, 198, 322, 14], + ["move", 13, 198, 322, 14], + ["load_dynamic", 202, 14, 13, 323, 25], + ["move", 16, 202, 323, 25], + ["null", 203, 324, 19], + ["is_identical", 204, 16, 203, 324, 19], + ["jump_true", 204, "ne_nid_248", 324, 19], + ["jump", "ne_ni_249", 324, 19], + "ne_nid_248", + ["false", 204, 324, 19], + ["jump", "ne_done_247", 324, 19], + "ne_ni_249", + ["is_int", 205, 16, 324, 19], + ["jump_false", 205, "ne_nn_250", 324, 19], + ["is_int", 206, 203, 324, 19], + ["jump_false", 206, "ne_nn_250", 324, 19], + ["ne_int", 204, 16, 203, 324, 19], + ["jump", "ne_done_247", 324, 19], + "ne_nn_250", + ["is_num", 205, 16, 324, 19], + ["jump_false", 205, "ne_nt_251", 324, 19], + ["is_num", 206, 203, 324, 19], + ["jump_false", 206, "ne_nt_251", 324, 19], + ["ne_float", 204, 16, 203, 324, 19], + ["jump", "ne_done_247", 324, 19], + "ne_nt_251", + ["is_text", 205, 16, 324, 19], + ["jump_false", 205, "ne_nnl_252", 324, 19], + ["is_text", 206, 203, 324, 19], + ["jump_false", 206, "ne_nnl_252", 324, 19], + ["ne_text", 204, 16, 203, 324, 19], + ["jump", "ne_done_247", 324, 19], + "ne_nnl_252", + ["is_null", 205, 16, 324, 19], + ["jump_false", 205, "ne_nb_253", 324, 19], + ["is_null", 206, 203, 324, 19], + ["jump_false", 206, "ne_nb_253", 324, 19], + ["false", 204, 324, 19], + ["jump", "ne_done_247", 324, 19], + "ne_nb_253", + ["is_bool", 205, 16, 324, 19], + ["jump_false", 205, "ne_mis_254", 324, 19], + ["is_bool", 206, 203, 324, 19], + ["jump_false", 206, "ne_mis_254", 324, 19], + ["ne_bool", 204, 16, 203, 324, 19], + ["jump", "ne_done_247", 324, 19], + "ne_mis_254", + ["true", 204, 324, 19], + "ne_done_247", + ["move", 207, 204, 324, 19], + ["jump_false", 207, "and_end_246", 324, 19], + ["is_identical", 208, 16, 11, 324, 33], + ["jump_true", 208, "ne_nid_256", 324, 33], + ["jump", "ne_ni_257", 324, 33], + "ne_nid_256", + ["false", 208, 324, 33], + ["jump", "ne_done_255", 324, 33], + "ne_ni_257", + ["is_int", 209, 16, 324, 33], + ["jump_false", 209, "ne_nn_258", 324, 33], + ["is_int", 210, 11, 324, 33], + ["jump_false", 210, "ne_nn_258", 324, 33], + ["ne_int", 208, 16, 11, 324, 33], + ["jump", "ne_done_255", 324, 33], + "ne_nn_258", + ["is_num", 209, 16, 324, 33], + ["jump_false", 209, "ne_nt_259", 324, 33], + ["is_num", 210, 11, 324, 33], + ["jump_false", 210, "ne_nt_259", 324, 33], + ["ne_float", 208, 16, 11, 324, 33], + ["jump", "ne_done_255", 324, 33], + "ne_nt_259", + ["is_text", 209, 16, 324, 33], + ["jump_false", 209, "ne_nnl_260", 324, 33], + ["is_text", 210, 11, 324, 33], + ["jump_false", 210, "ne_nnl_260", 324, 33], + ["ne_text", 208, 16, 11, 324, 33], + ["jump", "ne_done_255", 324, 33], + "ne_nnl_260", + ["is_null", 209, 16, 324, 33], + ["jump_false", 209, "ne_nb_261", 324, 33], + ["is_null", 210, 11, 324, 33], + ["jump_false", 210, "ne_nb_261", 324, 33], + ["false", 208, 324, 33], + ["jump", "ne_done_255", 324, 33], + "ne_nb_261", + ["is_bool", 209, 16, 324, 33], + ["jump_false", 209, "ne_mis_262", 324, 33], + ["is_bool", 210, 11, 324, 33], + ["jump_false", 210, "ne_mis_262", 324, 33], + ["ne_bool", 208, 16, 11, 324, 33], + ["jump", "ne_done_255", 324, 33], + "ne_mis_262", + ["true", 208, 324, 33], + "ne_done_255", + ["move", 207, 208, 324, 33], + "and_end_246", + ["move", 211, 207, 324, 33], + ["jump_false", 211, "and_end_245", 324, 33], + ["access", 212, "unknown", 324, 48], + ["is_identical", 213, 16, 212, 324, 48], + ["jump_true", 213, "ne_nid_264", 324, 48], + ["jump", "ne_ni_265", 324, 48], + "ne_nid_264", + ["false", 213, 324, 48], + ["jump", "ne_done_263", 324, 48], + "ne_ni_265", + ["is_int", 214, 16, 324, 48], + ["jump_false", 214, "ne_nn_266", 324, 48], + ["is_int", 215, 212, 324, 48], + ["jump_false", 215, "ne_nn_266", 324, 48], + ["ne_int", 213, 16, 212, 324, 48], + ["jump", "ne_done_263", 324, 48], + "ne_nn_266", + ["is_num", 214, 16, 324, 48], + ["jump_false", 214, "ne_nt_267", 324, 48], + ["is_num", 215, 212, 324, 48], + ["jump_false", 215, "ne_nt_267", 324, 48], + ["ne_float", 213, 16, 212, 324, 48], + ["jump", "ne_done_263", 324, 48], + "ne_nt_267", + ["is_text", 214, 16, 324, 48], + ["jump_false", 214, "ne_nnl_268", 324, 48], + ["is_text", 215, 212, 324, 48], + ["jump_false", 215, "ne_nnl_268", 324, 48], + ["ne_text", 213, 16, 212, 324, 48], + ["jump", "ne_done_263", 324, 48], + "ne_nnl_268", + ["is_null", 214, 16, 324, 48], + ["jump_false", 214, "ne_nb_269", 324, 48], + ["is_null", 215, 212, 324, 48], + ["jump_false", 215, "ne_nb_269", 324, 48], + ["false", 213, 324, 48], + ["jump", "ne_done_263", 324, 48], + "ne_nb_269", + ["is_bool", 214, 16, 324, 48], + ["jump_false", 214, "ne_mis_270", 324, 48], + ["is_bool", 215, 212, 324, 48], + ["jump_false", 215, "ne_mis_270", 324, 48], + ["ne_bool", 213, 16, 212, 324, 48], + ["jump", "ne_done_263", 324, 48], + "ne_mis_270", + ["true", 213, 324, 48], + "ne_done_263", + ["move", 211, 213, 324, 48], + "and_end_245", + ["jump_false", 211, "if_else_243", 324, 48], + [ + "access", + 217, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 218, 217, 1, 1, 1], + ["null", 219, 1, 1], + ["setarg", 218, 0, 219, 1, 1], + ["setarg", 218, 1, 19, 1, 1], + ["invoke", 218, 216, 1, 1], + ["array", 220, 0, 1, 1], + ["push", 220, 216, 1, 1], + ["push", 220, 15, 1, 1], + ["push", 220, 13, 1, 1], + ["push", 220, 16, 1, 1], + [ + "access", + 221, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 222, "type_consistency: instr {0} op={1} src2 slot {2} has type {3}, expected int", 1, 1], + ["frame", 224, 221, 2, 1, 1], + ["null", 225, 1, 1], + ["setarg", 224, 0, 225, 1, 1], + ["setarg", 224, 1, 222, 1, 1], + ["setarg", 224, 2, 220, 1, 1], + ["invoke", 224, 223, 1, 1], + ["is_array", 226, 18, 1, 1], + ["jump_false", 226, "push_err_271", 1, 1], + ["push", 18, 223, 1, 1], + ["jump", "push_done_272", 1, 1], + "push_err_271", + ["disrupt", 1, 1], + "push_done_272", + ["jump", "if_end_244", 1, 1], + "if_else_243", + "if_end_244", + ["jump", "if_end_238", 1, 1], + "if_else_237", + "if_end_238", + ["jump", "if_end_195", 1, 1], + "if_else_194", + ["load_dynamic", 227, 5, 15, 328, 26], + ["true", 228, 328, 33], + ["is_identical", 229, 227, 228, 328, 33], + ["jump_true", 229, "eq_done_276", 328, 33], + ["is_int", 230, 227, 328, 33], + ["jump_false", 230, "eq_ni_277", 328, 33], + "_nop_tc_15", + ["jump", "eq_ni_277", 328, 33], + ["eq_int", 229, 227, 228, 328, 33], + ["jump", "eq_done_276", 328, 33], + "eq_ni_277", + ["is_num", 230, 227, 328, 33], + ["jump_false", 230, "eq_nn_278", 328, 33], + ["is_num", 231, 228, 328, 33], + ["jump_false", 231, "eq_nn_278", 328, 33], + ["eq_float", 229, 227, 228, 328, 33], + ["jump", "eq_done_276", 328, 33], + "eq_nn_278", + ["is_text", 230, 227, 328, 33], + ["jump_false", 230, "eq_nt_279", 328, 33], + ["is_text", 231, 228, 328, 33], + ["jump_false", 231, "eq_nt_279", 328, 33], + ["eq_text", 229, 227, 228, 328, 33], + ["jump", "eq_done_276", 328, 33], + "eq_nt_279", + ["is_null", 230, 227, 328, 33], + ["jump_false", 230, "eq_nnl_280", 328, 33], + ["is_null", 231, 228, 328, 33], + ["jump_false", 231, "eq_nnl_280", 328, 33], + ["true", 229, 328, 33], + ["jump", "eq_done_276", 328, 33], + "eq_nnl_280", + ["is_bool", 230, 227, 328, 33], + ["jump_false", 230, "eq_nb_281", 328, 33], + ["is_bool", 231, 228, 328, 33], + ["jump_false", 231, "eq_nb_281", 328, 33], + ["eq_bool", 229, 227, 228, 328, 33], + ["jump", "eq_done_276", 328, 33], + "eq_nb_281", + ["false", 229, 328, 33], + "eq_done_276", + ["move", 232, 229, 328, 33], + ["jump_false", 232, "and_end_275", 328, 33], + ["length", 233, 12, 328, 48], + ["access", 234, 5, 328, 58], + "_nop_tc_16", + "_nop_tc_17", + "_nop_tc_18", + ["jump", "rel_ni_282", 328, 58], + ["ge_int", 235, 233, 234, 328, 58], + ["jump", "rel_done_284", 328, 58], + "rel_ni_282", + ["is_num", 236, 233, 328, 58], + ["jump_false", 236, "rel_nn_283", 328, 58], + ["is_num", 237, 234, 328, 58], + ["jump_false", 237, "rel_nn_283", 328, 58], + ["ge_float", 235, 233, 234, 328, 58], + ["jump", "rel_done_284", 328, 58], + "rel_nn_283", + ["is_text", 236, 233, 328, 58], + ["jump_false", 236, "rel_err_285", 328, 58], + ["is_text", 237, 234, 328, 58], + ["jump_false", 237, "rel_err_285", 328, 58], + ["ge_text", 235, 233, 234, 328, 58], + ["jump", "rel_done_284", 328, 58], + "rel_err_285", + ["disrupt", 328, 58], + "rel_done_284", + ["move", 232, 235, 328, 58], + "and_end_275", + ["jump_false", 232, "if_else_273", 328, 58], + ["access", 238, 2, 329, 23], + ["load_index", 239, 12, 238, 329, 23], + [ + "access", + 241, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 329, + 12 + ], + ["frame", 242, 241, 1, 329, 12], + ["null", 243, 329, 12], + ["setarg", 242, 0, 243, 329, 12], + ["setarg", 242, 1, 239, 329, 12], + ["invoke", 242, 240, 329, 12], + ["move", 2, 240, 329, 12], + ["load_dynamic", 244, 14, 2, 330, 23], + ["move", 9, 244, 330, 23], + ["null", 245, 331, 17], + ["is_identical", 246, 9, 245, 331, 17], + ["jump_true", 246, "ne_nid_291", 331, 17], + ["jump", "ne_ni_292", 331, 17], + "ne_nid_291", + ["false", 246, 331, 17], + ["jump", "ne_done_290", 331, 17], + "ne_ni_292", + ["is_int", 247, 9, 331, 17], + ["jump_false", 247, "ne_nn_293", 331, 17], + ["is_int", 248, 245, 331, 17], + ["jump_false", 248, "ne_nn_293", 331, 17], + ["ne_int", 246, 9, 245, 331, 17], + ["jump", "ne_done_290", 331, 17], + "ne_nn_293", + ["is_num", 247, 9, 331, 17], + ["jump_false", 247, "ne_nt_294", 331, 17], + ["is_num", 248, 245, 331, 17], + ["jump_false", 248, "ne_nt_294", 331, 17], + ["ne_float", 246, 9, 245, 331, 17], + ["jump", "ne_done_290", 331, 17], + "ne_nt_294", + ["is_text", 247, 9, 331, 17], + ["jump_false", 247, "ne_nnl_295", 331, 17], + ["is_text", 248, 245, 331, 17], + ["jump_false", 248, "ne_nnl_295", 331, 17], + ["ne_text", 246, 9, 245, 331, 17], + ["jump", "ne_done_290", 331, 17], + "ne_nnl_295", + ["is_null", 247, 9, 331, 17], + ["jump_false", 247, "ne_nb_296", 331, 17], + ["is_null", 248, 245, 331, 17], + ["jump_false", 248, "ne_nb_296", 331, 17], + ["false", 246, 331, 17], + ["jump", "ne_done_290", 331, 17], + "ne_nb_296", + ["is_bool", 247, 9, 331, 17], + ["jump_false", 247, "ne_mis_297", 331, 17], + ["is_bool", 248, 245, 331, 17], + ["jump_false", 248, "ne_mis_297", 331, 17], + ["ne_bool", 246, 9, 245, 331, 17], + ["jump", "ne_done_290", 331, 17], + "ne_mis_297", + ["true", 246, 331, 17], + "ne_done_290", + ["move", 249, 246, 331, 17], + ["jump_false", 249, "and_end_289", 331, 17], + ["is_identical", 250, 9, 10, 331, 31], + ["jump_true", 250, "ne_nid_299", 331, 31], + ["jump", "ne_ni_300", 331, 31], + "ne_nid_299", + ["false", 250, 331, 31], + ["jump", "ne_done_298", 331, 31], + "ne_ni_300", + ["is_int", 251, 9, 331, 31], + ["jump_false", 251, "ne_nn_301", 331, 31], + ["is_int", 252, 10, 331, 31], + ["jump_false", 252, "ne_nn_301", 331, 31], + ["ne_int", 250, 9, 10, 331, 31], + ["jump", "ne_done_298", 331, 31], + "ne_nn_301", + ["is_num", 251, 9, 331, 31], + ["jump_false", 251, "ne_nt_302", 331, 31], + ["is_num", 252, 10, 331, 31], + ["jump_false", 252, "ne_nt_302", 331, 31], + ["ne_float", 250, 9, 10, 331, 31], + ["jump", "ne_done_298", 331, 31], + "ne_nt_302", + ["is_text", 251, 9, 331, 31], + ["jump_false", 251, "ne_nnl_303", 331, 31], + ["is_text", 252, 10, 331, 31], + ["jump_false", 252, "ne_nnl_303", 331, 31], + ["ne_text", 250, 9, 10, 331, 31], + ["jump", "ne_done_298", 331, 31], + "ne_nnl_303", + ["is_null", 251, 9, 331, 31], + ["jump_false", 251, "ne_nb_304", 331, 31], + ["is_null", 252, 10, 331, 31], + ["jump_false", 252, "ne_nb_304", 331, 31], + ["false", 250, 331, 31], + ["jump", "ne_done_298", 331, 31], + "ne_nb_304", + ["is_bool", 251, 9, 331, 31], + ["jump_false", 251, "ne_mis_305", 331, 31], + ["is_bool", 252, 10, 331, 31], + ["jump_false", 252, "ne_mis_305", 331, 31], + ["ne_bool", 250, 9, 10, 331, 31], + ["jump", "ne_done_298", 331, 31], + "ne_mis_305", + ["true", 250, 331, 31], + "ne_done_298", + ["move", 249, 250, 331, 31], + "and_end_289", + ["move", 253, 249, 331, 31], + ["jump_false", 253, "and_end_288", 331, 31], + ["access", 254, "unknown", 331, 48], + ["is_identical", 255, 9, 254, 331, 48], + ["jump_true", 255, "ne_nid_307", 331, 48], + ["jump", "ne_ni_308", 331, 48], + "ne_nid_307", + ["false", 255, 331, 48], + ["jump", "ne_done_306", 331, 48], + "ne_ni_308", + ["is_int", 256, 9, 331, 48], + ["jump_false", 256, "ne_nn_309", 331, 48], + ["is_int", 257, 254, 331, 48], + ["jump_false", 257, "ne_nn_309", 331, 48], + ["ne_int", 255, 9, 254, 331, 48], + ["jump", "ne_done_306", 331, 48], + "ne_nn_309", + ["is_num", 256, 9, 331, 48], + ["jump_false", 256, "ne_nt_310", 331, 48], + ["is_num", 257, 254, 331, 48], + ["jump_false", 257, "ne_nt_310", 331, 48], + ["ne_float", 255, 9, 254, 331, 48], + ["jump", "ne_done_306", 331, 48], + "ne_nt_310", + ["is_text", 256, 9, 331, 48], + ["jump_false", 256, "ne_nnl_311", 331, 48], + ["is_text", 257, 254, 331, 48], + ["jump_false", 257, "ne_nnl_311", 331, 48], + ["ne_text", 255, 9, 254, 331, 48], + ["jump", "ne_done_306", 331, 48], + "ne_nnl_311", + ["is_null", 256, 9, 331, 48], + ["jump_false", 256, "ne_nb_312", 331, 48], + ["is_null", 257, 254, 331, 48], + ["jump_false", 257, "ne_nb_312", 331, 48], + ["false", 255, 331, 48], + ["jump", "ne_done_306", 331, 48], + "ne_nb_312", + ["is_bool", 256, 9, 331, 48], + ["jump_false", 256, "ne_mis_313", 331, 48], + ["is_bool", 257, 254, 331, 48], + ["jump_false", 257, "ne_mis_313", 331, 48], + ["ne_bool", 255, 9, 254, 331, 48], + ["jump", "ne_done_306", 331, 48], + "ne_mis_313", + ["true", 255, 331, 48], + "ne_done_306", + ["move", 253, 255, 331, 48], + "and_end_288", + ["jump_false", 253, "if_else_286", 331, 48], + [ + "access", + 259, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 260, 259, 1, 1, 1], + ["null", 261, 1, 1], + ["setarg", 260, 0, 261, 1, 1], + ["setarg", 260, 1, 19, 1, 1], + ["invoke", 260, 258, 1, 1], + ["array", 262, 0, 1, 1], + ["push", 262, 258, 1, 1], + ["push", 262, 15, 1, 1], + ["push", 262, 2, 1, 1], + ["push", 262, 9, 1, 1], + [ + "access", + 263, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 264, "type_consistency: instr {0} op={1} src1 slot {2} has type {3}, expected float", 1, 1], + ["frame", 266, 263, 2, 1, 1], + ["null", 267, 1, 1], + ["setarg", 266, 0, 267, 1, 1], + ["setarg", 266, 1, 264, 1, 1], + ["setarg", 266, 2, 262, 1, 1], + ["invoke", 266, 265, 1, 1], + ["is_array", 268, 18, 1, 1], + ["jump_false", 268, "push_err_314", 1, 1], + ["push", 18, 265, 1, 1], + ["jump", "push_done_315", 1, 1], + "push_err_314", + ["disrupt", 1, 1], + "push_done_315", + ["jump", "if_end_287", 1, 1], + "if_else_286", + "if_end_287", + ["length", 269, 12, 334, 18], + ["access", 270, 6, 334, 28], + "_nop_tc_19", + "_nop_tc_20", + "_nop_tc_21", + ["jump", "rel_ni_318", 334, 28], + ["ge_int", 271, 269, 270, 334, 28], + ["jump", "rel_done_320", 334, 28], + "rel_ni_318", + ["is_num", 272, 269, 334, 28], + ["jump_false", 272, "rel_nn_319", 334, 28], + ["is_num", 273, 270, 334, 28], + ["jump_false", 273, "rel_nn_319", 334, 28], + ["ge_float", 271, 269, 270, 334, 28], + ["jump", "rel_done_320", 334, 28], + "rel_nn_319", + ["is_text", 272, 269, 334, 28], + ["jump_false", 272, "rel_err_321", 334, 28], + ["is_text", 273, 270, 334, 28], + ["jump_false", 273, "rel_err_321", 334, 28], + ["ge_text", 271, 269, 270, 334, 28], + ["jump", "rel_done_320", 334, 28], + "rel_err_321", + ["disrupt", 334, 28], + "rel_done_320", + ["jump_false", 271, "if_else_316", 334, 28], + ["access", 274, 3, 335, 25], + ["load_index", 275, 12, 274, 335, 25], + [ + "access", + 277, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 335, + 14 + ], + ["frame", 278, 277, 1, 335, 14], + ["null", 279, 335, 14], + ["setarg", 278, 0, 279, 335, 14], + ["setarg", 278, 1, 275, 335, 14], + ["invoke", 278, 276, 335, 14], + ["move", 13, 276, 335, 14], + ["load_dynamic", 280, 14, 13, 336, 25], + ["move", 16, 280, 336, 25], + ["null", 281, 337, 19], + ["is_identical", 282, 16, 281, 337, 19], + ["jump_true", 282, "ne_nid_327", 337, 19], + ["jump", "ne_ni_328", 337, 19], + "ne_nid_327", + ["false", 282, 337, 19], + ["jump", "ne_done_326", 337, 19], + "ne_ni_328", + ["is_int", 283, 16, 337, 19], + ["jump_false", 283, "ne_nn_329", 337, 19], + ["is_int", 284, 281, 337, 19], + ["jump_false", 284, "ne_nn_329", 337, 19], + ["ne_int", 282, 16, 281, 337, 19], + ["jump", "ne_done_326", 337, 19], + "ne_nn_329", + ["is_num", 283, 16, 337, 19], + ["jump_false", 283, "ne_nt_330", 337, 19], + ["is_num", 284, 281, 337, 19], + ["jump_false", 284, "ne_nt_330", 337, 19], + ["ne_float", 282, 16, 281, 337, 19], + ["jump", "ne_done_326", 337, 19], + "ne_nt_330", + ["is_text", 283, 16, 337, 19], + ["jump_false", 283, "ne_nnl_331", 337, 19], + ["is_text", 284, 281, 337, 19], + ["jump_false", 284, "ne_nnl_331", 337, 19], + ["ne_text", 282, 16, 281, 337, 19], + ["jump", "ne_done_326", 337, 19], + "ne_nnl_331", + ["is_null", 283, 16, 337, 19], + ["jump_false", 283, "ne_nb_332", 337, 19], + ["is_null", 284, 281, 337, 19], + ["jump_false", 284, "ne_nb_332", 337, 19], + ["false", 282, 337, 19], + ["jump", "ne_done_326", 337, 19], + "ne_nb_332", + ["is_bool", 283, 16, 337, 19], + ["jump_false", 283, "ne_mis_333", 337, 19], + ["is_bool", 284, 281, 337, 19], + ["jump_false", 284, "ne_mis_333", 337, 19], + ["ne_bool", 282, 16, 281, 337, 19], + ["jump", "ne_done_326", 337, 19], + "ne_mis_333", + ["true", 282, 337, 19], + "ne_done_326", + ["move", 285, 282, 337, 19], + ["jump_false", 285, "and_end_325", 337, 19], + ["is_identical", 286, 16, 10, 337, 33], + ["jump_true", 286, "ne_nid_335", 337, 33], + ["jump", "ne_ni_336", 337, 33], + "ne_nid_335", + ["false", 286, 337, 33], + ["jump", "ne_done_334", 337, 33], + "ne_ni_336", + ["is_int", 287, 16, 337, 33], + ["jump_false", 287, "ne_nn_337", 337, 33], + ["is_int", 288, 10, 337, 33], + ["jump_false", 288, "ne_nn_337", 337, 33], + ["ne_int", 286, 16, 10, 337, 33], + ["jump", "ne_done_334", 337, 33], + "ne_nn_337", + ["is_num", 287, 16, 337, 33], + ["jump_false", 287, "ne_nt_338", 337, 33], + ["is_num", 288, 10, 337, 33], + ["jump_false", 288, "ne_nt_338", 337, 33], + ["ne_float", 286, 16, 10, 337, 33], + ["jump", "ne_done_334", 337, 33], + "ne_nt_338", + ["is_text", 287, 16, 337, 33], + ["jump_false", 287, "ne_nnl_339", 337, 33], + ["is_text", 288, 10, 337, 33], + ["jump_false", 288, "ne_nnl_339", 337, 33], + ["ne_text", 286, 16, 10, 337, 33], + ["jump", "ne_done_334", 337, 33], + "ne_nnl_339", + ["is_null", 287, 16, 337, 33], + ["jump_false", 287, "ne_nb_340", 337, 33], + ["is_null", 288, 10, 337, 33], + ["jump_false", 288, "ne_nb_340", 337, 33], + ["false", 286, 337, 33], + ["jump", "ne_done_334", 337, 33], + "ne_nb_340", + ["is_bool", 287, 16, 337, 33], + ["jump_false", 287, "ne_mis_341", 337, 33], + ["is_bool", 288, 10, 337, 33], + ["jump_false", 288, "ne_mis_341", 337, 33], + ["ne_bool", 286, 16, 10, 337, 33], + ["jump", "ne_done_334", 337, 33], + "ne_mis_341", + ["true", 286, 337, 33], + "ne_done_334", + ["move", 285, 286, 337, 33], + "and_end_325", + ["move", 289, 285, 337, 33], + ["jump_false", 289, "and_end_324", 337, 33], + ["access", 290, "unknown", 337, 50], + ["is_identical", 291, 16, 290, 337, 50], + ["jump_true", 291, "ne_nid_343", 337, 50], + ["jump", "ne_ni_344", 337, 50], + "ne_nid_343", + ["false", 291, 337, 50], + ["jump", "ne_done_342", 337, 50], + "ne_ni_344", + ["is_int", 292, 16, 337, 50], + ["jump_false", 292, "ne_nn_345", 337, 50], + ["is_int", 293, 290, 337, 50], + ["jump_false", 293, "ne_nn_345", 337, 50], + ["ne_int", 291, 16, 290, 337, 50], + ["jump", "ne_done_342", 337, 50], + "ne_nn_345", + ["is_num", 292, 16, 337, 50], + ["jump_false", 292, "ne_nt_346", 337, 50], + ["is_num", 293, 290, 337, 50], + ["jump_false", 293, "ne_nt_346", 337, 50], + ["ne_float", 291, 16, 290, 337, 50], + ["jump", "ne_done_342", 337, 50], + "ne_nt_346", + ["is_text", 292, 16, 337, 50], + ["jump_false", 292, "ne_nnl_347", 337, 50], + ["is_text", 293, 290, 337, 50], + ["jump_false", 293, "ne_nnl_347", 337, 50], + ["ne_text", 291, 16, 290, 337, 50], + ["jump", "ne_done_342", 337, 50], + "ne_nnl_347", + ["is_null", 292, 16, 337, 50], + ["jump_false", 292, "ne_nb_348", 337, 50], + ["is_null", 293, 290, 337, 50], + ["jump_false", 293, "ne_nb_348", 337, 50], + ["false", 291, 337, 50], + ["jump", "ne_done_342", 337, 50], + "ne_nb_348", + ["is_bool", 292, 16, 337, 50], + ["jump_false", 292, "ne_mis_349", 337, 50], + ["is_bool", 293, 290, 337, 50], + ["jump_false", 293, "ne_mis_349", 337, 50], + ["ne_bool", 291, 16, 290, 337, 50], + ["jump", "ne_done_342", 337, 50], + "ne_mis_349", + ["true", 291, 337, 50], + "ne_done_342", + ["move", 289, 291, 337, 50], + "and_end_324", + ["jump_false", 289, "if_else_322", 337, 50], + [ + "access", + 295, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 296, 295, 1, 1, 1], + ["null", 297, 1, 1], + ["setarg", 296, 0, 297, 1, 1], + ["setarg", 296, 1, 19, 1, 1], + ["invoke", 296, 294, 1, 1], + ["array", 298, 0, 1, 1], + ["push", 298, 294, 1, 1], + ["push", 298, 15, 1, 1], + ["push", 298, 13, 1, 1], + ["push", 298, 16, 1, 1], + [ + "access", + 299, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 300, "type_consistency: instr {0} op={1} src2 slot {2} has type {3}, expected float", 1, 1], + ["frame", 302, 299, 2, 1, 1], + ["null", 303, 1, 1], + ["setarg", 302, 0, 303, 1, 1], + ["setarg", 302, 1, 300, 1, 1], + ["setarg", 302, 2, 298, 1, 1], + ["invoke", 302, 301, 1, 1], + ["is_array", 304, 18, 1, 1], + ["jump_false", 304, "push_err_350", 1, 1], + ["push", 18, 301, 1, 1], + ["jump", "push_done_351", 1, 1], + "push_err_350", + ["disrupt", 1, 1], + "push_done_351", + ["jump", "if_end_323", 1, 1], + "if_else_322", + "if_end_323", + ["jump", "if_end_317", 1, 1], + "if_else_316", + "if_end_317", + ["jump", "if_end_274", 1, 1], + "if_else_273", + ["load_dynamic", 305, 8, 15, 341, 25], + ["true", 306, 341, 32], + ["is_identical", 307, 305, 306, 341, 32], + ["jump_true", 307, "eq_done_355", 341, 32], + ["is_int", 308, 305, 341, 32], + ["jump_false", 308, "eq_ni_356", 341, 32], + "_nop_tc_22", + ["jump", "eq_ni_356", 341, 32], + ["eq_int", 307, 305, 306, 341, 32], + ["jump", "eq_done_355", 341, 32], + "eq_ni_356", + ["is_num", 308, 305, 341, 32], + ["jump_false", 308, "eq_nn_357", 341, 32], + ["is_num", 309, 306, 341, 32], + ["jump_false", 309, "eq_nn_357", 341, 32], + ["eq_float", 307, 305, 306, 341, 32], + ["jump", "eq_done_355", 341, 32], + "eq_nn_357", + ["is_text", 308, 305, 341, 32], + ["jump_false", 308, "eq_nt_358", 341, 32], + ["is_text", 309, 306, 341, 32], + ["jump_false", 309, "eq_nt_358", 341, 32], + ["eq_text", 307, 305, 306, 341, 32], + ["jump", "eq_done_355", 341, 32], + "eq_nt_358", + ["is_null", 308, 305, 341, 32], + ["jump_false", 308, "eq_nnl_359", 341, 32], + ["is_null", 309, 306, 341, 32], + ["jump_false", 309, "eq_nnl_359", 341, 32], + ["true", 307, 341, 32], + ["jump", "eq_done_355", 341, 32], + "eq_nnl_359", + ["is_bool", 308, 305, 341, 32], + ["jump_false", 308, "eq_nb_360", 341, 32], + ["is_bool", 309, 306, 341, 32], + ["jump_false", 309, "eq_nb_360", 341, 32], + ["eq_bool", 307, 305, 306, 341, 32], + ["jump", "eq_done_355", 341, 32], + "eq_nb_360", + ["false", 307, 341, 32], + "eq_done_355", + ["move", 310, 307, 341, 32], + ["jump_false", 310, "and_end_354", 341, 32], + ["length", 311, 12, 341, 47], + ["access", 312, 5, 341, 57], + "_nop_tc_23", + "_nop_tc_24", + "_nop_tc_25", + ["jump", "rel_ni_361", 341, 57], + ["ge_int", 313, 311, 312, 341, 57], + ["jump", "rel_done_363", 341, 57], + "rel_ni_361", + ["is_num", 314, 311, 341, 57], + ["jump_false", 314, "rel_nn_362", 341, 57], + ["is_num", 315, 312, 341, 57], + ["jump_false", 315, "rel_nn_362", 341, 57], + ["ge_float", 313, 311, 312, 341, 57], + ["jump", "rel_done_363", 341, 57], + "rel_nn_362", + ["is_text", 314, 311, 341, 57], + ["jump_false", 314, "rel_err_364", 341, 57], + ["is_text", 315, 312, 341, 57], + ["jump_false", 315, "rel_err_364", 341, 57], + ["ge_text", 313, 311, 312, 341, 57], + ["jump", "rel_done_363", 341, 57], + "rel_err_364", + ["disrupt", 341, 57], + "rel_done_363", + ["move", 310, 313, 341, 57], + "and_end_354", + ["jump_false", 310, "if_else_352", 341, 57], + ["access", 316, 2, 342, 23], + ["load_index", 317, 12, 316, 342, 23], + [ + "access", + 319, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 342, + 12 + ], + ["frame", 320, 319, 1, 342, 12], + ["null", 321, 342, 12], + ["setarg", 320, 0, 321, 342, 12], + ["setarg", 320, 1, 317, 342, 12], + ["invoke", 320, 318, 342, 12], + ["move", 2, 318, 342, 12], + ["load_dynamic", 322, 14, 2, 343, 23], + ["move", 9, 322, 343, 23], + ["null", 323, 344, 17], + ["is_identical", 324, 9, 323, 344, 17], + ["jump_true", 324, "ne_nid_370", 344, 17], + ["jump", "ne_ni_371", 344, 17], + "ne_nid_370", + ["false", 324, 344, 17], + ["jump", "ne_done_369", 344, 17], + "ne_ni_371", + ["is_int", 325, 9, 344, 17], + ["jump_false", 325, "ne_nn_372", 344, 17], + ["is_int", 326, 323, 344, 17], + ["jump_false", 326, "ne_nn_372", 344, 17], + ["ne_int", 324, 9, 323, 344, 17], + ["jump", "ne_done_369", 344, 17], + "ne_nn_372", + ["is_num", 325, 9, 344, 17], + ["jump_false", 325, "ne_nt_373", 344, 17], + ["is_num", 326, 323, 344, 17], + ["jump_false", 326, "ne_nt_373", 344, 17], + ["ne_float", 324, 9, 323, 344, 17], + ["jump", "ne_done_369", 344, 17], + "ne_nt_373", + ["is_text", 325, 9, 344, 17], + ["jump_false", 325, "ne_nnl_374", 344, 17], + ["is_text", 326, 323, 344, 17], + ["jump_false", 326, "ne_nnl_374", 344, 17], + ["ne_text", 324, 9, 323, 344, 17], + ["jump", "ne_done_369", 344, 17], + "ne_nnl_374", + ["is_null", 325, 9, 344, 17], + ["jump_false", 325, "ne_nb_375", 344, 17], + ["is_null", 326, 323, 344, 17], + ["jump_false", 326, "ne_nb_375", 344, 17], + ["false", 324, 344, 17], + ["jump", "ne_done_369", 344, 17], + "ne_nb_375", + ["is_bool", 325, 9, 344, 17], + ["jump_false", 325, "ne_mis_376", 344, 17], + ["is_bool", 326, 323, 344, 17], + ["jump_false", 326, "ne_mis_376", 344, 17], + ["ne_bool", 324, 9, 323, 344, 17], + ["jump", "ne_done_369", 344, 17], + "ne_mis_376", + ["true", 324, 344, 17], + "ne_done_369", + ["move", 327, 324, 344, 17], + ["jump_false", 327, "and_end_368", 344, 17], + ["is_identical", 328, 9, 6, 344, 31], + ["jump_true", 328, "ne_nid_378", 344, 31], + ["jump", "ne_ni_379", 344, 31], + "ne_nid_378", + ["false", 328, 344, 31], + ["jump", "ne_done_377", 344, 31], + "ne_ni_379", + ["is_int", 329, 9, 344, 31], + ["jump_false", 329, "ne_nn_380", 344, 31], + ["is_int", 330, 6, 344, 31], + ["jump_false", 330, "ne_nn_380", 344, 31], + ["ne_int", 328, 9, 6, 344, 31], + ["jump", "ne_done_377", 344, 31], + "ne_nn_380", + ["is_num", 329, 9, 344, 31], + ["jump_false", 329, "ne_nt_381", 344, 31], + ["is_num", 330, 6, 344, 31], + ["jump_false", 330, "ne_nt_381", 344, 31], + ["ne_float", 328, 9, 6, 344, 31], + ["jump", "ne_done_377", 344, 31], + "ne_nt_381", + ["is_text", 329, 9, 344, 31], + ["jump_false", 329, "ne_nnl_382", 344, 31], + ["is_text", 330, 6, 344, 31], + ["jump_false", 330, "ne_nnl_382", 344, 31], + ["ne_text", 328, 9, 6, 344, 31], + ["jump", "ne_done_377", 344, 31], + "ne_nnl_382", + ["is_null", 329, 9, 344, 31], + ["jump_false", 329, "ne_nb_383", 344, 31], + ["is_null", 330, 6, 344, 31], + ["jump_false", 330, "ne_nb_383", 344, 31], + ["false", 328, 344, 31], + ["jump", "ne_done_377", 344, 31], + "ne_nb_383", + ["is_bool", 329, 9, 344, 31], + ["jump_false", 329, "ne_mis_384", 344, 31], + ["is_bool", 330, 6, 344, 31], + ["jump_false", 330, "ne_mis_384", 344, 31], + ["ne_bool", 328, 9, 6, 344, 31], + ["jump", "ne_done_377", 344, 31], + "ne_mis_384", + ["true", 328, 344, 31], + "ne_done_377", + ["move", 327, 328, 344, 31], + "and_end_368", + ["move", 331, 327, 344, 31], + ["jump_false", 331, "and_end_367", 344, 31], + ["access", 332, "unknown", 344, 47], + ["is_identical", 333, 9, 332, 344, 47], + ["jump_true", 333, "ne_nid_386", 344, 47], + ["jump", "ne_ni_387", 344, 47], + "ne_nid_386", + ["false", 333, 344, 47], + ["jump", "ne_done_385", 344, 47], + "ne_ni_387", + ["is_int", 334, 9, 344, 47], + ["jump_false", 334, "ne_nn_388", 344, 47], + ["is_int", 335, 332, 344, 47], + ["jump_false", 335, "ne_nn_388", 344, 47], + ["ne_int", 333, 9, 332, 344, 47], + ["jump", "ne_done_385", 344, 47], + "ne_nn_388", + ["is_num", 334, 9, 344, 47], + ["jump_false", 334, "ne_nt_389", 344, 47], + ["is_num", 335, 332, 344, 47], + ["jump_false", 335, "ne_nt_389", 344, 47], + ["ne_float", 333, 9, 332, 344, 47], + ["jump", "ne_done_385", 344, 47], + "ne_nt_389", + ["is_text", 334, 9, 344, 47], + ["jump_false", 334, "ne_nnl_390", 344, 47], + ["is_text", 335, 332, 344, 47], + ["jump_false", 335, "ne_nnl_390", 344, 47], + ["ne_text", 333, 9, 332, 344, 47], + ["jump", "ne_done_385", 344, 47], + "ne_nnl_390", + ["is_null", 334, 9, 344, 47], + ["jump_false", 334, "ne_nb_391", 344, 47], + ["is_null", 335, 332, 344, 47], + ["jump_false", 335, "ne_nb_391", 344, 47], + ["false", 333, 344, 47], + ["jump", "ne_done_385", 344, 47], + "ne_nb_391", + ["is_bool", 334, 9, 344, 47], + ["jump_false", 334, "ne_mis_392", 344, 47], + ["is_bool", 335, 332, 344, 47], + ["jump_false", 335, "ne_mis_392", 344, 47], + ["ne_bool", 333, 9, 332, 344, 47], + ["jump", "ne_done_385", 344, 47], + "ne_mis_392", + ["true", 333, 344, 47], + "ne_done_385", + ["move", 331, 333, 344, 47], + "and_end_367", + ["jump_false", 331, "if_else_365", 344, 47], + [ + "access", + 337, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 338, 337, 1, 1, 1], + ["null", 339, 1, 1], + ["setarg", 338, 0, 339, 1, 1], + ["setarg", 338, 1, 19, 1, 1], + ["invoke", 338, 336, 1, 1], + ["array", 340, 0, 1, 1], + ["push", 340, 336, 1, 1], + ["push", 340, 15, 1, 1], + ["push", 340, 2, 1, 1], + ["push", 340, 9, 1, 1], + [ + "access", + 341, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 342, "type_consistency: instr {0} op={1} src1 slot {2} has type {3}, expected text", 1, 1], + ["frame", 344, 341, 2, 1, 1], + ["null", 345, 1, 1], + ["setarg", 344, 0, 345, 1, 1], + ["setarg", 344, 1, 342, 1, 1], + ["setarg", 344, 2, 340, 1, 1], + ["invoke", 344, 343, 1, 1], + ["is_array", 346, 18, 1, 1], + ["jump_false", 346, "push_err_393", 1, 1], + ["push", 18, 343, 1, 1], + ["jump", "push_done_394", 1, 1], + "push_err_393", + ["disrupt", 1, 1], + "push_done_394", + ["jump", "if_end_366", 1, 1], + "if_else_365", + "if_end_366", + ["length", 347, 12, 347, 18], + ["access", 348, 6, 347, 28], + "_nop_tc_26", + "_nop_tc_27", + "_nop_tc_28", + ["jump", "rel_ni_397", 347, 28], + ["ge_int", 349, 347, 348, 347, 28], + ["jump", "rel_done_399", 347, 28], + "rel_ni_397", + ["is_num", 350, 347, 347, 28], + ["jump_false", 350, "rel_nn_398", 347, 28], + ["is_num", 351, 348, 347, 28], + ["jump_false", 351, "rel_nn_398", 347, 28], + ["ge_float", 349, 347, 348, 347, 28], + ["jump", "rel_done_399", 347, 28], + "rel_nn_398", + ["is_text", 350, 347, 347, 28], + ["jump_false", 350, "rel_err_400", 347, 28], + ["is_text", 351, 348, 347, 28], + ["jump_false", 351, "rel_err_400", 347, 28], + ["ge_text", 349, 347, 348, 347, 28], + ["jump", "rel_done_399", 347, 28], + "rel_err_400", + ["disrupt", 347, 28], + "rel_done_399", + ["jump_false", 349, "if_else_395", 347, 28], + ["access", 352, 3, 348, 25], + ["load_index", 353, 12, 352, 348, 25], + [ + "access", + 355, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 348, + 14 + ], + ["frame", 356, 355, 1, 348, 14], + ["null", 357, 348, 14], + ["setarg", 356, 0, 357, 348, 14], + ["setarg", 356, 1, 353, 348, 14], + ["invoke", 356, 354, 348, 14], + ["move", 13, 354, 348, 14], + ["load_dynamic", 358, 14, 13, 349, 25], + ["move", 16, 358, 349, 25], + ["null", 359, 350, 19], + ["is_identical", 360, 16, 359, 350, 19], + ["jump_true", 360, "ne_nid_406", 350, 19], + ["jump", "ne_ni_407", 350, 19], + "ne_nid_406", + ["false", 360, 350, 19], + ["jump", "ne_done_405", 350, 19], + "ne_ni_407", + ["is_int", 361, 16, 350, 19], + ["jump_false", 361, "ne_nn_408", 350, 19], + ["is_int", 362, 359, 350, 19], + ["jump_false", 362, "ne_nn_408", 350, 19], + ["ne_int", 360, 16, 359, 350, 19], + ["jump", "ne_done_405", 350, 19], + "ne_nn_408", + ["is_num", 361, 16, 350, 19], + ["jump_false", 361, "ne_nt_409", 350, 19], + ["is_num", 362, 359, 350, 19], + ["jump_false", 362, "ne_nt_409", 350, 19], + ["ne_float", 360, 16, 359, 350, 19], + ["jump", "ne_done_405", 350, 19], + "ne_nt_409", + ["is_text", 361, 16, 350, 19], + ["jump_false", 361, "ne_nnl_410", 350, 19], + ["is_text", 362, 359, 350, 19], + ["jump_false", 362, "ne_nnl_410", 350, 19], + ["ne_text", 360, 16, 359, 350, 19], + ["jump", "ne_done_405", 350, 19], + "ne_nnl_410", + ["is_null", 361, 16, 350, 19], + ["jump_false", 361, "ne_nb_411", 350, 19], + ["is_null", 362, 359, 350, 19], + ["jump_false", 362, "ne_nb_411", 350, 19], + ["false", 360, 350, 19], + ["jump", "ne_done_405", 350, 19], + "ne_nb_411", + ["is_bool", 361, 16, 350, 19], + ["jump_false", 361, "ne_mis_412", 350, 19], + ["is_bool", 362, 359, 350, 19], + ["jump_false", 362, "ne_mis_412", 350, 19], + ["ne_bool", 360, 16, 359, 350, 19], + ["jump", "ne_done_405", 350, 19], + "ne_mis_412", + ["true", 360, 350, 19], + "ne_done_405", + ["move", 363, 360, 350, 19], + ["jump_false", 363, "and_end_404", 350, 19], + ["is_identical", 364, 16, 6, 350, 33], + ["jump_true", 364, "ne_nid_414", 350, 33], + ["jump", "ne_ni_415", 350, 33], + "ne_nid_414", + ["false", 364, 350, 33], + ["jump", "ne_done_413", 350, 33], + "ne_ni_415", + ["is_int", 365, 16, 350, 33], + ["jump_false", 365, "ne_nn_416", 350, 33], + ["is_int", 366, 6, 350, 33], + ["jump_false", 366, "ne_nn_416", 350, 33], + ["ne_int", 364, 16, 6, 350, 33], + ["jump", "ne_done_413", 350, 33], + "ne_nn_416", + ["is_num", 365, 16, 350, 33], + ["jump_false", 365, "ne_nt_417", 350, 33], + ["is_num", 366, 6, 350, 33], + ["jump_false", 366, "ne_nt_417", 350, 33], + ["ne_float", 364, 16, 6, 350, 33], + ["jump", "ne_done_413", 350, 33], + "ne_nt_417", + ["is_text", 365, 16, 350, 33], + ["jump_false", 365, "ne_nnl_418", 350, 33], + ["is_text", 366, 6, 350, 33], + ["jump_false", 366, "ne_nnl_418", 350, 33], + ["ne_text", 364, 16, 6, 350, 33], + ["jump", "ne_done_413", 350, 33], + "ne_nnl_418", + ["is_null", 365, 16, 350, 33], + ["jump_false", 365, "ne_nb_419", 350, 33], + ["is_null", 366, 6, 350, 33], + ["jump_false", 366, "ne_nb_419", 350, 33], + ["false", 364, 350, 33], + ["jump", "ne_done_413", 350, 33], + "ne_nb_419", + ["is_bool", 365, 16, 350, 33], + ["jump_false", 365, "ne_mis_420", 350, 33], + ["is_bool", 366, 6, 350, 33], + ["jump_false", 366, "ne_mis_420", 350, 33], + ["ne_bool", 364, 16, 6, 350, 33], + ["jump", "ne_done_413", 350, 33], + "ne_mis_420", + ["true", 364, 350, 33], + "ne_done_413", + ["move", 363, 364, 350, 33], + "and_end_404", + ["move", 367, 363, 350, 33], + ["jump_false", 367, "and_end_403", 350, 33], + ["access", 368, "unknown", 350, 49], + ["is_identical", 369, 16, 368, 350, 49], + ["jump_true", 369, "ne_nid_422", 350, 49], + ["jump", "ne_ni_423", 350, 49], + "ne_nid_422", + ["false", 369, 350, 49], + ["jump", "ne_done_421", 350, 49], + "ne_ni_423", + ["is_int", 370, 16, 350, 49], + ["jump_false", 370, "ne_nn_424", 350, 49], + ["is_int", 371, 368, 350, 49], + ["jump_false", 371, "ne_nn_424", 350, 49], + ["ne_int", 369, 16, 368, 350, 49], + ["jump", "ne_done_421", 350, 49], + "ne_nn_424", + ["is_num", 370, 16, 350, 49], + ["jump_false", 370, "ne_nt_425", 350, 49], + ["is_num", 371, 368, 350, 49], + ["jump_false", 371, "ne_nt_425", 350, 49], + ["ne_float", 369, 16, 368, 350, 49], + ["jump", "ne_done_421", 350, 49], + "ne_nt_425", + ["is_text", 370, 16, 350, 49], + ["jump_false", 370, "ne_nnl_426", 350, 49], + ["is_text", 371, 368, 350, 49], + ["jump_false", 371, "ne_nnl_426", 350, 49], + ["ne_text", 369, 16, 368, 350, 49], + ["jump", "ne_done_421", 350, 49], + "ne_nnl_426", + ["is_null", 370, 16, 350, 49], + ["jump_false", 370, "ne_nb_427", 350, 49], + ["is_null", 371, 368, 350, 49], + ["jump_false", 371, "ne_nb_427", 350, 49], + ["false", 369, 350, 49], + ["jump", "ne_done_421", 350, 49], + "ne_nb_427", + ["is_bool", 370, 16, 350, 49], + ["jump_false", 370, "ne_mis_428", 350, 49], + ["is_bool", 371, 368, 350, 49], + ["jump_false", 371, "ne_mis_428", 350, 49], + ["ne_bool", 369, 16, 368, 350, 49], + ["jump", "ne_done_421", 350, 49], + "ne_mis_428", + ["true", 369, 350, 49], + "ne_done_421", + ["move", 367, 369, 350, 49], + "and_end_403", + ["jump_false", 367, "if_else_401", 350, 49], + [ + "access", + 373, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 374, 373, 1, 1, 1], + ["null", 375, 1, 1], + ["setarg", 374, 0, 375, 1, 1], + ["setarg", 374, 1, 19, 1, 1], + ["invoke", 374, 372, 1, 1], + ["array", 376, 0, 1, 1], + ["push", 376, 372, 1, 1], + ["push", 376, 15, 1, 1], + ["push", 376, 13, 1, 1], + ["push", 376, 16, 1, 1], + [ + "access", + 377, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 378, "type_consistency: instr {0} op={1} src2 slot {2} has type {3}, expected text", 1, 1], + ["frame", 380, 377, 2, 1, 1], + ["null", 381, 1, 1], + ["setarg", 380, 0, 381, 1, 1], + ["setarg", 380, 1, 378, 1, 1], + ["setarg", 380, 2, 376, 1, 1], + ["invoke", 380, 379, 1, 1], + ["is_array", 382, 18, 1, 1], + ["jump_false", 382, "push_err_429", 1, 1], + ["push", 18, 379, 1, 1], + ["jump", "push_done_430", 1, 1], + "push_err_429", + ["disrupt", 1, 1], + "push_done_430", + ["jump", "if_end_402", 1, 1], + "if_else_401", + "if_end_402", + ["jump", "if_end_396", 1, 1], + "if_else_395", + "if_end_396", + ["jump", "if_end_353", 1, 1], + "if_else_352", + ["load_dynamic", 383, 17, 15, 354, 25], + ["true", 384, 354, 32], + ["is_identical", 385, 383, 384, 354, 32], + ["jump_true", 385, "eq_done_434", 354, 32], + ["is_int", 386, 383, 354, 32], + ["jump_false", 386, "eq_ni_435", 354, 32], + "_nop_tc_29", + ["jump", "eq_ni_435", 354, 32], + ["eq_int", 385, 383, 384, 354, 32], + ["jump", "eq_done_434", 354, 32], + "eq_ni_435", + ["is_num", 386, 383, 354, 32], + ["jump_false", 386, "eq_nn_436", 354, 32], + ["is_num", 387, 384, 354, 32], + ["jump_false", 387, "eq_nn_436", 354, 32], + ["eq_float", 385, 383, 384, 354, 32], + ["jump", "eq_done_434", 354, 32], + "eq_nn_436", + ["is_text", 386, 383, 354, 32], + ["jump_false", 386, "eq_nt_437", 354, 32], + ["is_text", 387, 384, 354, 32], + ["jump_false", 387, "eq_nt_437", 354, 32], + ["eq_text", 385, 383, 384, 354, 32], + ["jump", "eq_done_434", 354, 32], + "eq_nt_437", + ["is_null", 386, 383, 354, 32], + ["jump_false", 386, "eq_nnl_438", 354, 32], + ["is_null", 387, 384, 354, 32], + ["jump_false", 387, "eq_nnl_438", 354, 32], + ["true", 385, 354, 32], + ["jump", "eq_done_434", 354, 32], + "eq_nnl_438", + ["is_bool", 386, 383, 354, 32], + ["jump_false", 386, "eq_nb_439", 354, 32], + ["is_bool", 387, 384, 354, 32], + ["jump_false", 387, "eq_nb_439", 354, 32], + ["eq_bool", 385, 383, 384, 354, 32], + ["jump", "eq_done_434", 354, 32], + "eq_nb_439", + ["false", 385, 354, 32], + "eq_done_434", + ["move", 388, 385, 354, 32], + ["jump_false", 388, "and_end_433", 354, 32], + ["length", 389, 12, 354, 47], + ["access", 390, 5, 354, 57], + "_nop_tc_30", + "_nop_tc_31", + "_nop_tc_32", + ["jump", "rel_ni_440", 354, 57], + ["ge_int", 391, 389, 390, 354, 57], + ["jump", "rel_done_442", 354, 57], + "rel_ni_440", + ["is_num", 392, 389, 354, 57], + ["jump_false", 392, "rel_nn_441", 354, 57], + ["is_num", 393, 390, 354, 57], + ["jump_false", 393, "rel_nn_441", 354, 57], + ["ge_float", 391, 389, 390, 354, 57], + ["jump", "rel_done_442", 354, 57], + "rel_nn_441", + ["is_text", 392, 389, 354, 57], + ["jump_false", 392, "rel_err_443", 354, 57], + ["is_text", 393, 390, 354, 57], + ["jump_false", 393, "rel_err_443", 354, 57], + ["ge_text", 391, 389, 390, 354, 57], + ["jump", "rel_done_442", 354, 57], + "rel_err_443", + ["disrupt", 354, 57], + "rel_done_442", + ["move", 388, 391, 354, 57], + "and_end_433", + ["jump_false", 388, "if_else_431", 354, 57], + ["access", 394, 2, 355, 23], + ["load_index", 395, 12, 394, 355, 23], + [ + "access", + 397, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 355, + 12 + ], + ["frame", 398, 397, 1, 355, 12], + ["null", 399, 355, 12], + ["setarg", 398, 0, 399, 355, 12], + ["setarg", 398, 1, 395, 355, 12], + ["invoke", 398, 396, 355, 12], + ["move", 2, 396, 355, 12], + ["load_dynamic", 400, 14, 2, 356, 23], + ["move", 9, 400, 356, 23], + ["null", 401, 357, 17], + ["is_identical", 402, 9, 401, 357, 17], + ["jump_true", 402, "ne_nid_449", 357, 17], + ["jump", "ne_ni_450", 357, 17], + "ne_nid_449", + ["false", 402, 357, 17], + ["jump", "ne_done_448", 357, 17], + "ne_ni_450", + ["is_int", 403, 9, 357, 17], + ["jump_false", 403, "ne_nn_451", 357, 17], + ["is_int", 404, 401, 357, 17], + ["jump_false", 404, "ne_nn_451", 357, 17], + ["ne_int", 402, 9, 401, 357, 17], + ["jump", "ne_done_448", 357, 17], + "ne_nn_451", + ["is_num", 403, 9, 357, 17], + ["jump_false", 403, "ne_nt_452", 357, 17], + ["is_num", 404, 401, 357, 17], + ["jump_false", 404, "ne_nt_452", 357, 17], + ["ne_float", 402, 9, 401, 357, 17], + ["jump", "ne_done_448", 357, 17], + "ne_nt_452", + ["is_text", 403, 9, 357, 17], + ["jump_false", 403, "ne_nnl_453", 357, 17], + ["is_text", 404, 401, 357, 17], + ["jump_false", 404, "ne_nnl_453", 357, 17], + ["ne_text", 402, 9, 401, 357, 17], + ["jump", "ne_done_448", 357, 17], + "ne_nnl_453", + ["is_null", 403, 9, 357, 17], + ["jump_false", 403, "ne_nb_454", 357, 17], + ["is_null", 404, 401, 357, 17], + ["jump_false", 404, "ne_nb_454", 357, 17], + ["false", 402, 357, 17], + ["jump", "ne_done_448", 357, 17], + "ne_nb_454", + ["is_bool", 403, 9, 357, 17], + ["jump_false", 403, "ne_mis_455", 357, 17], + ["is_bool", 404, 401, 357, 17], + ["jump_false", 404, "ne_mis_455", 357, 17], + ["ne_bool", 402, 9, 401, 357, 17], + ["jump", "ne_done_448", 357, 17], + "ne_mis_455", + ["true", 402, 357, 17], + "ne_done_448", + ["move", 405, 402, 357, 17], + ["jump_false", 405, "and_end_447", 357, 17], + ["is_identical", 406, 9, 7, 357, 31], + ["jump_true", 406, "ne_nid_457", 357, 31], + ["jump", "ne_ni_458", 357, 31], + "ne_nid_457", + ["false", 406, 357, 31], + ["jump", "ne_done_456", 357, 31], + "ne_ni_458", + ["is_int", 407, 9, 357, 31], + ["jump_false", 407, "ne_nn_459", 357, 31], + ["is_int", 408, 7, 357, 31], + ["jump_false", 408, "ne_nn_459", 357, 31], + ["ne_int", 406, 9, 7, 357, 31], + ["jump", "ne_done_456", 357, 31], + "ne_nn_459", + ["is_num", 407, 9, 357, 31], + ["jump_false", 407, "ne_nt_460", 357, 31], + ["is_num", 408, 7, 357, 31], + ["jump_false", 408, "ne_nt_460", 357, 31], + ["ne_float", 406, 9, 7, 357, 31], + ["jump", "ne_done_456", 357, 31], + "ne_nt_460", + ["is_text", 407, 9, 357, 31], + ["jump_false", 407, "ne_nnl_461", 357, 31], + ["is_text", 408, 7, 357, 31], + ["jump_false", 408, "ne_nnl_461", 357, 31], + ["ne_text", 406, 9, 7, 357, 31], + ["jump", "ne_done_456", 357, 31], + "ne_nnl_461", + ["is_null", 407, 9, 357, 31], + ["jump_false", 407, "ne_nb_462", 357, 31], + ["is_null", 408, 7, 357, 31], + ["jump_false", 408, "ne_nb_462", 357, 31], + ["false", 406, 357, 31], + ["jump", "ne_done_456", 357, 31], + "ne_nb_462", + ["is_bool", 407, 9, 357, 31], + ["jump_false", 407, "ne_mis_463", 357, 31], + ["is_bool", 408, 7, 357, 31], + ["jump_false", 408, "ne_mis_463", 357, 31], + ["ne_bool", 406, 9, 7, 357, 31], + ["jump", "ne_done_456", 357, 31], + "ne_mis_463", + ["true", 406, 357, 31], + "ne_done_456", + ["move", 405, 406, 357, 31], + "and_end_447", + ["move", 409, 405, 357, 31], + ["jump_false", 409, "and_end_446", 357, 31], + ["access", 410, "unknown", 357, 47], + ["is_identical", 411, 9, 410, 357, 47], + ["jump_true", 411, "ne_nid_465", 357, 47], + ["jump", "ne_ni_466", 357, 47], + "ne_nid_465", + ["false", 411, 357, 47], + ["jump", "ne_done_464", 357, 47], + "ne_ni_466", + ["is_int", 412, 9, 357, 47], + ["jump_false", 412, "ne_nn_467", 357, 47], + ["is_int", 413, 410, 357, 47], + ["jump_false", 413, "ne_nn_467", 357, 47], + ["ne_int", 411, 9, 410, 357, 47], + ["jump", "ne_done_464", 357, 47], + "ne_nn_467", + ["is_num", 412, 9, 357, 47], + ["jump_false", 412, "ne_nt_468", 357, 47], + ["is_num", 413, 410, 357, 47], + ["jump_false", 413, "ne_nt_468", 357, 47], + ["ne_float", 411, 9, 410, 357, 47], + ["jump", "ne_done_464", 357, 47], + "ne_nt_468", + ["is_text", 412, 9, 357, 47], + ["jump_false", 412, "ne_nnl_469", 357, 47], + ["is_text", 413, 410, 357, 47], + ["jump_false", 413, "ne_nnl_469", 357, 47], + ["ne_text", 411, 9, 410, 357, 47], + ["jump", "ne_done_464", 357, 47], + "ne_nnl_469", + ["is_null", 412, 9, 357, 47], + ["jump_false", 412, "ne_nb_470", 357, 47], + ["is_null", 413, 410, 357, 47], + ["jump_false", 413, "ne_nb_470", 357, 47], + ["false", 411, 357, 47], + ["jump", "ne_done_464", 357, 47], + "ne_nb_470", + ["is_bool", 412, 9, 357, 47], + ["jump_false", 412, "ne_mis_471", 357, 47], + ["is_bool", 413, 410, 357, 47], + ["jump_false", 413, "ne_mis_471", 357, 47], + ["ne_bool", 411, 9, 410, 357, 47], + ["jump", "ne_done_464", 357, 47], + "ne_mis_471", + ["true", 411, 357, 47], + "ne_done_464", + ["move", 409, 411, 357, 47], + "and_end_446", + ["jump_false", 409, "if_else_444", 357, 47], + [ + "access", + 415, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 416, 415, 1, 1, 1], + ["null", 417, 1, 1], + ["setarg", 416, 0, 417, 1, 1], + ["setarg", 416, 1, 19, 1, 1], + ["invoke", 416, 414, 1, 1], + ["array", 418, 0, 1, 1], + ["push", 418, 414, 1, 1], + ["push", 418, 15, 1, 1], + ["push", 418, 2, 1, 1], + ["push", 418, 9, 1, 1], + [ + "access", + 419, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 420, "type_consistency: instr {0} op={1} src1 slot {2} has type {3}, expected bool", 1, 1], + ["frame", 422, 419, 2, 1, 1], + ["null", 423, 1, 1], + ["setarg", 422, 0, 423, 1, 1], + ["setarg", 422, 1, 420, 1, 1], + ["setarg", 422, 2, 418, 1, 1], + ["invoke", 422, 421, 1, 1], + ["is_array", 424, 18, 1, 1], + ["jump_false", 424, "push_err_472", 1, 1], + ["push", 18, 421, 1, 1], + ["jump", "push_done_473", 1, 1], + "push_err_472", + ["disrupt", 1, 1], + "push_done_473", + ["jump", "if_end_445", 1, 1], + "if_else_444", + "if_end_445", + ["jump", "if_end_432", 1, 1], + "if_else_431", + "if_end_432", + "if_end_353", + "if_end_274", + "if_end_195", + ["get", 425, 2, 1, 363, 9], + ["load_dynamic", 426, 425, 15, 363, 21], + ["true", 427, 363, 28], + ["is_identical", 428, 426, 427, 363, 28], + ["jump_true", 428, "eq_done_476", 363, 28], + ["is_int", 429, 426, 363, 28], + ["jump_false", 429, "eq_ni_477", 363, 28], + "_nop_tc_33", + ["jump", "eq_ni_477", 363, 28], + ["eq_int", 428, 426, 427, 363, 28], + ["jump", "eq_done_476", 363, 28], + "eq_ni_477", + ["is_num", 429, 426, 363, 28], + ["jump_false", 429, "eq_nn_478", 363, 28], + ["is_num", 430, 427, 363, 28], + ["jump_false", 430, "eq_nn_478", 363, 28], + ["eq_float", 428, 426, 427, 363, 28], + ["jump", "eq_done_476", 363, 28], + "eq_nn_478", + ["is_text", 429, 426, 363, 28], + ["jump_false", 429, "eq_nt_479", 363, 28], + ["is_text", 430, 427, 363, 28], + ["jump_false", 430, "eq_nt_479", 363, 28], + ["eq_text", 428, 426, 427, 363, 28], + ["jump", "eq_done_476", 363, 28], + "eq_nt_479", + ["is_null", 429, 426, 363, 28], + ["jump_false", 429, "eq_nnl_480", 363, 28], + ["is_null", 430, 427, 363, 28], + ["jump_false", 430, "eq_nnl_480", 363, 28], + ["true", 428, 363, 28], + ["jump", "eq_done_476", 363, 28], + "eq_nnl_480", + ["is_bool", 429, 426, 363, 28], + ["jump_false", 429, "eq_nb_481", 363, 28], + ["is_bool", 430, 427, 363, 28], + ["jump_false", 430, "eq_nb_481", 363, 28], + ["eq_bool", 428, 426, 427, 363, 28], + ["jump", "eq_done_476", 363, 28], + "eq_nb_481", + ["false", 428, 363, 28], + "eq_done_476", + ["jump_false", 428, "if_else_474", 363, 28], + ["null", 431, 364, 36], + ["access", 432, 1, 364, 29], + ["load_index", 433, 12, 432, 364, 29], + [ + "access", + 435, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 364, + 18 + ], + ["frame", 436, 435, 1, 364, 18], + ["null", 437, 364, 18], + ["setarg", 436, 0, 437, 364, 18], + ["setarg", 436, 1, 433, 364, 18], + ["invoke", 436, 434, 364, 18], + ["store_dynamic", 14, 431, 434, 364, 18], + ["access", 438, "int", 366, 17], + ["is_identical", 439, 15, 438, 366, 17], + ["jump_true", 439, "eq_done_485", 366, 17], + ["is_int", 440, 15, 366, 17], + ["jump_false", 440, "eq_ni_486", 366, 17], + "_nop_tc_34", + ["jump", "eq_ni_486", 366, 17], + ["eq_int", 439, 15, 438, 366, 17], + ["jump", "eq_done_485", 366, 17], + "eq_ni_486", + ["is_num", 440, 15, 366, 17], + ["jump_false", 440, "eq_nn_487", 366, 17], + ["is_num", 441, 438, 366, 17], + ["jump_false", 441, "eq_nn_487", 366, 17], + ["eq_float", 439, 15, 438, 366, 17], + ["jump", "eq_done_485", 366, 17], + "eq_nn_487", + ["is_text", 440, 15, 366, 17], + ["jump_false", 440, "eq_nt_488", 366, 17], + ["is_text", 441, 438, 366, 17], + ["jump_false", 441, "eq_nt_488", 366, 17], + ["eq_text", 439, 15, 438, 366, 17], + ["jump", "eq_done_485", 366, 17], + "eq_nt_488", + ["is_null", 440, 15, 366, 17], + ["jump_false", 440, "eq_nnl_489", 366, 17], + ["is_null", 441, 438, 366, 17], + ["jump_false", 441, "eq_nnl_489", 366, 17], + ["true", 439, 366, 17], + ["jump", "eq_done_485", 366, 17], + "eq_nnl_489", + ["is_bool", 440, 15, 366, 17], + ["jump_false", 440, "eq_nb_490", 366, 17], + ["is_bool", 441, 438, 366, 17], + ["jump_false", 441, "eq_nb_490", 366, 17], + ["eq_bool", 439, 15, 438, 366, 17], + ["jump", "eq_done_485", 366, 17], + "eq_nb_490", + ["false", 439, 366, 17], + "eq_done_485", + ["move", 442, 439, 366, 17], + ["jump_true", 442, "or_end_484", 366, 17], + ["access", 443, "access", 366, 33], + ["is_identical", 444, 15, 443, 366, 33], + ["jump_true", 444, "eq_done_492", 366, 33], + ["is_int", 445, 15, 366, 33], + ["jump_false", 445, "eq_ni_493", 366, 33], + "_nop_tc_35", + ["jump", "eq_ni_493", 366, 33], + ["eq_int", 444, 15, 443, 366, 33], + ["jump", "eq_done_492", 366, 33], + "eq_ni_493", + ["is_num", 445, 15, 366, 33], + ["jump_false", 445, "eq_nn_494", 366, 33], + ["is_num", 446, 443, 366, 33], + ["jump_false", 446, "eq_nn_494", 366, 33], + ["eq_float", 444, 15, 443, 366, 33], + ["jump", "eq_done_492", 366, 33], + "eq_nn_494", + ["is_text", 445, 15, 366, 33], + ["jump_false", 445, "eq_nt_495", 366, 33], + ["is_text", 446, 443, 366, 33], + ["jump_false", 446, "eq_nt_495", 366, 33], + ["eq_text", 444, 15, 443, 366, 33], + ["jump", "eq_done_492", 366, 33], + "eq_nt_495", + ["is_null", 445, 15, 366, 33], + ["jump_false", 445, "eq_nnl_496", 366, 33], + ["is_null", 446, 443, 366, 33], + ["jump_false", 446, "eq_nnl_496", 366, 33], + ["true", 444, 366, 33], + ["jump", "eq_done_492", 366, 33], + "eq_nnl_496", + ["is_bool", 445, 15, 366, 33], + ["jump_false", 445, "eq_nb_497", 366, 33], + ["is_bool", 446, 443, 366, 33], + ["jump_false", 446, "eq_nb_497", 366, 33], + ["eq_bool", 444, 15, 443, 366, 33], + ["jump", "eq_done_492", 366, 33], + "eq_nb_497", + ["false", 444, 366, 33], + "eq_done_492", + ["move", 447, 444, 366, 33], + ["jump_false", 447, "and_end_491", 366, 33], + ["access", 448, 2, 366, 61], + ["load_index", 449, 12, 448, 366, 61], + ["is_num", 450, 449, 366, 61], + ["move", 447, 450, 366, 61], + "and_end_491", + ["move", 442, 447, 366, 61], + "or_end_484", + ["jump_false", 442, "if_else_482", 366, 61], + ["jump", "if_end_483", 366, 67], + "if_else_482", + "if_end_483", + ["jump", "if_end_475", 366, 67], + "if_else_474", + "if_end_475", + ["access", 451, "invoke", 370, 15], + ["is_identical", 452, 15, 451, 370, 15], + ["jump_true", 452, "eq_done_500", 370, 15], + ["is_int", 453, 15, 370, 15], + ["jump_false", 453, "eq_ni_501", 370, 15], + "_nop_tc_36", + ["jump", "eq_ni_501", 370, 15], + ["eq_int", 452, 15, 451, 370, 15], + ["jump", "eq_done_500", 370, 15], + "eq_ni_501", + ["is_num", 453, 15, 370, 15], + ["jump_false", 453, "eq_nn_502", 370, 15], + ["is_num", 454, 451, 370, 15], + ["jump_false", 454, "eq_nn_502", 370, 15], + ["eq_float", 452, 15, 451, 370, 15], + ["jump", "eq_done_500", 370, 15], + "eq_nn_502", + ["is_text", 453, 15, 370, 15], + ["jump_false", 453, "eq_nt_503", 370, 15], + ["is_text", 454, 451, 370, 15], + ["jump_false", 454, "eq_nt_503", 370, 15], + ["eq_text", 452, 15, 451, 370, 15], + ["jump", "eq_done_500", 370, 15], + "eq_nt_503", + ["is_null", 453, 15, 370, 15], + ["jump_false", 453, "eq_nnl_504", 370, 15], + ["is_null", 454, 451, 370, 15], + ["jump_false", 454, "eq_nnl_504", 370, 15], + ["true", 452, 370, 15], + ["jump", "eq_done_500", 370, 15], + "eq_nnl_504", + ["is_bool", 453, 15, 370, 15], + ["jump_false", 453, "eq_nb_505", 370, 15], + ["is_bool", 454, 451, 370, 15], + ["jump_false", 454, "eq_nb_505", 370, 15], + ["eq_bool", 452, 15, 451, 370, 15], + ["jump", "eq_done_500", 370, 15], + "eq_nb_505", + ["false", 452, 370, 15], + "eq_done_500", + ["jump_false", 452, "if_else_498", 370, 15], + ["null", 455, 371, 36], + ["access", 456, 2, 371, 29], + ["load_index", 457, 12, 456, 371, 29], + [ + "access", + 459, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 371, + 18 + ], + ["frame", 460, 459, 1, 371, 18], + ["null", 461, 371, 18], + ["setarg", 460, 0, 461, 371, 18], + ["setarg", 460, 1, 457, 371, 18], + ["invoke", 460, 458, 371, 18], + ["store_dynamic", 14, 455, 458, 371, 18], + ["jump", "if_end_499", 371, 18], + "if_else_498", + "if_end_499", + ["access", 462, 1, 374, 13], + ["is_int", 464, 19, 374, 13], + ["jump_false", 464, "add_ni_506", 374, 13], + ["add_int", 463, 19, 462, 374, 13], + ["jump", "add_done_508", 374, 13], + "add_ni_506", + ["is_text", 464, 19, 374, 13], + ["jump_false", 464, "add_nt_507", 374, 13], + ["is_text", 465, 462, 374, 13], + ["jump_false", 465, "add_nt_507", 374, 13], + ["concat", 463, 19, 462, 374, 13], + ["jump", "add_done_508", 374, 13], + "add_nt_507", + ["is_num", 464, 19, 374, 13], + ["jump_false", 464, "add_err_509", 374, 13], + ["add_float", 463, 19, 462, 374, 13], + ["jump", "add_done_508", 374, 13], + "add_err_509", + ["disrupt", 374, 13], + "add_done_508", + ["move", 19, 463, 374, 13], + ["jump", "while_start_138", 374, 13], + "while_end_139", + ["return", 18, 376, 10], + ["null", 466, 376, 10], + ["return", 466, 376, 10] + ], + "name": "", + "filename": "verify_ir.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 77, + "nr_close_slots": 0, + "instructions": [ + ["load_field", 10, 1, "instructions", 382, 22], + ["move", 5, 10, 382, 22], + ["array", 11, 0, 383, 16], + ["move", 7, 11, 383, 16], + ["record", 12, 0], + ["move", 9, 12, 384, 14], + ["access", 8, 0, 385, 11], + ["null", 4, 386, 15], + ["null", 6, 387, 12], + ["null", 2, 388, 19], + ["null", 3, 389, 16], + ["null", 13, 391, 23], + ["is_identical", 14, 5, 13, 391, 23], + ["jump_true", 14, "eq_done_512", 391, 23], + ["is_int", 15, 5, 391, 23], + ["jump_false", 15, "eq_ni_513", 391, 23], + "_nop_tc_1", + ["jump", "eq_ni_513", 391, 23], + ["eq_int", 14, 5, 13, 391, 23], + ["jump", "eq_done_512", 391, 23], + "eq_ni_513", + ["is_num", 15, 5, 391, 23], + ["jump_false", 15, "eq_nn_514", 391, 23], + ["is_num", 16, 13, 391, 23], + ["jump_false", 16, "eq_nn_514", 391, 23], + ["eq_float", 14, 5, 13, 391, 23], + ["jump", "eq_done_512", 391, 23], + "eq_nn_514", + ["is_text", 15, 5, 391, 23], + ["jump_false", 15, "eq_nt_515", 391, 23], + ["is_text", 16, 13, 391, 23], + ["jump_false", 16, "eq_nt_515", 391, 23], + ["eq_text", 14, 5, 13, 391, 23], + ["jump", "eq_done_512", 391, 23], + "eq_nt_515", + ["is_null", 15, 5, 391, 23], + ["jump_false", 15, "eq_nnl_516", 391, 23], + ["is_null", 16, 13, 391, 23], + ["jump_false", 16, "eq_nnl_516", 391, 23], + ["true", 14, 391, 23], + ["jump", "eq_done_512", 391, 23], + "eq_nnl_516", + ["is_bool", 15, 5, 391, 23], + ["jump_false", 15, "eq_nb_517", 391, 23], + ["is_bool", 16, 13, 391, 23], + ["jump_false", 16, "eq_nb_517", 391, 23], + ["eq_bool", 14, 5, 13, 391, 23], + ["jump", "eq_done_512", 391, 23], + "eq_nb_517", + ["false", 14, 391, 23], + "eq_done_512", + ["jump_false", 14, "if_else_510", 391, 23], + ["return", 7, 391, 36], + ["jump", "if_end_511", 391, 36], + "if_else_510", + "if_end_511", + "while_start_518", + ["length", 17, 5, 394, 21], + ["is_int", 19, 8, 394, 21], + ["jump_false", 19, "rel_ni_520", 394, 21], + "_nop_tc_2", + "_nop_tc_3", + ["lt_int", 18, 8, 17, 394, 21], + ["jump", "rel_done_522", 394, 21], + "rel_ni_520", + ["is_num", 19, 8, 394, 21], + ["jump_false", 19, "rel_nn_521", 394, 21], + ["is_num", 20, 17, 394, 21], + ["jump_false", 20, "rel_nn_521", 394, 21], + ["lt_float", 18, 8, 17, 394, 21], + ["jump", "rel_done_522", 394, 21], + "rel_nn_521", + ["is_text", 19, 8, 394, 21], + ["jump_false", 19, "rel_err_523", 394, 21], + ["is_text", 20, 17, 394, 21], + ["jump_false", 20, "rel_err_523", 394, 21], + ["lt_text", 18, 8, 17, 394, 21], + ["jump", "rel_done_522", 394, 21], + "rel_err_523", + ["disrupt", 394, 21], + "rel_done_522", + ["jump_false", 18, "while_end_519", 394, 21], + ["load_dynamic", 21, 5, 8, 395, 26], + ["move", 4, 21, 395, 26], + ["is_text", 22, 4, 396, 17], + ["move", 23, 22, 396, 17], + ["jump_false", 23, "and_end_526", 396, 17], + ["access", 24, "_nop_", 396, 46], + [ + "access", + 26, + { + "name": "starts_with", + "kind": "name", + "make": "intrinsic" + }, + 396, + 27 + ], + ["frame", 27, 26, 2, 396, 27], + ["null", 28, 396, 27], + ["setarg", 27, 0, 28, 396, 27], + ["setarg", 27, 1, 4, 396, 27], + ["setarg", 27, 2, 24, 396, 27], + ["invoke", 27, 25, 396, 27], + ["move", 23, 25, 396, 27], + "and_end_526", + ["jump_false", 23, "if_else_524", 396, 27], + ["true", 29, 397, 21], + ["store_dynamic", 9, 29, 4, 397, 12], + ["jump", "if_end_525", 397, 12], + "if_else_524", + "if_end_525", + ["access", 30, 1, 399, 13], + ["is_int", 32, 8, 399, 13], + ["jump_false", 32, "add_ni_527", 399, 13], + ["add_int", 31, 8, 30, 399, 13], + ["jump", "add_done_529", 399, 13], + "add_ni_527", + ["is_text", 32, 8, 399, 13], + ["jump_false", 32, "add_nt_528", 399, 13], + ["is_text", 33, 30, 399, 13], + ["jump_false", 33, "add_nt_528", 399, 13], + ["concat", 31, 8, 30, 399, 13], + ["jump", "add_done_529", 399, 13], + "add_nt_528", + ["is_num", 32, 8, 399, 13], + ["jump_false", 32, "add_err_530", 399, 13], + ["add_float", 31, 8, 30, 399, 13], + ["jump", "add_done_529", 399, 13], + "add_err_530", + ["disrupt", 399, 13], + "add_done_529", + ["move", 8, 31, 399, 13], + ["jump", "while_start_518", 399, 13], + "while_end_519", + ["access", 34, 0, 403, 7], + ["move", 8, 34, 403, 7], + "while_start_531", + ["length", 35, 5, 404, 21], + ["is_int", 37, 8, 404, 21], + ["jump_false", 37, "rel_ni_533", 404, 21], + "_nop_tc_4", + "_nop_tc_5", + ["lt_int", 36, 8, 35, 404, 21], + ["jump", "rel_done_535", 404, 21], + "rel_ni_533", + ["is_num", 37, 8, 404, 21], + ["jump_false", 37, "rel_nn_534", 404, 21], + ["is_num", 38, 35, 404, 21], + ["jump_false", 38, "rel_nn_534", 404, 21], + ["lt_float", 36, 8, 35, 404, 21], + ["jump", "rel_done_535", 404, 21], + "rel_nn_534", + ["is_text", 37, 8, 404, 21], + ["jump_false", 37, "rel_err_536", 404, 21], + ["is_text", 38, 35, 404, 21], + ["jump_false", 38, "rel_err_536", 404, 21], + ["lt_text", 36, 8, 35, 404, 21], + ["jump", "rel_done_535", 404, 21], + "rel_err_536", + ["disrupt", 404, 21], + "rel_done_535", + ["jump_false", 36, "while_end_532", 404, 21], + ["load_dynamic", 39, 5, 8, 405, 26], + ["move", 4, 39, 405, 26], + ["is_array", 40, 4, 406, 18], + ["jump_false", 40, "if_else_537", 406, 18], + ["access", 41, 0, 407, 18], + ["load_index", 42, 4, 41, 407, 18], + ["move", 6, 42, 407, 18], + ["get", 43, 4, 1, 408, 19], + ["load_dynamic", 44, 43, 6, 408, 34], + ["move", 2, 44, 408, 34], + ["null", 45, 409, 24], + ["is_identical", 46, 2, 45, 409, 24], + ["jump_true", 46, "ne_nid_542", 409, 24], + ["jump", "ne_ni_543", 409, 24], + "ne_nid_542", + ["false", 46, 409, 24], + ["jump", "ne_done_541", 409, 24], + "ne_ni_543", + ["is_int", 47, 2, 409, 24], + ["jump_false", 47, "ne_nn_544", 409, 24], + ["is_int", 48, 45, 409, 24], + ["jump_false", 48, "ne_nn_544", 409, 24], + ["ne_int", 46, 2, 45, 409, 24], + ["jump", "ne_done_541", 409, 24], + "ne_nn_544", + ["is_num", 47, 2, 409, 24], + ["jump_false", 47, "ne_nt_545", 409, 24], + ["is_num", 48, 45, 409, 24], + ["jump_false", 48, "ne_nt_545", 409, 24], + ["ne_float", 46, 2, 45, 409, 24], + ["jump", "ne_done_541", 409, 24], + "ne_nt_545", + ["is_text", 47, 2, 409, 24], + ["jump_false", 47, "ne_nnl_546", 409, 24], + ["is_text", 48, 45, 409, 24], + ["jump_false", 48, "ne_nnl_546", 409, 24], + ["ne_text", 46, 2, 45, 409, 24], + ["jump", "ne_done_541", 409, 24], + "ne_nnl_546", + ["is_null", 47, 2, 409, 24], + ["jump_false", 47, "ne_nb_547", 409, 24], + ["is_null", 48, 45, 409, 24], + ["jump_false", 48, "ne_nb_547", 409, 24], + ["false", 46, 409, 24], + ["jump", "ne_done_541", 409, 24], + "ne_nb_547", + ["is_bool", 47, 2, 409, 24], + ["jump_false", 47, "ne_mis_548", 409, 24], + ["is_bool", 48, 45, 409, 24], + ["jump_false", 48, "ne_mis_548", 409, 24], + ["ne_bool", 46, 2, 45, 409, 24], + ["jump", "ne_done_541", 409, 24], + "ne_mis_548", + ["true", 46, 409, 24], + "ne_done_541", + ["jump_false", 46, "if_else_539", 409, 24], + ["access", 49, 1, 410, 36], + ["is_int", 51, 2, 410, 36], + ["jump_false", 51, "add_ni_549", 410, 36], + ["add_int", 50, 2, 49, 410, 36], + ["jump", "add_done_551", 410, 36], + "add_ni_549", + ["is_text", 51, 2, 410, 36], + ["jump_false", 51, "add_nt_550", 410, 36], + ["is_text", 52, 49, 410, 36], + ["jump_false", 52, "add_nt_550", 410, 36], + ["concat", 50, 2, 49, 410, 36], + ["jump", "add_done_551", 410, 36], + "add_nt_550", + ["is_num", 51, 2, 410, 36], + ["jump_false", 51, "add_err_552", 410, 36], + ["add_float", 50, 2, 49, 410, 36], + ["jump", "add_done_551", 410, 36], + "add_err_552", + ["disrupt", 410, 36], + "add_done_551", + ["load_dynamic", 53, 4, 50, 410, 36], + ["move", 3, 53, 410, 36], + ["is_text", 54, 3, 411, 21], + ["move", 55, 54, 411, 21], + ["jump_false", 55, "and_end_555", 411, 21], + ["load_dynamic", 56, 9, 3, 411, 37], + ["true", 57, 411, 48], + ["is_identical", 58, 56, 57, 411, 48], + ["jump_true", 58, "eq_done_556", 411, 48], + ["is_int", 59, 56, 411, 48], + ["jump_false", 59, "eq_ni_557", 411, 48], + "_nop_tc_6", + ["jump", "eq_ni_557", 411, 48], + ["eq_int", 58, 56, 57, 411, 48], + ["jump", "eq_done_556", 411, 48], + "eq_ni_557", + ["is_num", 59, 56, 411, 48], + ["jump_false", 59, "eq_nn_558", 411, 48], + ["is_num", 60, 57, 411, 48], + ["jump_false", 60, "eq_nn_558", 411, 48], + ["eq_float", 58, 56, 57, 411, 48], + ["jump", "eq_done_556", 411, 48], + "eq_nn_558", + ["is_text", 59, 56, 411, 48], + ["jump_false", 59, "eq_nt_559", 411, 48], + ["is_text", 60, 57, 411, 48], + ["jump_false", 60, "eq_nt_559", 411, 48], + ["eq_text", 58, 56, 57, 411, 48], + ["jump", "eq_done_556", 411, 48], + "eq_nt_559", + ["is_null", 59, 56, 411, 48], + ["jump_false", 59, "eq_nnl_560", 411, 48], + ["is_null", 60, 57, 411, 48], + ["jump_false", 60, "eq_nnl_560", 411, 48], + ["true", 58, 411, 48], + ["jump", "eq_done_556", 411, 48], + "eq_nnl_560", + ["is_bool", 59, 56, 411, 48], + ["jump_false", 59, "eq_nb_561", 411, 48], + ["is_bool", 60, 57, 411, 48], + ["jump_false", 60, "eq_nb_561", 411, 48], + ["eq_bool", 58, 56, 57, 411, 48], + ["jump", "eq_done_556", 411, 48], + "eq_nb_561", + ["false", 58, 411, 48], + "eq_done_556", + ["move", 55, 58, 411, 48], + "and_end_555", + ["jump_false", 55, "if_else_553", 411, 48], + [ + "access", + 62, + { + "name": "text", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["frame", 63, 62, 1, 1, 1], + ["null", 64, 1, 1], + ["setarg", 63, 0, 64, 1, 1], + ["setarg", 63, 1, 8, 1, 1], + ["invoke", 63, 61, 1, 1], + ["array", 65, 0, 1, 1], + ["push", 65, 61, 1, 1], + ["push", 65, 6, 1, 1], + ["push", 65, 3, 1, 1], + [ + "access", + 66, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 1 + ], + ["access", 67, "nop_consistency: instr {0} op={1} jumps to nop marker \"{2}\"", 1, 1], + ["frame", 69, 66, 2, 1, 1], + ["null", 70, 1, 1], + ["setarg", 69, 0, 70, 1, 1], + ["setarg", 69, 1, 67, 1, 1], + ["setarg", 69, 2, 65, 1, 1], + ["invoke", 69, 68, 1, 1], + ["is_array", 71, 7, 1, 1], + ["jump_false", 71, "push_err_562", 1, 1], + ["push", 7, 68, 1, 1], + ["jump", "push_done_563", 1, 1], + "push_err_562", + ["disrupt", 1, 1], + "push_done_563", + ["jump", "if_end_554", 1, 1], + "if_else_553", + "if_end_554", + ["jump", "if_end_540", 1, 1], + "if_else_539", + "if_end_540", + ["jump", "if_end_538", 1, 1], + "if_else_537", + "if_end_538", + ["access", 72, 1, 416, 13], + ["is_int", 74, 8, 416, 13], + ["jump_false", 74, "add_ni_564", 416, 13], + ["add_int", 73, 8, 72, 416, 13], + ["jump", "add_done_566", 416, 13], + "add_ni_564", + ["is_text", 74, 8, 416, 13], + ["jump_false", 74, "add_nt_565", 416, 13], + ["is_text", 75, 72, 416, 13], + ["jump_false", 75, "add_nt_565", 416, 13], + ["concat", 73, 8, 72, 416, 13], + ["jump", "add_done_566", 416, 13], + "add_nt_565", + ["is_num", 74, 8, 416, 13], + ["jump_false", 74, "add_err_567", 416, 13], + ["add_float", 73, 8, 72, 416, 13], + ["jump", "add_done_566", 416, 13], + "add_err_567", + ["disrupt", 416, 13], + "add_done_566", + ["move", 8, 73, 416, 13], + ["jump", "while_start_531", 416, 13], + "while_end_532", + ["return", 7, 418, 10], + ["null", 76, 418, 10], + ["return", 76, 418, 10] + ], + "name": "", + "filename": "verify_ir.cm", + "nr_args": 1 + }, + { + "disruption_pc": 0, + "nr_slots": 112, + "nr_close_slots": 0, + "instructions": [ + ["array", 8, 0, 424, 20], + ["move", 3, 8, 424, 20], + ["null", 4, 425, 22], + ["access", 7, 0, 426, 11], + ["null", 9, 427, 29], + ["is_identical", 10, 2, 9, 427, 29], + ["jump_true", 10, "ne_nid_571", 427, 29], + ["jump", "ne_ni_572", 427, 29], + "ne_nid_571", + ["false", 10, 427, 29], + ["jump", "ne_done_570", 427, 29], + "ne_ni_572", + ["is_int", 11, 2, 427, 29], + ["jump_false", 11, "ne_nn_573", 427, 29], + ["is_int", 12, 9, 427, 29], + ["jump_false", 12, "ne_nn_573", 427, 29], + ["ne_int", 10, 2, 9, 427, 29], + ["jump", "ne_done_570", 427, 29], + "ne_nn_573", + ["is_num", 11, 2, 427, 29], + ["jump_false", 11, "ne_nt_574", 427, 29], + ["is_num", 12, 9, 427, 29], + ["jump_false", 12, "ne_nt_574", 427, 29], + ["ne_float", 10, 2, 9, 427, 29], + ["jump", "ne_done_570", 427, 29], + "ne_nt_574", + ["is_text", 11, 2, 427, 29], + ["jump_false", 11, "ne_nnl_575", 427, 29], + ["is_text", 12, 9, 427, 29], + ["jump_false", 12, "ne_nnl_575", 427, 29], + ["ne_text", 10, 2, 9, 427, 29], + ["jump", "ne_done_570", 427, 29], + "ne_nnl_575", + ["is_null", 11, 2, 427, 29], + ["jump_false", 11, "ne_nb_576", 427, 29], + ["is_null", 12, 9, 427, 29], + ["jump_false", 12, "ne_nb_576", 427, 29], + ["false", 10, 427, 29], + ["jump", "ne_done_570", 427, 29], + "ne_nb_576", + ["is_bool", 11, 2, 427, 29], + ["jump_false", 11, "ne_mis_577", 427, 29], + ["is_bool", 12, 9, 427, 29], + ["jump_false", 12, "ne_mis_577", 427, 29], + ["ne_bool", 10, 2, 9, 427, 29], + ["jump", "ne_done_570", 427, 29], + "ne_mis_577", + ["true", 10, 427, 29], + "ne_done_570", + ["jump_false", 10, "tern_else_568", 427, 29], + ["access", 14, ": ", 427, 48], + ["is_int", 16, 2, 427, 48], + ["jump_false", 16, "add_ni_578", 427, 48], + "_nop_tc_1", + ["jump", "add_ni_578", 427, 48], + ["add_int", 15, 2, 14, 427, 48], + ["jump", "add_done_580", 427, 48], + "add_ni_578", + ["is_text", 16, 2, 427, 48], + ["jump_false", 16, "add_nt_579", 427, 48], + ["concat", 15, 2, 14, 427, 48], + ["jump", "add_done_580", 427, 48], + "add_nt_579", + ["is_num", 16, 2, 427, 48], + ["jump_false", 16, "add_err_581", 427, 48], + ["is_num", 17, 14, 427, 48], + ["jump_false", 17, "add_err_581", 427, 48], + ["add_float", 15, 2, 14, 427, 48], + ["jump", "add_done_580", 427, 48], + "add_err_581", + ["disrupt", 427, 48], + "add_done_580", + ["move", 13, 15, 427, 48], + ["jump", "tern_end_569", 427, 48], + "tern_else_568", + ["access", 18, "", 427, 55], + ["move", 13, 18, 427, 55], + "tern_end_569", + ["move", 5, 13, 427, 55], + ["load_field", 19, 1, "name", 428, 17], + ["null", 20, 428, 30], + ["is_identical", 21, 19, 20, 428, 30], + ["jump_true", 21, "ne_nid_585", 428, 30], + ["jump", "ne_ni_586", 428, 30], + "ne_nid_585", + ["false", 21, 428, 30], + ["jump", "ne_done_584", 428, 30], + "ne_ni_586", + ["is_int", 22, 19, 428, 30], + ["jump_false", 22, "ne_nn_587", 428, 30], + ["is_int", 23, 20, 428, 30], + ["jump_false", 23, "ne_nn_587", 428, 30], + ["ne_int", 21, 19, 20, 428, 30], + ["jump", "ne_done_584", 428, 30], + "ne_nn_587", + ["is_num", 22, 19, 428, 30], + ["jump_false", 22, "ne_nt_588", 428, 30], + ["is_num", 23, 20, 428, 30], + ["jump_false", 23, "ne_nt_588", 428, 30], + ["ne_float", 21, 19, 20, 428, 30], + ["jump", "ne_done_584", 428, 30], + "ne_nt_588", + ["is_text", 22, 19, 428, 30], + ["jump_false", 22, "ne_nnl_589", 428, 30], + ["is_text", 23, 20, 428, 30], + ["jump_false", 23, "ne_nnl_589", 428, 30], + ["ne_text", 21, 19, 20, 428, 30], + ["jump", "ne_done_584", 428, 30], + "ne_nnl_589", + ["is_null", 22, 19, 428, 30], + ["jump_false", 22, "ne_nb_590", 428, 30], + ["is_null", 23, 20, 428, 30], + ["jump_false", 23, "ne_nb_590", 428, 30], + ["false", 21, 428, 30], + ["jump", "ne_done_584", 428, 30], + "ne_nb_590", + ["is_bool", 22, 19, 428, 30], + ["jump_false", 22, "ne_mis_591", 428, 30], + ["is_bool", 23, 20, 428, 30], + ["jump_false", 23, "ne_mis_591", 428, 30], + ["ne_bool", 21, 19, 20, 428, 30], + ["jump", "ne_done_584", 428, 30], + "ne_mis_591", + ["true", 21, 428, 30], + "ne_done_584", + ["jump_false", 21, "tern_else_582", 428, 30], + ["load_field", 25, 1, "name", 428, 37], + ["move", 24, 25, 428, 37], + ["jump", "tern_end_583", 428, 37], + "tern_else_582", + ["access", 26, "", 428, 49], + ["move", 24, 26, 428, 49], + "tern_end_583", + ["move", 6, 24, 428, 49], + ["get", 28, 3, 1, 430, 18], + ["frame", 29, 28, 1, 430, 18], + ["null", 30, 430, 18], + ["setarg", 29, 0, 30, 430, 18], + ["setarg", 29, 1, 1, 430, 18], + ["invoke", 29, 27, 430, 18], + ["move", 4, 27, 430, 18], + ["access", 31, 0, 431, 7], + ["move", 7, 31, 431, 7], + "while_start_592", + ["length", 32, 4, 432, 21], + ["is_int", 34, 7, 432, 21], + ["jump_false", 34, "rel_ni_594", 432, 21], + "_nop_tc_2", + "_nop_tc_3", + ["lt_int", 33, 7, 32, 432, 21], + ["jump", "rel_done_596", 432, 21], + "rel_ni_594", + ["is_num", 34, 7, 432, 21], + ["jump_false", 34, "rel_nn_595", 432, 21], + ["is_num", 35, 32, 432, 21], + ["jump_false", 35, "rel_nn_595", 432, 21], + ["lt_float", 33, 7, 32, 432, 21], + ["jump", "rel_done_596", 432, 21], + "rel_nn_595", + ["is_text", 34, 7, 432, 21], + ["jump_false", 34, "rel_err_597", 432, 21], + ["is_text", 35, 32, 432, 21], + ["jump_false", 35, "rel_err_597", 432, 21], + ["lt_text", 33, 7, 32, 432, 21], + ["jump", "rel_done_596", 432, 21], + "rel_err_597", + ["disrupt", 432, 21], + "rel_done_596", + ["jump_false", 33, "while_end_593", 432, 21], + ["load_dynamic", 36, 4, 7, 1, 14], + ["array", 37, 0, 1, 14], + ["push", 37, 5, 1, 14], + ["push", 37, 6, 1, 14], + ["push", 37, 36, 1, 14], + [ + "access", + 38, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 14 + ], + ["access", 39, "{0}{1}: {2}", 1, 14], + ["frame", 41, 38, 2, 1, 14], + ["null", 42, 1, 14], + ["setarg", 41, 0, 42, 1, 14], + ["setarg", 41, 1, 39, 1, 14], + ["setarg", 41, 2, 37, 1, 14], + ["invoke", 41, 40, 1, 14], + ["is_array", 43, 3, 1, 14], + ["jump_false", 43, "push_err_598", 1, 14], + ["push", 3, 40, 1, 14], + ["jump", "push_done_599", 1, 14], + "push_err_598", + ["disrupt", 1, 14], + "push_done_599", + ["access", 44, 1, 434, 13], + ["is_int", 46, 7, 434, 13], + ["jump_false", 46, "add_ni_600", 434, 13], + ["add_int", 45, 7, 44, 434, 13], + ["jump", "add_done_602", 434, 13], + "add_ni_600", + ["is_text", 46, 7, 434, 13], + ["jump_false", 46, "add_nt_601", 434, 13], + ["is_text", 47, 44, 434, 13], + ["jump_false", 47, "add_nt_601", 434, 13], + ["concat", 45, 7, 44, 434, 13], + ["jump", "add_done_602", 434, 13], + "add_nt_601", + ["is_num", 46, 7, 434, 13], + ["jump_false", 46, "add_err_603", 434, 13], + ["add_float", 45, 7, 44, 434, 13], + ["jump", "add_done_602", 434, 13], + "add_err_603", + ["disrupt", 434, 13], + "add_done_602", + ["move", 7, 45, 434, 13], + ["jump", "while_start_592", 434, 13], + "while_end_593", + ["get", 49, 5, 1, 437, 18], + ["frame", 50, 49, 1, 437, 18], + ["null", 51, 437, 18], + ["setarg", 50, 0, 51, 437, 18], + ["setarg", 50, 1, 1, 437, 18], + ["invoke", 50, 48, 437, 18], + ["move", 4, 48, 437, 18], + ["access", 52, 0, 438, 7], + ["move", 7, 52, 438, 7], + "while_start_604", + ["length", 53, 4, 439, 21], + ["is_int", 55, 7, 439, 21], + ["jump_false", 55, "rel_ni_606", 439, 21], + "_nop_tc_4", + "_nop_tc_5", + ["lt_int", 54, 7, 53, 439, 21], + ["jump", "rel_done_608", 439, 21], + "rel_ni_606", + ["is_num", 55, 7, 439, 21], + ["jump_false", 55, "rel_nn_607", 439, 21], + ["is_num", 56, 53, 439, 21], + ["jump_false", 56, "rel_nn_607", 439, 21], + ["lt_float", 54, 7, 53, 439, 21], + ["jump", "rel_done_608", 439, 21], + "rel_nn_607", + ["is_text", 55, 7, 439, 21], + ["jump_false", 55, "rel_err_609", 439, 21], + ["is_text", 56, 53, 439, 21], + ["jump_false", 56, "rel_err_609", 439, 21], + ["lt_text", 54, 7, 53, 439, 21], + ["jump", "rel_done_608", 439, 21], + "rel_err_609", + ["disrupt", 439, 21], + "rel_done_608", + ["jump_false", 54, "while_end_605", 439, 21], + ["load_dynamic", 57, 4, 7, 1, 14], + ["array", 58, 0, 1, 14], + ["push", 58, 5, 1, 14], + ["push", 58, 6, 1, 14], + ["push", 58, 57, 1, 14], + [ + "access", + 59, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 14 + ], + ["access", 60, "{0}{1}: {2}", 1, 14], + ["frame", 62, 59, 2, 1, 14], + ["null", 63, 1, 14], + ["setarg", 62, 0, 63, 1, 14], + ["setarg", 62, 1, 60, 1, 14], + ["setarg", 62, 2, 58, 1, 14], + ["invoke", 62, 61, 1, 14], + ["is_array", 64, 3, 1, 14], + ["jump_false", 64, "push_err_610", 1, 14], + ["push", 3, 61, 1, 14], + ["jump", "push_done_611", 1, 14], + "push_err_610", + ["disrupt", 1, 14], + "push_done_611", + ["access", 65, 1, 441, 13], + ["is_int", 67, 7, 441, 13], + ["jump_false", 67, "add_ni_612", 441, 13], + ["add_int", 66, 7, 65, 441, 13], + ["jump", "add_done_614", 441, 13], + "add_ni_612", + ["is_text", 67, 7, 441, 13], + ["jump_false", 67, "add_nt_613", 441, 13], + ["is_text", 68, 65, 441, 13], + ["jump_false", 68, "add_nt_613", 441, 13], + ["concat", 66, 7, 65, 441, 13], + ["jump", "add_done_614", 441, 13], + "add_nt_613", + ["is_num", 67, 7, 441, 13], + ["jump_false", 67, "add_err_615", 441, 13], + ["add_float", 66, 7, 65, 441, 13], + ["jump", "add_done_614", 441, 13], + "add_err_615", + ["disrupt", 441, 13], + "add_done_614", + ["move", 7, 66, 441, 13], + ["jump", "while_start_604", 441, 13], + "while_end_605", + ["get", 70, 6, 1, 444, 18], + ["frame", 71, 70, 1, 444, 18], + ["null", 72, 444, 18], + ["setarg", 71, 0, 72, 444, 18], + ["setarg", 71, 1, 1, 444, 18], + ["invoke", 71, 69, 444, 18], + ["move", 4, 69, 444, 18], + ["access", 73, 0, 445, 7], + ["move", 7, 73, 445, 7], + "while_start_616", + ["length", 74, 4, 446, 21], + ["is_int", 76, 7, 446, 21], + ["jump_false", 76, "rel_ni_618", 446, 21], + "_nop_tc_6", + "_nop_tc_7", + ["lt_int", 75, 7, 74, 446, 21], + ["jump", "rel_done_620", 446, 21], + "rel_ni_618", + ["is_num", 76, 7, 446, 21], + ["jump_false", 76, "rel_nn_619", 446, 21], + ["is_num", 77, 74, 446, 21], + ["jump_false", 77, "rel_nn_619", 446, 21], + ["lt_float", 75, 7, 74, 446, 21], + ["jump", "rel_done_620", 446, 21], + "rel_nn_619", + ["is_text", 76, 7, 446, 21], + ["jump_false", 76, "rel_err_621", 446, 21], + ["is_text", 77, 74, 446, 21], + ["jump_false", 77, "rel_err_621", 446, 21], + ["lt_text", 75, 7, 74, 446, 21], + ["jump", "rel_done_620", 446, 21], + "rel_err_621", + ["disrupt", 446, 21], + "rel_done_620", + ["jump_false", 75, "while_end_617", 446, 21], + ["load_dynamic", 78, 4, 7, 1, 14], + ["array", 79, 0, 1, 14], + ["push", 79, 5, 1, 14], + ["push", 79, 6, 1, 14], + ["push", 79, 78, 1, 14], + [ + "access", + 80, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 14 + ], + ["access", 81, "{0}{1}: {2}", 1, 14], + ["frame", 83, 80, 2, 1, 14], + ["null", 84, 1, 14], + ["setarg", 83, 0, 84, 1, 14], + ["setarg", 83, 1, 81, 1, 14], + ["setarg", 83, 2, 79, 1, 14], + ["invoke", 83, 82, 1, 14], + ["is_array", 85, 3, 1, 14], + ["jump_false", 85, "push_err_622", 1, 14], + ["push", 3, 82, 1, 14], + ["jump", "push_done_623", 1, 14], + "push_err_622", + ["disrupt", 1, 14], + "push_done_623", + ["access", 86, 1, 448, 13], + ["is_int", 88, 7, 448, 13], + ["jump_false", 88, "add_ni_624", 448, 13], + ["add_int", 87, 7, 86, 448, 13], + ["jump", "add_done_626", 448, 13], + "add_ni_624", + ["is_text", 88, 7, 448, 13], + ["jump_false", 88, "add_nt_625", 448, 13], + ["is_text", 89, 86, 448, 13], + ["jump_false", 89, "add_nt_625", 448, 13], + ["concat", 87, 7, 86, 448, 13], + ["jump", "add_done_626", 448, 13], + "add_nt_625", + ["is_num", 88, 7, 448, 13], + ["jump_false", 88, "add_err_627", 448, 13], + ["add_float", 87, 7, 86, 448, 13], + ["jump", "add_done_626", 448, 13], + "add_err_627", + ["disrupt", 448, 13], + "add_done_626", + ["move", 7, 87, 448, 13], + ["jump", "while_start_616", 448, 13], + "while_end_617", + ["get", 91, 7, 1, 451, 18], + ["frame", 92, 91, 1, 451, 18], + ["null", 93, 451, 18], + ["setarg", 92, 0, 93, 451, 18], + ["setarg", 92, 1, 1, 451, 18], + ["invoke", 92, 90, 451, 18], + ["move", 4, 90, 451, 18], + ["access", 94, 0, 452, 7], + ["move", 7, 94, 452, 7], + "while_start_628", + ["length", 95, 4, 453, 21], + ["is_int", 97, 7, 453, 21], + ["jump_false", 97, "rel_ni_630", 453, 21], + "_nop_tc_8", + "_nop_tc_9", + ["lt_int", 96, 7, 95, 453, 21], + ["jump", "rel_done_632", 453, 21], + "rel_ni_630", + ["is_num", 97, 7, 453, 21], + ["jump_false", 97, "rel_nn_631", 453, 21], + ["is_num", 98, 95, 453, 21], + ["jump_false", 98, "rel_nn_631", 453, 21], + ["lt_float", 96, 7, 95, 453, 21], + ["jump", "rel_done_632", 453, 21], + "rel_nn_631", + ["is_text", 97, 7, 453, 21], + ["jump_false", 97, "rel_err_633", 453, 21], + ["is_text", 98, 95, 453, 21], + ["jump_false", 98, "rel_err_633", 453, 21], + ["lt_text", 96, 7, 95, 453, 21], + ["jump", "rel_done_632", 453, 21], + "rel_err_633", + ["disrupt", 453, 21], + "rel_done_632", + ["jump_false", 96, "while_end_629", 453, 21], + ["load_dynamic", 99, 4, 7, 1, 14], + ["array", 100, 0, 1, 14], + ["push", 100, 5, 1, 14], + ["push", 100, 6, 1, 14], + ["push", 100, 99, 1, 14], + [ + "access", + 101, + { + "name": "format", + "kind": "name", + "make": "intrinsic" + }, + 1, + 14 + ], + ["access", 102, "{0}{1}: {2}", 1, 14], + ["frame", 104, 101, 2, 1, 14], + ["null", 105, 1, 14], + ["setarg", 104, 0, 105, 1, 14], + ["setarg", 104, 1, 102, 1, 14], + ["setarg", 104, 2, 100, 1, 14], + ["invoke", 104, 103, 1, 14], + ["is_array", 106, 3, 1, 14], + ["jump_false", 106, "push_err_634", 1, 14], + ["push", 3, 103, 1, 14], + ["jump", "push_done_635", 1, 14], + "push_err_634", + ["disrupt", 1, 14], + "push_done_635", + ["access", 107, 1, 455, 13], + ["is_int", 109, 7, 455, 13], + ["jump_false", 109, "add_ni_636", 455, 13], + ["add_int", 108, 7, 107, 455, 13], + ["jump", "add_done_638", 455, 13], + "add_ni_636", + ["is_text", 109, 7, 455, 13], + ["jump_false", 109, "add_nt_637", 455, 13], + ["is_text", 110, 107, 455, 13], + ["jump_false", 110, "add_nt_637", 455, 13], + ["concat", 108, 7, 107, 455, 13], + ["jump", "add_done_638", 455, 13], + "add_nt_637", + ["is_num", 109, 7, 455, 13], + ["jump_false", 109, "add_err_639", 455, 13], + ["add_float", 108, 7, 107, 455, 13], + ["jump", "add_done_638", 455, 13], + "add_err_639", + ["disrupt", 455, 13], + "add_done_638", + ["move", 7, 108, 455, 13], + ["jump", "while_start_628", 455, 13], + "while_end_629", + ["return", 3, 458, 10], + ["null", 111, 458, 10], + ["return", 111, 458, 10] + ], + "name": "", + "filename": "verify_ir.cm", + "nr_args": 2 + } + ], + "main": { + "nr_args": 0, + "nr_close_slots": 0, + "nr_slots": 444, + "instructions": [ + ["record", 9, 0], + ["access", 10, 0, 9, 12], + ["array", 11, 0, 9, 12], + ["push", 11, 10, 9, 12], + ["store_field", 9, 11, "access", 9, 12], + ["access", 12, 0, 10, 9], + ["array", 13, 0, 10, 9], + ["push", 13, 12, 10, 9], + ["store_field", 9, 13, "int", 10, 9], + ["access", 14, 0, 11, 10], + ["array", 15, 0, 11, 10], + ["push", 15, 14, 11, 10], + ["store_field", 9, 15, "true", 11, 10], + ["access", 16, 0, 12, 11], + ["array", 17, 0, 12, 11], + ["push", 17, 16, 12, 11], + ["store_field", 9, 17, "false", 12, 11], + ["access", 18, 0, 13, 10], + ["array", 19, 0, 13, 10], + ["push", 19, 18, 13, 10], + ["store_field", 9, 19, "null", 13, 10], + ["access", 20, 0, 14, 14], + ["array", 21, 0, 14, 14], + ["push", 21, 20, 14, 14], + ["store_field", 9, 21, "function", 14, 14], + ["access", 22, 0, 15, 11], + ["array", 23, 0, 15, 11], + ["push", 23, 22, 15, 11], + ["store_field", 9, 23, "array", 15, 11], + ["access", 24, 0, 16, 12], + ["array", 25, 0, 16, 12], + ["push", 25, 24, 16, 12], + ["store_field", 9, 25, "record", 16, 12], + ["access", 26, 0, 19, 10], + ["access", 27, 1, 19, 13], + ["array", 28, 0, 19, 13], + ["push", 28, 26, 19, 13], + ["push", 28, 27, 19, 13], + ["store_field", 9, 28, "move", 19, 13], + ["access", 29, 0, 20, 9], + ["access", 30, 1, 20, 12], + ["array", 31, 0, 20, 12], + ["push", 31, 29, 20, 12], + ["push", 31, 30, 20, 12], + ["store_field", 9, 31, "not", 20, 12], + ["access", 32, 0, 21, 13], + ["access", 33, 1, 21, 16], + ["array", 34, 0, 21, 16], + ["push", 34, 32, 21, 16], + ["push", 34, 33, 21, 16], + ["store_field", 9, 34, "neg_int", 21, 16], + ["access", 35, 0, 22, 15], + ["access", 36, 1, 22, 18], + ["array", 37, 0, 22, 18], + ["push", 37, 35, 22, 18], + ["push", 37, 36, 22, 18], + ["store_field", 9, 37, "neg_float", 22, 18], + ["access", 38, 0, 23, 12], + ["access", 39, 1, 23, 15], + ["array", 40, 0, 23, 15], + ["push", 40, 38, 23, 15], + ["push", 40, 39, 23, 15], + ["store_field", 9, 40, "bitnot", 23, 15], + ["access", 41, 0, 24, 12], + ["access", 42, 1, 24, 15], + ["array", 43, 0, 24, 15], + ["push", 43, 41, 24, 15], + ["push", 43, 42, 24, 15], + ["store_field", 9, 43, "length", 24, 15], + ["access", 44, 0, 25, 12], + ["access", 45, 1, 25, 15], + ["array", 46, 0, 25, 15], + ["push", 46, 44, 25, 15], + ["push", 46, 45, 25, 15], + ["store_field", 9, 46, "typeof", 25, 15], + ["access", 47, 0, 26, 12], + ["access", 48, 1, 26, 15], + ["array", 49, 0, 26, 15], + ["push", 49, 47, 26, 15], + ["push", 49, 48, 26, 15], + ["store_field", 9, 49, "is_int", 26, 15], + ["access", 50, 0, 27, 13], + ["access", 51, 1, 27, 16], + ["array", 52, 0, 27, 16], + ["push", 52, 50, 27, 16], + ["push", 52, 51, 27, 16], + ["store_field", 9, 52, "is_text", 27, 16], + ["access", 53, 0, 28, 12], + ["access", 54, 1, 28, 15], + ["array", 55, 0, 28, 15], + ["push", 55, 53, 28, 15], + ["push", 55, 54, 28, 15], + ["store_field", 9, 55, "is_num", 28, 15], + ["access", 56, 0, 29, 13], + ["access", 57, 1, 29, 16], + ["array", 58, 0, 29, 16], + ["push", 58, 56, 29, 16], + ["push", 58, 57, 29, 16], + ["store_field", 9, 58, "is_bool", 29, 16], + ["access", 59, 0, 30, 13], + ["access", 60, 1, 30, 16], + ["array", 61, 0, 30, 16], + ["push", 61, 59, 30, 16], + ["push", 61, 60, 30, 16], + ["store_field", 9, 61, "is_null", 30, 16], + ["access", 62, 0, 31, 14], + ["access", 63, 1, 31, 17], + ["array", 64, 0, 31, 17], + ["push", 64, 62, 31, 17], + ["push", 64, 63, 31, 17], + ["store_field", 9, 64, "is_array", 31, 17], + ["access", 65, 0, 32, 13], + ["access", 66, 1, 32, 16], + ["array", 67, 0, 32, 16], + ["push", 67, 65, 32, 16], + ["push", 67, 66, 32, 16], + ["store_field", 9, 67, "is_func", 32, 16], + ["access", 68, 0, 33, 15], + ["access", 69, 1, 33, 18], + ["array", 70, 0, 33, 18], + ["push", 70, 68, 33, 18], + ["push", 70, 69, 33, 18], + ["store_field", 9, 70, "is_record", 33, 18], + ["access", 71, 0, 34, 14], + ["access", 72, 1, 34, 17], + ["array", 73, 0, 34, 17], + ["push", 73, 71, 34, 17], + ["push", 73, 72, 34, 17], + ["store_field", 9, 73, "is_stone", 34, 17], + ["access", 74, 0, 35, 18], + ["access", 75, 1, 35, 21], + ["access", 76, 2, 35, 24], + ["array", 77, 0, 35, 24], + ["push", 77, 74, 35, 24], + ["push", 77, 75, 35, 24], + ["push", 77, 76, 35, 24], + ["store_field", 9, 77, "is_identical", 35, 24], + ["access", 78, 0, 38, 9], + ["access", 79, 1, 38, 12], + ["access", 80, 2, 38, 15], + ["array", 81, 0, 38, 15], + ["push", 81, 78, 38, 15], + ["push", 81, 79, 38, 15], + ["push", 81, 80, 38, 15], + ["store_field", 9, 81, "add", 38, 15], + ["access", 82, 0, 39, 14], + ["access", 83, 1, 39, 17], + ["access", 84, 2, 39, 20], + ["array", 85, 0, 39, 20], + ["push", 85, 82, 39, 20], + ["push", 85, 83, 39, 20], + ["push", 85, 84, 39, 20], + ["store_field", 9, 85, "subtract", 39, 20], + ["access", 86, 0, 40, 14], + ["access", 87, 1, 40, 17], + ["access", 88, 2, 40, 20], + ["array", 89, 0, 40, 20], + ["push", 89, 86, 40, 20], + ["push", 89, 87, 40, 20], + ["push", 89, 88, 40, 20], + ["store_field", 9, 89, "multiply", 40, 20], + ["access", 90, 0, 41, 12], + ["access", 91, 1, 41, 15], + ["access", 92, 2, 41, 18], + ["array", 93, 0, 41, 18], + ["push", 93, 90, 41, 18], + ["push", 93, 91, 41, 18], + ["push", 93, 92, 41, 18], + ["store_field", 9, 93, "divide", 41, 18], + ["access", 94, 0, 42, 12], + ["access", 95, 1, 42, 15], + ["access", 96, 2, 42, 18], + ["array", 97, 0, 42, 18], + ["push", 97, 94, 42, 18], + ["push", 97, 95, 42, 18], + ["push", 97, 96, 42, 18], + ["store_field", 9, 97, "modulo", 42, 18], + ["access", 98, 0, 43, 9], + ["access", 99, 1, 43, 12], + ["access", 100, 2, 43, 15], + ["array", 101, 0, 43, 15], + ["push", 101, 98, 43, 15], + ["push", 101, 99, 43, 15], + ["push", 101, 100, 43, 15], + ["store_field", 9, 101, "pow", 43, 15], + ["access", 102, 0, 44, 13], + ["access", 103, 1, 44, 16], + ["access", 104, 2, 44, 19], + ["array", 105, 0, 44, 19], + ["push", 105, 102, 44, 19], + ["push", 105, 103, 44, 19], + ["push", 105, 104, 44, 19], + ["store_field", 9, 105, "add_int", 44, 19], + ["access", 106, 0, 45, 13], + ["access", 107, 1, 45, 16], + ["access", 108, 2, 45, 19], + ["array", 109, 0, 45, 19], + ["push", 109, 106, 45, 19], + ["push", 109, 107, 45, 19], + ["push", 109, 108, 45, 19], + ["store_field", 9, 109, "sub_int", 45, 19], + ["access", 110, 0, 46, 13], + ["access", 111, 1, 46, 16], + ["access", 112, 2, 46, 19], + ["array", 113, 0, 46, 19], + ["push", 113, 110, 46, 19], + ["push", 113, 111, 46, 19], + ["push", 113, 112, 46, 19], + ["store_field", 9, 113, "mul_int", 46, 19], + ["access", 114, 0, 47, 13], + ["access", 115, 1, 47, 16], + ["access", 116, 2, 47, 19], + ["array", 117, 0, 47, 19], + ["push", 117, 114, 47, 19], + ["push", 117, 115, 47, 19], + ["push", 117, 116, 47, 19], + ["store_field", 9, 117, "div_int", 47, 19], + ["access", 118, 0, 48, 13], + ["access", 119, 1, 48, 16], + ["access", 120, 2, 48, 19], + ["array", 121, 0, 48, 19], + ["push", 121, 118, 48, 19], + ["push", 121, 119, 48, 19], + ["push", 121, 120, 48, 19], + ["store_field", 9, 121, "mod_int", 48, 19], + ["access", 122, 0, 49, 15], + ["access", 123, 1, 49, 18], + ["access", 124, 2, 49, 21], + ["array", 125, 0, 49, 21], + ["push", 125, 122, 49, 21], + ["push", 125, 123, 49, 21], + ["push", 125, 124, 49, 21], + ["store_field", 9, 125, "add_float", 49, 21], + ["access", 126, 0, 50, 15], + ["access", 127, 1, 50, 18], + ["access", 128, 2, 50, 21], + ["array", 129, 0, 50, 21], + ["push", 129, 126, 50, 21], + ["push", 129, 127, 50, 21], + ["push", 129, 128, 50, 21], + ["store_field", 9, 129, "sub_float", 50, 21], + ["access", 130, 0, 51, 15], + ["access", 131, 1, 51, 18], + ["access", 132, 2, 51, 21], + ["array", 133, 0, 51, 21], + ["push", 133, 130, 51, 21], + ["push", 133, 131, 51, 21], + ["push", 133, 132, 51, 21], + ["store_field", 9, 133, "mul_float", 51, 21], + ["access", 134, 0, 52, 15], + ["access", 135, 1, 52, 18], + ["access", 136, 2, 52, 21], + ["array", 137, 0, 52, 21], + ["push", 137, 134, 52, 21], + ["push", 137, 135, 52, 21], + ["push", 137, 136, 52, 21], + ["store_field", 9, 137, "div_float", 52, 21], + ["access", 138, 0, 53, 15], + ["access", 139, 1, 53, 18], + ["access", 140, 2, 53, 21], + ["array", 141, 0, 53, 21], + ["push", 141, 138, 53, 21], + ["push", 141, 139, 53, 21], + ["push", 141, 140, 53, 21], + ["store_field", 9, 141, "mod_float", 53, 21], + ["access", 142, 0, 54, 8], + ["access", 143, 1, 54, 11], + ["access", 144, 2, 54, 14], + ["array", 145, 0, 54, 14], + ["push", 145, 142, 54, 14], + ["push", 145, 143, 54, 14], + ["push", 145, 144, 54, 14], + ["store_field", 9, 145, "eq", 54, 14], + ["access", 146, 0, 55, 8], + ["access", 147, 1, 55, 11], + ["access", 148, 2, 55, 14], + ["array", 149, 0, 55, 14], + ["push", 149, 146, 55, 14], + ["push", 149, 147, 55, 14], + ["push", 149, 148, 55, 14], + ["store_field", 9, 149, "ne", 55, 14], + ["access", 150, 0, 56, 8], + ["access", 151, 1, 56, 11], + ["access", 152, 2, 56, 14], + ["array", 153, 0, 56, 14], + ["push", 153, 150, 56, 14], + ["push", 153, 151, 56, 14], + ["push", 153, 152, 56, 14], + ["store_field", 9, 153, "lt", 56, 14], + ["access", 154, 0, 57, 8], + ["access", 155, 1, 57, 11], + ["access", 156, 2, 57, 14], + ["array", 157, 0, 57, 14], + ["push", 157, 154, 57, 14], + ["push", 157, 155, 57, 14], + ["push", 157, 156, 57, 14], + ["store_field", 9, 157, "le", 57, 14], + ["access", 158, 0, 58, 8], + ["access", 159, 1, 58, 11], + ["access", 160, 2, 58, 14], + ["array", 161, 0, 58, 14], + ["push", 161, 158, 58, 14], + ["push", 161, 159, 58, 14], + ["push", 161, 160, 58, 14], + ["store_field", 9, 161, "gt", 58, 14], + ["access", 162, 0, 59, 8], + ["access", 163, 1, 59, 11], + ["access", 164, 2, 59, 14], + ["array", 165, 0, 59, 14], + ["push", 165, 162, 59, 14], + ["push", 165, 163, 59, 14], + ["push", 165, 164, 59, 14], + ["store_field", 9, 165, "ge", 59, 14], + ["access", 166, 0, 60, 12], + ["access", 167, 1, 60, 15], + ["access", 168, 2, 60, 18], + ["array", 169, 0, 60, 18], + ["push", 169, 166, 60, 18], + ["push", 169, 167, 60, 18], + ["push", 169, 168, 60, 18], + ["store_field", 9, 169, "eq_int", 60, 18], + ["access", 170, 0, 61, 12], + ["access", 171, 1, 61, 15], + ["access", 172, 2, 61, 18], + ["array", 173, 0, 61, 18], + ["push", 173, 170, 61, 18], + ["push", 173, 171, 61, 18], + ["push", 173, 172, 61, 18], + ["store_field", 9, 173, "ne_int", 61, 18], + ["access", 174, 0, 62, 12], + ["access", 175, 1, 62, 15], + ["access", 176, 2, 62, 18], + ["array", 177, 0, 62, 18], + ["push", 177, 174, 62, 18], + ["push", 177, 175, 62, 18], + ["push", 177, 176, 62, 18], + ["store_field", 9, 177, "lt_int", 62, 18], + ["access", 178, 0, 63, 12], + ["access", 179, 1, 63, 15], + ["access", 180, 2, 63, 18], + ["array", 181, 0, 63, 18], + ["push", 181, 178, 63, 18], + ["push", 181, 179, 63, 18], + ["push", 181, 180, 63, 18], + ["store_field", 9, 181, "gt_int", 63, 18], + ["access", 182, 0, 64, 12], + ["access", 183, 1, 64, 15], + ["access", 184, 2, 64, 18], + ["array", 185, 0, 64, 18], + ["push", 185, 182, 64, 18], + ["push", 185, 183, 64, 18], + ["push", 185, 184, 64, 18], + ["store_field", 9, 185, "le_int", 64, 18], + ["access", 186, 0, 65, 12], + ["access", 187, 1, 65, 15], + ["access", 188, 2, 65, 18], + ["array", 189, 0, 65, 18], + ["push", 189, 186, 65, 18], + ["push", 189, 187, 65, 18], + ["push", 189, 188, 65, 18], + ["store_field", 9, 189, "ge_int", 65, 18], + ["access", 190, 0, 66, 14], + ["access", 191, 1, 66, 17], + ["access", 192, 2, 66, 20], + ["array", 193, 0, 66, 20], + ["push", 193, 190, 66, 20], + ["push", 193, 191, 66, 20], + ["push", 193, 192, 66, 20], + ["store_field", 9, 193, "eq_float", 66, 20], + ["access", 194, 0, 67, 14], + ["access", 195, 1, 67, 17], + ["access", 196, 2, 67, 20], + ["array", 197, 0, 67, 20], + ["push", 197, 194, 67, 20], + ["push", 197, 195, 67, 20], + ["push", 197, 196, 67, 20], + ["store_field", 9, 197, "ne_float", 67, 20], + ["access", 198, 0, 68, 14], + ["access", 199, 1, 68, 17], + ["access", 200, 2, 68, 20], + ["array", 201, 0, 68, 20], + ["push", 201, 198, 68, 20], + ["push", 201, 199, 68, 20], + ["push", 201, 200, 68, 20], + ["store_field", 9, 201, "lt_float", 68, 20], + ["access", 202, 0, 69, 14], + ["access", 203, 1, 69, 17], + ["access", 204, 2, 69, 20], + ["array", 205, 0, 69, 20], + ["push", 205, 202, 69, 20], + ["push", 205, 203, 69, 20], + ["push", 205, 204, 69, 20], + ["store_field", 9, 205, "gt_float", 69, 20], + ["access", 206, 0, 70, 14], + ["access", 207, 1, 70, 17], + ["access", 208, 2, 70, 20], + ["array", 209, 0, 70, 20], + ["push", 209, 206, 70, 20], + ["push", 209, 207, 70, 20], + ["push", 209, 208, 70, 20], + ["store_field", 9, 209, "le_float", 70, 20], + ["access", 210, 0, 71, 14], + ["access", 211, 1, 71, 17], + ["access", 212, 2, 71, 20], + ["array", 213, 0, 71, 20], + ["push", 213, 210, 71, 20], + ["push", 213, 211, 71, 20], + ["push", 213, 212, 71, 20], + ["store_field", 9, 213, "ge_float", 71, 20], + ["access", 214, 0, 72, 13], + ["access", 215, 1, 72, 16], + ["access", 216, 2, 72, 19], + ["array", 217, 0, 72, 19], + ["push", 217, 214, 72, 19], + ["push", 217, 215, 72, 19], + ["push", 217, 216, 72, 19], + ["store_field", 9, 217, "eq_text", 72, 19], + ["access", 218, 0, 73, 13], + ["access", 219, 1, 73, 16], + ["access", 220, 2, 73, 19], + ["array", 221, 0, 73, 19], + ["push", 221, 218, 73, 19], + ["push", 221, 219, 73, 19], + ["push", 221, 220, 73, 19], + ["store_field", 9, 221, "ne_text", 73, 19], + ["access", 222, 0, 74, 13], + ["access", 223, 1, 74, 16], + ["access", 224, 2, 74, 19], + ["array", 225, 0, 74, 19], + ["push", 225, 222, 74, 19], + ["push", 225, 223, 74, 19], + ["push", 225, 224, 74, 19], + ["store_field", 9, 225, "lt_text", 74, 19], + ["access", 226, 0, 75, 13], + ["access", 227, 1, 75, 16], + ["access", 228, 2, 75, 19], + ["array", 229, 0, 75, 19], + ["push", 229, 226, 75, 19], + ["push", 229, 227, 75, 19], + ["push", 229, 228, 75, 19], + ["store_field", 9, 229, "gt_text", 75, 19], + ["access", 230, 0, 76, 13], + ["access", 231, 1, 76, 16], + ["access", 232, 2, 76, 19], + ["array", 233, 0, 76, 19], + ["push", 233, 230, 76, 19], + ["push", 233, 231, 76, 19], + ["push", 233, 232, 76, 19], + ["store_field", 9, 233, "le_text", 76, 19], + ["access", 234, 0, 77, 13], + ["access", 235, 1, 77, 16], + ["access", 236, 2, 77, 19], + ["array", 237, 0, 77, 19], + ["push", 237, 234, 77, 19], + ["push", 237, 235, 77, 19], + ["push", 237, 236, 77, 19], + ["store_field", 9, 237, "ge_text", 77, 19], + ["access", 238, 0, 78, 13], + ["access", 239, 1, 78, 16], + ["access", 240, 2, 78, 19], + ["array", 241, 0, 78, 19], + ["push", 241, 238, 78, 19], + ["push", 241, 239, 78, 19], + ["push", 241, 240, 78, 19], + ["store_field", 9, 241, "eq_bool", 78, 19], + ["access", 242, 0, 79, 13], + ["access", 243, 1, 79, 16], + ["access", 244, 2, 79, 19], + ["array", 245, 0, 79, 19], + ["push", 245, 242, 79, 19], + ["push", 245, 243, 79, 19], + ["push", 245, 244, 79, 19], + ["store_field", 9, 245, "ne_bool", 79, 19], + ["access", 246, 0, 80, 12], + ["access", 247, 1, 80, 15], + ["access", 248, 2, 80, 18], + ["array", 249, 0, 80, 18], + ["push", 249, 246, 80, 18], + ["push", 249, 247, 80, 18], + ["push", 249, 248, 80, 18], + ["store_field", 9, 249, "eq_tol", 80, 18], + ["access", 250, 0, 81, 12], + ["access", 251, 1, 81, 15], + ["access", 252, 2, 81, 18], + ["array", 253, 0, 81, 18], + ["push", 253, 250, 81, 18], + ["push", 253, 251, 81, 18], + ["push", 253, 252, 81, 18], + ["store_field", 9, 253, "ne_tol", 81, 18], + ["access", 254, 0, 82, 12], + ["access", 255, 1, 82, 15], + ["access", 256, 2, 82, 18], + ["array", 257, 0, 82, 18], + ["push", 257, 254, 82, 18], + ["push", 257, 255, 82, 18], + ["push", 257, 256, 82, 18], + ["store_field", 9, 257, "concat", 82, 18], + ["access", 258, 0, 83, 9], + ["access", 259, 1, 83, 12], + ["access", 260, 2, 83, 15], + ["array", 261, 0, 83, 15], + ["push", 261, 258, 83, 15], + ["push", 261, 259, 83, 15], + ["push", 261, 260, 83, 15], + ["store_field", 9, 261, "and", 83, 15], + ["access", 262, 0, 84, 8], + ["access", 263, 1, 84, 11], + ["access", 264, 2, 84, 14], + ["array", 265, 0, 84, 14], + ["push", 265, 262, 84, 14], + ["push", 265, 263, 84, 14], + ["push", 265, 264, 84, 14], + ["store_field", 9, 265, "or", 84, 14], + ["access", 266, 0, 85, 12], + ["access", 267, 1, 85, 15], + ["access", 268, 2, 85, 18], + ["array", 269, 0, 85, 18], + ["push", 269, 266, 85, 18], + ["push", 269, 267, 85, 18], + ["push", 269, 268, 85, 18], + ["store_field", 9, 269, "bitand", 85, 18], + ["access", 270, 0, 86, 11], + ["access", 271, 1, 86, 14], + ["access", 272, 2, 86, 17], + ["array", 273, 0, 86, 17], + ["push", 273, 270, 86, 17], + ["push", 273, 271, 86, 17], + ["push", 273, 272, 86, 17], + ["store_field", 9, 273, "bitor", 86, 17], + ["access", 274, 0, 87, 12], + ["access", 275, 1, 87, 15], + ["access", 276, 2, 87, 18], + ["array", 277, 0, 87, 18], + ["push", 277, 274, 87, 18], + ["push", 277, 275, 87, 18], + ["push", 277, 276, 87, 18], + ["store_field", 9, 277, "bitxor", 87, 18], + ["access", 278, 0, 88, 9], + ["access", 279, 1, 88, 12], + ["access", 280, 2, 88, 15], + ["array", 281, 0, 88, 15], + ["push", 281, 278, 88, 15], + ["push", 281, 279, 88, 15], + ["push", 281, 280, 88, 15], + ["store_field", 9, 281, "shl", 88, 15], + ["access", 282, 0, 89, 9], + ["access", 283, 1, 89, 12], + ["access", 284, 2, 89, 15], + ["array", 285, 0, 89, 15], + ["push", 285, 282, 89, 15], + ["push", 285, 283, 89, 15], + ["push", 285, 284, 89, 15], + ["store_field", 9, 285, "shr", 89, 15], + ["access", 286, 0, 90, 10], + ["access", 287, 1, 90, 13], + ["access", 288, 2, 90, 16], + ["array", 289, 0, 90, 16], + ["push", 289, 286, 90, 16], + ["push", 289, 287, 90, 16], + ["push", 289, 288, 90, 16], + ["store_field", 9, 289, "ushr", 90, 16], + ["access", 290, 0, 91, 8], + ["access", 291, 1, 91, 11], + ["access", 292, 2, 91, 14], + ["array", 293, 0, 91, 14], + ["push", 293, 290, 91, 14], + ["push", 293, 291, 91, 14], + ["push", 293, 292, 91, 14], + ["store_field", 9, 293, "in", 91, 14], + ["access", 294, 0, 94, 16], + ["access", 295, 1, 94, 19], + ["access", 296, 2, 94, 22], + ["array", 297, 0, 94, 22], + ["push", 297, 294, 94, 22], + ["push", 297, 295, 94, 22], + ["push", 297, 296, 94, 22], + ["store_field", 9, 297, "load_index", 94, 22], + ["access", 298, 0, 95, 18], + ["access", 299, 1, 95, 21], + ["access", 300, 2, 95, 24], + ["array", 301, 0, 95, 24], + ["push", 301, 298, 95, 24], + ["push", 301, 299, 95, 24], + ["push", 301, 300, 95, 24], + ["store_field", 9, 301, "load_dynamic", 95, 24], + ["access", 302, 0, 96, 16], + ["access", 303, 1, 96, 19], + ["array", 304, 0, 96, 19], + ["push", 304, 302, 96, 19], + ["push", 304, 303, 96, 19], + ["store_field", 9, 304, "load_field", 96, 19], + ["access", 305, 0, 97, 17], + ["access", 306, 1, 97, 20], + ["access", 307, 2, 97, 23], + ["array", 308, 0, 97, 23], + ["push", 308, 305, 97, 23], + ["push", 308, 306, 97, 23], + ["push", 308, 307, 97, 23], + ["store_field", 9, 308, "store_index", 97, 23], + ["access", 309, 0, 98, 19], + ["access", 310, 1, 98, 22], + ["access", 311, 2, 98, 25], + ["array", 312, 0, 98, 25], + ["push", 312, 309, 98, 25], + ["push", 312, 310, 98, 25], + ["push", 312, 311, 98, 25], + ["store_field", 9, 312, "store_dynamic", 98, 25], + ["access", 313, 0, 99, 17], + ["access", 314, 1, 99, 20], + ["array", 315, 0, 99, 20], + ["push", 315, 313, 99, 20], + ["push", 315, 314, 99, 20], + ["store_field", 9, 315, "store_field", 99, 20], + ["access", 316, 0, 102, 10], + ["access", 317, 1, 102, 13], + ["array", 318, 0, 102, 13], + ["push", 318, 316, 102, 13], + ["push", 318, 317, 102, 13], + ["store_field", 9, 318, "push", 102, 13], + ["access", 319, 0, 103, 9], + ["access", 320, 1, 103, 12], + ["array", 321, 0, 103, 12], + ["push", 321, 319, 103, 12], + ["push", 321, 320, 103, 12], + ["store_field", 9, 321, "pop", 103, 12], + ["access", 322, 0, 104, 9], + ["access", 323, 1, 104, 12], + ["array", 324, 0, 104, 12], + ["push", 324, 322, 104, 12], + ["push", 324, 323, 104, 12], + ["store_field", 9, 324, "get", 104, 12], + ["access", 325, 0, 107, 12], + ["array", 326, 0, 107, 12], + ["push", 326, 325, 107, 12], + ["store_field", 9, 326, "return", 107, 12], + ["array", 327, 0, 108, 9], + ["store_field", 9, 327, "jump", 108, 9], + ["access", 328, 0, 109, 15], + ["array", 329, 0, 109, 15], + ["push", 329, 328, 109, 15], + ["store_field", 9, 329, "jump_true", 109, 15], + ["access", 330, 0, 110, 16], + ["array", 331, 0, 110, 16], + ["push", 331, 330, 110, 16], + ["store_field", 9, 331, "jump_false", 110, 16], + ["access", 332, 0, 111, 19], + ["array", 333, 0, 111, 19], + ["push", 333, 332, 111, 19], + ["store_field", 9, 333, "jump_not_null", 111, 19], + ["array", 334, 0, 112, 12], + ["store_field", 9, 334, "disrupt", 112, 12], + ["access", 335, 0, 115, 12], + ["access", 336, 1, 115, 15], + ["array", 337, 0, 115, 15], + ["push", 337, 335, 115, 15], + ["push", 337, 336, 115, 15], + ["store_field", 9, 337, "invoke", 115, 15], + ["access", 338, 0, 116, 14], + ["array", 339, 0, 116, 14], + ["push", 339, 338, 116, 14], + ["store_field", 9, 339, "goinvoke", 116, 14], + ["access", 340, 0, 117, 11], + ["access", 341, 1, 117, 14], + ["array", 342, 0, 117, 14], + ["push", 342, 340, 117, 14], + ["push", 342, 341, 117, 14], + ["store_field", 9, 342, "frame", 117, 14], + ["access", 343, 0, 118, 12], + ["access", 344, 2, 118, 15], + ["array", 345, 0, 118, 15], + ["push", 345, 343, 118, 15], + ["push", 345, 344, 118, 15], + ["store_field", 9, 345, "setarg", 118, 15], + ["move", 1, 9, 118, 15], + ["record", 346, 0], + ["true", 347, 123, 11], + ["store_field", 346, 347, "access", 123, 11], + ["true", 348, 123, 22], + ["store_field", 346, 348, "int", 123, 22], + ["true", 349, 123, 34], + ["store_field", 346, 349, "true", 123, 34], + ["true", 350, 123, 47], + ["store_field", 346, 350, "false", 123, 47], + ["true", 351, 123, 59], + ["store_field", 346, 351, "null", 123, 59], + ["true", 352, 124, 13], + ["store_field", 346, 352, "function", 124, 13], + ["true", 353, 124, 26], + ["store_field", 346, 353, "array", 124, 26], + ["true", 354, 124, 40], + ["store_field", 346, 354, "record", 124, 40], + ["true", 355, 125, 9], + ["store_field", 346, 355, "move", 125, 9], + ["true", 356, 125, 20], + ["store_field", 346, 356, "not", 125, 20], + ["true", 357, 125, 35], + ["store_field", 346, 357, "neg_int", 125, 35], + ["true", 358, 125, 52], + ["store_field", 346, 358, "neg_float", 125, 52], + ["true", 359, 125, 66], + ["store_field", 346, 359, "bitnot", 125, 66], + ["true", 360, 126, 11], + ["store_field", 346, 360, "length", 126, 11], + ["true", 361, 126, 25], + ["store_field", 346, 361, "typeof", 126, 25], + ["true", 362, 127, 11], + ["store_field", 346, 362, "is_int", 127, 11], + ["true", 363, 127, 26], + ["store_field", 346, 363, "is_text", 127, 26], + ["true", 364, 127, 40], + ["store_field", 346, 364, "is_num", 127, 40], + ["true", 365, 128, 12], + ["store_field", 346, 365, "is_bool", 128, 12], + ["true", 366, 128, 27], + ["store_field", 346, 366, "is_null", 128, 27], + ["true", 367, 128, 43], + ["store_field", 346, 367, "is_array", 128, 43], + ["true", 368, 129, 12], + ["store_field", 346, 368, "is_func", 129, 12], + ["true", 369, 129, 29], + ["store_field", 346, 369, "is_record", 129, 29], + ["true", 370, 129, 45], + ["store_field", 346, 370, "is_stone", 129, 45], + ["true", 371, 129, 65], + ["store_field", 346, 371, "is_identical", 129, 65], + ["true", 372, 130, 8], + ["store_field", 346, 372, "add", 130, 8], + ["true", 373, 130, 24], + ["store_field", 346, 373, "subtract", 130, 24], + ["true", 374, 130, 40], + ["store_field", 346, 374, "multiply", 130, 40], + ["true", 375, 130, 54], + ["store_field", 346, 375, "divide", 130, 54], + ["true", 376, 131, 11], + ["store_field", 346, 376, "modulo", 131, 11], + ["true", 377, 131, 22], + ["store_field", 346, 377, "pow", 131, 22], + ["true", 378, 132, 12], + ["store_field", 346, 378, "add_int", 132, 12], + ["true", 379, 132, 27], + ["store_field", 346, 379, "sub_int", 132, 27], + ["true", 380, 132, 42], + ["store_field", 346, 380, "mul_int", 132, 42], + ["true", 381, 132, 57], + ["store_field", 346, 381, "div_int", 132, 57], + ["true", 382, 132, 72], + ["store_field", 346, 382, "mod_int", 132, 72], + ["true", 383, 133, 14], + ["store_field", 346, 383, "add_float", 133, 14], + ["true", 384, 133, 31], + ["store_field", 346, 384, "sub_float", 133, 31], + ["true", 385, 133, 48], + ["store_field", 346, 385, "mul_float", 133, 48], + ["true", 386, 133, 65], + ["store_field", 346, 386, "div_float", 133, 65], + ["true", 387, 133, 82], + ["store_field", 346, 387, "mod_float", 133, 82], + ["true", 388, 134, 7], + ["store_field", 346, 388, "eq", 134, 7], + ["true", 389, 134, 17], + ["store_field", 346, 389, "ne", 134, 17], + ["true", 390, 134, 27], + ["store_field", 346, 390, "lt", 134, 27], + ["true", 391, 134, 37], + ["store_field", 346, 391, "le", 134, 37], + ["true", 392, 134, 47], + ["store_field", 346, 392, "gt", 134, 47], + ["true", 393, 134, 57], + ["store_field", 346, 393, "ge", 134, 57], + ["true", 394, 135, 11], + ["store_field", 346, 394, "eq_int", 135, 11], + ["true", 395, 135, 25], + ["store_field", 346, 395, "ne_int", 135, 25], + ["true", 396, 135, 39], + ["store_field", 346, 396, "lt_int", 135, 39], + ["true", 397, 135, 53], + ["store_field", 346, 397, "gt_int", 135, 53], + ["true", 398, 135, 67], + ["store_field", 346, 398, "le_int", 135, 67], + ["true", 399, 135, 81], + ["store_field", 346, 399, "ge_int", 135, 81], + ["true", 400, 136, 13], + ["store_field", 346, 400, "eq_float", 136, 13], + ["true", 401, 136, 29], + ["store_field", 346, 401, "ne_float", 136, 29], + ["true", 402, 136, 45], + ["store_field", 346, 402, "lt_float", 136, 45], + ["true", 403, 136, 61], + ["store_field", 346, 403, "gt_float", 136, 61], + ["true", 404, 136, 77], + ["store_field", 346, 404, "le_float", 136, 77], + ["true", 405, 136, 93], + ["store_field", 346, 405, "ge_float", 136, 93], + ["true", 406, 137, 12], + ["store_field", 346, 406, "eq_text", 137, 12], + ["true", 407, 137, 27], + ["store_field", 346, 407, "ne_text", 137, 27], + ["true", 408, 137, 42], + ["store_field", 346, 408, "lt_text", 137, 42], + ["true", 409, 137, 57], + ["store_field", 346, 409, "gt_text", 137, 57], + ["true", 410, 137, 72], + ["store_field", 346, 410, "le_text", 137, 72], + ["true", 411, 137, 87], + ["store_field", 346, 411, "ge_text", 137, 87], + ["true", 412, 138, 12], + ["store_field", 346, 412, "eq_bool", 138, 12], + ["true", 413, 138, 27], + ["store_field", 346, 413, "ne_bool", 138, 27], + ["true", 414, 138, 41], + ["store_field", 346, 414, "eq_tol", 138, 41], + ["true", 415, 138, 55], + ["store_field", 346, 415, "ne_tol", 138, 55], + ["true", 416, 139, 11], + ["store_field", 346, 416, "concat", 139, 11], + ["true", 417, 139, 22], + ["store_field", 346, 417, "and", 139, 22], + ["true", 418, 139, 32], + ["store_field", 346, 418, "or", 139, 32], + ["true", 419, 140, 11], + ["store_field", 346, 419, "bitand", 140, 11], + ["true", 420, 140, 24], + ["store_field", 346, 420, "bitor", 140, 24], + ["true", 421, 140, 38], + ["store_field", 346, 421, "bitxor", 140, 38], + ["true", 422, 140, 49], + ["store_field", 346, 422, "shl", 140, 49], + ["true", 423, 140, 60], + ["store_field", 346, 423, "shr", 140, 60], + ["true", 424, 140, 72], + ["store_field", 346, 424, "ushr", 140, 72], + ["true", 425, 141, 7], + ["store_field", 346, 425, "in", 141, 7], + ["true", 426, 142, 15], + ["store_field", 346, 426, "load_index", 142, 15], + ["true", 427, 142, 35], + ["store_field", 346, 427, "load_dynamic", 142, 35], + ["true", 428, 142, 53], + ["store_field", 346, 428, "load_field", 142, 53], + ["true", 429, 143, 8], + ["store_field", 346, 429, "pop", 143, 8], + ["true", 430, 143, 19], + ["store_field", 346, 430, "get", 143, 19], + ["true", 431, 144, 11], + ["store_field", 346, 431, "invoke", 144, 11], + ["move", 2, 346, 144, 11], + ["record", 432, 0], + ["access", 433, 0, 152, 9], + ["store_field", 432, 433, "jump", 152, 9], + ["access", 434, 1, 153, 14], + ["store_field", 432, 434, "jump_true", 153, 14], + ["access", 435, 1, 154, 15], + ["store_field", 432, 435, "jump_false", 154, 15], + ["access", 436, 1, 155, 18], + ["store_field", 432, 436, "jump_not_null", 155, 18], + ["move", 4, 432, 155, 18], + ["function", 437, 0, 160, 25], + ["move", 3, 437, 160, 25], + ["function", 438, 1, 200, 26], + ["move", 5, 438, 200, 26], + ["function", 439, 2, 242, 30], + ["move", 6, 439, 242, 30], + ["function", 440, 3, 381, 29], + ["move", 7, 440, 381, 29], + ["function", 441, 4, 423, 18], + ["move", 8, 441, 423, 18], + ["record", 442, 0], + ["store_field", 442, 8, "verify_all", 462, 15], + ["store_field", 442, 3, "check_slot_bounds", 463, 22], + ["store_field", 442, 5, "check_jump_targets", 464, 23], + ["store_field", 442, 6, "check_type_consistency", 465, 27], + ["store_field", 442, 7, "check_nop_consistency", 466, 26], + ["return", 442, 466, 26], + ["null", 443, 466, 26], + ["return", 443, 466, 26] + ] + }, + "filename": "verify_ir.cm", + "data": {} +} \ No newline at end of file diff --git a/internal/bootstrap.cm b/internal/bootstrap.cm index 1795fb09..435d9fab 100644 --- a/internal/bootstrap.cm +++ b/internal/bootstrap.cm @@ -9,11 +9,31 @@ function use_embed(name) { var fd = use_embed('fd') var json = use_embed('json') +var crypto = use_embed('crypto') var use_cache = {} use_cache['fd'] = fd use_cache['os'] = os use_cache['json'] = json +use_cache['crypto'] = crypto + +function content_hash(content) { + return text(crypto.blake2(content), 'h') +} + +function cache_path(hash) { + if (!shop_path) return null + return shop_path + '/build/' + hash + '.mach' +} + +function ensure_build_dir() { + if (!shop_path) return null + var dir = shop_path + '/build' + if (!fd.is_dir(dir)) { + fd.mkdir(dir) + } + return dir +} // Bootstrap: load tokenize.cm, parse.cm, fold.cm from pre-compiled mach bytecode function use_basic(path) { @@ -24,19 +44,28 @@ function use_basic(path) { return result } -// Load a module from .mach/.mcode bytecode (bootstrap modules have no source fallback) +// Load a module from cached .mach or .mcode bytecode function boot_load(name, env) { - var mach_path = core_path + '/' + name + ".cm.mach" - var mcode_path = core_path + '/' + name + ".cm.mcode" - var data = null + var mcode_path = core_path + '/boot/' + name + ".cm.mcode" + var mcode_blob = null + var hash = null + var cached = null var mcode_json = null - if (fd.is_file(mach_path)) { - data = fd.slurp(mach_path) - return mach_load(data, env) - } + var mach_blob = null if (fd.is_file(mcode_path)) { - mcode_json = text(fd.slurp(mcode_path)) - return mach_eval_mcode(name, mcode_json, env) + mcode_blob = fd.slurp(mcode_path) + hash = content_hash(mcode_blob) + cached = cache_path(hash) + if (cached && fd.is_file(cached)) { + return mach_load(fd.slurp(cached), env) + } + mcode_json = text(mcode_blob) + mach_blob = mach_compile_mcode_bin(name, mcode_json) + if (cached) { + ensure_build_dir() + fd.slurpwrite(cached, mach_blob) + } + return mach_load(mach_blob, env) } print("error: missing bootstrap bytecode: " + name + "\n") disrupt @@ -58,43 +87,33 @@ var streamline_mod = null // Warn if any .cm source is newer than its compiled bytecode function check_mach_stale() { var sources = [ - "tokenize.cm", - "parse.cm", - "fold.cm", - "mcode.cm", - "streamline.cm", - "qbe.cm", - "qbe_emit.cm", - "verify_ir.cm", - "internal/bootstrap.cm", - "internal/engine.cm" + {src: "tokenize.cm", mcode: "boot/tokenize.cm.mcode"}, + {src: "parse.cm", mcode: "boot/parse.cm.mcode"}, + {src: "fold.cm", mcode: "boot/fold.cm.mcode"}, + {src: "mcode.cm", mcode: "boot/mcode.cm.mcode"}, + {src: "streamline.cm", mcode: "boot/streamline.cm.mcode"}, + {src: "qbe.cm", mcode: "boot/qbe.cm.mcode"}, + {src: "qbe_emit.cm", mcode: "boot/qbe_emit.cm.mcode"}, + {src: "verify_ir.cm", mcode: "boot/verify_ir.cm.mcode"}, + {src: "internal/bootstrap.cm", mcode: "boot/bootstrap.cm.mcode"}, + {src: "internal/engine.cm", mcode: "boot/engine.cm.mcode"} ] var stale = [] var _i = 0 var cm_path = null - var mach_path = null var mcode_path = null var cm_stat = null var compiled_stat = null - var best_mtime = null + var entry = null while (_i < length(sources)) { - cm_path = core_path + '/' + sources[_i] - mach_path = cm_path + '.mach' - mcode_path = cm_path + '.mcode' - best_mtime = null - if (fd.is_file(mach_path)) { - best_mtime = fd.stat(mach_path).mtime - } - if (fd.is_file(mcode_path)) { + entry = sources[_i] + cm_path = core_path + '/' + entry.src + mcode_path = core_path + '/' + entry.mcode + if (fd.is_file(mcode_path) && fd.is_file(cm_path)) { compiled_stat = fd.stat(mcode_path) - if (best_mtime == null || compiled_stat.mtime > best_mtime) { - best_mtime = compiled_stat.mtime - } - } - if (best_mtime != null && fd.is_file(cm_path)) { cm_stat = fd.stat(cm_path) - if (cm_stat.mtime > best_mtime) { - push(stale, sources[_i]) + if (cm_stat.mtime > compiled_stat.mtime) { + push(stale, entry.src) } } _i = _i + 1 @@ -175,23 +194,33 @@ function run_ast_noopt(name, ast, env) { // Helper to load engine.cm and run it with given env function load_engine(env) { - var engine_path = core_path + '/internal/engine.cm.mach' - var mcode_path = core_path + '/internal/engine.cm.mcode' - var data = null + var mcode_path = core_path + '/boot/engine.cm.mcode' + var mcode_blob = null + var hash = null + var cached = null var mcode_json = null + var mach_blob = null var engine_src = null var engine_ast = null - if (fd.is_file(engine_path)) { - data = fd.slurp(engine_path) - return mach_load(data, env) - } if (fd.is_file(mcode_path)) { - mcode_json = text(fd.slurp(mcode_path)) - return mach_eval_mcode('engine', mcode_json, env) + mcode_blob = fd.slurp(mcode_path) + hash = content_hash(mcode_blob) + cached = cache_path(hash) + if (cached && fd.is_file(cached)) { + return mach_load(fd.slurp(cached), env) + } + mcode_json = text(mcode_blob) + mach_blob = mach_compile_mcode_bin('engine', mcode_json) + if (cached) { + ensure_build_dir() + fd.slurpwrite(cached, mach_blob) + } + return mach_load(mach_blob, env) } - engine_path = core_path + '/internal/engine.cm' - engine_src = text(fd.slurp(engine_path)) - engine_ast = analyze(engine_src, engine_path) + // Fallback: compile from source + var engine_cm = core_path + '/internal/engine.cm' + engine_src = text(fd.slurp(engine_cm)) + engine_ast = analyze(engine_src, engine_cm) return run_ast('engine', engine_ast, env) } diff --git a/internal/bootstrap.cm.mcode b/internal/bootstrap.cm.mcode deleted file mode 100644 index 807deae0..00000000 --- a/internal/bootstrap.cm.mcode +++ /dev/null @@ -1,2598 +0,0 @@ -{ - "name": "internal/bootstrap.cm", - "functions": [ - { - "disruption_pc": 0, - "nr_slots": 15, - "nr_close_slots": 0, - "instructions": [ - ["access", 2, "js_", 7, 24], - "_nop_tc_1", - ["jump", "add_ni_0", 7, 32], - ["is_int", 5, 1, 7, 32], - ["jump_false", 5, "add_ni_0", 7, 32], - ["add_int", 3, 2, 1, 7, 32], - ["jump", "add_done_2", 7, 32], - "add_ni_0", - ["is_text", 5, 1, 7, 32], - ["jump_false", 5, "add_nt_1", 7, 32], - ["concat", 3, 2, 1, 7, 32], - ["jump", "add_done_2", 7, 32], - "add_nt_1", - ["is_num", 4, 2, 7, 32], - ["jump_false", 4, "add_err_3", 7, 32], - ["is_num", 5, 1, 7, 32], - ["jump_false", 5, "add_err_3", 7, 32], - ["add_float", 3, 2, 1, 7, 32], - ["jump", "add_done_2", 7, 32], - "add_err_3", - ["disrupt", 7, 32], - "add_done_2", - ["access", 6, "_use", 7, 39], - ["is_int", 8, 3, 7, 39], - ["jump_false", 8, "add_ni_4", 7, 39], - "_nop_tc_2", - ["jump", "add_ni_4", 7, 39], - ["add_int", 7, 3, 6, 7, 39], - ["jump", "add_done_6", 7, 39], - "add_ni_4", - ["is_text", 8, 3, 7, 39], - ["jump_false", 8, "add_nt_5", 7, 39], - ["concat", 7, 3, 6, 7, 39], - ["jump", "add_done_6", 7, 39], - "add_nt_5", - ["is_num", 8, 3, 7, 39], - ["jump_false", 8, "add_err_7", 7, 39], - ["is_num", 9, 6, 7, 39], - ["jump_false", 9, "add_err_7", 7, 39], - ["add_float", 7, 3, 6, 7, 39], - ["jump", "add_done_6", 7, 39], - "add_err_7", - ["disrupt", 7, 39], - "add_done_6", - ["get", 11, 9, 1, 7, 10], - ["frame", 12, 11, 1, 7, 10], - ["null", 13, 7, 10], - ["setarg", 12, 0, 13, 7, 10], - ["setarg", 12, 1, 7, 7, 10], - ["invoke", 12, 10, 7, 10], - ["return", 10, 7, 10], - ["null", 14, 7, 10], - ["return", 14, 7, 10] - ], - "name": "use_embed", - "filename": "internal/bootstrap.cm", - "nr_args": 1 - }, - { - "disruption_pc": 0, - "nr_slots": 19, - "nr_close_slots": 0, - "instructions": [ - ["get", 3, 18, 1, 20, 7], - ["load_dynamic", 4, 3, 1, 20, 17], - ["jump_false", 4, "if_else_8", 20, 17], - ["get", 5, 18, 1, 21, 12], - ["load_dynamic", 6, 5, 1, 21, 22], - ["return", 6, 21, 22], - ["jump", "if_end_9", 21, 22], - "if_else_8", - "if_end_9", - ["access", 7, "/", 22, 40], - ["access", 8, "_", 22, 45], - [ - "access", - 10, - { - "name": "replace", - "kind": "name", - "make": "intrinsic" - }, - 22, - 26 - ], - ["frame", 11, 10, 3, 22, 26], - ["null", 12, 22, 26], - ["setarg", 11, 0, 12, 22, 26], - ["setarg", 11, 1, 1, 22, 26], - ["setarg", 11, 2, 7, 22, 26], - ["setarg", 11, 3, 8, 22, 26], - ["invoke", 11, 9, 22, 26], - ["get", 14, 1, 1, 22, 16], - ["frame", 15, 14, 1, 22, 16], - ["null", 16, 22, 16], - ["setarg", 15, 0, 16, 22, 16], - ["setarg", 15, 1, 9, 22, 16], - ["invoke", 15, 13, 22, 16], - ["move", 2, 13, 22, 16], - ["get", 17, 18, 1, 23, 3], - ["store_dynamic", 17, 2, 1, 23, 13], - ["return", 2, 24, 10], - ["null", 18, 24, 10], - ["return", 18, 24, 10] - ], - "name": "use_basic", - "filename": "internal/bootstrap.cm", - "nr_args": 1 - }, - { - "disruption_pc": 0, - "nr_slots": 92, - "nr_close_slots": 0, - "instructions": [ - [ - "access", - 7, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 29, - 19 - ], - ["access", 8, "/", 29, 31], - ["is_int", 10, 7, 29, 31], - ["jump_false", 10, "add_ni_10", 29, 31], - "_nop_tc_1", - ["jump", "add_ni_10", 29, 31], - ["add_int", 9, 7, 8, 29, 31], - ["jump", "add_done_12", 29, 31], - "add_ni_10", - ["is_text", 10, 7, 29, 31], - ["jump_false", 10, "add_nt_11", 29, 31], - ["concat", 9, 7, 8, 29, 31], - ["jump", "add_done_12", 29, 31], - "add_nt_11", - ["is_num", 10, 7, 29, 31], - ["jump_false", 10, "add_err_13", 29, 31], - ["is_num", 11, 8, 29, 31], - ["jump_false", 11, "add_err_13", 29, 31], - ["add_float", 9, 7, 8, 29, 31], - ["jump", "add_done_12", 29, 31], - "add_err_13", - ["disrupt", 29, 31], - "add_done_12", - ["is_int", 13, 9, 29, 37], - ["jump_false", 13, "add_ni_14", 29, 37], - ["is_int", 14, 1, 29, 37], - ["jump_false", 14, "add_ni_14", 29, 37], - ["add_int", 12, 9, 1, 29, 37], - ["jump", "add_done_16", 29, 37], - "add_ni_14", - ["is_text", 13, 9, 29, 37], - ["jump_false", 13, "add_nt_15", 29, 37], - ["is_text", 14, 1, 29, 37], - ["jump_false", 14, "add_nt_15", 29, 37], - ["concat", 12, 9, 1, 29, 37], - ["jump", "add_done_16", 29, 37], - "add_nt_15", - ["is_num", 13, 9, 29, 37], - ["jump_false", 13, "add_err_17", 29, 37], - ["is_num", 14, 1, 29, 37], - ["jump_false", 14, "add_err_17", 29, 37], - ["add_float", 12, 9, 1, 29, 37], - ["jump", "add_done_16", 29, 37], - "add_err_17", - ["disrupt", 29, 37], - "add_done_16", - ["access", 15, ".cm.mach", 29, 44], - ["is_int", 17, 12, 29, 44], - ["jump_false", 17, "add_ni_18", 29, 44], - "_nop_tc_2", - ["jump", "add_ni_18", 29, 44], - ["add_int", 16, 12, 15, 29, 44], - ["jump", "add_done_20", 29, 44], - "add_ni_18", - ["is_text", 17, 12, 29, 44], - ["jump_false", 17, "add_nt_19", 29, 44], - ["concat", 16, 12, 15, 29, 44], - ["jump", "add_done_20", 29, 44], - "add_nt_19", - ["is_num", 17, 12, 29, 44], - ["jump_false", 17, "add_err_21", 29, 44], - ["is_num", 18, 15, 29, 44], - ["jump_false", 18, "add_err_21", 29, 44], - ["add_float", 16, 12, 15, 29, 44], - ["jump", "add_done_20", 29, 44], - "add_err_21", - ["disrupt", 29, 44], - "add_done_20", - ["move", 4, 16, 29, 44], - [ - "access", - 19, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 30, - 20 - ], - ["access", 20, "/", 30, 32], - ["is_int", 22, 19, 30, 32], - ["jump_false", 22, "add_ni_22", 30, 32], - "_nop_tc_3", - ["jump", "add_ni_22", 30, 32], - ["add_int", 21, 19, 20, 30, 32], - ["jump", "add_done_24", 30, 32], - "add_ni_22", - ["is_text", 22, 19, 30, 32], - ["jump_false", 22, "add_nt_23", 30, 32], - ["concat", 21, 19, 20, 30, 32], - ["jump", "add_done_24", 30, 32], - "add_nt_23", - ["is_num", 22, 19, 30, 32], - ["jump_false", 22, "add_err_25", 30, 32], - ["is_num", 23, 20, 30, 32], - ["jump_false", 23, "add_err_25", 30, 32], - ["add_float", 21, 19, 20, 30, 32], - ["jump", "add_done_24", 30, 32], - "add_err_25", - ["disrupt", 30, 32], - "add_done_24", - ["is_int", 25, 21, 30, 38], - ["jump_false", 25, "add_ni_26", 30, 38], - ["is_int", 26, 1, 30, 38], - ["jump_false", 26, "add_ni_26", 30, 38], - ["add_int", 24, 21, 1, 30, 38], - ["jump", "add_done_28", 30, 38], - "add_ni_26", - ["is_text", 25, 21, 30, 38], - ["jump_false", 25, "add_nt_27", 30, 38], - ["is_text", 26, 1, 30, 38], - ["jump_false", 26, "add_nt_27", 30, 38], - ["concat", 24, 21, 1, 30, 38], - ["jump", "add_done_28", 30, 38], - "add_nt_27", - ["is_num", 25, 21, 30, 38], - ["jump_false", 25, "add_err_29", 30, 38], - ["is_num", 26, 1, 30, 38], - ["jump_false", 26, "add_err_29", 30, 38], - ["add_float", 24, 21, 1, 30, 38], - ["jump", "add_done_28", 30, 38], - "add_err_29", - ["disrupt", 30, 38], - "add_done_28", - ["access", 27, ".cm.mcode", 30, 45], - ["is_int", 29, 24, 30, 45], - ["jump_false", 29, "add_ni_30", 30, 45], - "_nop_tc_4", - ["jump", "add_ni_30", 30, 45], - ["add_int", 28, 24, 27, 30, 45], - ["jump", "add_done_32", 30, 45], - "add_ni_30", - ["is_text", 29, 24, 30, 45], - ["jump_false", 29, "add_nt_31", 30, 45], - ["concat", 28, 24, 27, 30, 45], - ["jump", "add_done_32", 30, 45], - "add_nt_31", - ["is_num", 29, 24, 30, 45], - ["jump_false", 29, "add_err_33", 30, 45], - ["is_num", 30, 27, 30, 45], - ["jump_false", 30, "add_err_33", 30, 45], - ["add_float", 28, 24, 27, 30, 45], - ["jump", "add_done_32", 30, 45], - "add_err_33", - ["disrupt", 30, 45], - "add_done_32", - ["move", 6, 28, 30, 45], - ["null", 3, 31, 14], - ["null", 5, 32, 20], - ["get", 32, 4, 1, 33, 7], - ["is_proxy", 33, 32, 33, 7], - ["jump_false", 33, "record_path_36", 33, 7], - ["null", 34, 33, 7], - ["access", 35, "is_file", 33, 7], - ["array", 36, 0, 33, 7], - ["push", 36, 4, 33, 7], - ["frame", 37, 32, 2, 33, 7], - ["setarg", 37, 0, 34, 33, 7], - ["setarg", 37, 1, 35, 33, 7], - ["setarg", 37, 2, 36, 33, 7], - ["invoke", 37, 31, 33, 7], - ["jump", "call_done_37", 33, 7], - "record_path_36", - ["load_field", 38, 32, "is_file", 33, 7], - ["frame", 39, 38, 1, 33, 7], - ["setarg", 39, 0, 32, 33, 7], - ["setarg", 39, 1, 4, 33, 7], - ["invoke", 39, 31, 33, 7], - "call_done_37", - ["jump_false", 31, "if_else_34", 33, 7], - ["get", 41, 4, 1, 34, 12], - ["is_proxy", 42, 41, 34, 12], - ["jump_false", 42, "record_path_38", 34, 12], - ["null", 43, 34, 12], - ["access", 44, "slurp", 34, 12], - ["array", 45, 0, 34, 12], - ["push", 45, 4, 34, 12], - ["frame", 46, 41, 2, 34, 12], - ["setarg", 46, 0, 43, 34, 12], - ["setarg", 46, 1, 44, 34, 12], - ["setarg", 46, 2, 45, 34, 12], - ["invoke", 46, 40, 34, 12], - ["jump", "call_done_39", 34, 12], - "record_path_38", - ["load_field", 47, 41, "slurp", 34, 12], - ["frame", 48, 47, 1, 34, 12], - ["setarg", 48, 0, 41, 34, 12], - ["setarg", 48, 1, 4, 34, 12], - ["invoke", 48, 40, 34, 12], - "call_done_39", - ["move", 3, 40, 34, 12], - [ - "access", - 50, - { - "name": "mach_load", - "kind": "name", - "make": "intrinsic" - }, - 35, - 12 - ], - ["frame", 51, 50, 2, 35, 12], - ["null", 52, 35, 12], - ["setarg", 51, 0, 52, 35, 12], - ["setarg", 51, 1, 3, 35, 12], - ["setarg", 51, 2, 2, 35, 12], - ["invoke", 51, 49, 35, 12], - ["return", 49, 35, 12], - ["jump", "if_end_35", 35, 12], - "if_else_34", - "if_end_35", - ["get", 54, 4, 1, 37, 7], - ["is_proxy", 55, 54, 37, 7], - ["jump_false", 55, "record_path_42", 37, 7], - ["null", 56, 37, 7], - ["access", 57, "is_file", 37, 7], - ["array", 58, 0, 37, 7], - ["push", 58, 6, 37, 7], - ["frame", 59, 54, 2, 37, 7], - ["setarg", 59, 0, 56, 37, 7], - ["setarg", 59, 1, 57, 37, 7], - ["setarg", 59, 2, 58, 37, 7], - ["invoke", 59, 53, 37, 7], - ["jump", "call_done_43", 37, 7], - "record_path_42", - ["load_field", 60, 54, "is_file", 37, 7], - ["frame", 61, 60, 1, 37, 7], - ["setarg", 61, 0, 54, 37, 7], - ["setarg", 61, 1, 6, 37, 7], - ["invoke", 61, 53, 37, 7], - "call_done_43", - ["jump_false", 53, "if_else_40", 37, 7], - ["get", 63, 4, 1, 38, 23], - ["is_proxy", 64, 63, 38, 23], - ["jump_false", 64, "record_path_44", 38, 23], - ["null", 65, 38, 23], - ["access", 66, "slurp", 38, 23], - ["array", 67, 0, 38, 23], - ["push", 67, 6, 38, 23], - ["frame", 68, 63, 2, 38, 23], - ["setarg", 68, 0, 65, 38, 23], - ["setarg", 68, 1, 66, 38, 23], - ["setarg", 68, 2, 67, 38, 23], - ["invoke", 68, 62, 38, 23], - ["jump", "call_done_45", 38, 23], - "record_path_44", - ["load_field", 69, 63, "slurp", 38, 23], - ["frame", 70, 69, 1, 38, 23], - ["setarg", 70, 0, 63, 38, 23], - ["setarg", 70, 1, 6, 38, 23], - ["invoke", 70, 62, 38, 23], - "call_done_45", - [ - "access", - 72, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 38, - 18 - ], - ["frame", 73, 72, 1, 38, 18], - ["null", 74, 38, 18], - ["setarg", 73, 0, 74, 38, 18], - ["setarg", 73, 1, 62, 38, 18], - ["invoke", 73, 71, 38, 18], - ["move", 5, 71, 38, 18], - [ - "access", - 76, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 39, - 12 - ], - ["frame", 77, 76, 3, 39, 12], - ["null", 78, 39, 12], - ["setarg", 77, 0, 78, 39, 12], - ["setarg", 77, 1, 1, 39, 12], - ["setarg", 77, 2, 5, 39, 12], - ["setarg", 77, 3, 2, 39, 12], - ["invoke", 77, 75, 39, 12], - ["return", 75, 39, 12], - ["jump", "if_end_41", 39, 12], - "if_else_40", - "if_end_41", - ["access", 79, "error: missing bootstrap bytecode: ", 41, 9], - "_nop_tc_5", - ["jump", "add_ni_46", 41, 49], - ["is_int", 82, 1, 41, 49], - ["jump_false", 82, "add_ni_46", 41, 49], - ["add_int", 80, 79, 1, 41, 49], - ["jump", "add_done_48", 41, 49], - "add_ni_46", - ["is_text", 82, 1, 41, 49], - ["jump_false", 82, "add_nt_47", 41, 49], - ["concat", 80, 79, 1, 41, 49], - ["jump", "add_done_48", 41, 49], - "add_nt_47", - ["is_num", 81, 79, 41, 49], - ["jump_false", 81, "add_err_49", 41, 49], - ["is_num", 82, 1, 41, 49], - ["jump_false", 82, "add_err_49", 41, 49], - ["add_float", 80, 79, 1, 41, 49], - ["jump", "add_done_48", 41, 49], - "add_err_49", - ["disrupt", 41, 49], - "add_done_48", - ["access", 83, "\n", 41, 56], - ["is_int", 85, 80, 41, 56], - ["jump_false", 85, "add_ni_50", 41, 56], - "_nop_tc_6", - ["jump", "add_ni_50", 41, 56], - ["add_int", 84, 80, 83, 41, 56], - ["jump", "add_done_52", 41, 56], - "add_ni_50", - ["is_text", 85, 80, 41, 56], - ["jump_false", 85, "add_nt_51", 41, 56], - ["concat", 84, 80, 83, 41, 56], - ["jump", "add_done_52", 41, 56], - "add_nt_51", - ["is_num", 85, 80, 41, 56], - ["jump_false", 85, "add_err_53", 41, 56], - ["is_num", 86, 83, 41, 56], - ["jump_false", 86, "add_err_53", 41, 56], - ["add_float", 84, 80, 83, 41, 56], - ["jump", "add_done_52", 41, 56], - "add_err_53", - ["disrupt", 41, 56], - "add_done_52", - [ - "access", - 88, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 41, - 3 - ], - ["frame", 89, 88, 1, 41, 3], - ["null", 90, 41, 3], - ["setarg", 89, 0, 90, 41, 3], - ["setarg", 89, 1, 84, 41, 3], - ["invoke", 89, 87, 41, 3], - ["disrupt", 42, 3], - ["null", 91, 42, 3], - ["return", 91, 42, 3] - ], - "name": "boot_load", - "filename": "internal/bootstrap.cm", - "nr_args": 2 - }, - { - "disruption_pc": 0, - "nr_slots": 152, - "nr_close_slots": 0, - "instructions": [ - ["access", 10, "tokenize.cm", 61, 5], - ["access", 11, "parse.cm", 62, 5], - ["access", 12, "fold.cm", 63, 5], - ["access", 13, "mcode.cm", 64, 5], - ["access", 14, "streamline.cm", 65, 5], - ["access", 15, "qbe.cm", 66, 5], - ["access", 16, "qbe_emit.cm", 67, 5], - ["access", 17, "verify_ir.cm", 68, 5], - ["access", 18, "internal/bootstrap.cm", 69, 5], - ["access", 19, "internal/engine.cm", 70, 5], - ["array", 20, 0, 70, 5], - ["push", 20, 10, 70, 5], - ["push", 20, 11, 70, 5], - ["push", 20, 12, 70, 5], - ["push", 20, 13, 70, 5], - ["push", 20, 14, 70, 5], - ["push", 20, 15, 70, 5], - ["push", 20, 16, 70, 5], - ["push", 20, 17, 70, 5], - ["push", 20, 18, 70, 5], - ["push", 20, 19, 70, 5], - ["move", 7, 20, 70, 5], - ["array", 21, 0, 72, 15], - ["move", 2, 21, 72, 15], - ["access", 8, 0, 73, 12], - ["null", 1, 74, 17], - ["null", 3, 75, 19], - ["null", 9, 76, 20], - ["null", 4, 77, 17], - ["null", 5, 78, 23], - ["null", 6, 79, 20], - "while_start_54", - ["length", 22, 7, 80, 22], - ["is_int", 24, 8, 80, 22], - ["jump_false", 24, "rel_ni_56", 80, 22], - "_nop_tc_1", - "_nop_tc_2", - ["lt_int", 23, 8, 22, 80, 22], - ["jump", "rel_done_58", 80, 22], - "rel_ni_56", - ["is_num", 24, 8, 80, 22], - ["jump_false", 24, "rel_nn_57", 80, 22], - ["is_num", 25, 22, 80, 22], - ["jump_false", 25, "rel_nn_57", 80, 22], - ["lt_float", 23, 8, 22, 80, 22], - ["jump", "rel_done_58", 80, 22], - "rel_nn_57", - ["is_text", 24, 8, 80, 22], - ["jump_false", 24, "rel_err_59", 80, 22], - ["is_text", 25, 22, 80, 22], - ["jump_false", 25, "rel_err_59", 80, 22], - ["lt_text", 23, 8, 22, 80, 22], - ["jump", "rel_done_58", 80, 22], - "rel_err_59", - ["disrupt", 80, 22], - "rel_done_58", - ["jump_false", 23, "while_end_55", 80, 22], - [ - "access", - 26, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 81, - 15 - ], - ["access", 27, "/", 81, 27], - ["is_int", 29, 26, 81, 27], - ["jump_false", 29, "add_ni_60", 81, 27], - "_nop_tc_3", - ["jump", "add_ni_60", 81, 27], - ["add_int", 28, 26, 27, 81, 27], - ["jump", "add_done_62", 81, 27], - "add_ni_60", - ["is_text", 29, 26, 81, 27], - ["jump_false", 29, "add_nt_61", 81, 27], - ["concat", 28, 26, 27, 81, 27], - ["jump", "add_done_62", 81, 27], - "add_nt_61", - ["is_num", 29, 26, 81, 27], - ["jump_false", 29, "add_err_63", 81, 27], - ["is_num", 30, 27, 81, 27], - ["jump_false", 30, "add_err_63", 81, 27], - ["add_float", 28, 26, 27, 81, 27], - ["jump", "add_done_62", 81, 27], - "add_err_63", - ["disrupt", 81, 27], - "add_done_62", - ["load_dynamic", 31, 7, 8, 81, 41], - ["is_int", 33, 28, 81, 41], - ["jump_false", 33, "add_ni_64", 81, 41], - ["is_int", 34, 31, 81, 41], - ["jump_false", 34, "add_ni_64", 81, 41], - ["add_int", 32, 28, 31, 81, 41], - ["jump", "add_done_66", 81, 41], - "add_ni_64", - ["is_text", 33, 28, 81, 41], - ["jump_false", 33, "add_nt_65", 81, 41], - ["is_text", 34, 31, 81, 41], - ["jump_false", 34, "add_nt_65", 81, 41], - ["concat", 32, 28, 31, 81, 41], - ["jump", "add_done_66", 81, 41], - "add_nt_65", - ["is_num", 33, 28, 81, 41], - ["jump_false", 33, "add_err_67", 81, 41], - ["is_num", 34, 31, 81, 41], - ["jump_false", 34, "add_err_67", 81, 41], - ["add_float", 32, 28, 31, 81, 41], - ["jump", "add_done_66", 81, 41], - "add_err_67", - ["disrupt", 81, 41], - "add_done_66", - ["move", 1, 32, 81, 41], - ["access", 35, ".mach", 82, 27], - ["is_int", 37, 1, 82, 27], - ["jump_false", 37, "add_ni_68", 82, 27], - "_nop_tc_4", - ["jump", "add_ni_68", 82, 27], - ["add_int", 36, 1, 35, 82, 27], - ["jump", "add_done_70", 82, 27], - "add_ni_68", - ["is_text", 37, 1, 82, 27], - ["jump_false", 37, "add_nt_69", 82, 27], - ["concat", 36, 1, 35, 82, 27], - ["jump", "add_done_70", 82, 27], - "add_nt_69", - ["is_num", 37, 1, 82, 27], - ["jump_false", 37, "add_err_71", 82, 27], - ["is_num", 38, 35, 82, 27], - ["jump_false", 38, "add_err_71", 82, 27], - ["add_float", 36, 1, 35, 82, 27], - ["jump", "add_done_70", 82, 27], - "add_err_71", - ["disrupt", 82, 27], - "add_done_70", - ["move", 3, 36, 82, 27], - ["access", 39, ".mcode", 83, 28], - ["is_int", 41, 1, 83, 28], - ["jump_false", 41, "add_ni_72", 83, 28], - "_nop_tc_5", - ["jump", "add_ni_72", 83, 28], - ["add_int", 40, 1, 39, 83, 28], - ["jump", "add_done_74", 83, 28], - "add_ni_72", - ["is_text", 41, 1, 83, 28], - ["jump_false", 41, "add_nt_73", 83, 28], - ["concat", 40, 1, 39, 83, 28], - ["jump", "add_done_74", 83, 28], - "add_nt_73", - ["is_num", 41, 1, 83, 28], - ["jump_false", 41, "add_err_75", 83, 28], - ["is_num", 42, 39, 83, 28], - ["jump_false", 42, "add_err_75", 83, 28], - ["add_float", 40, 1, 39, 83, 28], - ["jump", "add_done_74", 83, 28], - "add_err_75", - ["disrupt", 83, 28], - "add_done_74", - ["move", 9, 40, 83, 28], - ["null", 43, 84, 18], - ["move", 6, 43, 84, 18], - ["get", 45, 4, 1, 85, 9], - ["is_proxy", 46, 45, 85, 9], - ["jump_false", 46, "record_path_78", 85, 9], - ["null", 47, 85, 9], - ["access", 48, "is_file", 85, 9], - ["array", 49, 0, 85, 9], - ["push", 49, 3, 85, 9], - ["frame", 50, 45, 2, 85, 9], - ["setarg", 50, 0, 47, 85, 9], - ["setarg", 50, 1, 48, 85, 9], - ["setarg", 50, 2, 49, 85, 9], - ["invoke", 50, 44, 85, 9], - ["jump", "call_done_79", 85, 9], - "record_path_78", - ["load_field", 51, 45, "is_file", 85, 9], - ["frame", 52, 51, 1, 85, 9], - ["setarg", 52, 0, 45, 85, 9], - ["setarg", 52, 1, 3, 85, 9], - ["invoke", 52, 44, 85, 9], - "call_done_79", - ["jump_false", 44, "if_else_76", 85, 9], - ["get", 54, 4, 1, 86, 20], - ["is_proxy", 55, 54, 86, 20], - ["jump_false", 55, "record_path_80", 86, 20], - ["null", 56, 86, 20], - ["access", 57, "stat", 86, 20], - ["array", 58, 0, 86, 20], - ["push", 58, 3, 86, 20], - ["frame", 59, 54, 2, 86, 20], - ["setarg", 59, 0, 56, 86, 20], - ["setarg", 59, 1, 57, 86, 20], - ["setarg", 59, 2, 58, 86, 20], - ["invoke", 59, 53, 86, 20], - ["jump", "call_done_81", 86, 20], - "record_path_80", - ["load_field", 60, 54, "stat", 86, 20], - ["frame", 61, 60, 1, 86, 20], - ["setarg", 61, 0, 54, 86, 20], - ["setarg", 61, 1, 3, 86, 20], - ["invoke", 61, 53, 86, 20], - "call_done_81", - ["load_field", 62, 53, "mtime", 86, 20], - ["move", 6, 62, 86, 20], - ["jump", "if_end_77", 86, 20], - "if_else_76", - "if_end_77", - ["get", 64, 4, 1, 88, 9], - ["is_proxy", 65, 64, 88, 9], - ["jump_false", 65, "record_path_84", 88, 9], - ["null", 66, 88, 9], - ["access", 67, "is_file", 88, 9], - ["array", 68, 0, 88, 9], - ["push", 68, 9, 88, 9], - ["frame", 69, 64, 2, 88, 9], - ["setarg", 69, 0, 66, 88, 9], - ["setarg", 69, 1, 67, 88, 9], - ["setarg", 69, 2, 68, 88, 9], - ["invoke", 69, 63, 88, 9], - ["jump", "call_done_85", 88, 9], - "record_path_84", - ["load_field", 70, 64, "is_file", 88, 9], - ["frame", 71, 70, 1, 88, 9], - ["setarg", 71, 0, 64, 88, 9], - ["setarg", 71, 1, 9, 88, 9], - ["invoke", 71, 63, 88, 9], - "call_done_85", - ["jump_false", 63, "if_else_82", 88, 9], - ["get", 73, 4, 1, 89, 23], - ["is_proxy", 74, 73, 89, 23], - ["jump_false", 74, "record_path_86", 89, 23], - ["null", 75, 89, 23], - ["access", 76, "stat", 89, 23], - ["array", 77, 0, 89, 23], - ["push", 77, 9, 89, 23], - ["frame", 78, 73, 2, 89, 23], - ["setarg", 78, 0, 75, 89, 23], - ["setarg", 78, 1, 76, 89, 23], - ["setarg", 78, 2, 77, 89, 23], - ["invoke", 78, 72, 89, 23], - ["jump", "call_done_87", 89, 23], - "record_path_86", - ["load_field", 79, 73, "stat", 89, 23], - ["frame", 80, 79, 1, 89, 23], - ["setarg", 80, 0, 73, 89, 23], - ["setarg", 80, 1, 9, 89, 23], - ["invoke", 80, 72, 89, 23], - "call_done_87", - ["move", 5, 72, 89, 23], - ["null", 81, 90, 25], - ["is_identical", 82, 6, 81, 90, 25], - ["jump_true", 82, "eq_done_91", 90, 25], - ["is_int", 83, 6, 90, 25], - ["jump_false", 83, "eq_ni_92", 90, 25], - "_nop_tc_6", - ["jump", "eq_ni_92", 90, 25], - ["eq_int", 82, 6, 81, 90, 25], - ["jump", "eq_done_91", 90, 25], - "eq_ni_92", - ["is_num", 83, 6, 90, 25], - ["jump_false", 83, "eq_nn_93", 90, 25], - ["is_num", 84, 81, 90, 25], - ["jump_false", 84, "eq_nn_93", 90, 25], - ["eq_float", 82, 6, 81, 90, 25], - ["jump", "eq_done_91", 90, 25], - "eq_nn_93", - ["is_text", 83, 6, 90, 25], - ["jump_false", 83, "eq_nt_94", 90, 25], - ["is_text", 84, 81, 90, 25], - ["jump_false", 84, "eq_nt_94", 90, 25], - ["eq_text", 82, 6, 81, 90, 25], - ["jump", "eq_done_91", 90, 25], - "eq_nt_94", - ["is_null", 83, 6, 90, 25], - ["jump_false", 83, "eq_nnl_95", 90, 25], - ["is_null", 84, 81, 90, 25], - ["jump_false", 84, "eq_nnl_95", 90, 25], - ["true", 82, 90, 25], - ["jump", "eq_done_91", 90, 25], - "eq_nnl_95", - ["is_bool", 83, 6, 90, 25], - ["jump_false", 83, "eq_nb_96", 90, 25], - ["is_bool", 84, 81, 90, 25], - ["jump_false", 84, "eq_nb_96", 90, 25], - ["eq_bool", 82, 6, 81, 90, 25], - ["jump", "eq_done_91", 90, 25], - "eq_nb_96", - ["false", 82, 90, 25], - "eq_done_91", - ["move", 85, 82, 90, 25], - ["jump_true", 85, "or_end_90", 90, 25], - ["load_field", 86, 5, "mtime", 90, 33], - ["is_int", 88, 86, 90, 55], - ["jump_false", 88, "rel_ni_97", 90, 55], - ["is_int", 89, 6, 90, 55], - ["jump_false", 89, "rel_ni_97", 90, 55], - ["gt_int", 87, 86, 6, 90, 55], - ["jump", "rel_done_99", 90, 55], - "rel_ni_97", - ["is_num", 88, 86, 90, 55], - ["jump_false", 88, "rel_nn_98", 90, 55], - ["is_num", 89, 6, 90, 55], - ["jump_false", 89, "rel_nn_98", 90, 55], - ["gt_float", 87, 86, 6, 90, 55], - ["jump", "rel_done_99", 90, 55], - "rel_nn_98", - ["is_text", 88, 86, 90, 55], - ["jump_false", 88, "rel_err_100", 90, 55], - ["is_text", 89, 6, 90, 55], - ["jump_false", 89, "rel_err_100", 90, 55], - ["gt_text", 87, 86, 6, 90, 55], - ["jump", "rel_done_99", 90, 55], - "rel_err_100", - ["disrupt", 90, 55], - "rel_done_99", - ["move", 85, 87, 90, 55], - "or_end_90", - ["jump_false", 85, "if_else_88", 90, 55], - ["load_field", 90, 5, "mtime", 91, 22], - ["move", 6, 90, 91, 22], - ["jump", "if_end_89", 91, 22], - "if_else_88", - "if_end_89", - ["jump", "if_end_83", 91, 22], - "if_else_82", - "if_end_83", - ["null", 91, 94, 23], - ["is_identical", 92, 6, 91, 94, 23], - ["jump_true", 92, "ne_nid_105", 94, 23], - ["jump", "ne_ni_106", 94, 23], - "ne_nid_105", - ["false", 92, 94, 23], - ["jump", "ne_done_104", 94, 23], - "ne_ni_106", - ["is_int", 93, 6, 94, 23], - ["jump_false", 93, "ne_nn_107", 94, 23], - ["is_int", 94, 91, 94, 23], - ["jump_false", 94, "ne_nn_107", 94, 23], - ["ne_int", 92, 6, 91, 94, 23], - ["jump", "ne_done_104", 94, 23], - "ne_nn_107", - ["is_num", 93, 6, 94, 23], - ["jump_false", 93, "ne_nt_108", 94, 23], - ["is_num", 94, 91, 94, 23], - ["jump_false", 94, "ne_nt_108", 94, 23], - ["ne_float", 92, 6, 91, 94, 23], - ["jump", "ne_done_104", 94, 23], - "ne_nt_108", - ["is_text", 93, 6, 94, 23], - ["jump_false", 93, "ne_nnl_109", 94, 23], - ["is_text", 94, 91, 94, 23], - ["jump_false", 94, "ne_nnl_109", 94, 23], - ["ne_text", 92, 6, 91, 94, 23], - ["jump", "ne_done_104", 94, 23], - "ne_nnl_109", - ["is_null", 93, 6, 94, 23], - ["jump_false", 93, "ne_nb_110", 94, 23], - ["is_null", 94, 91, 94, 23], - ["jump_false", 94, "ne_nb_110", 94, 23], - ["false", 92, 94, 23], - ["jump", "ne_done_104", 94, 23], - "ne_nb_110", - ["is_bool", 93, 6, 94, 23], - ["jump_false", 93, "ne_mis_111", 94, 23], - ["is_bool", 94, 91, 94, 23], - ["jump_false", 94, "ne_mis_111", 94, 23], - ["ne_bool", 92, 6, 91, 94, 23], - ["jump", "ne_done_104", 94, 23], - "ne_mis_111", - ["true", 92, 94, 23], - "ne_done_104", - ["move", 95, 92, 94, 23], - ["jump_false", 95, "and_end_103", 94, 23], - ["get", 97, 4, 1, 94, 31], - ["is_proxy", 98, 97, 94, 31], - ["jump_false", 98, "record_path_112", 94, 31], - ["null", 99, 94, 31], - ["access", 100, "is_file", 94, 31], - ["array", 101, 0, 94, 31], - ["push", 101, 1, 94, 31], - ["frame", 102, 97, 2, 94, 31], - ["setarg", 102, 0, 99, 94, 31], - ["setarg", 102, 1, 100, 94, 31], - ["setarg", 102, 2, 101, 94, 31], - ["invoke", 102, 96, 94, 31], - ["jump", "call_done_113", 94, 31], - "record_path_112", - ["load_field", 103, 97, "is_file", 94, 31], - ["frame", 104, 103, 1, 94, 31], - ["setarg", 104, 0, 97, 94, 31], - ["setarg", 104, 1, 1, 94, 31], - ["invoke", 104, 96, 94, 31], - "call_done_113", - ["move", 95, 96, 94, 31], - "and_end_103", - ["jump_false", 95, "if_else_101", 94, 31], - ["get", 106, 4, 1, 95, 17], - ["is_proxy", 107, 106, 95, 17], - ["jump_false", 107, "record_path_114", 95, 17], - ["null", 108, 95, 17], - ["access", 109, "stat", 95, 17], - ["array", 110, 0, 95, 17], - ["push", 110, 1, 95, 17], - ["frame", 111, 106, 2, 95, 17], - ["setarg", 111, 0, 108, 95, 17], - ["setarg", 111, 1, 109, 95, 17], - ["setarg", 111, 2, 110, 95, 17], - ["invoke", 111, 105, 95, 17], - ["jump", "call_done_115", 95, 17], - "record_path_114", - ["load_field", 112, 106, "stat", 95, 17], - ["frame", 113, 112, 1, 95, 17], - ["setarg", 113, 0, 106, 95, 17], - ["setarg", 113, 1, 1, 95, 17], - ["invoke", 113, 105, 95, 17], - "call_done_115", - ["move", 4, 105, 95, 17], - ["load_field", 114, 4, "mtime", 96, 11], - ["is_int", 116, 114, 96, 27], - ["jump_false", 116, "rel_ni_118", 96, 27], - ["is_int", 117, 6, 96, 27], - ["jump_false", 117, "rel_ni_118", 96, 27], - ["gt_int", 115, 114, 6, 96, 27], - ["jump", "rel_done_120", 96, 27], - "rel_ni_118", - ["is_num", 116, 114, 96, 27], - ["jump_false", 116, "rel_nn_119", 96, 27], - ["is_num", 117, 6, 96, 27], - ["jump_false", 117, "rel_nn_119", 96, 27], - ["gt_float", 115, 114, 6, 96, 27], - ["jump", "rel_done_120", 96, 27], - "rel_nn_119", - ["is_text", 116, 114, 96, 27], - ["jump_false", 116, "rel_err_121", 96, 27], - ["is_text", 117, 6, 96, 27], - ["jump_false", 117, "rel_err_121", 96, 27], - ["gt_text", 115, 114, 6, 96, 27], - ["jump", "rel_done_120", 96, 27], - "rel_err_121", - ["disrupt", 96, 27], - "rel_done_120", - ["jump_false", 115, "if_else_116", 96, 27], - ["load_dynamic", 118, 7, 8, 97, 29], - ["is_array", 119, 2, 97, 29], - ["jump_false", 119, "push_err_122", 97, 29], - ["push", 2, 118, 97, 29], - ["jump", "push_done_123", 97, 29], - "push_err_122", - ["disrupt", 97, 29], - "push_done_123", - ["jump", "if_end_117", 97, 29], - "if_else_116", - "if_end_117", - ["jump", "if_end_102", 97, 29], - "if_else_101", - "if_end_102", - ["access", 120, 1, 100, 15], - ["is_int", 122, 8, 100, 15], - ["jump_false", 122, "add_ni_124", 100, 15], - ["add_int", 121, 8, 120, 100, 15], - ["jump", "add_done_126", 100, 15], - "add_ni_124", - ["is_text", 122, 8, 100, 15], - ["jump_false", 122, "add_nt_125", 100, 15], - ["is_text", 123, 120, 100, 15], - ["jump_false", 123, "add_nt_125", 100, 15], - ["concat", 121, 8, 120, 100, 15], - ["jump", "add_done_126", 100, 15], - "add_nt_125", - ["is_num", 122, 8, 100, 15], - ["jump_false", 122, "add_err_127", 100, 15], - ["add_float", 121, 8, 120, 100, 15], - ["jump", "add_done_126", 100, 15], - "add_err_127", - ["disrupt", 100, 15], - "add_done_126", - ["move", 8, 121, 100, 15], - ["jump", "while_start_54", 100, 15], - "while_end_55", - ["length", 124, 2, 102, 14], - ["access", 125, 0, 102, 23], - "_nop_tc_7", - "_nop_tc_8", - "_nop_tc_9", - ["jump", "rel_ni_130", 102, 23], - ["gt_int", 126, 124, 125, 102, 23], - ["jump", "rel_done_132", 102, 23], - "rel_ni_130", - ["is_num", 127, 124, 102, 23], - ["jump_false", 127, "rel_nn_131", 102, 23], - ["is_num", 128, 125, 102, 23], - ["jump_false", 128, "rel_nn_131", 102, 23], - ["gt_float", 126, 124, 125, 102, 23], - ["jump", "rel_done_132", 102, 23], - "rel_nn_131", - ["is_text", 127, 124, 102, 23], - ["jump_false", 127, "rel_err_133", 102, 23], - ["is_text", 128, 125, 102, 23], - ["jump_false", 128, "rel_err_133", 102, 23], - ["gt_text", 126, 124, 125, 102, 23], - ["jump", "rel_done_132", 102, 23], - "rel_err_133", - ["disrupt", 102, 23], - "rel_done_132", - ["jump_false", 126, "if_else_128", 102, 23], - ["access", 129, "warning: bytecode is stale for: ", 103, 11], - ["access", 130, ", ", 103, 60], - [ - "access", - 132, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 103, - 48 - ], - ["frame", 133, 132, 2, 103, 48], - ["null", 134, 103, 48], - ["setarg", 133, 0, 134, 103, 48], - ["setarg", 133, 1, 2, 103, 48], - ["setarg", 133, 2, 130, 103, 48], - ["invoke", 133, 131, 103, 48], - "_nop_tc_10", - ["jump", "add_ni_134", 103, 48], - ["is_int", 137, 131, 103, 48], - ["jump_false", 137, "add_ni_134", 103, 48], - ["add_int", 135, 129, 131, 103, 48], - ["jump", "add_done_136", 103, 48], - "add_ni_134", - ["is_text", 137, 131, 103, 48], - ["jump_false", 137, "add_nt_135", 103, 48], - ["concat", 135, 129, 131, 103, 48], - ["jump", "add_done_136", 103, 48], - "add_nt_135", - ["is_num", 136, 129, 103, 48], - ["jump_false", 136, "add_err_137", 103, 48], - ["is_num", 137, 131, 103, 48], - ["jump_false", 137, "add_err_137", 103, 48], - ["add_float", 135, 129, 131, 103, 48], - ["jump", "add_done_136", 103, 48], - "add_err_137", - ["disrupt", 103, 48], - "add_done_136", - ["access", 138, "\n", 103, 68], - ["is_int", 140, 135, 103, 68], - ["jump_false", 140, "add_ni_138", 103, 68], - "_nop_tc_11", - ["jump", "add_ni_138", 103, 68], - ["add_int", 139, 135, 138, 103, 68], - ["jump", "add_done_140", 103, 68], - "add_ni_138", - ["is_text", 140, 135, 103, 68], - ["jump_false", 140, "add_nt_139", 103, 68], - ["concat", 139, 135, 138, 103, 68], - ["jump", "add_done_140", 103, 68], - "add_nt_139", - ["is_num", 140, 135, 103, 68], - ["jump_false", 140, "add_err_141", 103, 68], - ["is_num", 141, 138, 103, 68], - ["jump_false", 141, "add_err_141", 103, 68], - ["add_float", 139, 135, 138, 103, 68], - ["jump", "add_done_140", 103, 68], - "add_err_141", - ["disrupt", 103, 68], - "add_done_140", - [ - "access", - 143, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 103, - 5 - ], - ["frame", 144, 143, 1, 103, 5], - ["null", 145, 103, 5], - ["setarg", 144, 0, 145, 103, 5], - ["setarg", 144, 1, 139, 103, 5], - ["invoke", 144, 142, 103, 5], - ["access", 146, "run 'make regen' to update\n", 104, 11], - [ - "access", - 148, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 104, - 5 - ], - ["frame", 149, 148, 1, 104, 5], - ["null", 150, 104, 5], - ["setarg", 149, 0, 150, 104, 5], - ["setarg", 149, 1, 146, 104, 5], - ["invoke", 149, 147, 104, 5], - ["jump", "if_end_129", 104, 5], - "if_else_128", - "if_end_129", - ["null", 151, 104, 5], - ["return", 151, 104, 5] - ], - "name": "check_mach_stale", - "filename": "internal/bootstrap.cm", - "nr_args": 0 - }, - { - "disruption_pc": 0, - "nr_slots": 98, - "nr_close_slots": 0, - "instructions": [ - ["get", 14, 7, 1, 111, 20], - ["frame", 15, 14, 2, 111, 20], - ["null", 16, 111, 20], - ["setarg", 15, 0, 16, 111, 20], - ["setarg", 15, 1, 1, 111, 20], - ["setarg", 15, 2, 2, 111, 20], - ["invoke", 15, 13, 111, 20], - ["move", 4, 13, 111, 20], - ["load_field", 17, 4, "tokens", 112, 23], - ["get", 18, 7, 1, 112, 57], - ["get", 20, 5, 1, 112, 13], - ["frame", 21, 20, 4, 112, 13], - ["null", 22, 112, 13], - ["setarg", 21, 0, 22, 112, 13], - ["setarg", 21, 1, 17, 112, 13], - ["setarg", 21, 2, 1, 112, 13], - ["setarg", 21, 3, 2, 112, 13], - ["setarg", 21, 4, 18, 112, 13], - ["invoke", 21, 19, 112, 13], - ["move", 11, 19, 112, 13], - ["access", 7, 0, 113, 12], - ["access", 8, -1, 114, 19], - ["null", 6, 115, 18], - ["null", 12, 116, 11], - ["null", 3, 117, 13], - ["null", 5, 118, 14], - ["null", 9, 119, 13], - ["load_field", 23, 11, "errors", 120, 20], - ["null", 24, 120, 34], - ["is_identical", 25, 23, 24, 120, 34], - ["jump_true", 25, "ne_nid_144", 120, 34], - ["jump", "ne_ni_145", 120, 34], - "ne_nid_144", - ["false", 25, 120, 34], - ["jump", "ne_done_143", 120, 34], - "ne_ni_145", - ["is_int", 26, 23, 120, 34], - ["jump_false", 26, "ne_nn_146", 120, 34], - ["is_int", 27, 24, 120, 34], - ["jump_false", 27, "ne_nn_146", 120, 34], - ["ne_int", 25, 23, 24, 120, 34], - ["jump", "ne_done_143", 120, 34], - "ne_nn_146", - ["is_num", 26, 23, 120, 34], - ["jump_false", 26, "ne_nt_147", 120, 34], - ["is_num", 27, 24, 120, 34], - ["jump_false", 27, "ne_nt_147", 120, 34], - ["ne_float", 25, 23, 24, 120, 34], - ["jump", "ne_done_143", 120, 34], - "ne_nt_147", - ["is_text", 26, 23, 120, 34], - ["jump_false", 26, "ne_nnl_148", 120, 34], - ["is_text", 27, 24, 120, 34], - ["jump_false", 27, "ne_nnl_148", 120, 34], - ["ne_text", 25, 23, 24, 120, 34], - ["jump", "ne_done_143", 120, 34], - "ne_nnl_148", - ["is_null", 26, 23, 120, 34], - ["jump_false", 26, "ne_nb_149", 120, 34], - ["is_null", 27, 24, 120, 34], - ["jump_false", 27, "ne_nb_149", 120, 34], - ["false", 25, 120, 34], - ["jump", "ne_done_143", 120, 34], - "ne_nb_149", - ["is_bool", 26, 23, 120, 34], - ["jump_false", 26, "ne_mis_150", 120, 34], - ["is_bool", 27, 24, 120, 34], - ["jump_false", 27, "ne_mis_150", 120, 34], - ["ne_bool", 25, 23, 24, 120, 34], - ["jump", "ne_done_143", 120, 34], - "ne_mis_150", - ["true", 25, 120, 34], - "ne_done_143", - ["move", 28, 25, 120, 34], - ["jump_false", 28, "and_end_142", 120, 34], - ["load_field", 29, 11, "errors", 120, 49], - ["length", 30, 29, 120, 49], - ["access", 31, 0, 120, 63], - "_nop_tc_1", - "_nop_tc_2", - "_nop_tc_3", - ["jump", "rel_ni_151", 120, 63], - ["gt_int", 32, 30, 31, 120, 63], - ["jump", "rel_done_153", 120, 63], - "rel_ni_151", - ["is_num", 33, 30, 120, 63], - ["jump_false", 33, "rel_nn_152", 120, 63], - ["is_num", 34, 31, 120, 63], - ["jump_false", 34, "rel_nn_152", 120, 63], - ["gt_float", 32, 30, 31, 120, 63], - ["jump", "rel_done_153", 120, 63], - "rel_nn_152", - ["is_text", 33, 30, 120, 63], - ["jump_false", 33, "rel_err_154", 120, 63], - ["is_text", 34, 31, 120, 63], - ["jump_false", 34, "rel_err_154", 120, 63], - ["gt_text", 32, 30, 31, 120, 63], - ["jump", "rel_done_153", 120, 63], - "rel_err_154", - ["disrupt", 120, 63], - "rel_done_153", - ["move", 28, 32, 120, 63], - "and_end_142", - ["move", 10, 28, 120, 63], - ["jump_false", 10, "if_else_155", 121, 7], - "while_start_157", - ["load_field", 35, 11, "errors", 122, 24], - ["length", 36, 35, 122, 24], - ["is_int", 38, 7, 122, 24], - ["jump_false", 38, "rel_ni_159", 122, 24], - "_nop_tc_4", - "_nop_tc_5", - ["lt_int", 37, 7, 36, 122, 24], - ["jump", "rel_done_161", 122, 24], - "rel_ni_159", - ["is_num", 38, 7, 122, 24], - ["jump_false", 38, "rel_nn_160", 122, 24], - ["is_num", 39, 36, 122, 24], - ["jump_false", 39, "rel_nn_160", 122, 24], - ["lt_float", 37, 7, 36, 122, 24], - ["jump", "rel_done_161", 122, 24], - "rel_nn_160", - ["is_text", 38, 7, 122, 24], - ["jump_false", 38, "rel_err_162", 122, 24], - ["is_text", 39, 36, 122, 24], - ["jump_false", 39, "rel_err_162", 122, 24], - ["lt_text", 37, 7, 36, 122, 24], - ["jump", "rel_done_161", 122, 24], - "rel_err_162", - ["disrupt", 122, 24], - "rel_done_161", - ["jump_false", 37, "while_end_158", 122, 24], - ["load_field", 40, 11, "errors", 123, 11], - ["load_dynamic", 41, 40, 7, 123, 22], - ["move", 12, 41, 123, 22], - ["load_field", 42, 12, "message", 124, 13], - ["move", 3, 42, 124, 13], - ["load_field", 43, 12, "line", 125, 14], - ["move", 5, 43, 125, 14], - ["load_field", 44, 12, "column", 126, 13], - ["move", 9, 44, 126, 13], - ["is_identical", 45, 3, 6, 127, 18], - ["jump_true", 45, "ne_nid_167", 127, 18], - ["jump", "ne_ni_168", 127, 18], - "ne_nid_167", - ["false", 45, 127, 18], - ["jump", "ne_done_166", 127, 18], - "ne_ni_168", - ["is_int", 46, 3, 127, 18], - ["jump_false", 46, "ne_nn_169", 127, 18], - ["is_int", 47, 6, 127, 18], - ["jump_false", 47, "ne_nn_169", 127, 18], - ["ne_int", 45, 3, 6, 127, 18], - ["jump", "ne_done_166", 127, 18], - "ne_nn_169", - ["is_num", 46, 3, 127, 18], - ["jump_false", 46, "ne_nt_170", 127, 18], - ["is_num", 47, 6, 127, 18], - ["jump_false", 47, "ne_nt_170", 127, 18], - ["ne_float", 45, 3, 6, 127, 18], - ["jump", "ne_done_166", 127, 18], - "ne_nt_170", - ["is_text", 46, 3, 127, 18], - ["jump_false", 46, "ne_nnl_171", 127, 18], - ["is_text", 47, 6, 127, 18], - ["jump_false", 47, "ne_nnl_171", 127, 18], - ["ne_text", 45, 3, 6, 127, 18], - ["jump", "ne_done_166", 127, 18], - "ne_nnl_171", - ["is_null", 46, 3, 127, 18], - ["jump_false", 46, "ne_nb_172", 127, 18], - ["is_null", 47, 6, 127, 18], - ["jump_false", 47, "ne_nb_172", 127, 18], - ["false", 45, 127, 18], - ["jump", "ne_done_166", 127, 18], - "ne_nb_172", - ["is_bool", 46, 3, 127, 18], - ["jump_false", 46, "ne_mis_173", 127, 18], - ["is_bool", 47, 6, 127, 18], - ["jump_false", 47, "ne_mis_173", 127, 18], - ["ne_bool", 45, 3, 6, 127, 18], - ["jump", "ne_done_166", 127, 18], - "ne_mis_173", - ["true", 45, 127, 18], - "ne_done_166", - ["move", 48, 45, 127, 18], - ["jump_true", 48, "or_end_165", 127, 18], - ["is_identical", 49, 5, 8, 127, 38], - ["jump_true", 49, "ne_nid_175", 127, 38], - ["jump", "ne_ni_176", 127, 38], - "ne_nid_175", - ["false", 49, 127, 38], - ["jump", "ne_done_174", 127, 38], - "ne_ni_176", - ["is_int", 50, 5, 127, 38], - ["jump_false", 50, "ne_nn_177", 127, 38], - ["is_int", 51, 8, 127, 38], - ["jump_false", 51, "ne_nn_177", 127, 38], - ["ne_int", 49, 5, 8, 127, 38], - ["jump", "ne_done_174", 127, 38], - "ne_nn_177", - ["is_num", 50, 5, 127, 38], - ["jump_false", 50, "ne_nt_178", 127, 38], - ["is_num", 51, 8, 127, 38], - ["jump_false", 51, "ne_nt_178", 127, 38], - ["ne_float", 49, 5, 8, 127, 38], - ["jump", "ne_done_174", 127, 38], - "ne_nt_178", - ["is_text", 50, 5, 127, 38], - ["jump_false", 50, "ne_nnl_179", 127, 38], - ["is_text", 51, 8, 127, 38], - ["jump_false", 51, "ne_nnl_179", 127, 38], - ["ne_text", 49, 5, 8, 127, 38], - ["jump", "ne_done_174", 127, 38], - "ne_nnl_179", - ["is_null", 50, 5, 127, 38], - ["jump_false", 50, "ne_nb_180", 127, 38], - ["is_null", 51, 8, 127, 38], - ["jump_false", 51, "ne_nb_180", 127, 38], - ["false", 49, 127, 38], - ["jump", "ne_done_174", 127, 38], - "ne_nb_180", - ["is_bool", 50, 5, 127, 38], - ["jump_false", 50, "ne_mis_181", 127, 38], - ["is_bool", 51, 8, 127, 38], - ["jump_false", 51, "ne_mis_181", 127, 38], - ["ne_bool", 49, 5, 8, 127, 38], - ["jump", "ne_done_174", 127, 38], - "ne_mis_181", - ["true", 49, 127, 38], - "ne_done_174", - ["move", 48, 49, 127, 38], - "or_end_165", - ["jump_false", 48, "if_else_163", 127, 38], - ["null", 52, 128, 21], - ["is_identical", 53, 5, 52, 128, 21], - ["jump_true", 53, "ne_nid_186", 128, 21], - ["jump", "ne_ni_187", 128, 21], - "ne_nid_186", - ["false", 53, 128, 21], - ["jump", "ne_done_185", 128, 21], - "ne_ni_187", - ["is_int", 54, 5, 128, 21], - ["jump_false", 54, "ne_nn_188", 128, 21], - ["is_int", 55, 52, 128, 21], - ["jump_false", 55, "ne_nn_188", 128, 21], - ["ne_int", 53, 5, 52, 128, 21], - ["jump", "ne_done_185", 128, 21], - "ne_nn_188", - ["is_num", 54, 5, 128, 21], - ["jump_false", 54, "ne_nt_189", 128, 21], - ["is_num", 55, 52, 128, 21], - ["jump_false", 55, "ne_nt_189", 128, 21], - ["ne_float", 53, 5, 52, 128, 21], - ["jump", "ne_done_185", 128, 21], - "ne_nt_189", - ["is_text", 54, 5, 128, 21], - ["jump_false", 54, "ne_nnl_190", 128, 21], - ["is_text", 55, 52, 128, 21], - ["jump_false", 55, "ne_nnl_190", 128, 21], - ["ne_text", 53, 5, 52, 128, 21], - ["jump", "ne_done_185", 128, 21], - "ne_nnl_190", - ["is_null", 54, 5, 128, 21], - ["jump_false", 54, "ne_nb_191", 128, 21], - ["is_null", 55, 52, 128, 21], - ["jump_false", 55, "ne_nb_191", 128, 21], - ["false", 53, 128, 21], - ["jump", "ne_done_185", 128, 21], - "ne_nb_191", - ["is_bool", 54, 5, 128, 21], - ["jump_false", 54, "ne_mis_192", 128, 21], - ["is_bool", 55, 52, 128, 21], - ["jump_false", 55, "ne_mis_192", 128, 21], - ["ne_bool", 53, 5, 52, 128, 21], - ["jump", "ne_done_185", 128, 21], - "ne_mis_192", - ["true", 53, 128, 21], - "ne_done_185", - ["move", 56, 53, 128, 21], - ["jump_false", 56, "and_end_184", 128, 21], - ["null", 57, 128, 36], - ["is_identical", 58, 9, 57, 128, 36], - ["jump_true", 58, "ne_nid_194", 128, 36], - ["jump", "ne_ni_195", 128, 36], - "ne_nid_194", - ["false", 58, 128, 36], - ["jump", "ne_done_193", 128, 36], - "ne_ni_195", - ["is_int", 59, 9, 128, 36], - ["jump_false", 59, "ne_nn_196", 128, 36], - ["is_int", 60, 57, 128, 36], - ["jump_false", 60, "ne_nn_196", 128, 36], - ["ne_int", 58, 9, 57, 128, 36], - ["jump", "ne_done_193", 128, 36], - "ne_nn_196", - ["is_num", 59, 9, 128, 36], - ["jump_false", 59, "ne_nt_197", 128, 36], - ["is_num", 60, 57, 128, 36], - ["jump_false", 60, "ne_nt_197", 128, 36], - ["ne_float", 58, 9, 57, 128, 36], - ["jump", "ne_done_193", 128, 36], - "ne_nt_197", - ["is_text", 59, 9, 128, 36], - ["jump_false", 59, "ne_nnl_198", 128, 36], - ["is_text", 60, 57, 128, 36], - ["jump_false", 60, "ne_nnl_198", 128, 36], - ["ne_text", 58, 9, 57, 128, 36], - ["jump", "ne_done_193", 128, 36], - "ne_nnl_198", - ["is_null", 59, 9, 128, 36], - ["jump_false", 59, "ne_nb_199", 128, 36], - ["is_null", 60, 57, 128, 36], - ["jump_false", 60, "ne_nb_199", 128, 36], - ["false", 58, 128, 36], - ["jump", "ne_done_193", 128, 36], - "ne_nb_199", - ["is_bool", 59, 9, 128, 36], - ["jump_false", 59, "ne_mis_200", 128, 36], - ["is_bool", 60, 57, 128, 36], - ["jump_false", 60, "ne_mis_200", 128, 36], - ["ne_bool", 58, 9, 57, 128, 36], - ["jump", "ne_done_193", 128, 36], - "ne_mis_200", - ["true", 58, 128, 36], - "ne_done_193", - ["move", 56, 58, 128, 36], - "and_end_184", - ["jump_false", 56, "if_else_182", 128, 36], - [ - "access", - 62, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 1, - 1 - ], - ["frame", 63, 62, 1, 1, 1], - ["null", 64, 1, 1], - ["setarg", 63, 0, 64, 1, 1], - ["setarg", 63, 1, 5, 1, 1], - ["invoke", 63, 61, 1, 1], - [ - "access", - 66, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 1, - 1 - ], - ["frame", 67, 66, 1, 1, 1], - ["null", 68, 1, 1], - ["setarg", 67, 0, 68, 1, 1], - ["setarg", 67, 1, 9, 1, 1], - ["invoke", 67, 65, 1, 1], - ["array", 69, 0, 1, 1], - ["push", 69, 2, 1, 1], - ["push", 69, 61, 1, 1], - ["push", 69, 65, 1, 1], - ["push", 69, 3, 1, 1], - [ - "access", - 70, - { - "name": "format", - "kind": "name", - "make": "intrinsic" - }, - 1, - 1 - ], - ["access", 71, "{0}:{1}:{2}: error: {3}", 1, 1], - ["frame", 73, 70, 2, 1, 1], - ["null", 74, 1, 1], - ["setarg", 73, 0, 74, 1, 1], - ["setarg", 73, 1, 71, 1, 1], - ["setarg", 73, 2, 69, 1, 1], - ["invoke", 73, 72, 1, 1], - [ - "access", - 76, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 129, - 11 - ], - ["frame", 77, 76, 1, 129, 11], - ["null", 78, 129, 11], - ["setarg", 77, 0, 78, 129, 11], - ["setarg", 77, 1, 72, 129, 11], - ["invoke", 77, 75, 129, 11], - ["jump", "if_end_183", 129, 11], - "if_else_182", - ["array", 79, 0, 1, 1], - ["push", 79, 2, 1, 1], - ["push", 79, 3, 1, 1], - [ - "access", - 80, - { - "name": "format", - "kind": "name", - "make": "intrinsic" - }, - 1, - 1 - ], - ["access", 81, "{0}: error: {1}", 1, 1], - ["frame", 83, 80, 2, 1, 1], - ["null", 84, 1, 1], - ["setarg", 83, 0, 84, 1, 1], - ["setarg", 83, 1, 81, 1, 1], - ["setarg", 83, 2, 79, 1, 1], - ["invoke", 83, 82, 1, 1], - [ - "access", - 86, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 131, - 11 - ], - ["frame", 87, 86, 1, 131, 11], - ["null", 88, 131, 11], - ["setarg", 87, 0, 88, 131, 11], - ["setarg", 87, 1, 82, 131, 11], - ["invoke", 87, 85, 131, 11], - "if_end_183", - ["jump", "if_end_164", 131, 11], - "if_else_163", - "if_end_164", - ["move", 8, 5, 134, 19], - ["move", 6, 3, 135, 18], - ["access", 89, 1, 136, 17], - ["is_int", 91, 7, 136, 17], - ["jump_false", 91, "add_ni_201", 136, 17], - ["add_int", 90, 7, 89, 136, 17], - ["jump", "add_done_203", 136, 17], - "add_ni_201", - ["is_text", 91, 7, 136, 17], - ["jump_false", 91, "add_nt_202", 136, 17], - ["is_text", 92, 89, 136, 17], - ["jump_false", 92, "add_nt_202", 136, 17], - ["concat", 90, 7, 89, 136, 17], - ["jump", "add_done_203", 136, 17], - "add_nt_202", - ["is_num", 91, 7, 136, 17], - ["jump_false", 91, "add_err_204", 136, 17], - ["add_float", 90, 7, 89, 136, 17], - ["jump", "add_done_203", 136, 17], - "add_err_204", - ["disrupt", 136, 17], - "add_done_203", - ["move", 7, 90, 136, 17], - ["jump", "while_start_157", 136, 17], - "while_end_158", - ["disrupt", 138, 5], - ["jump", "if_end_156", 138, 5], - "if_else_155", - "if_end_156", - ["get", 94, 2, 1, 140, 9], - ["frame", 95, 94, 1, 140, 9], - ["null", 96, 140, 9], - ["setarg", 95, 0, 96, 140, 9], - ["setarg", 95, 1, 11, 140, 9], - ["invoke", 95, 93, 140, 9], - ["move", 11, 93, 140, 9], - ["return", 11, 141, 10], - ["null", 97, 141, 10], - ["return", 97, 141, 10] - ], - "name": "analyze", - "filename": "internal/bootstrap.cm", - "nr_args": 2 - }, - { - "disruption_pc": 0, - "nr_slots": 46, - "nr_close_slots": 0, - "instructions": [ - ["get", 7, 10, 1, 153, 18], - ["frame", 8, 7, 1, 153, 18], - ["null", 9, 153, 18], - ["setarg", 8, 0, 9, 153, 18], - ["setarg", 8, 1, 2, 153, 18], - ["invoke", 8, 6, 153, 18], - ["move", 4, 6, 153, 18], - [ - "access", - 10, - { - "name": "os", - "kind": "name", - "make": "intrinsic" - }, - 154, - 7 - ], - ["load_field", 11, 10, "_verify_ir", 154, 7], - ["jump_false", 11, "if_else_205", 154, 7], - ["get", 12, 8, 1, 155, 9], - ["null", 13, 155, 27], - ["is_identical", 14, 12, 13, 155, 27], - ["jump_true", 14, "eq_done_209", 155, 27], - ["is_int", 15, 12, 155, 27], - ["jump_false", 15, "eq_ni_210", 155, 27], - "_nop_tc_1", - ["jump", "eq_ni_210", 155, 27], - ["eq_int", 14, 12, 13, 155, 27], - ["jump", "eq_done_209", 155, 27], - "eq_ni_210", - ["is_num", 15, 12, 155, 27], - ["jump_false", 15, "eq_nn_211", 155, 27], - ["is_num", 16, 13, 155, 27], - ["jump_false", 16, "eq_nn_211", 155, 27], - ["eq_float", 14, 12, 13, 155, 27], - ["jump", "eq_done_209", 155, 27], - "eq_nn_211", - ["is_text", 15, 12, 155, 27], - ["jump_false", 15, "eq_nt_212", 155, 27], - ["is_text", 16, 13, 155, 27], - ["jump_false", 16, "eq_nt_212", 155, 27], - ["eq_text", 14, 12, 13, 155, 27], - ["jump", "eq_done_209", 155, 27], - "eq_nt_212", - ["is_null", 15, 12, 155, 27], - ["jump_false", 15, "eq_nnl_213", 155, 27], - ["is_null", 16, 13, 155, 27], - ["jump_false", 16, "eq_nnl_213", 155, 27], - ["true", 14, 155, 27], - ["jump", "eq_done_209", 155, 27], - "eq_nnl_213", - ["is_bool", 15, 12, 155, 27], - ["jump_false", 15, "eq_nb_214", 155, 27], - ["is_bool", 16, 13, 155, 27], - ["jump_false", 16, "eq_nb_214", 155, 27], - ["eq_bool", 14, 12, 13, 155, 27], - ["jump", "eq_done_209", 155, 27], - "eq_nb_214", - ["false", 14, 155, 27], - "eq_done_209", - ["jump_false", 14, "if_else_207", 155, 27], - ["access", 17, "verify_ir", 156, 34], - ["get", 18, 13, 1, 156, 47], - ["get", 20, 17, 1, 156, 24], - ["frame", 21, 20, 2, 156, 24], - ["null", 22, 156, 24], - ["setarg", 21, 0, 22, 156, 24], - ["setarg", 21, 1, 17, 156, 24], - ["setarg", 21, 2, 18, 156, 24], - ["invoke", 21, 19, 156, 24], - ["put", 19, 8, 1, 156, 24], - ["jump", "if_end_208", 156, 24], - "if_else_207", - "if_end_208", - ["true", 23, 158, 24], - ["store_field", 4, 23, "_verify", 158, 5], - ["get", 24, 8, 1, 159, 28], - ["store_field", 4, 24, "_verify_mod", 159, 5], - ["jump", "if_end_206", 159, 5], - "if_else_205", - "if_end_206", - ["get", 26, 20, 1, 161, 19], - ["frame", 27, 26, 1, 161, 19], - ["null", 28, 161, 19], - ["setarg", 27, 0, 28, 161, 19], - ["setarg", 27, 1, 4, 161, 19], - ["invoke", 27, 25, 161, 19], - ["move", 5, 25, 161, 19], - ["load_field", 29, 5, "_verify", 163, 7], - ["jump_false", 29, "if_else_215", 163, 7], - ["delete", 30, 5, "_verify"], - ["delete", 31, 5, "_verify_mod"], - ["jump", "if_end_216", 165, 12], - "if_else_215", - "if_end_216", - ["get", 33, 21, 1, 167, 32], - ["is_proxy", 34, 33, 167, 32], - ["jump_false", 34, "record_path_217", 167, 32], - ["null", 35, 167, 32], - ["access", 36, "encode", 167, 32], - ["array", 37, 0, 167, 32], - ["push", 37, 5, 167, 32], - ["frame", 38, 33, 2, 167, 32], - ["setarg", 38, 0, 35, 167, 32], - ["setarg", 38, 1, 36, 167, 32], - ["setarg", 38, 2, 37, 167, 32], - ["invoke", 38, 32, 167, 32], - ["jump", "call_done_218", 167, 32], - "record_path_217", - ["load_field", 39, 33, "encode", 167, 32], - ["frame", 40, 39, 1, 167, 32], - ["setarg", 40, 0, 33, 167, 32], - ["setarg", 40, 1, 5, 167, 32], - ["invoke", 40, 32, 167, 32], - "call_done_218", - [ - "access", - 42, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 167, - 10 - ], - ["frame", 43, 42, 3, 167, 10], - ["null", 44, 167, 10], - ["setarg", 43, 0, 44, 167, 10], - ["setarg", 43, 1, 1, 167, 10], - ["setarg", 43, 2, 32, 167, 10], - ["setarg", 43, 3, 3, 167, 10], - ["invoke", 43, 41, 167, 10], - ["return", 41, 167, 10], - ["null", 45, 167, 10], - ["return", 45, 167, 10] - ], - "name": "run_ast", - "filename": "internal/bootstrap.cm", - "nr_args": 3 - }, - { - "disruption_pc": 0, - "nr_slots": 23, - "nr_close_slots": 0, - "instructions": [ - ["get", 6, 10, 1, 172, 18], - ["frame", 7, 6, 1, 172, 18], - ["null", 8, 172, 18], - ["setarg", 7, 0, 8, 172, 18], - ["setarg", 7, 1, 2, 172, 18], - ["invoke", 7, 5, 172, 18], - ["move", 4, 5, 172, 18], - ["get", 10, 21, 1, 173, 32], - ["is_proxy", 11, 10, 173, 32], - ["jump_false", 11, "record_path_219", 173, 32], - ["null", 12, 173, 32], - ["access", 13, "encode", 173, 32], - ["array", 14, 0, 173, 32], - ["push", 14, 4, 173, 32], - ["frame", 15, 10, 2, 173, 32], - ["setarg", 15, 0, 12, 173, 32], - ["setarg", 15, 1, 13, 173, 32], - ["setarg", 15, 2, 14, 173, 32], - ["invoke", 15, 9, 173, 32], - ["jump", "call_done_220", 173, 32], - "record_path_219", - ["load_field", 16, 10, "encode", 173, 32], - ["frame", 17, 16, 1, 173, 32], - ["setarg", 17, 0, 10, 173, 32], - ["setarg", 17, 1, 4, 173, 32], - ["invoke", 17, 9, 173, 32], - "call_done_220", - [ - "access", - 19, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 173, - 10 - ], - ["frame", 20, 19, 3, 173, 10], - ["null", 21, 173, 10], - ["setarg", 20, 0, 21, 173, 10], - ["setarg", 20, 1, 1, 173, 10], - ["setarg", 20, 2, 9, 173, 10], - ["setarg", 20, 3, 3, 173, 10], - ["invoke", 20, 18, 173, 10], - ["return", 18, 173, 10], - ["null", 22, 173, 10], - ["return", 22, 173, 10] - ], - "name": "run_ast_noopt", - "filename": "internal/bootstrap.cm", - "nr_args": 3 - }, - { - "disruption_pc": 0, - "nr_slots": 95, - "nr_close_slots": 0, - "instructions": [ - [ - "access", - 8, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 178, - 21 - ], - ["access", 9, "/internal/engine.cm.mach", 178, 33], - ["is_int", 11, 8, 178, 33], - ["jump_false", 11, "add_ni_221", 178, 33], - "_nop_tc_1", - ["jump", "add_ni_221", 178, 33], - ["add_int", 10, 8, 9, 178, 33], - ["jump", "add_done_223", 178, 33], - "add_ni_221", - ["is_text", 11, 8, 178, 33], - ["jump_false", 11, "add_nt_222", 178, 33], - ["concat", 10, 8, 9, 178, 33], - ["jump", "add_done_223", 178, 33], - "add_nt_222", - ["is_num", 11, 8, 178, 33], - ["jump_false", 11, "add_err_224", 178, 33], - ["is_num", 12, 9, 178, 33], - ["jump_false", 12, "add_err_224", 178, 33], - ["add_float", 10, 8, 9, 178, 33], - ["jump", "add_done_223", 178, 33], - "add_err_224", - ["disrupt", 178, 33], - "add_done_223", - ["move", 3, 10, 178, 33], - [ - "access", - 13, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 179, - 20 - ], - ["access", 14, "/internal/engine.cm.mcode", 179, 32], - ["is_int", 16, 13, 179, 32], - ["jump_false", 16, "add_ni_225", 179, 32], - "_nop_tc_2", - ["jump", "add_ni_225", 179, 32], - ["add_int", 15, 13, 14, 179, 32], - ["jump", "add_done_227", 179, 32], - "add_ni_225", - ["is_text", 16, 13, 179, 32], - ["jump_false", 16, "add_nt_226", 179, 32], - ["concat", 15, 13, 14, 179, 32], - ["jump", "add_done_227", 179, 32], - "add_nt_226", - ["is_num", 16, 13, 179, 32], - ["jump_false", 16, "add_err_228", 179, 32], - ["is_num", 17, 14, 179, 32], - ["jump_false", 17, "add_err_228", 179, 32], - ["add_float", 15, 13, 14, 179, 32], - ["jump", "add_done_227", 179, 32], - "add_err_228", - ["disrupt", 179, 32], - "add_done_227", - ["move", 7, 15, 179, 32], - ["null", 2, 180, 14], - ["null", 6, 181, 20], - ["null", 4, 182, 20], - ["null", 5, 183, 20], - ["get", 19, 4, 1, 184, 7], - ["is_proxy", 20, 19, 184, 7], - ["jump_false", 20, "record_path_231", 184, 7], - ["null", 21, 184, 7], - ["access", 22, "is_file", 184, 7], - ["array", 23, 0, 184, 7], - ["push", 23, 3, 184, 7], - ["frame", 24, 19, 2, 184, 7], - ["setarg", 24, 0, 21, 184, 7], - ["setarg", 24, 1, 22, 184, 7], - ["setarg", 24, 2, 23, 184, 7], - ["invoke", 24, 18, 184, 7], - ["jump", "call_done_232", 184, 7], - "record_path_231", - ["load_field", 25, 19, "is_file", 184, 7], - ["frame", 26, 25, 1, 184, 7], - ["setarg", 26, 0, 19, 184, 7], - ["setarg", 26, 1, 3, 184, 7], - ["invoke", 26, 18, 184, 7], - "call_done_232", - ["jump_false", 18, "if_else_229", 184, 7], - ["get", 28, 4, 1, 185, 12], - ["is_proxy", 29, 28, 185, 12], - ["jump_false", 29, "record_path_233", 185, 12], - ["null", 30, 185, 12], - ["access", 31, "slurp", 185, 12], - ["array", 32, 0, 185, 12], - ["push", 32, 3, 185, 12], - ["frame", 33, 28, 2, 185, 12], - ["setarg", 33, 0, 30, 185, 12], - ["setarg", 33, 1, 31, 185, 12], - ["setarg", 33, 2, 32, 185, 12], - ["invoke", 33, 27, 185, 12], - ["jump", "call_done_234", 185, 12], - "record_path_233", - ["load_field", 34, 28, "slurp", 185, 12], - ["frame", 35, 34, 1, 185, 12], - ["setarg", 35, 0, 28, 185, 12], - ["setarg", 35, 1, 3, 185, 12], - ["invoke", 35, 27, 185, 12], - "call_done_234", - ["move", 2, 27, 185, 12], - [ - "access", - 37, - { - "name": "mach_load", - "kind": "name", - "make": "intrinsic" - }, - 186, - 12 - ], - ["frame", 38, 37, 2, 186, 12], - ["null", 39, 186, 12], - ["setarg", 38, 0, 39, 186, 12], - ["setarg", 38, 1, 2, 186, 12], - ["setarg", 38, 2, 1, 186, 12], - ["invoke", 38, 36, 186, 12], - ["return", 36, 186, 12], - ["jump", "if_end_230", 186, 12], - "if_else_229", - "if_end_230", - ["get", 41, 4, 1, 188, 7], - ["is_proxy", 42, 41, 188, 7], - ["jump_false", 42, "record_path_237", 188, 7], - ["null", 43, 188, 7], - ["access", 44, "is_file", 188, 7], - ["array", 45, 0, 188, 7], - ["push", 45, 7, 188, 7], - ["frame", 46, 41, 2, 188, 7], - ["setarg", 46, 0, 43, 188, 7], - ["setarg", 46, 1, 44, 188, 7], - ["setarg", 46, 2, 45, 188, 7], - ["invoke", 46, 40, 188, 7], - ["jump", "call_done_238", 188, 7], - "record_path_237", - ["load_field", 47, 41, "is_file", 188, 7], - ["frame", 48, 47, 1, 188, 7], - ["setarg", 48, 0, 41, 188, 7], - ["setarg", 48, 1, 7, 188, 7], - ["invoke", 48, 40, 188, 7], - "call_done_238", - ["jump_false", 40, "if_else_235", 188, 7], - ["get", 50, 4, 1, 189, 23], - ["is_proxy", 51, 50, 189, 23], - ["jump_false", 51, "record_path_239", 189, 23], - ["null", 52, 189, 23], - ["access", 53, "slurp", 189, 23], - ["array", 54, 0, 189, 23], - ["push", 54, 7, 189, 23], - ["frame", 55, 50, 2, 189, 23], - ["setarg", 55, 0, 52, 189, 23], - ["setarg", 55, 1, 53, 189, 23], - ["setarg", 55, 2, 54, 189, 23], - ["invoke", 55, 49, 189, 23], - ["jump", "call_done_240", 189, 23], - "record_path_239", - ["load_field", 56, 50, "slurp", 189, 23], - ["frame", 57, 56, 1, 189, 23], - ["setarg", 57, 0, 50, 189, 23], - ["setarg", 57, 1, 7, 189, 23], - ["invoke", 57, 49, 189, 23], - "call_done_240", - [ - "access", - 59, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 189, - 18 - ], - ["frame", 60, 59, 1, 189, 18], - ["null", 61, 189, 18], - ["setarg", 60, 0, 61, 189, 18], - ["setarg", 60, 1, 49, 189, 18], - ["invoke", 60, 58, 189, 18], - ["move", 6, 58, 189, 18], - ["access", 62, "engine", 190, 28], - [ - "access", - 64, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 190, - 12 - ], - ["frame", 65, 64, 3, 190, 12], - ["null", 66, 190, 12], - ["setarg", 65, 0, 66, 190, 12], - ["setarg", 65, 1, 62, 190, 12], - ["setarg", 65, 2, 6, 190, 12], - ["setarg", 65, 3, 1, 190, 12], - ["invoke", 65, 63, 190, 12], - ["return", 63, 190, 12], - ["jump", "if_end_236", 190, 12], - "if_else_235", - "if_end_236", - [ - "access", - 67, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 192, - 17 - ], - ["access", 68, "/internal/engine.cm", 192, 29], - ["is_int", 70, 67, 192, 29], - ["jump_false", 70, "add_ni_241", 192, 29], - "_nop_tc_3", - ["jump", "add_ni_241", 192, 29], - ["add_int", 69, 67, 68, 192, 29], - ["jump", "add_done_243", 192, 29], - "add_ni_241", - ["is_text", 70, 67, 192, 29], - ["jump_false", 70, "add_nt_242", 192, 29], - ["concat", 69, 67, 68, 192, 29], - ["jump", "add_done_243", 192, 29], - "add_nt_242", - ["is_num", 70, 67, 192, 29], - ["jump_false", 70, "add_err_244", 192, 29], - ["is_num", 71, 68, 192, 29], - ["jump_false", 71, "add_err_244", 192, 29], - ["add_float", 69, 67, 68, 192, 29], - ["jump", "add_done_243", 192, 29], - "add_err_244", - ["disrupt", 192, 29], - "add_done_243", - ["move", 3, 69, 192, 29], - ["get", 73, 4, 1, 193, 21], - ["is_proxy", 74, 73, 193, 21], - ["jump_false", 74, "record_path_245", 193, 21], - ["null", 75, 193, 21], - ["access", 76, "slurp", 193, 21], - ["array", 77, 0, 193, 21], - ["push", 77, 3, 193, 21], - ["frame", 78, 73, 2, 193, 21], - ["setarg", 78, 0, 75, 193, 21], - ["setarg", 78, 1, 76, 193, 21], - ["setarg", 78, 2, 77, 193, 21], - ["invoke", 78, 72, 193, 21], - ["jump", "call_done_246", 193, 21], - "record_path_245", - ["load_field", 79, 73, "slurp", 193, 21], - ["frame", 80, 79, 1, 193, 21], - ["setarg", 80, 0, 73, 193, 21], - ["setarg", 80, 1, 3, 193, 21], - ["invoke", 80, 72, 193, 21], - "call_done_246", - [ - "access", - 82, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 193, - 16 - ], - ["frame", 83, 82, 1, 193, 16], - ["null", 84, 193, 16], - ["setarg", 83, 0, 84, 193, 16], - ["setarg", 83, 1, 72, 193, 16], - ["invoke", 83, 81, 193, 16], - ["move", 4, 81, 193, 16], - ["get", 86, 11, 1, 194, 16], - ["frame", 87, 86, 2, 194, 16], - ["null", 88, 194, 16], - ["setarg", 87, 0, 88, 194, 16], - ["setarg", 87, 1, 4, 194, 16], - ["setarg", 87, 2, 3, 194, 16], - ["invoke", 87, 85, 194, 16], - ["move", 5, 85, 194, 16], - ["access", 89, "engine", 195, 18], - ["get", 91, 14, 1, 195, 10], - ["frame", 92, 91, 3, 195, 10], - ["null", 93, 195, 10], - ["setarg", 92, 0, 93, 195, 10], - ["setarg", 92, 1, 89, 195, 10], - ["setarg", 92, 2, 5, 195, 10], - ["setarg", 92, 3, 1, 195, 10], - ["invoke", 92, 90, 195, 10], - ["return", 90, 195, 10], - ["null", 94, 195, 10], - ["return", 94, 195, 10] - ], - "name": "load_engine", - "filename": "internal/bootstrap.cm", - "nr_args": 1 - } - ], - "main": { - "nr_args": 0, - "nr_close_slots": 0, - "nr_slots": 124, - "instructions": [ - ["function", 23, 0, 0, 0], - ["move", 1, 23, 0, 0], - ["function", 24, 1, 0, 0], - ["move", 3, 24, 0, 0], - ["function", 25, 2, 0, 0], - ["move", 17, 25, 0, 0], - ["function", 26, 3, 0, 0], - ["move", 12, 26, 0, 0], - ["function", 27, 4, 0, 0], - ["move", 11, 27, 0, 0], - ["function", 28, 5, 0, 0], - ["move", 14, 28, 0, 0], - ["function", 29, 6, 0, 0], - ["move", 22, 29, 0, 0], - ["function", 30, 7, 0, 0], - ["move", 6, 30, 0, 0], - [ - "access", - 31, - { - "name": "os", - "kind": "name", - "make": "intrinsic" - }, - 5, - 21 - ], - ["load_field", 32, 31, "load_internal", 5, 21], - ["move", 9, 32, 5, 21], - ["access", 33, "fd", 10, 20], - ["frame", 35, 1, 1, 10, 10], - ["null", 36, 10, 10], - ["setarg", 35, 0, 36, 10, 10], - ["setarg", 35, 1, 33, 10, 10], - ["invoke", 35, 34, 10, 10], - ["move", 4, 34, 10, 10], - ["access", 37, "json", 11, 22], - ["frame", 39, 1, 1, 11, 12], - ["null", 40, 11, 12], - ["setarg", 39, 0, 40, 11, 12], - ["setarg", 39, 1, 37, 11, 12], - ["invoke", 39, 38, 11, 12], - ["move", 21, 38, 11, 12], - ["record", 41, 0], - ["move", 18, 41, 13, 17], - ["access", 42, "fd", 14, 11], - ["store_field", 18, 4, 42, 14, 11], - [ - "access", - 43, - { - "name": "os", - "kind": "name", - "make": "intrinsic" - }, - 15, - 19 - ], - ["access", 44, "os", 15, 11], - ["store_field", 18, 43, 44, 15, 11], - ["access", 45, "json", 16, 11], - ["store_field", 18, 21, 45, 16, 11], - ["record", 46, 0], - ["store_field", 46, 3, "use", 45, 22], - ["move", 13, 46, 45, 22], - ["access", 47, "tokenize", 46, 30], - ["frame", 49, 17, 2, 46, 20], - ["null", 50, 46, 20], - ["setarg", 49, 0, 50, 46, 20], - ["setarg", 49, 1, 47, 46, 20], - ["setarg", 49, 2, 13, 46, 20], - ["invoke", 49, 48, 46, 20], - ["move", 7, 48, 46, 20], - ["access", 51, "parse", 47, 27], - ["frame", 53, 17, 2, 47, 17], - ["null", 54, 47, 17], - ["setarg", 53, 0, 54, 47, 17], - ["setarg", 53, 1, 51, 47, 17], - ["setarg", 53, 2, 13, 47, 17], - ["invoke", 53, 52, 47, 17], - ["move", 5, 52, 47, 17], - ["access", 55, "fold", 48, 26], - ["frame", 57, 17, 2, 48, 16], - ["null", 58, 48, 16], - ["setarg", 57, 0, 58, 48, 16], - ["setarg", 57, 1, 55, 48, 16], - ["setarg", 57, 2, 13, 48, 16], - ["invoke", 57, 56, 48, 16], - ["move", 2, 56, 48, 16], - ["access", 59, "tokenize", 49, 11], - ["store_field", 18, 7, 59, 49, 11], - ["access", 60, "parse", 50, 11], - ["store_field", 18, 5, 60, 50, 11], - ["access", 61, "fold", 51, 11], - ["store_field", 18, 2, 61, 51, 11], - ["access", 62, "mcode", 54, 27], - ["frame", 64, 17, 2, 54, 17], - ["null", 65, 54, 17], - ["setarg", 64, 0, 65, 54, 17], - ["setarg", 64, 1, 62, 54, 17], - ["setarg", 64, 2, 13, 54, 17], - ["invoke", 64, 63, 54, 17], - ["move", 10, 63, 54, 17], - ["access", 66, "mcode", 55, 11], - ["store_field", 18, 10, 66, 55, 11], - ["null", 20, 56, 22], - ["frame", 68, 12, 0, 107, 1], - ["null", 69, 107, 1], - ["setarg", 68, 0, 69, 107, 1], - ["invoke", 68, 67, 107, 1], - ["access", 70, "streamline", 145, 28], - ["frame", 72, 17, 2, 145, 18], - ["null", 73, 145, 18], - ["setarg", 72, 0, 73, 145, 18], - ["setarg", 72, 1, 70, 145, 18], - ["setarg", 72, 2, 13, 145, 18], - ["invoke", 72, 71, 145, 18], - ["move", 20, 71, 145, 18], - ["access", 74, "streamline", 146, 11], - ["store_field", 18, 20, 74, 146, 11], - ["null", 8, 149, 22], - ["null", 19, 200, 15], - ["array", 75, 0, 201, 17], - ["move", 15, 75, 201, 17], - ["access", 16, 0, 202, 10], - [ - "access", - 76, - { - "name": "args", - "kind": "name", - "make": "intrinsic" - }, - 204, - 5 - ], - ["null", 77, 204, 13], - ["is_identical", 78, 76, 77, 204, 13], - ["jump_true", 78, "ne_nid_250", 204, 13], - ["jump", "ne_ni_251", 204, 13], - "ne_nid_250", - ["false", 78, 204, 13], - ["jump", "ne_done_249", 204, 13], - "ne_ni_251", - ["is_int", 79, 76, 204, 13], - ["jump_false", 79, "ne_nn_252", 204, 13], - ["is_int", 80, 77, 204, 13], - ["jump_false", 80, "ne_nn_252", 204, 13], - ["ne_int", 78, 76, 77, 204, 13], - ["jump", "ne_done_249", 204, 13], - "ne_nn_252", - ["is_num", 79, 76, 204, 13], - ["jump_false", 79, "ne_nt_253", 204, 13], - ["is_num", 80, 77, 204, 13], - ["jump_false", 80, "ne_nt_253", 204, 13], - ["ne_float", 78, 76, 77, 204, 13], - ["jump", "ne_done_249", 204, 13], - "ne_nt_253", - ["is_text", 79, 76, 204, 13], - ["jump_false", 79, "ne_nnl_254", 204, 13], - ["is_text", 80, 77, 204, 13], - ["jump_false", 80, "ne_nnl_254", 204, 13], - ["ne_text", 78, 76, 77, 204, 13], - ["jump", "ne_done_249", 204, 13], - "ne_nnl_254", - ["is_null", 79, 76, 204, 13], - ["jump_false", 79, "ne_nb_255", 204, 13], - ["is_null", 80, 77, 204, 13], - ["jump_false", 80, "ne_nb_255", 204, 13], - ["false", 78, 204, 13], - ["jump", "ne_done_249", 204, 13], - "ne_nb_255", - ["is_bool", 79, 76, 204, 13], - ["jump_false", 79, "ne_mis_256", 204, 13], - ["is_bool", 80, 77, 204, 13], - ["jump_false", 80, "ne_mis_256", 204, 13], - ["ne_bool", 78, 76, 77, 204, 13], - ["jump", "ne_done_249", 204, 13], - "ne_mis_256", - ["true", 78, 204, 13], - "ne_done_249", - ["jump_false", 78, "if_else_247", 204, 13], - [ - "access", - 81, - { - "name": "args", - "kind": "name", - "make": "intrinsic" - }, - 206, - 13 - ], - ["access", 82, 0, 206, 18], - ["load_index", 83, 81, 82, 206, 18], - ["move", 19, 83, 206, 18], - "_nop_bl_1", - ["jump_true", 19, "if_else_257", 207, 8], - ["access", 85, "error: no program specified\n", 208, 11], - [ - "access", - 87, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 208, - 5 - ], - ["frame", 88, 87, 1, 208, 5], - ["null", 89, 208, 5], - ["setarg", 88, 0, 89, 208, 5], - ["setarg", 88, 1, 85, 208, 5], - ["invoke", 88, 86, 208, 5], - ["disrupt", 209, 5], - ["jump", "if_end_258", 209, 5], - "if_else_257", - "if_end_258", - ["access", 90, 1, 211, 8], - ["move", 16, 90, 211, 8], - "while_start_259", - [ - "access", - 91, - { - "name": "args", - "kind": "name", - "make": "intrinsic" - }, - 212, - 22 - ], - ["length", 92, 91, 212, 22], - ["is_int", 94, 16, 212, 22], - ["jump_false", 94, "rel_ni_261", 212, 22], - "_nop_tc_1", - "_nop_tc_2", - ["lt_int", 93, 16, 92, 212, 22], - ["jump", "rel_done_263", 212, 22], - "rel_ni_261", - ["is_num", 94, 16, 212, 22], - ["jump_false", 94, "rel_nn_262", 212, 22], - ["is_num", 95, 92, 212, 22], - ["jump_false", 95, "rel_nn_262", 212, 22], - ["lt_float", 93, 16, 92, 212, 22], - ["jump", "rel_done_263", 212, 22], - "rel_nn_262", - ["is_text", 94, 16, 212, 22], - ["jump_false", 94, "rel_err_264", 212, 22], - ["is_text", 95, 92, 212, 22], - ["jump_false", 95, "rel_err_264", 212, 22], - ["lt_text", 93, 16, 92, 212, 22], - ["jump", "rel_done_263", 212, 22], - "rel_err_264", - ["disrupt", 212, 22], - "rel_done_263", - ["jump_false", 93, "while_end_260", 212, 22], - [ - "access", - 96, - { - "name": "args", - "kind": "name", - "make": "intrinsic" - }, - 213, - 21 - ], - ["load_dynamic", 97, 96, 16, 213, 26], - ["is_array", 98, 15, 213, 26], - ["jump_false", 98, "push_err_265", 213, 26], - ["push", 15, 97, 213, 26], - ["jump", "push_done_266", 213, 26], - "push_err_265", - ["disrupt", 213, 26], - "push_done_266", - ["access", 99, 1, 214, 15], - ["is_int", 101, 16, 214, 15], - ["jump_false", 101, "add_ni_267", 214, 15], - ["add_int", 100, 16, 99, 214, 15], - ["jump", "add_done_269", 214, 15], - "add_ni_267", - ["is_text", 101, 16, 214, 15], - ["jump_false", 101, "add_nt_268", 214, 15], - ["is_text", 102, 99, 214, 15], - ["jump_false", 102, "add_nt_268", 214, 15], - ["concat", 100, 16, 99, 214, 15], - ["jump", "add_done_269", 214, 15], - "add_nt_268", - ["is_num", 101, 16, 214, 15], - ["jump_false", 101, "add_err_270", 214, 15], - ["add_float", 100, 16, 99, 214, 15], - ["jump", "add_done_269", 214, 15], - "add_err_270", - ["disrupt", 214, 15], - "add_done_269", - ["move", 16, 100, 214, 15], - ["jump", "while_start_259", 214, 15], - "while_end_260", - ["record", 103, 0], - [ - "access", - 104, - { - "name": "os", - "kind": "name", - "make": "intrinsic" - }, - 218, - 9 - ], - ["store_field", 103, 104, "os", 218, 9], - [ - "access", - 105, - { - "name": "actorsym", - "kind": "name", - "make": "intrinsic" - }, - 218, - 23 - ], - ["store_field", 103, 105, "actorsym", 218, 23], - ["record", 106, 0], - ["store_field", 106, 19, "program", 219, 21], - ["store_field", 106, 15, "arg", 219, 35], - ["store_field", 103, 106, "init", 219, 35], - [ - "access", - 107, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 220, - 16 - ], - ["store_field", 103, 107, "core_path", 220, 16], - [ - "access", - 108, - { - "name": "shop_path", - "kind": "name", - "make": "intrinsic" - }, - 220, - 38 - ], - ["store_field", 103, 108, "shop_path", 220, 38], - ["store_field", 103, 21, "json", 220, 55], - ["store_field", 103, 11, "analyze", 221, 14], - ["store_field", 103, 14, "run_ast_fn", 221, 35], - ["store_field", 103, 22, "run_ast_noopt_fn", 221, 62], - ["store_field", 103, 18, "use_cache", 222, 16], - ["frame", 110, 6, 1, 217, 3], - ["null", 111, 217, 3], - ["setarg", 110, 0, 111, 217, 3], - ["setarg", 110, 1, 103, 217, 3], - ["invoke", 110, 109, 217, 3], - ["jump", "if_end_248", 217, 3], - "if_else_247", - ["record", 112, 0], - [ - "access", - 113, - { - "name": "os", - "kind": "name", - "make": "intrinsic" - }, - 227, - 9 - ], - ["store_field", 112, 113, "os", 227, 9], - [ - "access", - 114, - { - "name": "actorsym", - "kind": "name", - "make": "intrinsic" - }, - 227, - 23 - ], - ["store_field", 112, 114, "actorsym", 227, 23], - [ - "access", - 115, - { - "name": "init", - "kind": "name", - "make": "intrinsic" - }, - 227, - 39 - ], - ["store_field", 112, 115, "init", 227, 39], - [ - "access", - 116, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 228, - 16 - ], - ["store_field", 112, 116, "core_path", 228, 16], - [ - "access", - 117, - { - "name": "shop_path", - "kind": "name", - "make": "intrinsic" - }, - 228, - 38 - ], - ["store_field", 112, 117, "shop_path", 228, 38], - ["store_field", 112, 21, "json", 228, 55], - [ - "access", - 118, - { - "name": "nota", - "kind": "name", - "make": "intrinsic" - }, - 228, - 67 - ], - ["store_field", 112, 118, "nota", 228, 67], - [ - "access", - 119, - { - "name": "wota", - "kind": "name", - "make": "intrinsic" - }, - 228, - 79 - ], - ["store_field", 112, 119, "wota", 228, 79], - ["store_field", 112, 11, "analyze", 229, 14], - ["store_field", 112, 14, "run_ast_fn", 229, 35], - ["store_field", 112, 22, "run_ast_noopt_fn", 229, 62], - ["store_field", 112, 18, "use_cache", 230, 16], - ["frame", 121, 6, 1, 226, 3], - ["null", 122, 226, 3], - ["setarg", 121, 0, 122, 226, 3], - ["setarg", 121, 1, 112, 226, 3], - ["invoke", 121, 120, 226, 3], - "if_end_248", - ["null", 123, 226, 3], - ["return", 123, 226, 3] - ] - }, - "filename": "internal/bootstrap.cm", - "data": {} -} \ No newline at end of file diff --git a/regen.ce b/regen.ce index da782280..59a31a8f 100644 --- a/regen.ce +++ b/regen.ce @@ -1,8 +1,9 @@ -// regen.ce — regenerate .mach bytecode files +// regen.ce — regenerate .mcode bytecode files and pre-warm .mach cache // Run with: ./cell --core . regen var fd = use("fd") var json = use("json") +var crypto = use("crypto") var tokenize = use("tokenize") var parse = use("parse") var fold = use("fold") @@ -10,24 +11,46 @@ var mcode = use("mcode") var streamline = use("streamline") var files = [ - {src: "tokenize.cm", name: "tokenize", out: "tokenize.cm.mcode"}, - {src: "parse.cm", name: "parse", out: "parse.cm.mcode"}, - {src: "fold.cm", name: "fold", out: "fold.cm.mcode"}, - {src: "mcode.cm", name: "mcode", out: "mcode.cm.mcode"}, - {src: "streamline.cm", name: "streamline", out: "streamline.cm.mcode"}, - {src: "qbe.cm", name: "qbe", out: "qbe.cm.mcode"}, - {src: "qbe_emit.cm", name: "qbe_emit", out: "qbe_emit.cm.mcode"}, - {src: "verify_ir.cm", name: "verify_ir", out: "verify_ir.cm.mcode"}, - {src: "internal/bootstrap.cm", name: "bootstrap", out: "internal/bootstrap.cm.mcode"}, - {src: "internal/engine.cm", name: "engine", out: "internal/engine.cm.mcode"} + {src: "tokenize.cm", name: "tokenize", out: "boot/tokenize.cm.mcode"}, + {src: "parse.cm", name: "parse", out: "boot/parse.cm.mcode"}, + {src: "fold.cm", name: "fold", out: "boot/fold.cm.mcode"}, + {src: "mcode.cm", name: "mcode", out: "boot/mcode.cm.mcode"}, + {src: "streamline.cm", name: "streamline", out: "boot/streamline.cm.mcode"}, + {src: "qbe.cm", name: "qbe", out: "boot/qbe.cm.mcode"}, + {src: "qbe_emit.cm", name: "qbe_emit", out: "boot/qbe_emit.cm.mcode"}, + {src: "verify_ir.cm", name: "verify_ir", out: "boot/verify_ir.cm.mcode"}, + {src: "internal/bootstrap.cm", name: "bootstrap", out: "boot/bootstrap.cm.mcode"}, + {src: "internal/engine.cm", name: "engine", out: "boot/engine.cm.mcode"} ] +// Resolve shop_path for cache writes +var os = use('os') +var shop = os.getenv('CELL_SHOP') +var home = null +var cache_dir = null +if (!shop) { + home = os.getenv('HOME') + if (home) { + shop = home + '/.cell' + } +} +if (shop) { + cache_dir = shop + '/build' + if (!fd.is_dir(cache_dir)) { + fd.mkdir(cache_dir) + } +} + var i = 0 var entry = null var src = null var tok_result = null var ast = null var folded = null +var mcode_blob = null +var hash = null +var compact_mcode = null +var mach_blob = null var compiled = null var optimized = null var mcode_text = null @@ -149,6 +172,15 @@ while (i < length(files)) { fd.write(f, mcode_text) fd.close(f) print(`wrote ${entry.out}`) + // Pre-warm .mach cache + if (cache_dir) { + mcode_blob = stone(blob(mcode_text)) + hash = text(crypto.blake2(mcode_blob), 'h') + compact_mcode = json.encode(optimized) + mach_blob = mach_compile_mcode_bin(entry.name, compact_mcode) + fd.slurpwrite(cache_dir + '/' + hash + '.mach', mach_blob) + print(` cached ${hash}.mach`) + } i = i + 1 } if (had_errors) { diff --git a/source/cell.c b/source/cell.c index e356b35e..0586c4bb 100644 --- a/source/cell.c +++ b/source/cell.c @@ -11,8 +11,7 @@ #include "cell_internal.h" #include "cJSON.h" -#define BOOTSTRAP_MACH "internal/bootstrap.cm.mach" -#define BOOTSTRAP_MCODE "internal/bootstrap.cm.mcode" +#define BOOTSTRAP_MCODE "boot/bootstrap.cm.mcode" #define BOOTSTRAP_SRC "internal/bootstrap.cm" #define CELL_SHOP_DIR ".cell" #define CELL_CORE_DIR "packages/core" @@ -21,6 +20,7 @@ #include #include #include +#include "monocypher.h" /* Test suite declarations */ int run_c_test_suite(JSContext *ctx); @@ -31,6 +31,83 @@ static char *shop_path = NULL; static char *core_path = NULL; static JSRuntime *g_runtime = NULL; +// Compute blake2b hash of data and return hex string (caller must free) +static char *compute_blake2_hex(const char *data, size_t size) { + uint8_t hash[32]; + crypto_blake2b(hash, 32, (const uint8_t *)data, size); + char *hex = malloc(65); + for (int i = 0; i < 32; i++) + snprintf(hex + i * 2, 3, "%02x", hash[i]); + return hex; +} + +// Build cache path: shop_path/build/.mach (caller must free) +static char *build_cache_path(const char *hex) { + if (!shop_path) return NULL; + size_t len = strlen(shop_path) + strlen("/build/") + 64 + strlen(".mach") + 1; + char *path = malloc(len); + snprintf(path, len, "%s/build/%s.mach", shop_path, hex); + return path; +} + +// Write binary data to file +static int write_cache_file(const char *path, const uint8_t *data, size_t size) { + FILE *fh = fopen(path, "wb"); + if (!fh) return 0; + size_t written = fwrite(data, 1, size, fh); + fclose(fh); + return written == size; +} + +// Load cached .mach or compile from .mcode and cache result +// Returns heap-allocated binary data and sets *out_size, or NULL on failure +static char *load_or_cache_bootstrap(const char *mcode_data, size_t mcode_size, size_t *out_size) { + char *hex = compute_blake2_hex(mcode_data, mcode_size); + char *cpath = build_cache_path(hex); + free(hex); + + if (cpath) { + // Try loading from cache + FILE *fh = fopen(cpath, "rb"); + if (fh) { + fseek(fh, 0, SEEK_END); + long file_size = ftell(fh); + fseek(fh, 0, SEEK_SET); + char *data = malloc(file_size); + if (data && fread(data, 1, file_size, fh) == (size_t)file_size) { + fclose(fh); + free(cpath); + *out_size = file_size; + return data; + } + free(data); + fclose(fh); + } + } + + // Cache miss: compile mcode to binary + cJSON *mcode = cJSON_Parse(mcode_data); + if (!mcode) { free(cpath); return NULL; } + + MachCode *mc = mach_compile_mcode(mcode); + cJSON_Delete(mcode); + if (!mc) { free(cpath); return NULL; } + + size_t bin_size; + uint8_t *bin = JS_SerializeMachCode(mc, &bin_size); + JS_FreeMachCode(mc); + if (!bin) { free(cpath); return NULL; } + + // Write to cache + if (cpath) { + write_cache_file(cpath, bin, bin_size); + free(cpath); + } + + *out_size = bin_size; + return (char *)bin; +} + // Get the home directory static const char* get_home_dir(void) { const char *home = getenv("HOME"); @@ -179,19 +256,23 @@ void script_startup(cell_rt *prt) cell_rt *crt = JS_GetContextOpaque(js); JS_FreeValue(js, js_blob_use(js)); - // Load pre-compiled bootstrap (.cm.mach or .cm.mcode) + // Load pre-compiled bootstrap .mcode size_t boot_size; - char *boot_data = load_core_file(BOOTSTRAP_MACH, &boot_size); - int boot_is_mcode = 0; - if (!boot_data) { - boot_data = load_core_file(BOOTSTRAP_MCODE, &boot_size); - boot_is_mcode = 1; - } + char *boot_data = load_core_file(BOOTSTRAP_MCODE, &boot_size); if (!boot_data) { printf("ERROR: Could not load bootstrap from %s!\n", core_path); return; } + // Try cache or compile mcode → binary + size_t bin_size; + char *bin_data = load_or_cache_bootstrap(boot_data, boot_size, &bin_size); + free(boot_data); + if (!bin_data) { + printf("ERROR: Failed to compile bootstrap mcode!\n"); + return; + } + // Create hidden environment JSValue hidden_env = JS_NewObject(js); JS_SetPropertyStr(js, hidden_env, "os", js_os_use(js)); @@ -222,12 +303,10 @@ void script_startup(cell_rt *prt) // Stone the environment hidden_env = JS_Stone(js, hidden_env); - // Run through MACH VM + // Run from binary crt->state = ACTOR_RUNNING; - JSValue v = boot_is_mcode - ? JS_RunMachMcode(js, boot_data, boot_size, hidden_env) - : JS_RunMachBin(js, (const uint8_t *)boot_data, boot_size, hidden_env); - free(boot_data); + JSValue v = JS_RunMachBin(js, (const uint8_t *)bin_data, bin_size, hidden_env); + free(bin_data); uncaught_exception(js, v); crt->state = ACTOR_IDLE; set_actor_state(crt); @@ -360,27 +439,31 @@ int cell_init(int argc, char **argv) actor_initialize(); size_t boot_size; - char *boot_data = load_core_file(BOOTSTRAP_MACH, &boot_size); - int boot_is_mcode = 0; - if (!boot_data) { - boot_data = load_core_file(BOOTSTRAP_MCODE, &boot_size); - boot_is_mcode = 1; - } + char *boot_data = load_core_file(BOOTSTRAP_MCODE, &boot_size); if (!boot_data) { printf("ERROR: Could not load bootstrap from %s\n", core_path); return 1; } + // Try cache or compile mcode → binary + size_t bin_size; + char *bin_data = load_or_cache_bootstrap(boot_data, boot_size, &bin_size); + free(boot_data); + if (!bin_data) { + printf("ERROR: Failed to compile bootstrap mcode\n"); + return 1; + } + g_runtime = JS_NewRuntime(); if (!g_runtime) { printf("Failed to create JS runtime\n"); - free(boot_data); + free(bin_data); return 1; } JSContext *ctx = JS_NewContextWithHeapSize(g_runtime, 16 * 1024 * 1024); if (!ctx) { printf("Failed to create JS context\n"); - free(boot_data); JS_FreeRuntime(g_runtime); + free(bin_data); JS_FreeRuntime(g_runtime); return 1; } @@ -419,9 +502,6 @@ int cell_init(int argc, char **argv) JS_SetPropertyStr(ctx, hidden_env, "core_path", JS_NewString(ctx, core_path)); JS_SetPropertyStr(ctx, hidden_env, "shop_path", shop_path ? JS_NewString(ctx, shop_path) : JS_NULL); - /* TODO: remove after next 'make regen' — old bootstrap.mach reads these */ - JS_SetPropertyStr(ctx, hidden_env, "emit_qbe", JS_FALSE); - JS_SetPropertyStr(ctx, hidden_env, "dump_mach", JS_FALSE); JS_SetPropertyStr(ctx, hidden_env, "actorsym", JS_DupValue(ctx, cli_rt->actor_sym_ref.val)); JS_SetPropertyStr(ctx, hidden_env, "json", js_json_use(ctx)); JS_SetPropertyStr(ctx, hidden_env, "nota", js_nota_use(ctx)); @@ -435,10 +515,8 @@ int cell_init(int argc, char **argv) JS_SetPropertyStr(ctx, hidden_env, "args", args_arr); hidden_env = JS_Stone(ctx, hidden_env); - JSValue result = boot_is_mcode - ? JS_RunMachMcode(ctx, boot_data, boot_size, hidden_env) - : JS_RunMachBin(ctx, (const uint8_t *)boot_data, boot_size, hidden_env); - free(boot_data); + JSValue result = JS_RunMachBin(ctx, (const uint8_t *)bin_data, bin_size, hidden_env); + free(bin_data); int exit_code = 0; if (JS_IsException(result)) {