From 77fa0581359a537242540fb11807e5eaace4225d Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Fri, 13 Feb 2026 07:26:49 -0600 Subject: [PATCH] mach loading --- build.cm | 365 +- fd.cm | 2 +- internal/bootstrap.cm | 94 +- internal/bootstrap.cm.mcode | 4166 +++++------- internal/engine.cm | 14 +- internal/engine.cm.mcode | 11627 +++++++++++++++++----------------- internal/os.c | 49 + internal/shop.cm | 177 +- regen.ce | 1 + source/qbe_helpers.c | 80 +- time.cm | 2 +- 11 files changed, 7940 insertions(+), 8637 deletions(-) diff --git a/build.cm b/build.cm index 74d642bd..a7f947f1 100644 --- a/build.cm +++ b/build.cm @@ -214,36 +214,22 @@ function compute_link_key(objects, ldflags, target_ldflags, target, cc) { return content_hash(text(parts, '\n')) } -// Build a dynamic library for a package -// Output goes to .cell/lib/. -// Dynamic libraries do NOT link against core; undefined symbols are resolved at dlopen time -// Uses content-addressed store + symlink for caching -Build.build_dynamic = function(pkg, target = Build.detect_host_target(), buildtype = 'release') { - var objects = Build.build_package(pkg, target, true, buildtype) // exclude main.c +// Build a per-module dynamic library for a single C file +// Returns the content-addressed dylib path in .cell/build/..dylib +Build.build_module_dylib = function(pkg, file, target, buildtype) { + var _target = target || Build.detect_host_target() + var _buildtype = buildtype || 'release' + var obj = Build.compile_file(pkg, file, _target, _buildtype) - if (length(objects) == 0) { - log.console('No C files in ' + pkg) - return null - } - - var lib_dir = shop.get_lib_dir() - var store_dir = lib_dir + '/store' - ensure_dir(lib_dir) - ensure_dir(store_dir) - - var lib_name = shop.lib_name_for_package(pkg) - var dylib_ext = toolchains[target].system == 'windows' ? '.dll' : (toolchains[target].system == 'darwin' ? '.dylib' : '.so') - var stable_path = lib_dir + '/' + lib_name + dylib_ext - - // Get link flags (with sigil replacement) - var ldflags = replace_sigils_array(pkg_tools.get_flags(pkg, 'LDFLAGS', target)) - var target_ldflags = toolchains[target].c_link_args || [] - var cc = toolchains[target].cpp || toolchains[target].c - var pkg_dir = shop.get_package_dir(pkg) + var tc = toolchains[_target] + var dylib_ext = tc.system == 'windows' ? '.dll' : (tc.system == 'darwin' ? '.dylib' : '.so') + var cc = tc.cpp || tc.c var local_dir = get_local_dir() - var tc = toolchains[target] + var pkg_dir = shop.get_package_dir(pkg) - // Resolve relative -L paths in ldflags for hash computation + // Get link flags + var ldflags = replace_sigils_array(pkg_tools.get_flags(pkg, 'LDFLAGS', _target)) + var target_ldflags = tc.c_link_args || [] var resolved_ldflags = [] arrfor(ldflags, function(flag) { if (starts_with(flag, '-L') && !starts_with(flag, '-L/')) { @@ -252,36 +238,21 @@ Build.build_dynamic = function(pkg, target = Build.detect_host_target(), buildty push(resolved_ldflags, flag) }) - // Compute link key - var link_key = compute_link_key(objects, resolved_ldflags, target_ldflags, target, cc) - var store_path = store_dir + '/' + lib_name + '-' + link_key + dylib_ext + // Content-addressed output: hash of (object + link flags + target) + var link_key = compute_link_key([obj], resolved_ldflags, target_ldflags, _target, cc) + var build_dir = get_build_dir() + ensure_dir(build_dir) + var dylib_path = build_dir + '/' + link_key + '.' + _target + dylib_ext - // Check if already linked in store - if (fd.is_file(store_path)) { - // Ensure symlink points to the store file - if (fd.is_link(stable_path)) { - var current_target = fd.readlink(stable_path) - if (current_target == store_path) { - // Already up to date - return stable_path - } - fd.unlink(stable_path) - } else if (fd.is_file(stable_path)) { - fd.unlink(stable_path) - } - fd.symlink(store_path, stable_path) - return stable_path - } + if (fd.is_file(dylib_path)) + return dylib_path - // Build link command var cmd_parts = [cc, '-shared', '-fPIC'] - // Platform-specific flags for undefined symbols (resolved at dlopen) and size optimization if (tc.system == 'darwin') { cmd_parts = array(cmd_parts, [ '-undefined', 'dynamic_lookup', '-Wl,-dead_strip', - '-Wl,-install_name,' + stable_path, '-Wl,-rpath,@loader_path/../local', '-Wl,-rpath,' + local_dir ]) @@ -293,41 +264,54 @@ Build.build_dynamic = function(pkg, target = Build.detect_host_target(), buildty '-Wl,-rpath,' + local_dir ]) } else if (tc.system == 'windows') { - // Windows DLLs: use --allow-shlib-undefined for mingw push(cmd_parts, '-Wl,--allow-shlib-undefined') } - // Add .cell/local to library search path push(cmd_parts, '-L"' + local_dir + '"') - - arrfor(objects, function(obj) { - push(cmd_parts, '"' + obj + '"') - }) - - // Do NOT link against core library - symbols resolved at dlopen time + push(cmd_parts, '"' + obj + '"') cmd_parts = array(cmd_parts, resolved_ldflags) cmd_parts = array(cmd_parts, target_ldflags) - push(cmd_parts, '-o') - push(cmd_parts, '"' + store_path + '"') + push(cmd_parts, '"' + dylib_path + '"') var cmd_str = text(cmd_parts, ' ') - - log.console('Linking ' + lib_name + dylib_ext) + log.console('Linking module ' + file + ' -> ' + fd.basename(dylib_path)) var ret = os.system(cmd_str) if (ret != 0) { - throw Error('Linking failed: ' + pkg) + print('Linking failed: ' + file); disrupt } - // Update symlink to point to the new store file - if (fd.is_link(stable_path)) { - fd.unlink(stable_path) - } else if (fd.is_file(stable_path)) { - fd.unlink(stable_path) - } - fd.symlink(store_path, stable_path) + return dylib_path +} - return stable_path +// Build a dynamic library for a package (one dylib per C file) +// Returns array of {file, symbol, dylib} for each module +// Also writes a manifest mapping symbols to dylib paths +Build.build_dynamic = function(pkg, target, buildtype) { + var _target = target || Build.detect_host_target() + var _buildtype = buildtype || 'release' + var c_files = pkg_tools.get_c_files(pkg, _target, true) + var results = [] + var manifest = {} + + arrfor(c_files, function(file) { + var sym_name = shop.c_symbol_for_file(pkg, file) + var dylib = Build.build_module_dylib(pkg, file, _target, _buildtype) + push(results, {file: file, symbol: sym_name, dylib: dylib}) + manifest[sym_name] = dylib + }) + + // Write manifest so the loader can find per-module dylibs by symbol + if (length(results) > 0) { + var lib_dir = shop.get_lib_dir() + ensure_dir(lib_dir) + var lib_name = shop.lib_name_for_package(pkg) + var manifest_path = lib_dir + '/' + lib_name + '.manifest.json' + var json = use('json') + fd.slurpwrite(manifest_path, stone(blob(json.encode(manifest)))) + } + + return results } // ============================================================================ @@ -412,43 +396,236 @@ Build.build_static = function(packages, target = Build.detect_host_target(), out return output } +// ============================================================================ +// Native .cm compilation (source → mcode → QBE IL → .o → .dylib) +// ============================================================================ + +// Post-process QBE IL: insert dead labels after ret/jmp (QBE requirement) +function qbe_insert_dead_labels(il_text) { + var lines = array(il_text, "\n") + var result = [] + var dead_id = 0 + var need_label = false + var i = 0 + var line = null + var trimmed = null + while (i < length(lines)) { + line = lines[i] + trimmed = trim(line) + if (need_label && !starts_with(trimmed, '@') && !starts_with(trimmed, '}') && length(trimmed) > 0) { + push(result, "@_dead_" + text(dead_id)) + dead_id = dead_id + 1 + need_label = false + } + if (starts_with(trimmed, '@') || starts_with(trimmed, '}') || length(trimmed) == 0) { + need_label = false + } + if (starts_with(trimmed, 'ret ') || starts_with(trimmed, 'jmp ')) { + need_label = true + } + push(result, line) + i = i + 1 + } + return text(result, "\n") +} + +// Compile a .cm source file to a native .dylib via QBE +// Returns the content-addressed dylib path +Build.compile_native = function(src_path, target, buildtype) { + var _target = target || Build.detect_host_target() + var _buildtype = buildtype || 'release' + + if (!fd.is_file(src_path)) { + print('Source file not found: ' + src_path); disrupt + } + + var tc = toolchains[_target] + var dylib_ext = tc.system == 'windows' ? '.dll' : (tc.system == 'darwin' ? '.dylib' : '.so') + var cc = tc.c + + // Step 1: Read source and compile through pipeline + var content = fd.slurp(src_path) + var src = text(content) + var tokenize = use('tokenize') + var parse = use('parse') + var fold = use('fold') + var mcode_mod = use('mcode') + var streamline_mod = use('streamline') + var qbe_macros = use('qbe') + var qbe_emit = use('qbe_emit') + + var tok_result = tokenize(src, src_path) + var ast = parse(tok_result.tokens, src, src_path, tokenize) + var folded = fold(ast) + var compiled = mcode_mod(folded) + var optimized = streamline_mod(compiled) + + // Step 2: Generate QBE IL + var il = qbe_emit(optimized, qbe_macros) + + // Step 3: Post-process (insert dead labels) + il = qbe_insert_dead_labels(il) + + // Content hash for cache key + var hash = content_hash(src + '\n' + _target + '\nnative') + var build_dir = get_build_dir() + ensure_dir(build_dir) + + var dylib_path = build_dir + '/' + hash + '.' + _target + dylib_ext + if (fd.is_file(dylib_path)) + return dylib_path + + // Step 4: Write QBE IL to temp file + var tmp = '/tmp/cell_native_' + hash + var ssa_path = tmp + '.ssa' + var s_path = tmp + '.s' + var o_path = tmp + '.o' + var rt_o_path = '/tmp/cell_qbe_rt.o' + + fd.slurpwrite(ssa_path, stone(blob(il))) + + // Step 5: QBE compile to assembly + var rc = os.system('qbe -o ' + s_path + ' ' + ssa_path) + if (rc != 0) { + print('QBE compilation failed for: ' + src_path); disrupt + } + + // Step 6: Assemble + rc = os.system(cc + ' -c ' + s_path + ' -o ' + o_path) + if (rc != 0) { + print('Assembly failed for: ' + src_path); disrupt + } + + // Step 7: Compile QBE runtime stubs if needed + if (!fd.is_file(rt_o_path)) { + var qbe_rt_path = shop.get_package_dir('core') + '/qbe_rt.c' + rc = os.system(cc + ' -c ' + qbe_rt_path + ' -o ' + rt_o_path + ' -fPIC') + if (rc != 0) { + print('QBE runtime stubs compilation failed'); disrupt + } + } + + // Step 8: Link dylib + var link_cmd = cc + ' -shared -fPIC' + if (tc.system == 'darwin') { + link_cmd = link_cmd + ' -undefined dynamic_lookup' + } else if (tc.system == 'linux') { + link_cmd = link_cmd + ' -Wl,--allow-shlib-undefined' + } + link_cmd = link_cmd + ' ' + o_path + ' ' + rt_o_path + ' -o ' + dylib_path + + rc = os.system(link_cmd) + if (rc != 0) { + print('Linking native dylib failed for: ' + src_path); disrupt + } + + log.console('Built native: ' + fd.basename(dylib_path)) + return dylib_path +} + +// ============================================================================ +// Module table generation (for static builds) +// ============================================================================ + +// Compile a .cm module to mach bytecode blob +// Returns the raw mach bytes as a blob +Build.compile_cm_to_mach = function(src_path) { + if (!fd.is_file(src_path)) { + print('Source file not found: ' + src_path); disrupt + } + var src = text(fd.slurp(src_path)) + var tokenize = use('tokenize') + var parse = use('parse') + var fold = use('fold') + var mcode_mod = use('mcode') + var streamline_mod = use('streamline') + var json = use('json') + + var tok_result = tokenize(src, src_path) + var ast = parse(tok_result.tokens, src, src_path, tokenize) + var folded = fold(ast) + var compiled = mcode_mod(folded) + var optimized = streamline_mod(compiled) + return mach_compile_mcode_bin(src_path, json.encode(optimized)) +} + +// Generate a module_table.c file that embeds mach bytecode for .cm modules +// modules: array of {name, src_path} — name is the module name, src_path is the .cm file +// output: path to write the generated .c file +Build.generate_module_table = function(modules, output) { + var lines = [] + var json = use('json') + push(lines, '/* Generated module table — do not edit */') + push(lines, '#include ') + push(lines, '#include ') + push(lines, '') + push(lines, 'struct cell_embedded_entry {') + push(lines, ' const char *name;') + push(lines, ' const unsigned char *data;') + push(lines, ' size_t size;') + push(lines, '};') + push(lines, '') + + var entries = [] + arrfor(modules, function(mod) { + var safe = replace(replace(replace(mod.name, '/', '_'), '.', '_'), '-', '_') + var mach = Build.compile_cm_to_mach(mod.src_path) + var bytes = array(mach) + var hex = [] + arrfor(bytes, function(b) { + push(hex, '0x' + text(b, 'h2')) + }) + push(lines, 'static const unsigned char mod_' + safe + '_data[] = {') + push(lines, ' ' + text(hex, ', ')) + push(lines, '};') + push(lines, '') + push(entries, safe) + log.console('Embedded: ' + mod.name + ' (' + text(length(bytes)) + ' bytes)') + }) + + // Lookup function + push(lines, 'const struct cell_embedded_entry *cell_embedded_module_lookup(const char *name) {') + arrfor(modules, function(mod, i) { + var safe = entries[i] + push(lines, ' if (strcmp(name, "' + mod.name + '") == 0) {') + push(lines, ' static const struct cell_embedded_entry e = {"' + mod.name + '", mod_' + safe + '_data, sizeof(mod_' + safe + '_data)};') + push(lines, ' return &e;') + push(lines, ' }') + }) + push(lines, ' return (void *)0;') + push(lines, '}') + + var c_text = text(lines, '\n') + fd.slurpwrite(output, stone(blob(c_text))) + log.console('Generated ' + output) + return output +} + // ============================================================================ // Convenience functions // ============================================================================ // Build dynamic libraries for all installed packages -Build.build_all_dynamic = function(target, buildtype = 'release') { - target = target || Build.detect_host_target() - +Build.build_all_dynamic = function(target, buildtype) { + var _target = target || Build.detect_host_target() + var _buildtype = buildtype || 'release' + var packages = shop.list_packages() var results = [] - + // Build core first - if (find(packages, 'core') != null) { - try { - var lib = Build.build_dynamic('core', target, buildtype) - push(results, { package: 'core', library: lib }) - } catch (e) { - log.error('Failed to build core: ' + text(e)) - push(results, { package: 'core', error: e }) - } + if (find(packages, function(p) { return p == 'core' }) != null) { + var core_mods = Build.build_dynamic('core', _target, _buildtype) + push(results, {package: 'core', modules: core_mods}) } - + // Build other packages arrfor(packages, function(pkg) { if (pkg == 'core') return - - try { - var lib = Build.build_dynamic(pkg, target, buildtype) - push(results, { package: pkg, library: lib }) - } catch (e) { - log.error('Failed to build ' + pkg + ': ') - log.console(e.message) - log.console(e.stack) - push(results, { package: pkg, error: e }) - } + var pkg_mods = Build.build_dynamic(pkg, _target, _buildtype) + push(results, {package: pkg, modules: pkg_mods}) }) - + return results } diff --git a/fd.cm b/fd.cm index cc0ffbf2..7e451079 100644 --- a/fd.cm +++ b/fd.cm @@ -1,4 +1,4 @@ -var fd = native +var fd = use('internal/fd_c') var wildstar = use('wildstar') function last_pos(str, sep) { diff --git a/internal/bootstrap.cm b/internal/bootstrap.cm index 7e7901f4..1795fb09 100644 --- a/internal/bootstrap.cm +++ b/internal/bootstrap.cm @@ -65,6 +65,7 @@ function check_mach_stale() { "streamline.cm", "qbe.cm", "qbe_emit.cm", + "verify_ir.cm", "internal/bootstrap.cm", "internal/engine.cm" ] @@ -140,38 +141,11 @@ function analyze(src, filename) { return ast } -// Load a module from .mach/.mcode bytecode, falling back to source compilation -function load_module(name, env) { - var mach_path = core_path + '/' + name + ".cm.mach" - var mcode_path = core_path + '/' + name + ".cm.mcode" - var data = null - var mcode_json = null - var src_path = null - var src = null - var ast = null - var compiled = null - var optimized = null - if (fd.is_file(mach_path)) { - data = fd.slurp(mach_path) - return mach_load(data, env) - } - if (fd.is_file(mcode_path)) { - mcode_json = text(fd.slurp(mcode_path)) - return mach_eval_mcode(name, mcode_json, env) - } - src_path = core_path + '/' + name + ".cm" - src = text(fd.slurp(src_path)) - ast = analyze(src, src_path) - compiled = mcode_mod(ast) - optimized = streamline_mod(compiled) - return mach_eval_mcode(name, json.encode(optimized), env) -} - // Load optimization pipeline modules (needs analyze to be defined) -streamline_mod = load_module("streamline", boot_env) +streamline_mod = boot_load("streamline", boot_env) use_cache['streamline'] = streamline_mod -// Lazy-loaded verify_ir module (loaded on first use via use_fn) +// Lazy-loaded verify_ir module (loaded on first use) var _verify_ir_mod = null // Run AST through mcode pipeline → register VM @@ -179,7 +153,7 @@ function run_ast(name, ast, env) { var compiled = mcode_mod(ast) if (os._verify_ir) { if (_verify_ir_mod == null) { - _verify_ir_mod = use_fn('verify_ir') + _verify_ir_mod = boot_load('verify_ir', boot_env) } compiled._verify = true compiled._verify_mod = _verify_ir_mod @@ -199,60 +173,6 @@ function run_ast_noopt(name, ast, env) { return mach_eval_mcode(name, json.encode(compiled), env) } -// use() with ƿit pipeline for .cm modules -function use_fn(path) { - var file_path = null - var mach_path = null - var mcode_path = null - var mcode_json = null - var data = null - var script = null - var ast = null - var result = null - if (use_cache[path]) - return use_cache[path] - - // Try .cm.mach bytecode first (CWD then core_path) - mach_path = path + '.cm.mach' - if (!fd.is_file(mach_path)) - mach_path = core_path + '/' + path + '.cm.mach' - if (fd.is_file(mach_path)) { - data = fd.slurp(mach_path) - result = mach_load(data, {use: use_fn}) - use_cache[path] = result - return result - } - - // Try .cm.mcode JSON IR (CWD then core_path) - mcode_path = path + '.cm.mcode' - if (!fd.is_file(mcode_path)) - mcode_path = core_path + '/' + path + '.cm.mcode' - if (fd.is_file(mcode_path)) { - mcode_json = text(fd.slurp(mcode_path)) - result = mach_eval_mcode(path, mcode_json, {use: use_fn}) - use_cache[path] = result - return result - } - - // Try .cm source (CWD then core_path) - file_path = path + '.cm' - if (!fd.is_file(file_path)) - file_path = core_path + '/' + path + '.cm' - - if (fd.is_file(file_path)) { - script = text(fd.slurp(file_path)) - ast = analyze(script, file_path) - result = run_ast(path, ast, {use: use_fn}) - use_cache[path] = result - return result - } - - // Fallback to embedded C module - result = use_embed(replace(path, '/', '_')) - use_cache[path] = result - return result -} - // Helper to load engine.cm and run it with given env function load_engine(env) { var engine_path = core_path + '/internal/engine.cm.mach' @@ -298,13 +218,15 @@ if (args != null) { os: os, actorsym: actorsym, init: {program: program, arg: user_args}, core_path: core_path, shop_path: shop_path, json: json, - analyze: analyze, run_ast_fn: run_ast, run_ast_noopt_fn: run_ast_noopt + analyze: analyze, run_ast_fn: run_ast, run_ast_noopt_fn: run_ast_noopt, + use_cache: use_cache }) } else { // Actor spawn mode — load engine.cm with full actor env load_engine({ os: os, actorsym: actorsym, init: init, core_path: core_path, shop_path: shop_path, json: json, nota: nota, wota: wota, - analyze: analyze, run_ast_fn: run_ast, run_ast_noopt_fn: run_ast_noopt + analyze: analyze, run_ast_fn: run_ast, run_ast_noopt_fn: run_ast_noopt, + use_cache: use_cache }) } diff --git a/internal/bootstrap.cm.mcode b/internal/bootstrap.cm.mcode index d34d0830..807deae0 100644 --- a/internal/bootstrap.cm.mcode +++ b/internal/bootstrap.cm.mcode @@ -50,7 +50,7 @@ "add_err_7", ["disrupt", 7, 39], "add_done_6", - ["get", 11, 17, 1, 7, 10], + ["get", 11, 9, 1, 7, 10], ["frame", 12, 11, 1, 7, 10], ["null", 13, 7, 10], ["setarg", 12, 0, 13, 7, 10], @@ -69,10 +69,10 @@ "nr_slots": 19, "nr_close_slots": 0, "instructions": [ - ["get", 3, 20, 1, 20, 7], + ["get", 3, 18, 1, 20, 7], ["load_dynamic", 4, 3, 1, 20, 17], ["jump_false", 4, "if_else_8", 20, 17], - ["get", 5, 20, 1, 21, 12], + ["get", 5, 18, 1, 21, 12], ["load_dynamic", 6, 5, 1, 21, 22], ["return", 6, 21, 22], ["jump", "if_end_9", 21, 22], @@ -98,14 +98,14 @@ ["setarg", 11, 2, 7, 22, 26], ["setarg", 11, 3, 8, 22, 26], ["invoke", 11, 9, 22, 26], - ["get", 14, 12, 1, 22, 16], + ["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, 20, 1, 23, 3], + ["get", 17, 18, 1, 23, 3], ["store_dynamic", 17, 2, 1, 23, 13], ["return", 2, 24, 10], ["null", 18, 24, 10], @@ -280,7 +280,7 @@ ["move", 6, 28, 30, 45], ["null", 3, 31, 14], ["null", 5, 32, 20], - ["get", 32, 14, 1, 33, 7], + ["get", 32, 4, 1, 33, 7], ["is_proxy", 33, 32, 33, 7], ["jump_false", 33, "record_path_36", 33, 7], ["null", 34, 33, 7], @@ -301,7 +301,7 @@ ["invoke", 39, 31, 33, 7], "call_done_37", ["jump_false", 31, "if_else_34", 33, 7], - ["get", 41, 14, 1, 34, 12], + ["get", 41, 4, 1, 34, 12], ["is_proxy", 42, 41, 34, 12], ["jump_false", 42, "record_path_38", 34, 12], ["null", 43, 34, 12], @@ -343,7 +343,7 @@ ["jump", "if_end_35", 35, 12], "if_else_34", "if_end_35", - ["get", 54, 14, 1, 37, 7], + ["get", 54, 4, 1, 37, 7], ["is_proxy", 55, 54, 37, 7], ["jump_false", 55, "record_path_42", 37, 7], ["null", 56, 37, 7], @@ -364,7 +364,7 @@ ["invoke", 61, 53, 37, 7], "call_done_43", ["jump_false", 53, "if_else_40", 37, 7], - ["get", 63, 14, 1, 38, 23], + ["get", 63, 4, 1, 38, 23], ["is_proxy", 64, 63, 38, 23], ["jump_false", 64, "record_path_44", 38, 23], ["null", 65, 38, 23], @@ -493,7 +493,7 @@ }, { "disruption_pc": 0, - "nr_slots": 151, + "nr_slots": 152, "nr_close_slots": 0, "instructions": [ ["access", 10, "tokenize.cm", 61, 5], @@ -503,586 +503,571 @@ ["access", 14, "streamline.cm", 65, 5], ["access", 15, "qbe.cm", 66, 5], ["access", 16, "qbe_emit.cm", 67, 5], - ["access", 17, "internal/bootstrap.cm", 68, 5], - ["access", 18, "internal/engine.cm", 69, 5], - ["array", 19, 0, 69, 5], - ["push", 19, 10, 69, 5], - ["push", 19, 11, 69, 5], - ["push", 19, 12, 69, 5], - ["push", 19, 13, 69, 5], - ["push", 19, 14, 69, 5], - ["push", 19, 15, 69, 5], - ["push", 19, 16, 69, 5], - ["push", 19, 17, 69, 5], - ["push", 19, 18, 69, 5], - ["move", 7, 19, 69, 5], - ["array", 20, 0, 71, 15], - ["move", 2, 20, 71, 15], - ["access", 8, 0, 72, 12], - ["null", 1, 73, 17], - ["null", 3, 74, 19], - ["null", 9, 75, 20], - ["null", 4, 76, 17], - ["null", 5, 77, 23], - ["null", 6, 78, 20], + ["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", 21, 7, 79, 22], - ["is_int", 23, 8, 79, 22], - ["jump_false", 23, "rel_ni_56", 79, 22], + ["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", 22, 8, 21, 79, 22], - ["jump", "rel_done_58", 79, 22], + ["lt_int", 23, 8, 22, 80, 22], + ["jump", "rel_done_58", 80, 22], "rel_ni_56", - ["is_num", 23, 8, 79, 22], - ["jump_false", 23, "rel_nn_57", 79, 22], - ["is_num", 24, 21, 79, 22], - ["jump_false", 24, "rel_nn_57", 79, 22], - ["lt_float", 22, 8, 21, 79, 22], - ["jump", "rel_done_58", 79, 22], + ["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", 23, 8, 79, 22], - ["jump_false", 23, "rel_err_59", 79, 22], - ["is_text", 24, 21, 79, 22], - ["jump_false", 24, "rel_err_59", 79, 22], - ["lt_text", 22, 8, 21, 79, 22], - ["jump", "rel_done_58", 79, 22], + ["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", 79, 22], + ["disrupt", 80, 22], "rel_done_58", - ["jump_false", 22, "while_end_55", 79, 22], + ["jump_false", 23, "while_end_55", 80, 22], [ "access", - 25, + 26, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 80, + 81, 15 ], - ["access", 26, "/", 80, 27], - ["is_int", 28, 25, 80, 27], - ["jump_false", 28, "add_ni_60", 80, 27], + ["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", 80, 27], - ["add_int", 27, 25, 26, 80, 27], - ["jump", "add_done_62", 80, 27], + ["jump", "add_ni_60", 81, 27], + ["add_int", 28, 26, 27, 81, 27], + ["jump", "add_done_62", 81, 27], "add_ni_60", - ["is_text", 28, 25, 80, 27], - ["jump_false", 28, "add_nt_61", 80, 27], - ["concat", 27, 25, 26, 80, 27], - ["jump", "add_done_62", 80, 27], + ["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", 28, 25, 80, 27], - ["jump_false", 28, "add_err_63", 80, 27], - ["is_num", 29, 26, 80, 27], - ["jump_false", 29, "add_err_63", 80, 27], - ["add_float", 27, 25, 26, 80, 27], - ["jump", "add_done_62", 80, 27], + ["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", 80, 27], - "add_done_62", - ["load_dynamic", 30, 7, 8, 80, 41], - ["is_int", 32, 27, 80, 41], - ["jump_false", 32, "add_ni_64", 80, 41], - ["is_int", 33, 30, 80, 41], - ["jump_false", 33, "add_ni_64", 80, 41], - ["add_int", 31, 27, 30, 80, 41], - ["jump", "add_done_66", 80, 41], - "add_ni_64", - ["is_text", 32, 27, 80, 41], - ["jump_false", 32, "add_nt_65", 80, 41], - ["is_text", 33, 30, 80, 41], - ["jump_false", 33, "add_nt_65", 80, 41], - ["concat", 31, 27, 30, 80, 41], - ["jump", "add_done_66", 80, 41], - "add_nt_65", - ["is_num", 32, 27, 80, 41], - ["jump_false", 32, "add_err_67", 80, 41], - ["is_num", 33, 30, 80, 41], - ["jump_false", 33, "add_err_67", 80, 41], - ["add_float", 31, 27, 30, 80, 41], - ["jump", "add_done_66", 80, 41], - "add_err_67", - ["disrupt", 80, 41], - "add_done_66", - ["move", 1, 31, 80, 41], - ["access", 34, ".mach", 81, 27], - ["is_int", 36, 1, 81, 27], - ["jump_false", 36, "add_ni_68", 81, 27], - "_nop_tc_4", - ["jump", "add_ni_68", 81, 27], - ["add_int", 35, 1, 34, 81, 27], - ["jump", "add_done_70", 81, 27], - "add_ni_68", - ["is_text", 36, 1, 81, 27], - ["jump_false", 36, "add_nt_69", 81, 27], - ["concat", 35, 1, 34, 81, 27], - ["jump", "add_done_70", 81, 27], - "add_nt_69", - ["is_num", 36, 1, 81, 27], - ["jump_false", 36, "add_err_71", 81, 27], - ["is_num", 37, 34, 81, 27], - ["jump_false", 37, "add_err_71", 81, 27], - ["add_float", 35, 1, 34, 81, 27], - ["jump", "add_done_70", 81, 27], - "add_err_71", ["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, 35, 81, 27], - ["access", 38, ".mcode", 82, 28], - ["is_int", 40, 1, 82, 28], - ["jump_false", 40, "add_ni_72", 82, 28], + ["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", 82, 28], - ["add_int", 39, 1, 38, 82, 28], - ["jump", "add_done_74", 82, 28], + ["jump", "add_ni_72", 83, 28], + ["add_int", 40, 1, 39, 83, 28], + ["jump", "add_done_74", 83, 28], "add_ni_72", - ["is_text", 40, 1, 82, 28], - ["jump_false", 40, "add_nt_73", 82, 28], - ["concat", 39, 1, 38, 82, 28], - ["jump", "add_done_74", 82, 28], + ["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", 40, 1, 82, 28], - ["jump_false", 40, "add_err_75", 82, 28], - ["is_num", 41, 38, 82, 28], - ["jump_false", 41, "add_err_75", 82, 28], - ["add_float", 39, 1, 38, 82, 28], - ["jump", "add_done_74", 82, 28], + ["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", 82, 28], + ["disrupt", 83, 28], "add_done_74", - ["move", 9, 39, 82, 28], - ["null", 42, 83, 18], - ["move", 6, 42, 83, 18], - ["get", 44, 14, 1, 84, 9], - ["is_proxy", 45, 44, 84, 9], - ["jump_false", 45, "record_path_78", 84, 9], - ["null", 46, 84, 9], - ["access", 47, "is_file", 84, 9], - ["array", 48, 0, 84, 9], - ["push", 48, 3, 84, 9], - ["frame", 49, 44, 2, 84, 9], - ["setarg", 49, 0, 46, 84, 9], - ["setarg", 49, 1, 47, 84, 9], - ["setarg", 49, 2, 48, 84, 9], - ["invoke", 49, 43, 84, 9], - ["jump", "call_done_79", 84, 9], + ["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", 50, 44, "is_file", 84, 9], - ["frame", 51, 50, 1, 84, 9], - ["setarg", 51, 0, 44, 84, 9], - ["setarg", 51, 1, 3, 84, 9], - ["invoke", 51, 43, 84, 9], + ["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", 43, "if_else_76", 84, 9], - ["get", 53, 14, 1, 85, 20], - ["is_proxy", 54, 53, 85, 20], - ["jump_false", 54, "record_path_80", 85, 20], - ["null", 55, 85, 20], - ["access", 56, "stat", 85, 20], - ["array", 57, 0, 85, 20], - ["push", 57, 3, 85, 20], - ["frame", 58, 53, 2, 85, 20], - ["setarg", 58, 0, 55, 85, 20], - ["setarg", 58, 1, 56, 85, 20], - ["setarg", 58, 2, 57, 85, 20], - ["invoke", 58, 52, 85, 20], - ["jump", "call_done_81", 85, 20], + ["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", 59, 53, "stat", 85, 20], - ["frame", 60, 59, 1, 85, 20], - ["setarg", 60, 0, 53, 85, 20], - ["setarg", 60, 1, 3, 85, 20], - ["invoke", 60, 52, 85, 20], + ["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", 61, 52, "mtime", 85, 20], - ["move", 6, 61, 85, 20], - ["jump", "if_end_77", 85, 20], + ["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", 63, 14, 1, 87, 9], - ["is_proxy", 64, 63, 87, 9], - ["jump_false", 64, "record_path_84", 87, 9], - ["null", 65, 87, 9], - ["access", 66, "is_file", 87, 9], - ["array", 67, 0, 87, 9], - ["push", 67, 9, 87, 9], - ["frame", 68, 63, 2, 87, 9], - ["setarg", 68, 0, 65, 87, 9], - ["setarg", 68, 1, 66, 87, 9], - ["setarg", 68, 2, 67, 87, 9], - ["invoke", 68, 62, 87, 9], - ["jump", "call_done_85", 87, 9], + ["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", 69, 63, "is_file", 87, 9], - ["frame", 70, 69, 1, 87, 9], - ["setarg", 70, 0, 63, 87, 9], - ["setarg", 70, 1, 9, 87, 9], - ["invoke", 70, 62, 87, 9], + ["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", 62, "if_else_82", 87, 9], - ["get", 72, 14, 1, 88, 23], - ["is_proxy", 73, 72, 88, 23], - ["jump_false", 73, "record_path_86", 88, 23], - ["null", 74, 88, 23], - ["access", 75, "stat", 88, 23], - ["array", 76, 0, 88, 23], - ["push", 76, 9, 88, 23], - ["frame", 77, 72, 2, 88, 23], - ["setarg", 77, 0, 74, 88, 23], - ["setarg", 77, 1, 75, 88, 23], - ["setarg", 77, 2, 76, 88, 23], - ["invoke", 77, 71, 88, 23], - ["jump", "call_done_87", 88, 23], + ["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", 78, 72, "stat", 88, 23], - ["frame", 79, 78, 1, 88, 23], - ["setarg", 79, 0, 72, 88, 23], - ["setarg", 79, 1, 9, 88, 23], - ["invoke", 79, 71, 88, 23], + ["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, 71, 88, 23], - ["null", 80, 89, 25], - ["is_identical", 81, 6, 80, 89, 25], - ["jump_true", 81, "eq_done_91", 89, 25], - ["is_int", 82, 6, 89, 25], - ["jump_false", 82, "eq_ni_92", 89, 25], + ["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", 89, 25], - ["eq_int", 81, 6, 80, 89, 25], - ["jump", "eq_done_91", 89, 25], + ["jump", "eq_ni_92", 90, 25], + ["eq_int", 82, 6, 81, 90, 25], + ["jump", "eq_done_91", 90, 25], "eq_ni_92", - ["is_num", 82, 6, 89, 25], - ["jump_false", 82, "eq_nn_93", 89, 25], - ["is_num", 83, 80, 89, 25], - ["jump_false", 83, "eq_nn_93", 89, 25], - ["eq_float", 81, 6, 80, 89, 25], - ["jump", "eq_done_91", 89, 25], + ["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", 82, 6, 89, 25], - ["jump_false", 82, "eq_nt_94", 89, 25], - ["is_text", 83, 80, 89, 25], - ["jump_false", 83, "eq_nt_94", 89, 25], - ["eq_text", 81, 6, 80, 89, 25], - ["jump", "eq_done_91", 89, 25], + ["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", 82, 6, 89, 25], - ["jump_false", 82, "eq_nnl_95", 89, 25], - ["is_null", 83, 80, 89, 25], - ["jump_false", 83, "eq_nnl_95", 89, 25], - ["true", 81, 89, 25], - ["jump", "eq_done_91", 89, 25], + ["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", 82, 6, 89, 25], - ["jump_false", 82, "eq_nb_96", 89, 25], - ["is_bool", 83, 80, 89, 25], - ["jump_false", 83, "eq_nb_96", 89, 25], - ["eq_bool", 81, 6, 80, 89, 25], - ["jump", "eq_done_91", 89, 25], + ["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", 81, 89, 25], + ["false", 82, 90, 25], "eq_done_91", - ["move", 84, 81, 89, 25], - ["jump_true", 84, "or_end_90", 89, 25], - ["load_field", 85, 5, "mtime", 89, 33], - ["is_int", 87, 85, 89, 55], - ["jump_false", 87, "rel_ni_97", 89, 55], - ["is_int", 88, 6, 89, 55], - ["jump_false", 88, "rel_ni_97", 89, 55], - ["gt_int", 86, 85, 6, 89, 55], - ["jump", "rel_done_99", 89, 55], + ["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", 87, 85, 89, 55], - ["jump_false", 87, "rel_nn_98", 89, 55], - ["is_num", 88, 6, 89, 55], - ["jump_false", 88, "rel_nn_98", 89, 55], - ["gt_float", 86, 85, 6, 89, 55], - ["jump", "rel_done_99", 89, 55], + ["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", 87, 85, 89, 55], - ["jump_false", 87, "rel_err_100", 89, 55], - ["is_text", 88, 6, 89, 55], - ["jump_false", 88, "rel_err_100", 89, 55], - ["gt_text", 86, 85, 6, 89, 55], - ["jump", "rel_done_99", 89, 55], + ["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", 89, 55], + ["disrupt", 90, 55], "rel_done_99", - ["move", 84, 86, 89, 55], + ["move", 85, 87, 90, 55], "or_end_90", - ["jump_false", 84, "if_else_88", 89, 55], - ["load_field", 89, 5, "mtime", 90, 22], - ["move", 6, 89, 90, 22], - ["jump", "if_end_89", 90, 22], + ["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", 90, 22], + ["jump", "if_end_83", 91, 22], "if_else_82", "if_end_83", - ["null", 90, 93, 23], - ["is_identical", 91, 6, 90, 93, 23], - ["jump_true", 91, "ne_nid_105", 93, 23], - ["jump", "ne_ni_106", 93, 23], + ["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", 91, 93, 23], - ["jump", "ne_done_104", 93, 23], + ["false", 92, 94, 23], + ["jump", "ne_done_104", 94, 23], "ne_ni_106", - ["is_int", 92, 6, 93, 23], - ["jump_false", 92, "ne_nn_107", 93, 23], - ["is_int", 93, 90, 93, 23], - ["jump_false", 93, "ne_nn_107", 93, 23], - ["ne_int", 91, 6, 90, 93, 23], - ["jump", "ne_done_104", 93, 23], + ["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", 92, 6, 93, 23], - ["jump_false", 92, "ne_nt_108", 93, 23], - ["is_num", 93, 90, 93, 23], - ["jump_false", 93, "ne_nt_108", 93, 23], - ["ne_float", 91, 6, 90, 93, 23], - ["jump", "ne_done_104", 93, 23], + ["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", 92, 6, 93, 23], - ["jump_false", 92, "ne_nnl_109", 93, 23], - ["is_text", 93, 90, 93, 23], - ["jump_false", 93, "ne_nnl_109", 93, 23], - ["ne_text", 91, 6, 90, 93, 23], - ["jump", "ne_done_104", 93, 23], + ["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", 92, 6, 93, 23], - ["jump_false", 92, "ne_nb_110", 93, 23], - ["is_null", 93, 90, 93, 23], - ["jump_false", 93, "ne_nb_110", 93, 23], - ["false", 91, 93, 23], - ["jump", "ne_done_104", 93, 23], + ["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", 92, 6, 93, 23], - ["jump_false", 92, "ne_mis_111", 93, 23], - ["is_bool", 93, 90, 93, 23], - ["jump_false", 93, "ne_mis_111", 93, 23], - ["ne_bool", 91, 6, 90, 93, 23], - ["jump", "ne_done_104", 93, 23], + ["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", 91, 93, 23], + ["true", 92, 94, 23], "ne_done_104", - ["move", 94, 91, 93, 23], - ["jump_false", 94, "and_end_103", 93, 23], - ["get", 96, 14, 1, 93, 31], - ["is_proxy", 97, 96, 93, 31], - ["jump_false", 97, "record_path_112", 93, 31], - ["null", 98, 93, 31], - ["access", 99, "is_file", 93, 31], - ["array", 100, 0, 93, 31], - ["push", 100, 1, 93, 31], - ["frame", 101, 96, 2, 93, 31], - ["setarg", 101, 0, 98, 93, 31], - ["setarg", 101, 1, 99, 93, 31], - ["setarg", 101, 2, 100, 93, 31], - ["invoke", 101, 95, 93, 31], - ["jump", "call_done_113", 93, 31], + ["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", 102, 96, "is_file", 93, 31], - ["frame", 103, 102, 1, 93, 31], - ["setarg", 103, 0, 96, 93, 31], - ["setarg", 103, 1, 1, 93, 31], - ["invoke", 103, 95, 93, 31], + ["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", 94, 95, 93, 31], + ["move", 95, 96, 94, 31], "and_end_103", - ["jump_false", 94, "if_else_101", 93, 31], - ["get", 105, 14, 1, 94, 17], - ["is_proxy", 106, 105, 94, 17], - ["jump_false", 106, "record_path_114", 94, 17], - ["null", 107, 94, 17], - ["access", 108, "stat", 94, 17], - ["array", 109, 0, 94, 17], - ["push", 109, 1, 94, 17], - ["frame", 110, 105, 2, 94, 17], - ["setarg", 110, 0, 107, 94, 17], - ["setarg", 110, 1, 108, 94, 17], - ["setarg", 110, 2, 109, 94, 17], - ["invoke", 110, 104, 94, 17], - ["jump", "call_done_115", 94, 17], + ["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", 111, 105, "stat", 94, 17], - ["frame", 112, 111, 1, 94, 17], - ["setarg", 112, 0, 105, 94, 17], - ["setarg", 112, 1, 1, 94, 17], - ["invoke", 112, 104, 94, 17], + ["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, 104, 94, 17], - ["load_field", 113, 4, "mtime", 95, 11], - ["is_int", 115, 113, 95, 27], - ["jump_false", 115, "rel_ni_118", 95, 27], - ["is_int", 116, 6, 95, 27], - ["jump_false", 116, "rel_ni_118", 95, 27], - ["gt_int", 114, 113, 6, 95, 27], - ["jump", "rel_done_120", 95, 27], + ["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", 115, 113, 95, 27], - ["jump_false", 115, "rel_nn_119", 95, 27], - ["is_num", 116, 6, 95, 27], - ["jump_false", 116, "rel_nn_119", 95, 27], - ["gt_float", 114, 113, 6, 95, 27], - ["jump", "rel_done_120", 95, 27], + ["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", 115, 113, 95, 27], - ["jump_false", 115, "rel_err_121", 95, 27], - ["is_text", 116, 6, 95, 27], - ["jump_false", 116, "rel_err_121", 95, 27], - ["gt_text", 114, 113, 6, 95, 27], - ["jump", "rel_done_120", 95, 27], + ["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", 95, 27], + ["disrupt", 96, 27], "rel_done_120", - ["jump_false", 114, "if_else_116", 95, 27], - ["load_dynamic", 117, 7, 8, 96, 29], - ["is_array", 118, 2, 96, 29], - ["jump_false", 118, "push_err_122", 96, 29], - ["push", 2, 117, 96, 29], - ["jump", "push_done_123", 96, 29], + ["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", 96, 29], + ["disrupt", 97, 29], "push_done_123", - ["jump", "if_end_117", 96, 29], + ["jump", "if_end_117", 97, 29], "if_else_116", "if_end_117", - ["jump", "if_end_102", 96, 29], + ["jump", "if_end_102", 97, 29], "if_else_101", "if_end_102", - ["access", 119, 1, 99, 15], - ["is_int", 121, 8, 99, 15], - ["jump_false", 121, "add_ni_124", 99, 15], - ["add_int", 120, 8, 119, 99, 15], - ["jump", "add_done_126", 99, 15], + ["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", 121, 8, 99, 15], - ["jump_false", 121, "add_nt_125", 99, 15], - ["is_text", 122, 119, 99, 15], - ["jump_false", 122, "add_nt_125", 99, 15], - ["concat", 120, 8, 119, 99, 15], - ["jump", "add_done_126", 99, 15], + ["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", 121, 8, 99, 15], - ["jump_false", 121, "add_err_127", 99, 15], - ["add_float", 120, 8, 119, 99, 15], - ["jump", "add_done_126", 99, 15], + ["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", 99, 15], + ["disrupt", 100, 15], "add_done_126", - ["move", 8, 120, 99, 15], - ["jump", "while_start_54", 99, 15], + ["move", 8, 121, 100, 15], + ["jump", "while_start_54", 100, 15], "while_end_55", - ["length", 123, 2, 101, 14], - ["access", 124, 0, 101, 23], + ["length", 124, 2, 102, 14], + ["access", 125, 0, 102, 23], "_nop_tc_7", "_nop_tc_8", "_nop_tc_9", - ["jump", "rel_ni_130", 101, 23], - ["gt_int", 125, 123, 124, 101, 23], - ["jump", "rel_done_132", 101, 23], + ["jump", "rel_ni_130", 102, 23], + ["gt_int", 126, 124, 125, 102, 23], + ["jump", "rel_done_132", 102, 23], "rel_ni_130", - ["is_num", 126, 123, 101, 23], - ["jump_false", 126, "rel_nn_131", 101, 23], - ["is_num", 127, 124, 101, 23], - ["jump_false", 127, "rel_nn_131", 101, 23], - ["gt_float", 125, 123, 124, 101, 23], - ["jump", "rel_done_132", 101, 23], + ["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", 126, 123, 101, 23], - ["jump_false", 126, "rel_err_133", 101, 23], - ["is_text", 127, 124, 101, 23], - ["jump_false", 127, "rel_err_133", 101, 23], - ["gt_text", 125, 123, 124, 101, 23], - ["jump", "rel_done_132", 101, 23], + ["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", 101, 23], + ["disrupt", 102, 23], "rel_done_132", - ["jump_false", 125, "if_else_128", 101, 23], - ["access", 128, "warning: bytecode is stale for: ", 102, 11], - ["access", 129, ", ", 102, 60], + ["jump_false", 126, "if_else_128", 102, 23], + ["access", 129, "warning: bytecode is stale for: ", 103, 11], + ["access", 130, ", ", 103, 60], [ "access", - 131, + 132, { "name": "text", "kind": "name", "make": "intrinsic" }, - 102, + 103, 48 ], - ["frame", 132, 131, 2, 102, 48], - ["null", 133, 102, 48], - ["setarg", 132, 0, 133, 102, 48], - ["setarg", 132, 1, 2, 102, 48], - ["setarg", 132, 2, 129, 102, 48], - ["invoke", 132, 130, 102, 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", 102, 48], - ["is_int", 136, 130, 102, 48], - ["jump_false", 136, "add_ni_134", 102, 48], - ["add_int", 134, 128, 130, 102, 48], - ["jump", "add_done_136", 102, 48], + ["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", 136, 130, 102, 48], - ["jump_false", 136, "add_nt_135", 102, 48], - ["concat", 134, 128, 130, 102, 48], - ["jump", "add_done_136", 102, 48], + ["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", 135, 128, 102, 48], - ["jump_false", 135, "add_err_137", 102, 48], - ["is_num", 136, 130, 102, 48], - ["jump_false", 136, "add_err_137", 102, 48], - ["add_float", 134, 128, 130, 102, 48], - ["jump", "add_done_136", 102, 48], + ["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", 102, 48], + ["disrupt", 103, 48], "add_done_136", - ["access", 137, "\n", 102, 68], - ["is_int", 139, 134, 102, 68], - ["jump_false", 139, "add_ni_138", 102, 68], + ["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", 102, 68], - ["add_int", 138, 134, 137, 102, 68], - ["jump", "add_done_140", 102, 68], + ["jump", "add_ni_138", 103, 68], + ["add_int", 139, 135, 138, 103, 68], + ["jump", "add_done_140", 103, 68], "add_ni_138", - ["is_text", 139, 134, 102, 68], - ["jump_false", 139, "add_nt_139", 102, 68], - ["concat", 138, 134, 137, 102, 68], - ["jump", "add_done_140", 102, 68], + ["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", 139, 134, 102, 68], - ["jump_false", 139, "add_err_141", 102, 68], - ["is_num", 140, 137, 102, 68], - ["jump_false", 140, "add_err_141", 102, 68], - ["add_float", 138, 134, 137, 102, 68], - ["jump", "add_done_140", 102, 68], + ["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", 102, 68], + ["disrupt", 103, 68], "add_done_140", [ "access", - 142, - { - "name": "print", - "kind": "name", - "make": "intrinsic" - }, - 102, - 5 - ], - ["frame", 143, 142, 1, 102, 5], - ["null", 144, 102, 5], - ["setarg", 143, 0, 144, 102, 5], - ["setarg", 143, 1, 138, 102, 5], - ["invoke", 143, 141, 102, 5], - ["access", 145, "run 'make regen' to update\n", 103, 11], - [ - "access", - 147, + 143, { "name": "print", "kind": "name", @@ -1091,16 +1076,33 @@ 103, 5 ], - ["frame", 148, 147, 1, 103, 5], - ["null", 149, 103, 5], - ["setarg", 148, 0, 149, 103, 5], - ["setarg", 148, 1, 145, 103, 5], - ["invoke", 148, 146, 103, 5], - ["jump", "if_end_129", 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", 150, 103, 5], - ["return", 150, 103, 5] + ["null", 151, 104, 5], + ["return", 151, 104, 5] ], "name": "check_mach_stale", "filename": "internal/bootstrap.cm", @@ -1111,335 +1113,335 @@ "nr_slots": 98, "nr_close_slots": 0, "instructions": [ - ["get", 14, 3, 1, 110, 20], - ["frame", 15, 14, 2, 110, 20], - ["null", 16, 110, 20], - ["setarg", 15, 0, 16, 110, 20], - ["setarg", 15, 1, 1, 110, 20], - ["setarg", 15, 2, 2, 110, 20], - ["invoke", 15, 13, 110, 20], - ["move", 4, 13, 110, 20], - ["load_field", 17, 4, "tokens", 111, 23], - ["get", 18, 3, 1, 111, 57], - ["get", 20, 15, 1, 111, 13], - ["frame", 21, 20, 4, 111, 13], - ["null", 22, 111, 13], - ["setarg", 21, 0, 22, 111, 13], - ["setarg", 21, 1, 17, 111, 13], - ["setarg", 21, 2, 1, 111, 13], - ["setarg", 21, 3, 2, 111, 13], - ["setarg", 21, 4, 18, 111, 13], - ["invoke", 21, 19, 111, 13], - ["move", 11, 19, 111, 13], - ["access", 7, 0, 112, 12], - ["access", 8, -1, 113, 19], - ["null", 6, 114, 18], - ["null", 12, 115, 11], - ["null", 3, 116, 13], - ["null", 5, 117, 14], - ["null", 9, 118, 13], - ["load_field", 23, 11, "errors", 119, 20], - ["null", 24, 119, 34], - ["is_identical", 25, 23, 24, 119, 34], - ["jump_true", 25, "ne_nid_144", 119, 34], - ["jump", "ne_ni_145", 119, 34], + ["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, 119, 34], - ["jump", "ne_done_143", 119, 34], + ["false", 25, 120, 34], + ["jump", "ne_done_143", 120, 34], "ne_ni_145", - ["is_int", 26, 23, 119, 34], - ["jump_false", 26, "ne_nn_146", 119, 34], - ["is_int", 27, 24, 119, 34], - ["jump_false", 27, "ne_nn_146", 119, 34], - ["ne_int", 25, 23, 24, 119, 34], - ["jump", "ne_done_143", 119, 34], + ["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, 119, 34], - ["jump_false", 26, "ne_nt_147", 119, 34], - ["is_num", 27, 24, 119, 34], - ["jump_false", 27, "ne_nt_147", 119, 34], - ["ne_float", 25, 23, 24, 119, 34], - ["jump", "ne_done_143", 119, 34], + ["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, 119, 34], - ["jump_false", 26, "ne_nnl_148", 119, 34], - ["is_text", 27, 24, 119, 34], - ["jump_false", 27, "ne_nnl_148", 119, 34], - ["ne_text", 25, 23, 24, 119, 34], - ["jump", "ne_done_143", 119, 34], + ["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, 119, 34], - ["jump_false", 26, "ne_nb_149", 119, 34], - ["is_null", 27, 24, 119, 34], - ["jump_false", 27, "ne_nb_149", 119, 34], - ["false", 25, 119, 34], - ["jump", "ne_done_143", 119, 34], + ["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, 119, 34], - ["jump_false", 26, "ne_mis_150", 119, 34], - ["is_bool", 27, 24, 119, 34], - ["jump_false", 27, "ne_mis_150", 119, 34], - ["ne_bool", 25, 23, 24, 119, 34], - ["jump", "ne_done_143", 119, 34], + ["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, 119, 34], + ["true", 25, 120, 34], "ne_done_143", - ["move", 28, 25, 119, 34], - ["jump_false", 28, "and_end_142", 119, 34], - ["load_field", 29, 11, "errors", 119, 49], - ["length", 30, 29, 119, 49], - ["access", 31, 0, 119, 63], + ["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", 119, 63], - ["gt_int", 32, 30, 31, 119, 63], - ["jump", "rel_done_153", 119, 63], + ["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, 119, 63], - ["jump_false", 33, "rel_nn_152", 119, 63], - ["is_num", 34, 31, 119, 63], - ["jump_false", 34, "rel_nn_152", 119, 63], - ["gt_float", 32, 30, 31, 119, 63], - ["jump", "rel_done_153", 119, 63], + ["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, 119, 63], - ["jump_false", 33, "rel_err_154", 119, 63], - ["is_text", 34, 31, 119, 63], - ["jump_false", 34, "rel_err_154", 119, 63], - ["gt_text", 32, 30, 31, 119, 63], - ["jump", "rel_done_153", 119, 63], + ["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", 119, 63], + ["disrupt", 120, 63], "rel_done_153", - ["move", 28, 32, 119, 63], + ["move", 28, 32, 120, 63], "and_end_142", - ["move", 10, 28, 119, 63], - ["jump_false", 10, "if_else_155", 120, 7], + ["move", 10, 28, 120, 63], + ["jump_false", 10, "if_else_155", 121, 7], "while_start_157", - ["load_field", 35, 11, "errors", 121, 24], - ["length", 36, 35, 121, 24], - ["is_int", 38, 7, 121, 24], - ["jump_false", 38, "rel_ni_159", 121, 24], + ["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, 121, 24], - ["jump", "rel_done_161", 121, 24], + ["lt_int", 37, 7, 36, 122, 24], + ["jump", "rel_done_161", 122, 24], "rel_ni_159", - ["is_num", 38, 7, 121, 24], - ["jump_false", 38, "rel_nn_160", 121, 24], - ["is_num", 39, 36, 121, 24], - ["jump_false", 39, "rel_nn_160", 121, 24], - ["lt_float", 37, 7, 36, 121, 24], - ["jump", "rel_done_161", 121, 24], + ["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, 121, 24], - ["jump_false", 38, "rel_err_162", 121, 24], - ["is_text", 39, 36, 121, 24], - ["jump_false", 39, "rel_err_162", 121, 24], - ["lt_text", 37, 7, 36, 121, 24], - ["jump", "rel_done_161", 121, 24], + ["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", 121, 24], + ["disrupt", 122, 24], "rel_done_161", - ["jump_false", 37, "while_end_158", 121, 24], - ["load_field", 40, 11, "errors", 122, 11], - ["load_dynamic", 41, 40, 7, 122, 22], - ["move", 12, 41, 122, 22], - ["load_field", 42, 12, "message", 123, 13], - ["move", 3, 42, 123, 13], - ["load_field", 43, 12, "line", 124, 14], - ["move", 5, 43, 124, 14], - ["load_field", 44, 12, "column", 125, 13], - ["move", 9, 44, 125, 13], - ["is_identical", 45, 3, 6, 126, 18], - ["jump_true", 45, "ne_nid_167", 126, 18], - ["jump", "ne_ni_168", 126, 18], + ["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, 126, 18], - ["jump", "ne_done_166", 126, 18], + ["false", 45, 127, 18], + ["jump", "ne_done_166", 127, 18], "ne_ni_168", - ["is_int", 46, 3, 126, 18], - ["jump_false", 46, "ne_nn_169", 126, 18], - ["is_int", 47, 6, 126, 18], - ["jump_false", 47, "ne_nn_169", 126, 18], - ["ne_int", 45, 3, 6, 126, 18], - ["jump", "ne_done_166", 126, 18], + ["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, 126, 18], - ["jump_false", 46, "ne_nt_170", 126, 18], - ["is_num", 47, 6, 126, 18], - ["jump_false", 47, "ne_nt_170", 126, 18], - ["ne_float", 45, 3, 6, 126, 18], - ["jump", "ne_done_166", 126, 18], + ["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, 126, 18], - ["jump_false", 46, "ne_nnl_171", 126, 18], - ["is_text", 47, 6, 126, 18], - ["jump_false", 47, "ne_nnl_171", 126, 18], - ["ne_text", 45, 3, 6, 126, 18], - ["jump", "ne_done_166", 126, 18], + ["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, 126, 18], - ["jump_false", 46, "ne_nb_172", 126, 18], - ["is_null", 47, 6, 126, 18], - ["jump_false", 47, "ne_nb_172", 126, 18], - ["false", 45, 126, 18], - ["jump", "ne_done_166", 126, 18], + ["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, 126, 18], - ["jump_false", 46, "ne_mis_173", 126, 18], - ["is_bool", 47, 6, 126, 18], - ["jump_false", 47, "ne_mis_173", 126, 18], - ["ne_bool", 45, 3, 6, 126, 18], - ["jump", "ne_done_166", 126, 18], + ["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, 126, 18], + ["true", 45, 127, 18], "ne_done_166", - ["move", 48, 45, 126, 18], - ["jump_true", 48, "or_end_165", 126, 18], - ["is_identical", 49, 5, 8, 126, 38], - ["jump_true", 49, "ne_nid_175", 126, 38], - ["jump", "ne_ni_176", 126, 38], + ["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, 126, 38], - ["jump", "ne_done_174", 126, 38], + ["false", 49, 127, 38], + ["jump", "ne_done_174", 127, 38], "ne_ni_176", - ["is_int", 50, 5, 126, 38], - ["jump_false", 50, "ne_nn_177", 126, 38], - ["is_int", 51, 8, 126, 38], - ["jump_false", 51, "ne_nn_177", 126, 38], - ["ne_int", 49, 5, 8, 126, 38], - ["jump", "ne_done_174", 126, 38], + ["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, 126, 38], - ["jump_false", 50, "ne_nt_178", 126, 38], - ["is_num", 51, 8, 126, 38], - ["jump_false", 51, "ne_nt_178", 126, 38], - ["ne_float", 49, 5, 8, 126, 38], - ["jump", "ne_done_174", 126, 38], + ["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, 126, 38], - ["jump_false", 50, "ne_nnl_179", 126, 38], - ["is_text", 51, 8, 126, 38], - ["jump_false", 51, "ne_nnl_179", 126, 38], - ["ne_text", 49, 5, 8, 126, 38], - ["jump", "ne_done_174", 126, 38], + ["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, 126, 38], - ["jump_false", 50, "ne_nb_180", 126, 38], - ["is_null", 51, 8, 126, 38], - ["jump_false", 51, "ne_nb_180", 126, 38], - ["false", 49, 126, 38], - ["jump", "ne_done_174", 126, 38], + ["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, 126, 38], - ["jump_false", 50, "ne_mis_181", 126, 38], - ["is_bool", 51, 8, 126, 38], - ["jump_false", 51, "ne_mis_181", 126, 38], - ["ne_bool", 49, 5, 8, 126, 38], - ["jump", "ne_done_174", 126, 38], + ["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, 126, 38], + ["true", 49, 127, 38], "ne_done_174", - ["move", 48, 49, 126, 38], + ["move", 48, 49, 127, 38], "or_end_165", - ["jump_false", 48, "if_else_163", 126, 38], - ["null", 52, 127, 21], - ["is_identical", 53, 5, 52, 127, 21], - ["jump_true", 53, "ne_nid_186", 127, 21], - ["jump", "ne_ni_187", 127, 21], + ["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, 127, 21], - ["jump", "ne_done_185", 127, 21], + ["false", 53, 128, 21], + ["jump", "ne_done_185", 128, 21], "ne_ni_187", - ["is_int", 54, 5, 127, 21], - ["jump_false", 54, "ne_nn_188", 127, 21], - ["is_int", 55, 52, 127, 21], - ["jump_false", 55, "ne_nn_188", 127, 21], - ["ne_int", 53, 5, 52, 127, 21], - ["jump", "ne_done_185", 127, 21], + ["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, 127, 21], - ["jump_false", 54, "ne_nt_189", 127, 21], - ["is_num", 55, 52, 127, 21], - ["jump_false", 55, "ne_nt_189", 127, 21], - ["ne_float", 53, 5, 52, 127, 21], - ["jump", "ne_done_185", 127, 21], + ["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, 127, 21], - ["jump_false", 54, "ne_nnl_190", 127, 21], - ["is_text", 55, 52, 127, 21], - ["jump_false", 55, "ne_nnl_190", 127, 21], - ["ne_text", 53, 5, 52, 127, 21], - ["jump", "ne_done_185", 127, 21], + ["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, 127, 21], - ["jump_false", 54, "ne_nb_191", 127, 21], - ["is_null", 55, 52, 127, 21], - ["jump_false", 55, "ne_nb_191", 127, 21], - ["false", 53, 127, 21], - ["jump", "ne_done_185", 127, 21], + ["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, 127, 21], - ["jump_false", 54, "ne_mis_192", 127, 21], - ["is_bool", 55, 52, 127, 21], - ["jump_false", 55, "ne_mis_192", 127, 21], - ["ne_bool", 53, 5, 52, 127, 21], - ["jump", "ne_done_185", 127, 21], + ["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, 127, 21], + ["true", 53, 128, 21], "ne_done_185", - ["move", 56, 53, 127, 21], - ["jump_false", 56, "and_end_184", 127, 21], - ["null", 57, 127, 36], - ["is_identical", 58, 9, 57, 127, 36], - ["jump_true", 58, "ne_nid_194", 127, 36], - ["jump", "ne_ni_195", 127, 36], + ["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, 127, 36], - ["jump", "ne_done_193", 127, 36], + ["false", 58, 128, 36], + ["jump", "ne_done_193", 128, 36], "ne_ni_195", - ["is_int", 59, 9, 127, 36], - ["jump_false", 59, "ne_nn_196", 127, 36], - ["is_int", 60, 57, 127, 36], - ["jump_false", 60, "ne_nn_196", 127, 36], - ["ne_int", 58, 9, 57, 127, 36], - ["jump", "ne_done_193", 127, 36], + ["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, 127, 36], - ["jump_false", 59, "ne_nt_197", 127, 36], - ["is_num", 60, 57, 127, 36], - ["jump_false", 60, "ne_nt_197", 127, 36], - ["ne_float", 58, 9, 57, 127, 36], - ["jump", "ne_done_193", 127, 36], + ["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, 127, 36], - ["jump_false", 59, "ne_nnl_198", 127, 36], - ["is_text", 60, 57, 127, 36], - ["jump_false", 60, "ne_nnl_198", 127, 36], - ["ne_text", 58, 9, 57, 127, 36], - ["jump", "ne_done_193", 127, 36], + ["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, 127, 36], - ["jump_false", 59, "ne_nb_199", 127, 36], - ["is_null", 60, 57, 127, 36], - ["jump_false", 60, "ne_nb_199", 127, 36], - ["false", 58, 127, 36], - ["jump", "ne_done_193", 127, 36], + ["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, 127, 36], - ["jump_false", 59, "ne_mis_200", 127, 36], - ["is_bool", 60, 57, 127, 36], - ["jump_false", 60, "ne_mis_200", 127, 36], - ["ne_bool", 58, 9, 57, 127, 36], - ["jump", "ne_done_193", 127, 36], + ["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, 127, 36], + ["true", 58, 128, 36], "ne_done_193", - ["move", 56, 58, 127, 36], + ["move", 56, 58, 128, 36], "and_end_184", - ["jump_false", 56, "if_else_182", 127, 36], + ["jump_false", 56, "if_else_182", 128, 36], [ "access", 62, @@ -1503,15 +1505,15 @@ "kind": "name", "make": "intrinsic" }, - 128, + 129, 11 ], - ["frame", 77, 76, 1, 128, 11], - ["null", 78, 128, 11], - ["setarg", 77, 0, 78, 128, 11], - ["setarg", 77, 1, 72, 128, 11], - ["invoke", 77, 75, 128, 11], - ["jump", "if_end_183", 128, 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], @@ -1542,57 +1544,57 @@ "kind": "name", "make": "intrinsic" }, - 130, + 131, 11 ], - ["frame", 87, 86, 1, 130, 11], - ["null", 88, 130, 11], - ["setarg", 87, 0, 88, 130, 11], - ["setarg", 87, 1, 82, 130, 11], - ["invoke", 87, 85, 130, 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", 130, 11], + ["jump", "if_end_164", 131, 11], "if_else_163", "if_end_164", - ["move", 8, 5, 133, 19], - ["move", 6, 3, 134, 18], - ["access", 89, 1, 135, 17], - ["is_int", 91, 7, 135, 17], - ["jump_false", 91, "add_ni_201", 135, 17], - ["add_int", 90, 7, 89, 135, 17], - ["jump", "add_done_203", 135, 17], + ["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, 135, 17], - ["jump_false", 91, "add_nt_202", 135, 17], - ["is_text", 92, 89, 135, 17], - ["jump_false", 92, "add_nt_202", 135, 17], - ["concat", 90, 7, 89, 135, 17], - ["jump", "add_done_203", 135, 17], + ["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, 135, 17], - ["jump_false", 91, "add_err_204", 135, 17], - ["add_float", 90, 7, 89, 135, 17], - ["jump", "add_done_203", 135, 17], + ["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", 135, 17], + ["disrupt", 136, 17], "add_done_203", - ["move", 7, 90, 135, 17], - ["jump", "while_start_157", 135, 17], + ["move", 7, 90, 136, 17], + ["jump", "while_start_157", 136, 17], "while_end_158", - ["disrupt", 137, 5], - ["jump", "if_end_156", 137, 5], + ["disrupt", 138, 5], + ["jump", "if_end_156", 138, 5], "if_else_155", "if_end_156", - ["get", 94, 13, 1, 139, 9], - ["frame", 95, 94, 1, 139, 9], - ["null", 96, 139, 9], - ["setarg", 95, 0, 96, 139, 9], - ["setarg", 95, 1, 11, 139, 9], - ["invoke", 95, 93, 139, 9], - ["move", 11, 93, 139, 9], - ["return", 11, 140, 10], - ["null", 97, 140, 10], - ["return", 97, 140, 10] + ["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", @@ -1600,513 +1602,16 @@ }, { "disruption_pc": 0, - "nr_slots": 135, + "nr_slots": 46, "nr_close_slots": 0, "instructions": [ - [ - "access", - 12, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 145, - 19 - ], - ["access", 13, "/", 145, 31], - ["is_int", 15, 12, 145, 31], - ["jump_false", 15, "add_ni_205", 145, 31], - "_nop_tc_1", - ["jump", "add_ni_205", 145, 31], - ["add_int", 14, 12, 13, 145, 31], - ["jump", "add_done_207", 145, 31], - "add_ni_205", - ["is_text", 15, 12, 145, 31], - ["jump_false", 15, "add_nt_206", 145, 31], - ["concat", 14, 12, 13, 145, 31], - ["jump", "add_done_207", 145, 31], - "add_nt_206", - ["is_num", 15, 12, 145, 31], - ["jump_false", 15, "add_err_208", 145, 31], - ["is_num", 16, 13, 145, 31], - ["jump_false", 16, "add_err_208", 145, 31], - ["add_float", 14, 12, 13, 145, 31], - ["jump", "add_done_207", 145, 31], - "add_err_208", - ["disrupt", 145, 31], - "add_done_207", - ["is_int", 18, 14, 145, 37], - ["jump_false", 18, "add_ni_209", 145, 37], - ["is_int", 19, 1, 145, 37], - ["jump_false", 19, "add_ni_209", 145, 37], - ["add_int", 17, 14, 1, 145, 37], - ["jump", "add_done_211", 145, 37], - "add_ni_209", - ["is_text", 18, 14, 145, 37], - ["jump_false", 18, "add_nt_210", 145, 37], - ["is_text", 19, 1, 145, 37], - ["jump_false", 19, "add_nt_210", 145, 37], - ["concat", 17, 14, 1, 145, 37], - ["jump", "add_done_211", 145, 37], - "add_nt_210", - ["is_num", 18, 14, 145, 37], - ["jump_false", 18, "add_err_212", 145, 37], - ["is_num", 19, 1, 145, 37], - ["jump_false", 19, "add_err_212", 145, 37], - ["add_float", 17, 14, 1, 145, 37], - ["jump", "add_done_211", 145, 37], - "add_err_212", - ["disrupt", 145, 37], - "add_done_211", - ["access", 20, ".cm.mach", 145, 44], - ["is_int", 22, 17, 145, 44], - ["jump_false", 22, "add_ni_213", 145, 44], - "_nop_tc_2", - ["jump", "add_ni_213", 145, 44], - ["add_int", 21, 17, 20, 145, 44], - ["jump", "add_done_215", 145, 44], - "add_ni_213", - ["is_text", 22, 17, 145, 44], - ["jump_false", 22, "add_nt_214", 145, 44], - ["concat", 21, 17, 20, 145, 44], - ["jump", "add_done_215", 145, 44], - "add_nt_214", - ["is_num", 22, 17, 145, 44], - ["jump_false", 22, "add_err_216", 145, 44], - ["is_num", 23, 20, 145, 44], - ["jump_false", 23, "add_err_216", 145, 44], - ["add_float", 21, 17, 20, 145, 44], - ["jump", "add_done_215", 145, 44], - "add_err_216", - ["disrupt", 145, 44], - "add_done_215", - ["move", 8, 21, 145, 44], - [ - "access", - 24, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 146, - 20 - ], - ["access", 25, "/", 146, 32], - ["is_int", 27, 24, 146, 32], - ["jump_false", 27, "add_ni_217", 146, 32], - "_nop_tc_3", - ["jump", "add_ni_217", 146, 32], - ["add_int", 26, 24, 25, 146, 32], - ["jump", "add_done_219", 146, 32], - "add_ni_217", - ["is_text", 27, 24, 146, 32], - ["jump_false", 27, "add_nt_218", 146, 32], - ["concat", 26, 24, 25, 146, 32], - ["jump", "add_done_219", 146, 32], - "add_nt_218", - ["is_num", 27, 24, 146, 32], - ["jump_false", 27, "add_err_220", 146, 32], - ["is_num", 28, 25, 146, 32], - ["jump_false", 28, "add_err_220", 146, 32], - ["add_float", 26, 24, 25, 146, 32], - ["jump", "add_done_219", 146, 32], - "add_err_220", - ["disrupt", 146, 32], - "add_done_219", - ["is_int", 30, 26, 146, 38], - ["jump_false", 30, "add_ni_221", 146, 38], - ["is_int", 31, 1, 146, 38], - ["jump_false", 31, "add_ni_221", 146, 38], - ["add_int", 29, 26, 1, 146, 38], - ["jump", "add_done_223", 146, 38], - "add_ni_221", - ["is_text", 30, 26, 146, 38], - ["jump_false", 30, "add_nt_222", 146, 38], - ["is_text", 31, 1, 146, 38], - ["jump_false", 31, "add_nt_222", 146, 38], - ["concat", 29, 26, 1, 146, 38], - ["jump", "add_done_223", 146, 38], - "add_nt_222", - ["is_num", 30, 26, 146, 38], - ["jump_false", 30, "add_err_224", 146, 38], - ["is_num", 31, 1, 146, 38], - ["jump_false", 31, "add_err_224", 146, 38], - ["add_float", 29, 26, 1, 146, 38], - ["jump", "add_done_223", 146, 38], - "add_err_224", - ["disrupt", 146, 38], - "add_done_223", - ["access", 32, ".cm.mcode", 146, 45], - ["is_int", 34, 29, 146, 45], - ["jump_false", 34, "add_ni_225", 146, 45], - "_nop_tc_4", - ["jump", "add_ni_225", 146, 45], - ["add_int", 33, 29, 32, 146, 45], - ["jump", "add_done_227", 146, 45], - "add_ni_225", - ["is_text", 34, 29, 146, 45], - ["jump_false", 34, "add_nt_226", 146, 45], - ["concat", 33, 29, 32, 146, 45], - ["jump", "add_done_227", 146, 45], - "add_nt_226", - ["is_num", 34, 29, 146, 45], - ["jump_false", 34, "add_err_228", 146, 45], - ["is_num", 35, 32, 146, 45], - ["jump_false", 35, "add_err_228", 146, 45], - ["add_float", 33, 29, 32, 146, 45], - ["jump", "add_done_227", 146, 45], - "add_err_228", - ["disrupt", 146, 45], - "add_done_227", - ["move", 7, 33, 146, 45], - ["null", 6, 147, 14], - ["null", 9, 148, 20], - ["null", 4, 149, 18], - ["null", 10, 150, 13], - ["null", 11, 151, 13], - ["null", 3, 152, 18], - ["null", 5, 153, 19], - ["get", 37, 14, 1, 154, 7], - ["is_proxy", 38, 37, 154, 7], - ["jump_false", 38, "record_path_231", 154, 7], - ["null", 39, 154, 7], - ["access", 40, "is_file", 154, 7], - ["array", 41, 0, 154, 7], - ["push", 41, 8, 154, 7], - ["frame", 42, 37, 2, 154, 7], - ["setarg", 42, 0, 39, 154, 7], - ["setarg", 42, 1, 40, 154, 7], - ["setarg", 42, 2, 41, 154, 7], - ["invoke", 42, 36, 154, 7], - ["jump", "call_done_232", 154, 7], - "record_path_231", - ["load_field", 43, 37, "is_file", 154, 7], - ["frame", 44, 43, 1, 154, 7], - ["setarg", 44, 0, 37, 154, 7], - ["setarg", 44, 1, 8, 154, 7], - ["invoke", 44, 36, 154, 7], - "call_done_232", - ["jump_false", 36, "if_else_229", 154, 7], - ["get", 46, 14, 1, 155, 12], - ["is_proxy", 47, 46, 155, 12], - ["jump_false", 47, "record_path_233", 155, 12], - ["null", 48, 155, 12], - ["access", 49, "slurp", 155, 12], - ["array", 50, 0, 155, 12], - ["push", 50, 8, 155, 12], - ["frame", 51, 46, 2, 155, 12], - ["setarg", 51, 0, 48, 155, 12], - ["setarg", 51, 1, 49, 155, 12], - ["setarg", 51, 2, 50, 155, 12], - ["invoke", 51, 45, 155, 12], - ["jump", "call_done_234", 155, 12], - "record_path_233", - ["load_field", 52, 46, "slurp", 155, 12], - ["frame", 53, 52, 1, 155, 12], - ["setarg", 53, 0, 46, 155, 12], - ["setarg", 53, 1, 8, 155, 12], - ["invoke", 53, 45, 155, 12], - "call_done_234", - ["move", 6, 45, 155, 12], - [ - "access", - 55, - { - "name": "mach_load", - "kind": "name", - "make": "intrinsic" - }, - 156, - 12 - ], - ["frame", 56, 55, 2, 156, 12], - ["null", 57, 156, 12], - ["setarg", 56, 0, 57, 156, 12], - ["setarg", 56, 1, 6, 156, 12], - ["setarg", 56, 2, 2, 156, 12], - ["invoke", 56, 54, 156, 12], - ["return", 54, 156, 12], - ["jump", "if_end_230", 156, 12], - "if_else_229", - "if_end_230", - ["get", 59, 14, 1, 158, 7], - ["is_proxy", 60, 59, 158, 7], - ["jump_false", 60, "record_path_237", 158, 7], - ["null", 61, 158, 7], - ["access", 62, "is_file", 158, 7], - ["array", 63, 0, 158, 7], - ["push", 63, 7, 158, 7], - ["frame", 64, 59, 2, 158, 7], - ["setarg", 64, 0, 61, 158, 7], - ["setarg", 64, 1, 62, 158, 7], - ["setarg", 64, 2, 63, 158, 7], - ["invoke", 64, 58, 158, 7], - ["jump", "call_done_238", 158, 7], - "record_path_237", - ["load_field", 65, 59, "is_file", 158, 7], - ["frame", 66, 65, 1, 158, 7], - ["setarg", 66, 0, 59, 158, 7], - ["setarg", 66, 1, 7, 158, 7], - ["invoke", 66, 58, 158, 7], - "call_done_238", - ["jump_false", 58, "if_else_235", 158, 7], - ["get", 68, 14, 1, 159, 23], - ["is_proxy", 69, 68, 159, 23], - ["jump_false", 69, "record_path_239", 159, 23], - ["null", 70, 159, 23], - ["access", 71, "slurp", 159, 23], - ["array", 72, 0, 159, 23], - ["push", 72, 7, 159, 23], - ["frame", 73, 68, 2, 159, 23], - ["setarg", 73, 0, 70, 159, 23], - ["setarg", 73, 1, 71, 159, 23], - ["setarg", 73, 2, 72, 159, 23], - ["invoke", 73, 67, 159, 23], - ["jump", "call_done_240", 159, 23], - "record_path_239", - ["load_field", 74, 68, "slurp", 159, 23], - ["frame", 75, 74, 1, 159, 23], - ["setarg", 75, 0, 68, 159, 23], - ["setarg", 75, 1, 7, 159, 23], - ["invoke", 75, 67, 159, 23], - "call_done_240", - [ - "access", - 77, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 159, - 18 - ], - ["frame", 78, 77, 1, 159, 18], - ["null", 79, 159, 18], - ["setarg", 78, 0, 79, 159, 18], - ["setarg", 78, 1, 67, 159, 18], - ["invoke", 78, 76, 159, 18], - ["move", 9, 76, 159, 18], - [ - "access", - 81, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 160, - 12 - ], - ["frame", 82, 81, 3, 160, 12], - ["null", 83, 160, 12], - ["setarg", 82, 0, 83, 160, 12], - ["setarg", 82, 1, 1, 160, 12], - ["setarg", 82, 2, 9, 160, 12], - ["setarg", 82, 3, 2, 160, 12], - ["invoke", 82, 80, 160, 12], - ["return", 80, 160, 12], - ["jump", "if_end_236", 160, 12], - "if_else_235", - "if_end_236", - [ - "access", - 84, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 162, - 14 - ], - ["access", 85, "/", 162, 26], - ["is_int", 87, 84, 162, 26], - ["jump_false", 87, "add_ni_241", 162, 26], - "_nop_tc_5", - ["jump", "add_ni_241", 162, 26], - ["add_int", 86, 84, 85, 162, 26], - ["jump", "add_done_243", 162, 26], - "add_ni_241", - ["is_text", 87, 84, 162, 26], - ["jump_false", 87, "add_nt_242", 162, 26], - ["concat", 86, 84, 85, 162, 26], - ["jump", "add_done_243", 162, 26], - "add_nt_242", - ["is_num", 87, 84, 162, 26], - ["jump_false", 87, "add_err_244", 162, 26], - ["is_num", 88, 85, 162, 26], - ["jump_false", 88, "add_err_244", 162, 26], - ["add_float", 86, 84, 85, 162, 26], - ["jump", "add_done_243", 162, 26], - "add_err_244", - ["disrupt", 162, 26], - "add_done_243", - ["is_int", 90, 86, 162, 32], - ["jump_false", 90, "add_ni_245", 162, 32], - ["is_int", 91, 1, 162, 32], - ["jump_false", 91, "add_ni_245", 162, 32], - ["add_int", 89, 86, 1, 162, 32], - ["jump", "add_done_247", 162, 32], - "add_ni_245", - ["is_text", 90, 86, 162, 32], - ["jump_false", 90, "add_nt_246", 162, 32], - ["is_text", 91, 1, 162, 32], - ["jump_false", 91, "add_nt_246", 162, 32], - ["concat", 89, 86, 1, 162, 32], - ["jump", "add_done_247", 162, 32], - "add_nt_246", - ["is_num", 90, 86, 162, 32], - ["jump_false", 90, "add_err_248", 162, 32], - ["is_num", 91, 1, 162, 32], - ["jump_false", 91, "add_err_248", 162, 32], - ["add_float", 89, 86, 1, 162, 32], - ["jump", "add_done_247", 162, 32], - "add_err_248", - ["disrupt", 162, 32], - "add_done_247", - ["access", 92, ".cm", 162, 39], - ["is_int", 94, 89, 162, 39], - ["jump_false", 94, "add_ni_249", 162, 39], - "_nop_tc_6", - ["jump", "add_ni_249", 162, 39], - ["add_int", 93, 89, 92, 162, 39], - ["jump", "add_done_251", 162, 39], - "add_ni_249", - ["is_text", 94, 89, 162, 39], - ["jump_false", 94, "add_nt_250", 162, 39], - ["concat", 93, 89, 92, 162, 39], - ["jump", "add_done_251", 162, 39], - "add_nt_250", - ["is_num", 94, 89, 162, 39], - ["jump_false", 94, "add_err_252", 162, 39], - ["is_num", 95, 92, 162, 39], - ["jump_false", 95, "add_err_252", 162, 39], - ["add_float", 93, 89, 92, 162, 39], - ["jump", "add_done_251", 162, 39], - "add_err_252", - ["disrupt", 162, 39], - "add_done_251", - ["move", 4, 93, 162, 39], - ["get", 97, 14, 1, 163, 14], - ["is_proxy", 98, 97, 163, 14], - ["jump_false", 98, "record_path_253", 163, 14], - ["null", 99, 163, 14], - ["access", 100, "slurp", 163, 14], - ["array", 101, 0, 163, 14], - ["push", 101, 4, 163, 14], - ["frame", 102, 97, 2, 163, 14], - ["setarg", 102, 0, 99, 163, 14], - ["setarg", 102, 1, 100, 163, 14], - ["setarg", 102, 2, 101, 163, 14], - ["invoke", 102, 96, 163, 14], - ["jump", "call_done_254", 163, 14], - "record_path_253", - ["load_field", 103, 97, "slurp", 163, 14], - ["frame", 104, 103, 1, 163, 14], - ["setarg", 104, 0, 97, 163, 14], - ["setarg", 104, 1, 4, 163, 14], - ["invoke", 104, 96, 163, 14], - "call_done_254", - [ - "access", - 106, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 163, - 9 - ], - ["frame", 107, 106, 1, 163, 9], - ["null", 108, 163, 9], - ["setarg", 107, 0, 108, 163, 9], - ["setarg", 107, 1, 96, 163, 9], - ["invoke", 107, 105, 163, 9], - ["move", 10, 105, 163, 9], - ["get", 110, 7, 1, 164, 9], - ["frame", 111, 110, 2, 164, 9], - ["null", 112, 164, 9], - ["setarg", 111, 0, 112, 164, 9], - ["setarg", 111, 1, 10, 164, 9], - ["setarg", 111, 2, 4, 164, 9], - ["invoke", 111, 109, 164, 9], - ["move", 11, 109, 164, 9], - ["get", 114, 6, 1, 165, 14], - ["frame", 115, 114, 1, 165, 14], - ["null", 116, 165, 14], - ["setarg", 115, 0, 116, 165, 14], - ["setarg", 115, 1, 11, 165, 14], - ["invoke", 115, 113, 165, 14], - ["move", 3, 113, 165, 14], - ["get", 118, 22, 1, 166, 15], - ["frame", 119, 118, 1, 166, 15], - ["null", 120, 166, 15], - ["setarg", 119, 0, 120, 166, 15], - ["setarg", 119, 1, 3, 166, 15], - ["invoke", 119, 117, 166, 15], - ["move", 5, 117, 166, 15], - ["get", 122, 23, 1, 167, 32], - ["is_proxy", 123, 122, 167, 32], - ["jump_false", 123, "record_path_255", 167, 32], - ["null", 124, 167, 32], - ["access", 125, "encode", 167, 32], - ["array", 126, 0, 167, 32], - ["push", 126, 5, 167, 32], - ["frame", 127, 122, 2, 167, 32], - ["setarg", 127, 0, 124, 167, 32], - ["setarg", 127, 1, 125, 167, 32], - ["setarg", 127, 2, 126, 167, 32], - ["invoke", 127, 121, 167, 32], - ["jump", "call_done_256", 167, 32], - "record_path_255", - ["load_field", 128, 122, "encode", 167, 32], - ["frame", 129, 128, 1, 167, 32], - ["setarg", 129, 0, 122, 167, 32], - ["setarg", 129, 1, 5, 167, 32], - ["invoke", 129, 121, 167, 32], - "call_done_256", - [ - "access", - 131, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 167, - 10 - ], - ["frame", 132, 131, 3, 167, 10], - ["null", 133, 167, 10], - ["setarg", 132, 0, 133, 167, 10], - ["setarg", 132, 1, 1, 167, 10], - ["setarg", 132, 2, 121, 167, 10], - ["setarg", 132, 3, 2, 167, 10], - ["invoke", 132, 130, 167, 10], - ["return", 130, 167, 10], - ["null", 134, 167, 10], - ["return", 134, 167, 10] - ], - "name": "load_module", - "filename": "internal/bootstrap.cm", - "nr_args": 2 - }, - { - "disruption_pc": 0, - "nr_slots": 45, - "nr_close_slots": 0, - "instructions": [ - ["get", 7, 6, 1, 179, 18], - ["frame", 8, 7, 1, 179, 18], - ["null", 9, 179, 18], - ["setarg", 8, 0, 9, 179, 18], - ["setarg", 8, 1, 2, 179, 18], - ["invoke", 8, 6, 179, 18], - ["move", 4, 6, 179, 18], + ["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, @@ -2115,126 +1620,128 @@ "kind": "name", "make": "intrinsic" }, - 180, + 154, 7 ], - ["load_field", 11, 10, "_verify_ir", 180, 7], - ["jump_false", 11, "if_else_257", 180, 7], - ["get", 12, 16, 1, 181, 9], - ["null", 13, 181, 27], - ["is_identical", 14, 12, 13, 181, 27], - ["jump_true", 14, "eq_done_261", 181, 27], - ["is_int", 15, 12, 181, 27], - ["jump_false", 15, "eq_ni_262", 181, 27], + ["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_262", 181, 27], - ["eq_int", 14, 12, 13, 181, 27], - ["jump", "eq_done_261", 181, 27], - "eq_ni_262", - ["is_num", 15, 12, 181, 27], - ["jump_false", 15, "eq_nn_263", 181, 27], - ["is_num", 16, 13, 181, 27], - ["jump_false", 16, "eq_nn_263", 181, 27], - ["eq_float", 14, 12, 13, 181, 27], - ["jump", "eq_done_261", 181, 27], - "eq_nn_263", - ["is_text", 15, 12, 181, 27], - ["jump_false", 15, "eq_nt_264", 181, 27], - ["is_text", 16, 13, 181, 27], - ["jump_false", 16, "eq_nt_264", 181, 27], - ["eq_text", 14, 12, 13, 181, 27], - ["jump", "eq_done_261", 181, 27], - "eq_nt_264", - ["is_null", 15, 12, 181, 27], - ["jump_false", 15, "eq_nnl_265", 181, 27], - ["is_null", 16, 13, 181, 27], - ["jump_false", 16, "eq_nnl_265", 181, 27], - ["true", 14, 181, 27], - ["jump", "eq_done_261", 181, 27], - "eq_nnl_265", - ["is_bool", 15, 12, 181, 27], - ["jump_false", 15, "eq_nb_266", 181, 27], - ["is_bool", 16, 13, 181, 27], - ["jump_false", 16, "eq_nb_266", 181, 27], - ["eq_bool", 14, 12, 13, 181, 27], - ["jump", "eq_done_261", 181, 27], - "eq_nb_266", - ["false", 14, 181, 27], - "eq_done_261", - ["jump_false", 14, "if_else_259", 181, 27], - ["access", 17, "verify_ir", 182, 31], - ["get", 19, 9, 1, 182, 24], - ["frame", 20, 19, 1, 182, 24], - ["null", 21, 182, 24], - ["setarg", 20, 0, 21, 182, 24], - ["setarg", 20, 1, 17, 182, 24], - ["invoke", 20, 18, 182, 24], - ["put", 18, 16, 1, 182, 24], - ["jump", "if_end_260", 182, 24], - "if_else_259", - "if_end_260", - ["true", 22, 184, 24], - ["store_field", 4, 22, "_verify", 184, 5], - ["get", 23, 16, 1, 185, 28], - ["store_field", 4, 23, "_verify_mod", 185, 5], - ["jump", "if_end_258", 185, 5], - "if_else_257", - "if_end_258", - ["get", 25, 22, 1, 187, 19], - ["frame", 26, 25, 1, 187, 19], - ["null", 27, 187, 19], - ["setarg", 26, 0, 27, 187, 19], - ["setarg", 26, 1, 4, 187, 19], - ["invoke", 26, 24, 187, 19], - ["move", 5, 24, 187, 19], - ["load_field", 28, 5, "_verify", 189, 7], - ["jump_false", 28, "if_else_267", 189, 7], - ["delete", 29, 5, "_verify"], - ["delete", 30, 5, "_verify_mod"], - ["jump", "if_end_268", 191, 12], - "if_else_267", - "if_end_268", - ["get", 32, 23, 1, 193, 32], - ["is_proxy", 33, 32, 193, 32], - ["jump_false", 33, "record_path_269", 193, 32], - ["null", 34, 193, 32], - ["access", 35, "encode", 193, 32], - ["array", 36, 0, 193, 32], - ["push", 36, 5, 193, 32], - ["frame", 37, 32, 2, 193, 32], - ["setarg", 37, 0, 34, 193, 32], - ["setarg", 37, 1, 35, 193, 32], - ["setarg", 37, 2, 36, 193, 32], - ["invoke", 37, 31, 193, 32], - ["jump", "call_done_270", 193, 32], - "record_path_269", - ["load_field", 38, 32, "encode", 193, 32], - ["frame", 39, 38, 1, 193, 32], - ["setarg", 39, 0, 32, 193, 32], - ["setarg", 39, 1, 5, 193, 32], - ["invoke", 39, 31, 193, 32], - "call_done_270", + ["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", - 41, + 42, { "name": "mach_eval_mcode", "kind": "name", "make": "intrinsic" }, - 193, + 167, 10 ], - ["frame", 42, 41, 3, 193, 10], - ["null", 43, 193, 10], - ["setarg", 42, 0, 43, 193, 10], - ["setarg", 42, 1, 1, 193, 10], - ["setarg", 42, 2, 31, 193, 10], - ["setarg", 42, 3, 3, 193, 10], - ["invoke", 42, 40, 193, 10], - ["return", 40, 193, 10], - ["null", 44, 193, 10], - ["return", 44, 193, 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", @@ -2245,33 +1752,33 @@ "nr_slots": 23, "nr_close_slots": 0, "instructions": [ - ["get", 6, 6, 1, 198, 18], - ["frame", 7, 6, 1, 198, 18], - ["null", 8, 198, 18], - ["setarg", 7, 0, 8, 198, 18], - ["setarg", 7, 1, 2, 198, 18], - ["invoke", 7, 5, 198, 18], - ["move", 4, 5, 198, 18], - ["get", 10, 23, 1, 199, 32], - ["is_proxy", 11, 10, 199, 32], - ["jump_false", 11, "record_path_271", 199, 32], - ["null", 12, 199, 32], - ["access", 13, "encode", 199, 32], - ["array", 14, 0, 199, 32], - ["push", 14, 4, 199, 32], - ["frame", 15, 10, 2, 199, 32], - ["setarg", 15, 0, 12, 199, 32], - ["setarg", 15, 1, 13, 199, 32], - ["setarg", 15, 2, 14, 199, 32], - ["invoke", 15, 9, 199, 32], - ["jump", "call_done_272", 199, 32], - "record_path_271", - ["load_field", 16, 10, "encode", 199, 32], - ["frame", 17, 16, 1, 199, 32], - ["setarg", 17, 0, 10, 199, 32], - ["setarg", 17, 1, 4, 199, 32], - ["invoke", 17, 9, 199, 32], - "call_done_272", + ["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, @@ -2280,703 +1787,24 @@ "kind": "name", "make": "intrinsic" }, - 199, + 173, 10 ], - ["frame", 20, 19, 3, 199, 10], - ["null", 21, 199, 10], - ["setarg", 20, 0, 21, 199, 10], - ["setarg", 20, 1, 1, 199, 10], - ["setarg", 20, 2, 9, 199, 10], - ["setarg", 20, 3, 3, 199, 10], - ["invoke", 20, 18, 199, 10], - ["return", 18, 199, 10], - ["null", 22, 199, 10], - ["return", 22, 199, 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": 191, - "nr_close_slots": 0, - "instructions": [ - ["null", 5, 204, 19], - ["null", 6, 205, 19], - ["null", 9, 206, 20], - ["null", 7, 207, 20], - ["null", 2, 208, 14], - ["null", 4, 209, 16], - ["null", 8, 210, 13], - ["null", 3, 211, 16], - ["get", 10, 20, 1, 212, 7], - ["load_dynamic", 11, 10, 1, 212, 17], - ["jump_false", 11, "if_else_273", 212, 17], - ["get", 12, 20, 1, 213, 12], - ["load_dynamic", 13, 12, 1, 213, 22], - ["return", 13, 213, 22], - ["jump", "if_end_274", 213, 22], - "if_else_273", - "if_end_274", - ["access", 14, ".cm.mach", 216, 22], - ["is_int", 16, 1, 216, 22], - ["jump_false", 16, "add_ni_275", 216, 22], - "_nop_tc_1", - ["jump", "add_ni_275", 216, 22], - ["add_int", 15, 1, 14, 216, 22], - ["jump", "add_done_277", 216, 22], - "add_ni_275", - ["is_text", 16, 1, 216, 22], - ["jump_false", 16, "add_nt_276", 216, 22], - ["concat", 15, 1, 14, 216, 22], - ["jump", "add_done_277", 216, 22], - "add_nt_276", - ["is_num", 16, 1, 216, 22], - ["jump_false", 16, "add_err_278", 216, 22], - ["is_num", 17, 14, 216, 22], - ["jump_false", 17, "add_err_278", 216, 22], - ["add_float", 15, 1, 14, 216, 22], - ["jump", "add_done_277", 216, 22], - "add_err_278", - ["disrupt", 216, 22], - "add_done_277", - ["move", 6, 15, 216, 22], - ["get", 19, 14, 1, 217, 8], - ["is_proxy", 20, 19, 217, 8], - ["jump_false", 20, "record_path_281", 217, 8], - ["null", 21, 217, 8], - ["access", 22, "is_file", 217, 8], - ["array", 23, 0, 217, 8], - ["push", 23, 6, 217, 8], - ["frame", 24, 19, 2, 217, 8], - ["setarg", 24, 0, 21, 217, 8], - ["setarg", 24, 1, 22, 217, 8], - ["setarg", 24, 2, 23, 217, 8], - ["invoke", 24, 18, 217, 8], - ["jump", "call_done_282", 217, 8], - "record_path_281", - ["load_field", 25, 19, "is_file", 217, 8], - ["frame", 26, 25, 1, 217, 8], - ["setarg", 26, 0, 19, 217, 8], - ["setarg", 26, 1, 6, 217, 8], - ["invoke", 26, 18, 217, 8], - "call_done_282", - "_nop_bl_1", - ["jump_true", 18, "if_else_279", 217, 8], - [ - "access", - 28, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 218, - 17 - ], - ["access", 29, "/", 218, 29], - ["is_int", 31, 28, 218, 29], - ["jump_false", 31, "add_ni_283", 218, 29], - "_nop_tc_2", - ["jump", "add_ni_283", 218, 29], - ["add_int", 30, 28, 29, 218, 29], - ["jump", "add_done_285", 218, 29], - "add_ni_283", - ["is_text", 31, 28, 218, 29], - ["jump_false", 31, "add_nt_284", 218, 29], - ["concat", 30, 28, 29, 218, 29], - ["jump", "add_done_285", 218, 29], - "add_nt_284", - ["is_num", 31, 28, 218, 29], - ["jump_false", 31, "add_err_286", 218, 29], - ["is_num", 32, 29, 218, 29], - ["jump_false", 32, "add_err_286", 218, 29], - ["add_float", 30, 28, 29, 218, 29], - ["jump", "add_done_285", 218, 29], - "add_err_286", - ["disrupt", 218, 29], - "add_done_285", - ["is_int", 34, 30, 218, 35], - ["jump_false", 34, "add_ni_287", 218, 35], - ["is_int", 35, 1, 218, 35], - ["jump_false", 35, "add_ni_287", 218, 35], - ["add_int", 33, 30, 1, 218, 35], - ["jump", "add_done_289", 218, 35], - "add_ni_287", - ["is_text", 34, 30, 218, 35], - ["jump_false", 34, "add_nt_288", 218, 35], - ["is_text", 35, 1, 218, 35], - ["jump_false", 35, "add_nt_288", 218, 35], - ["concat", 33, 30, 1, 218, 35], - ["jump", "add_done_289", 218, 35], - "add_nt_288", - ["is_num", 34, 30, 218, 35], - ["jump_false", 34, "add_err_290", 218, 35], - ["is_num", 35, 1, 218, 35], - ["jump_false", 35, "add_err_290", 218, 35], - ["add_float", 33, 30, 1, 218, 35], - ["jump", "add_done_289", 218, 35], - "add_err_290", - ["disrupt", 218, 35], - "add_done_289", - ["access", 36, ".cm.mach", 218, 42], - ["is_int", 38, 33, 218, 42], - ["jump_false", 38, "add_ni_291", 218, 42], - "_nop_tc_3", - ["jump", "add_ni_291", 218, 42], - ["add_int", 37, 33, 36, 218, 42], - ["jump", "add_done_293", 218, 42], - "add_ni_291", - ["is_text", 38, 33, 218, 42], - ["jump_false", 38, "add_nt_292", 218, 42], - ["concat", 37, 33, 36, 218, 42], - ["jump", "add_done_293", 218, 42], - "add_nt_292", - ["is_num", 38, 33, 218, 42], - ["jump_false", 38, "add_err_294", 218, 42], - ["is_num", 39, 36, 218, 42], - ["jump_false", 39, "add_err_294", 218, 42], - ["add_float", 37, 33, 36, 218, 42], - ["jump", "add_done_293", 218, 42], - "add_err_294", - ["disrupt", 218, 42], - "add_done_293", - ["move", 6, 37, 218, 42], - ["jump", "if_end_280", 218, 42], - "if_else_279", - "if_end_280", - ["get", 41, 14, 1, 219, 7], - ["is_proxy", 42, 41, 219, 7], - ["jump_false", 42, "record_path_297", 219, 7], - ["null", 43, 219, 7], - ["access", 44, "is_file", 219, 7], - ["array", 45, 0, 219, 7], - ["push", 45, 6, 219, 7], - ["frame", 46, 41, 2, 219, 7], - ["setarg", 46, 0, 43, 219, 7], - ["setarg", 46, 1, 44, 219, 7], - ["setarg", 46, 2, 45, 219, 7], - ["invoke", 46, 40, 219, 7], - ["jump", "call_done_298", 219, 7], - "record_path_297", - ["load_field", 47, 41, "is_file", 219, 7], - ["frame", 48, 47, 1, 219, 7], - ["setarg", 48, 0, 41, 219, 7], - ["setarg", 48, 1, 6, 219, 7], - ["invoke", 48, 40, 219, 7], - "call_done_298", - ["jump_false", 40, "if_else_295", 219, 7], - ["get", 50, 14, 1, 220, 12], - ["is_proxy", 51, 50, 220, 12], - ["jump_false", 51, "record_path_299", 220, 12], - ["null", 52, 220, 12], - ["access", 53, "slurp", 220, 12], - ["array", 54, 0, 220, 12], - ["push", 54, 6, 220, 12], - ["frame", 55, 50, 2, 220, 12], - ["setarg", 55, 0, 52, 220, 12], - ["setarg", 55, 1, 53, 220, 12], - ["setarg", 55, 2, 54, 220, 12], - ["invoke", 55, 49, 220, 12], - ["jump", "call_done_300", 220, 12], - "record_path_299", - ["load_field", 56, 50, "slurp", 220, 12], - ["frame", 57, 56, 1, 220, 12], - ["setarg", 57, 0, 50, 220, 12], - ["setarg", 57, 1, 6, 220, 12], - ["invoke", 57, 49, 220, 12], - "call_done_300", - ["move", 2, 49, 220, 12], - ["record", 58, 0], - ["get", 59, 9, 1, 221, 36], - ["store_field", 58, 59, "use", 221, 36], - [ - "access", - 61, - { - "name": "mach_load", - "kind": "name", - "make": "intrinsic" - }, - 221, - 14 - ], - ["frame", 62, 61, 2, 221, 14], - ["null", 63, 221, 14], - ["setarg", 62, 0, 63, 221, 14], - ["setarg", 62, 1, 2, 221, 14], - ["setarg", 62, 2, 58, 221, 14], - ["invoke", 62, 60, 221, 14], - ["move", 3, 60, 221, 14], - ["get", 64, 20, 1, 222, 5], - ["store_dynamic", 64, 3, 1, 222, 15], - ["return", 3, 223, 12], - ["jump", "if_end_296", 223, 12], - "if_else_295", - "if_end_296", - ["access", 65, ".cm.mcode", 227, 23], - ["is_int", 67, 1, 227, 23], - ["jump_false", 67, "add_ni_301", 227, 23], - "_nop_tc_4", - ["jump", "add_ni_301", 227, 23], - ["add_int", 66, 1, 65, 227, 23], - ["jump", "add_done_303", 227, 23], - "add_ni_301", - ["is_text", 67, 1, 227, 23], - ["jump_false", 67, "add_nt_302", 227, 23], - ["concat", 66, 1, 65, 227, 23], - ["jump", "add_done_303", 227, 23], - "add_nt_302", - ["is_num", 67, 1, 227, 23], - ["jump_false", 67, "add_err_304", 227, 23], - ["is_num", 68, 65, 227, 23], - ["jump_false", 68, "add_err_304", 227, 23], - ["add_float", 66, 1, 65, 227, 23], - ["jump", "add_done_303", 227, 23], - "add_err_304", - ["disrupt", 227, 23], - "add_done_303", - ["move", 9, 66, 227, 23], - ["get", 70, 14, 1, 228, 8], - ["is_proxy", 71, 70, 228, 8], - ["jump_false", 71, "record_path_307", 228, 8], - ["null", 72, 228, 8], - ["access", 73, "is_file", 228, 8], - ["array", 74, 0, 228, 8], - ["push", 74, 9, 228, 8], - ["frame", 75, 70, 2, 228, 8], - ["setarg", 75, 0, 72, 228, 8], - ["setarg", 75, 1, 73, 228, 8], - ["setarg", 75, 2, 74, 228, 8], - ["invoke", 75, 69, 228, 8], - ["jump", "call_done_308", 228, 8], - "record_path_307", - ["load_field", 76, 70, "is_file", 228, 8], - ["frame", 77, 76, 1, 228, 8], - ["setarg", 77, 0, 70, 228, 8], - ["setarg", 77, 1, 9, 228, 8], - ["invoke", 77, 69, 228, 8], - "call_done_308", - "_nop_bl_2", - ["jump_true", 69, "if_else_305", 228, 8], - [ - "access", - 79, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 229, - 18 - ], - ["access", 80, "/", 229, 30], - ["is_int", 82, 79, 229, 30], - ["jump_false", 82, "add_ni_309", 229, 30], - "_nop_tc_5", - ["jump", "add_ni_309", 229, 30], - ["add_int", 81, 79, 80, 229, 30], - ["jump", "add_done_311", 229, 30], - "add_ni_309", - ["is_text", 82, 79, 229, 30], - ["jump_false", 82, "add_nt_310", 229, 30], - ["concat", 81, 79, 80, 229, 30], - ["jump", "add_done_311", 229, 30], - "add_nt_310", - ["is_num", 82, 79, 229, 30], - ["jump_false", 82, "add_err_312", 229, 30], - ["is_num", 83, 80, 229, 30], - ["jump_false", 83, "add_err_312", 229, 30], - ["add_float", 81, 79, 80, 229, 30], - ["jump", "add_done_311", 229, 30], - "add_err_312", - ["disrupt", 229, 30], - "add_done_311", - ["is_int", 85, 81, 229, 36], - ["jump_false", 85, "add_ni_313", 229, 36], - ["is_int", 86, 1, 229, 36], - ["jump_false", 86, "add_ni_313", 229, 36], - ["add_int", 84, 81, 1, 229, 36], - ["jump", "add_done_315", 229, 36], - "add_ni_313", - ["is_text", 85, 81, 229, 36], - ["jump_false", 85, "add_nt_314", 229, 36], - ["is_text", 86, 1, 229, 36], - ["jump_false", 86, "add_nt_314", 229, 36], - ["concat", 84, 81, 1, 229, 36], - ["jump", "add_done_315", 229, 36], - "add_nt_314", - ["is_num", 85, 81, 229, 36], - ["jump_false", 85, "add_err_316", 229, 36], - ["is_num", 86, 1, 229, 36], - ["jump_false", 86, "add_err_316", 229, 36], - ["add_float", 84, 81, 1, 229, 36], - ["jump", "add_done_315", 229, 36], - "add_err_316", - ["disrupt", 229, 36], - "add_done_315", - ["access", 87, ".cm.mcode", 229, 43], - ["is_int", 89, 84, 229, 43], - ["jump_false", 89, "add_ni_317", 229, 43], - "_nop_tc_6", - ["jump", "add_ni_317", 229, 43], - ["add_int", 88, 84, 87, 229, 43], - ["jump", "add_done_319", 229, 43], - "add_ni_317", - ["is_text", 89, 84, 229, 43], - ["jump_false", 89, "add_nt_318", 229, 43], - ["concat", 88, 84, 87, 229, 43], - ["jump", "add_done_319", 229, 43], - "add_nt_318", - ["is_num", 89, 84, 229, 43], - ["jump_false", 89, "add_err_320", 229, 43], - ["is_num", 90, 87, 229, 43], - ["jump_false", 90, "add_err_320", 229, 43], - ["add_float", 88, 84, 87, 229, 43], - ["jump", "add_done_319", 229, 43], - "add_err_320", - ["disrupt", 229, 43], - "add_done_319", - ["move", 9, 88, 229, 43], - ["jump", "if_end_306", 229, 43], - "if_else_305", - "if_end_306", - ["get", 92, 14, 1, 230, 7], - ["is_proxy", 93, 92, 230, 7], - ["jump_false", 93, "record_path_323", 230, 7], - ["null", 94, 230, 7], - ["access", 95, "is_file", 230, 7], - ["array", 96, 0, 230, 7], - ["push", 96, 9, 230, 7], - ["frame", 97, 92, 2, 230, 7], - ["setarg", 97, 0, 94, 230, 7], - ["setarg", 97, 1, 95, 230, 7], - ["setarg", 97, 2, 96, 230, 7], - ["invoke", 97, 91, 230, 7], - ["jump", "call_done_324", 230, 7], - "record_path_323", - ["load_field", 98, 92, "is_file", 230, 7], - ["frame", 99, 98, 1, 230, 7], - ["setarg", 99, 0, 92, 230, 7], - ["setarg", 99, 1, 9, 230, 7], - ["invoke", 99, 91, 230, 7], - "call_done_324", - ["jump_false", 91, "if_else_321", 230, 7], - ["get", 101, 14, 1, 231, 23], - ["is_proxy", 102, 101, 231, 23], - ["jump_false", 102, "record_path_325", 231, 23], - ["null", 103, 231, 23], - ["access", 104, "slurp", 231, 23], - ["array", 105, 0, 231, 23], - ["push", 105, 9, 231, 23], - ["frame", 106, 101, 2, 231, 23], - ["setarg", 106, 0, 103, 231, 23], - ["setarg", 106, 1, 104, 231, 23], - ["setarg", 106, 2, 105, 231, 23], - ["invoke", 106, 100, 231, 23], - ["jump", "call_done_326", 231, 23], - "record_path_325", - ["load_field", 107, 101, "slurp", 231, 23], - ["frame", 108, 107, 1, 231, 23], - ["setarg", 108, 0, 101, 231, 23], - ["setarg", 108, 1, 9, 231, 23], - ["invoke", 108, 100, 231, 23], - "call_done_326", - [ - "access", - 110, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 231, - 18 - ], - ["frame", 111, 110, 1, 231, 18], - ["null", 112, 231, 18], - ["setarg", 111, 0, 112, 231, 18], - ["setarg", 111, 1, 100, 231, 18], - ["invoke", 111, 109, 231, 18], - ["move", 7, 109, 231, 18], - ["record", 113, 0], - ["get", 114, 9, 1, 232, 54], - ["store_field", 113, 114, "use", 232, 54], - [ - "access", - 116, - { - "name": "mach_eval_mcode", - "kind": "name", - "make": "intrinsic" - }, - 232, - 14 - ], - ["frame", 117, 116, 3, 232, 14], - ["null", 118, 232, 14], - ["setarg", 117, 0, 118, 232, 14], - ["setarg", 117, 1, 1, 232, 14], - ["setarg", 117, 2, 7, 232, 14], - ["setarg", 117, 3, 113, 232, 14], - ["invoke", 117, 115, 232, 14], - ["move", 3, 115, 232, 14], - ["get", 119, 20, 1, 233, 5], - ["store_dynamic", 119, 3, 1, 233, 15], - ["return", 3, 234, 12], - ["jump", "if_end_322", 234, 12], - "if_else_321", - "if_end_322", - ["access", 120, ".cm", 238, 22], - ["is_int", 122, 1, 238, 22], - ["jump_false", 122, "add_ni_327", 238, 22], - "_nop_tc_7", - ["jump", "add_ni_327", 238, 22], - ["add_int", 121, 1, 120, 238, 22], - ["jump", "add_done_329", 238, 22], - "add_ni_327", - ["is_text", 122, 1, 238, 22], - ["jump_false", 122, "add_nt_328", 238, 22], - ["concat", 121, 1, 120, 238, 22], - ["jump", "add_done_329", 238, 22], - "add_nt_328", - ["is_num", 122, 1, 238, 22], - ["jump_false", 122, "add_err_330", 238, 22], - ["is_num", 123, 120, 238, 22], - ["jump_false", 123, "add_err_330", 238, 22], - ["add_float", 121, 1, 120, 238, 22], - ["jump", "add_done_329", 238, 22], - "add_err_330", - ["disrupt", 238, 22], - "add_done_329", - ["move", 5, 121, 238, 22], - ["get", 125, 14, 1, 239, 8], - ["is_proxy", 126, 125, 239, 8], - ["jump_false", 126, "record_path_333", 239, 8], - ["null", 127, 239, 8], - ["access", 128, "is_file", 239, 8], - ["array", 129, 0, 239, 8], - ["push", 129, 5, 239, 8], - ["frame", 130, 125, 2, 239, 8], - ["setarg", 130, 0, 127, 239, 8], - ["setarg", 130, 1, 128, 239, 8], - ["setarg", 130, 2, 129, 239, 8], - ["invoke", 130, 124, 239, 8], - ["jump", "call_done_334", 239, 8], - "record_path_333", - ["load_field", 131, 125, "is_file", 239, 8], - ["frame", 132, 131, 1, 239, 8], - ["setarg", 132, 0, 125, 239, 8], - ["setarg", 132, 1, 5, 239, 8], - ["invoke", 132, 124, 239, 8], - "call_done_334", - "_nop_bl_3", - ["jump_true", 124, "if_else_331", 239, 8], - [ - "access", - 134, - { - "name": "core_path", - "kind": "name", - "make": "intrinsic" - }, - 240, - 17 - ], - ["access", 135, "/", 240, 29], - ["is_int", 137, 134, 240, 29], - ["jump_false", 137, "add_ni_335", 240, 29], - "_nop_tc_8", - ["jump", "add_ni_335", 240, 29], - ["add_int", 136, 134, 135, 240, 29], - ["jump", "add_done_337", 240, 29], - "add_ni_335", - ["is_text", 137, 134, 240, 29], - ["jump_false", 137, "add_nt_336", 240, 29], - ["concat", 136, 134, 135, 240, 29], - ["jump", "add_done_337", 240, 29], - "add_nt_336", - ["is_num", 137, 134, 240, 29], - ["jump_false", 137, "add_err_338", 240, 29], - ["is_num", 138, 135, 240, 29], - ["jump_false", 138, "add_err_338", 240, 29], - ["add_float", 136, 134, 135, 240, 29], - ["jump", "add_done_337", 240, 29], - "add_err_338", - ["disrupt", 240, 29], - "add_done_337", - ["is_int", 140, 136, 240, 35], - ["jump_false", 140, "add_ni_339", 240, 35], - ["is_int", 141, 1, 240, 35], - ["jump_false", 141, "add_ni_339", 240, 35], - ["add_int", 139, 136, 1, 240, 35], - ["jump", "add_done_341", 240, 35], - "add_ni_339", - ["is_text", 140, 136, 240, 35], - ["jump_false", 140, "add_nt_340", 240, 35], - ["is_text", 141, 1, 240, 35], - ["jump_false", 141, "add_nt_340", 240, 35], - ["concat", 139, 136, 1, 240, 35], - ["jump", "add_done_341", 240, 35], - "add_nt_340", - ["is_num", 140, 136, 240, 35], - ["jump_false", 140, "add_err_342", 240, 35], - ["is_num", 141, 1, 240, 35], - ["jump_false", 141, "add_err_342", 240, 35], - ["add_float", 139, 136, 1, 240, 35], - ["jump", "add_done_341", 240, 35], - "add_err_342", - ["disrupt", 240, 35], - "add_done_341", - ["access", 142, ".cm", 240, 42], - ["is_int", 144, 139, 240, 42], - ["jump_false", 144, "add_ni_343", 240, 42], - "_nop_tc_9", - ["jump", "add_ni_343", 240, 42], - ["add_int", 143, 139, 142, 240, 42], - ["jump", "add_done_345", 240, 42], - "add_ni_343", - ["is_text", 144, 139, 240, 42], - ["jump_false", 144, "add_nt_344", 240, 42], - ["concat", 143, 139, 142, 240, 42], - ["jump", "add_done_345", 240, 42], - "add_nt_344", - ["is_num", 144, 139, 240, 42], - ["jump_false", 144, "add_err_346", 240, 42], - ["is_num", 145, 142, 240, 42], - ["jump_false", 145, "add_err_346", 240, 42], - ["add_float", 143, 139, 142, 240, 42], - ["jump", "add_done_345", 240, 42], - "add_err_346", - ["disrupt", 240, 42], - "add_done_345", - ["move", 5, 143, 240, 42], - ["jump", "if_end_332", 240, 42], - "if_else_331", - "if_end_332", - ["get", 147, 14, 1, 242, 7], - ["is_proxy", 148, 147, 242, 7], - ["jump_false", 148, "record_path_349", 242, 7], - ["null", 149, 242, 7], - ["access", 150, "is_file", 242, 7], - ["array", 151, 0, 242, 7], - ["push", 151, 5, 242, 7], - ["frame", 152, 147, 2, 242, 7], - ["setarg", 152, 0, 149, 242, 7], - ["setarg", 152, 1, 150, 242, 7], - ["setarg", 152, 2, 151, 242, 7], - ["invoke", 152, 146, 242, 7], - ["jump", "call_done_350", 242, 7], - "record_path_349", - ["load_field", 153, 147, "is_file", 242, 7], - ["frame", 154, 153, 1, 242, 7], - ["setarg", 154, 0, 147, 242, 7], - ["setarg", 154, 1, 5, 242, 7], - ["invoke", 154, 146, 242, 7], - "call_done_350", - ["jump_false", 146, "if_else_347", 242, 7], - ["get", 156, 14, 1, 243, 19], - ["is_proxy", 157, 156, 243, 19], - ["jump_false", 157, "record_path_351", 243, 19], - ["null", 158, 243, 19], - ["access", 159, "slurp", 243, 19], - ["array", 160, 0, 243, 19], - ["push", 160, 5, 243, 19], - ["frame", 161, 156, 2, 243, 19], - ["setarg", 161, 0, 158, 243, 19], - ["setarg", 161, 1, 159, 243, 19], - ["setarg", 161, 2, 160, 243, 19], - ["invoke", 161, 155, 243, 19], - ["jump", "call_done_352", 243, 19], - "record_path_351", - ["load_field", 162, 156, "slurp", 243, 19], - ["frame", 163, 162, 1, 243, 19], - ["setarg", 163, 0, 156, 243, 19], - ["setarg", 163, 1, 5, 243, 19], - ["invoke", 163, 155, 243, 19], - "call_done_352", - [ - "access", - 165, - { - "name": "text", - "kind": "name", - "make": "intrinsic" - }, - 243, - 14 - ], - ["frame", 166, 165, 1, 243, 14], - ["null", 167, 243, 14], - ["setarg", 166, 0, 167, 243, 14], - ["setarg", 166, 1, 155, 243, 14], - ["invoke", 166, 164, 243, 14], - ["move", 4, 164, 243, 14], - ["get", 169, 7, 1, 244, 11], - ["frame", 170, 169, 2, 244, 11], - ["null", 171, 244, 11], - ["setarg", 170, 0, 171, 244, 11], - ["setarg", 170, 1, 4, 244, 11], - ["setarg", 170, 2, 5, 244, 11], - ["invoke", 170, 168, 244, 11], - ["move", 8, 168, 244, 11], - ["record", 172, 0], - ["get", 173, 9, 1, 245, 39], - ["store_field", 172, 173, "use", 245, 39], - ["get", 175, 18, 1, 245, 14], - ["frame", 176, 175, 3, 245, 14], - ["null", 177, 245, 14], - ["setarg", 176, 0, 177, 245, 14], - ["setarg", 176, 1, 1, 245, 14], - ["setarg", 176, 2, 8, 245, 14], - ["setarg", 176, 3, 172, 245, 14], - ["invoke", 176, 174, 245, 14], - ["move", 3, 174, 245, 14], - ["get", 178, 20, 1, 246, 5], - ["store_dynamic", 178, 3, 1, 246, 15], - ["return", 3, 247, 12], - ["jump", "if_end_348", 247, 12], - "if_else_347", - "if_end_348", - ["access", 179, "/", 251, 36], - ["access", 180, "_", 251, 41], - [ - "access", - 182, - { - "name": "replace", - "kind": "name", - "make": "intrinsic" - }, - 251, - 22 - ], - ["frame", 183, 182, 3, 251, 22], - ["null", 184, 251, 22], - ["setarg", 183, 0, 184, 251, 22], - ["setarg", 183, 1, 1, 251, 22], - ["setarg", 183, 2, 179, 251, 22], - ["setarg", 183, 3, 180, 251, 22], - ["invoke", 183, 181, 251, 22], - ["get", 186, 12, 1, 251, 12], - ["frame", 187, 186, 1, 251, 12], - ["null", 188, 251, 12], - ["setarg", 187, 0, 188, 251, 12], - ["setarg", 187, 1, 181, 251, 12], - ["invoke", 187, 185, 251, 12], - ["move", 3, 185, 251, 12], - ["get", 189, 20, 1, 252, 3], - ["store_dynamic", 189, 3, 1, 252, 13], - ["return", 3, 253, 10], - ["null", 190, 253, 10], - ["return", 190, 253, 10] - ], - "name": "use_fn", - "filename": "internal/bootstrap.cm", - "nr_args": 1 - }, { "disruption_pc": 0, "nr_slots": 95, @@ -2990,32 +1818,32 @@ "kind": "name", "make": "intrinsic" }, - 258, + 178, 21 ], - ["access", 9, "/internal/engine.cm.mach", 258, 33], - ["is_int", 11, 8, 258, 33], - ["jump_false", 11, "add_ni_353", 258, 33], + ["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_353", 258, 33], - ["add_int", 10, 8, 9, 258, 33], - ["jump", "add_done_355", 258, 33], - "add_ni_353", - ["is_text", 11, 8, 258, 33], - ["jump_false", 11, "add_nt_354", 258, 33], - ["concat", 10, 8, 9, 258, 33], - ["jump", "add_done_355", 258, 33], - "add_nt_354", - ["is_num", 11, 8, 258, 33], - ["jump_false", 11, "add_err_356", 258, 33], - ["is_num", 12, 9, 258, 33], - ["jump_false", 12, "add_err_356", 258, 33], - ["add_float", 10, 8, 9, 258, 33], - ["jump", "add_done_355", 258, 33], - "add_err_356", - ["disrupt", 258, 33], - "add_done_355", - ["move", 3, 10, 258, 33], + ["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, @@ -3024,78 +1852,78 @@ "kind": "name", "make": "intrinsic" }, - 259, + 179, 20 ], - ["access", 14, "/internal/engine.cm.mcode", 259, 32], - ["is_int", 16, 13, 259, 32], - ["jump_false", 16, "add_ni_357", 259, 32], + ["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_357", 259, 32], - ["add_int", 15, 13, 14, 259, 32], - ["jump", "add_done_359", 259, 32], - "add_ni_357", - ["is_text", 16, 13, 259, 32], - ["jump_false", 16, "add_nt_358", 259, 32], - ["concat", 15, 13, 14, 259, 32], - ["jump", "add_done_359", 259, 32], - "add_nt_358", - ["is_num", 16, 13, 259, 32], - ["jump_false", 16, "add_err_360", 259, 32], - ["is_num", 17, 14, 259, 32], - ["jump_false", 17, "add_err_360", 259, 32], - ["add_float", 15, 13, 14, 259, 32], - ["jump", "add_done_359", 259, 32], - "add_err_360", - ["disrupt", 259, 32], - "add_done_359", - ["move", 7, 15, 259, 32], - ["null", 2, 260, 14], - ["null", 6, 261, 20], - ["null", 4, 262, 20], - ["null", 5, 263, 20], - ["get", 19, 14, 1, 264, 7], - ["is_proxy", 20, 19, 264, 7], - ["jump_false", 20, "record_path_363", 264, 7], - ["null", 21, 264, 7], - ["access", 22, "is_file", 264, 7], - ["array", 23, 0, 264, 7], - ["push", 23, 3, 264, 7], - ["frame", 24, 19, 2, 264, 7], - ["setarg", 24, 0, 21, 264, 7], - ["setarg", 24, 1, 22, 264, 7], - ["setarg", 24, 2, 23, 264, 7], - ["invoke", 24, 18, 264, 7], - ["jump", "call_done_364", 264, 7], - "record_path_363", - ["load_field", 25, 19, "is_file", 264, 7], - ["frame", 26, 25, 1, 264, 7], - ["setarg", 26, 0, 19, 264, 7], - ["setarg", 26, 1, 3, 264, 7], - ["invoke", 26, 18, 264, 7], - "call_done_364", - ["jump_false", 18, "if_else_361", 264, 7], - ["get", 28, 14, 1, 265, 12], - ["is_proxy", 29, 28, 265, 12], - ["jump_false", 29, "record_path_365", 265, 12], - ["null", 30, 265, 12], - ["access", 31, "slurp", 265, 12], - ["array", 32, 0, 265, 12], - ["push", 32, 3, 265, 12], - ["frame", 33, 28, 2, 265, 12], - ["setarg", 33, 0, 30, 265, 12], - ["setarg", 33, 1, 31, 265, 12], - ["setarg", 33, 2, 32, 265, 12], - ["invoke", 33, 27, 265, 12], - ["jump", "call_done_366", 265, 12], - "record_path_365", - ["load_field", 34, 28, "slurp", 265, 12], - ["frame", 35, 34, 1, 265, 12], - ["setarg", 35, 0, 28, 265, 12], - ["setarg", 35, 1, 3, 265, 12], - ["invoke", 35, 27, 265, 12], - "call_done_366", - ["move", 2, 27, 265, 12], + ["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, @@ -3104,60 +1932,60 @@ "kind": "name", "make": "intrinsic" }, - 266, + 186, 12 ], - ["frame", 38, 37, 2, 266, 12], - ["null", 39, 266, 12], - ["setarg", 38, 0, 39, 266, 12], - ["setarg", 38, 1, 2, 266, 12], - ["setarg", 38, 2, 1, 266, 12], - ["invoke", 38, 36, 266, 12], - ["return", 36, 266, 12], - ["jump", "if_end_362", 266, 12], - "if_else_361", - "if_end_362", - ["get", 41, 14, 1, 268, 7], - ["is_proxy", 42, 41, 268, 7], - ["jump_false", 42, "record_path_369", 268, 7], - ["null", 43, 268, 7], - ["access", 44, "is_file", 268, 7], - ["array", 45, 0, 268, 7], - ["push", 45, 7, 268, 7], - ["frame", 46, 41, 2, 268, 7], - ["setarg", 46, 0, 43, 268, 7], - ["setarg", 46, 1, 44, 268, 7], - ["setarg", 46, 2, 45, 268, 7], - ["invoke", 46, 40, 268, 7], - ["jump", "call_done_370", 268, 7], - "record_path_369", - ["load_field", 47, 41, "is_file", 268, 7], - ["frame", 48, 47, 1, 268, 7], - ["setarg", 48, 0, 41, 268, 7], - ["setarg", 48, 1, 7, 268, 7], - ["invoke", 48, 40, 268, 7], - "call_done_370", - ["jump_false", 40, "if_else_367", 268, 7], - ["get", 50, 14, 1, 269, 23], - ["is_proxy", 51, 50, 269, 23], - ["jump_false", 51, "record_path_371", 269, 23], - ["null", 52, 269, 23], - ["access", 53, "slurp", 269, 23], - ["array", 54, 0, 269, 23], - ["push", 54, 7, 269, 23], - ["frame", 55, 50, 2, 269, 23], - ["setarg", 55, 0, 52, 269, 23], - ["setarg", 55, 1, 53, 269, 23], - ["setarg", 55, 2, 54, 269, 23], - ["invoke", 55, 49, 269, 23], - ["jump", "call_done_372", 269, 23], - "record_path_371", - ["load_field", 56, 50, "slurp", 269, 23], - ["frame", 57, 56, 1, 269, 23], - ["setarg", 57, 0, 50, 269, 23], - ["setarg", 57, 1, 7, 269, 23], - ["invoke", 57, 49, 269, 23], - "call_done_372", + ["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, @@ -3166,16 +1994,16 @@ "kind": "name", "make": "intrinsic" }, - 269, + 189, 18 ], - ["frame", 60, 59, 1, 269, 18], - ["null", 61, 269, 18], - ["setarg", 60, 0, 61, 269, 18], - ["setarg", 60, 1, 49, 269, 18], - ["invoke", 60, 58, 269, 18], - ["move", 6, 58, 269, 18], - ["access", 62, "engine", 270, 28], + ["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, @@ -3184,20 +2012,20 @@ "kind": "name", "make": "intrinsic" }, - 270, + 190, 12 ], - ["frame", 65, 64, 3, 270, 12], - ["null", 66, 270, 12], - ["setarg", 65, 0, 66, 270, 12], - ["setarg", 65, 1, 62, 270, 12], - ["setarg", 65, 2, 6, 270, 12], - ["setarg", 65, 3, 1, 270, 12], - ["invoke", 65, 63, 270, 12], - ["return", 63, 270, 12], - ["jump", "if_end_368", 270, 12], - "if_else_367", - "if_end_368", + ["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, @@ -3206,52 +2034,52 @@ "kind": "name", "make": "intrinsic" }, - 272, + 192, 17 ], - ["access", 68, "/internal/engine.cm", 272, 29], - ["is_int", 70, 67, 272, 29], - ["jump_false", 70, "add_ni_373", 272, 29], + ["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_373", 272, 29], - ["add_int", 69, 67, 68, 272, 29], - ["jump", "add_done_375", 272, 29], - "add_ni_373", - ["is_text", 70, 67, 272, 29], - ["jump_false", 70, "add_nt_374", 272, 29], - ["concat", 69, 67, 68, 272, 29], - ["jump", "add_done_375", 272, 29], - "add_nt_374", - ["is_num", 70, 67, 272, 29], - ["jump_false", 70, "add_err_376", 272, 29], - ["is_num", 71, 68, 272, 29], - ["jump_false", 71, "add_err_376", 272, 29], - ["add_float", 69, 67, 68, 272, 29], - ["jump", "add_done_375", 272, 29], - "add_err_376", - ["disrupt", 272, 29], - "add_done_375", - ["move", 3, 69, 272, 29], - ["get", 73, 14, 1, 273, 21], - ["is_proxy", 74, 73, 273, 21], - ["jump_false", 74, "record_path_377", 273, 21], - ["null", 75, 273, 21], - ["access", 76, "slurp", 273, 21], - ["array", 77, 0, 273, 21], - ["push", 77, 3, 273, 21], - ["frame", 78, 73, 2, 273, 21], - ["setarg", 78, 0, 75, 273, 21], - ["setarg", 78, 1, 76, 273, 21], - ["setarg", 78, 2, 77, 273, 21], - ["invoke", 78, 72, 273, 21], - ["jump", "call_done_378", 273, 21], - "record_path_377", - ["load_field", 79, 73, "slurp", 273, 21], - ["frame", 80, 79, 1, 273, 21], - ["setarg", 80, 0, 73, 273, 21], - ["setarg", 80, 1, 3, 273, 21], - ["invoke", 80, 72, 273, 21], - "call_done_378", + ["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, @@ -3260,35 +2088,35 @@ "kind": "name", "make": "intrinsic" }, - 273, + 193, 16 ], - ["frame", 83, 82, 1, 273, 16], - ["null", 84, 273, 16], - ["setarg", 83, 0, 84, 273, 16], - ["setarg", 83, 1, 72, 273, 16], - ["invoke", 83, 81, 273, 16], - ["move", 4, 81, 273, 16], - ["get", 86, 7, 1, 274, 16], - ["frame", 87, 86, 2, 274, 16], - ["null", 88, 274, 16], - ["setarg", 87, 0, 88, 274, 16], - ["setarg", 87, 1, 4, 274, 16], - ["setarg", 87, 2, 3, 274, 16], - ["invoke", 87, 85, 274, 16], - ["move", 5, 85, 274, 16], - ["access", 89, "engine", 275, 18], - ["get", 91, 18, 1, 275, 10], - ["frame", 92, 91, 3, 275, 10], - ["null", 93, 275, 10], - ["setarg", 92, 0, 93, 275, 10], - ["setarg", 92, 1, 89, 275, 10], - ["setarg", 92, 2, 5, 275, 10], - ["setarg", 92, 3, 1, 275, 10], - ["invoke", 92, 90, 275, 10], - ["return", 90, 275, 10], - ["null", 94, 275, 10], - ["return", 94, 275, 10] + ["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", @@ -3298,31 +2126,27 @@ "main": { "nr_args": 0, "nr_close_slots": 0, - "nr_slots": 128, + "nr_slots": 124, "instructions": [ - ["function", 25, 0, 0, 0], - ["move", 12, 25, 0, 0], - ["function", 26, 1, 0, 0], - ["move", 1, 26, 0, 0], - ["function", 27, 2, 0, 0], - ["move", 19, 27, 0, 0], - ["function", 28, 3, 0, 0], - ["move", 8, 28, 0, 0], - ["function", 29, 4, 0, 0], - ["move", 7, 29, 0, 0], - ["function", 30, 5, 0, 0], - ["move", 11, 30, 0, 0], - ["function", 31, 6, 0, 0], - ["move", 18, 31, 0, 0], - ["function", 32, 7, 0, 0], - ["move", 24, 32, 0, 0], - ["function", 33, 8, 0, 0], - ["move", 9, 33, 0, 0], - ["function", 34, 9, 0, 0], - ["move", 2, 34, 0, 0], + ["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", - 35, + 31, { "name": "os", "kind": "name", @@ -3331,29 +2155,29 @@ 5, 21 ], - ["load_field", 36, 35, "load_internal", 5, 21], - ["move", 17, 36, 5, 21], - ["access", 37, "fd", 10, 20], - ["frame", 39, 12, 1, 10, 10], - ["null", 40, 10, 10], - ["setarg", 39, 0, 40, 10, 10], - ["setarg", 39, 1, 37, 10, 10], - ["invoke", 39, 38, 10, 10], - ["move", 14, 38, 10, 10], - ["access", 41, "json", 11, 22], - ["frame", 43, 12, 1, 11, 12], - ["null", 44, 11, 12], - ["setarg", 43, 0, 44, 11, 12], - ["setarg", 43, 1, 41, 11, 12], - ["invoke", 43, 42, 11, 12], - ["move", 23, 42, 11, 12], - ["record", 45, 0], - ["move", 20, 45, 13, 17], - ["access", 46, "fd", 14, 11], - ["store_field", 20, 14, 46, 14, 11], + ["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", - 47, + 43, { "name": "os", "kind": "name", @@ -3362,409 +2186,411 @@ 15, 19 ], - ["access", 48, "os", 15, 11], - ["store_field", 20, 47, 48, 15, 11], - ["access", 49, "json", 16, 11], - ["store_field", 20, 23, 49, 16, 11], - ["record", 50, 0], - ["store_field", 50, 1, "use", 45, 22], - ["move", 10, 50, 45, 22], - ["access", 51, "tokenize", 46, 30], - ["frame", 53, 19, 2, 46, 20], - ["null", 54, 46, 20], - ["setarg", 53, 0, 54, 46, 20], - ["setarg", 53, 1, 51, 46, 20], - ["setarg", 53, 2, 10, 46, 20], - ["invoke", 53, 52, 46, 20], - ["move", 3, 52, 46, 20], - ["access", 55, "parse", 47, 27], - ["frame", 57, 19, 2, 47, 17], - ["null", 58, 47, 17], - ["setarg", 57, 0, 58, 47, 17], - ["setarg", 57, 1, 55, 47, 17], - ["setarg", 57, 2, 10, 47, 17], - ["invoke", 57, 56, 47, 17], - ["move", 15, 56, 47, 17], - ["access", 59, "fold", 48, 26], - ["frame", 61, 19, 2, 48, 16], - ["null", 62, 48, 16], - ["setarg", 61, 0, 62, 48, 16], - ["setarg", 61, 1, 59, 48, 16], - ["setarg", 61, 2, 10, 48, 16], - ["invoke", 61, 60, 48, 16], - ["move", 13, 60, 48, 16], - ["access", 63, "tokenize", 49, 11], - ["store_field", 20, 3, 63, 49, 11], - ["access", 64, "parse", 50, 11], - ["store_field", 20, 15, 64, 50, 11], - ["access", 65, "fold", 51, 11], - ["store_field", 20, 13, 65, 51, 11], - ["access", 66, "mcode", 54, 27], - ["frame", 68, 19, 2, 54, 17], - ["null", 69, 54, 17], - ["setarg", 68, 0, 69, 54, 17], - ["setarg", 68, 1, 66, 54, 17], - ["setarg", 68, 2, 10, 54, 17], - ["invoke", 68, 67, 54, 17], - ["move", 6, 67, 54, 17], - ["access", 70, "mcode", 55, 11], - ["store_field", 20, 6, 70, 55, 11], - ["null", 22, 56, 22], - ["frame", 72, 8, 0, 106, 1], - ["null", 73, 106, 1], - ["setarg", 72, 0, 73, 106, 1], - ["invoke", 72, 71, 106, 1], - ["access", 74, "streamline", 171, 30], - ["frame", 76, 11, 2, 171, 18], - ["null", 77, 171, 18], - ["setarg", 76, 0, 77, 171, 18], - ["setarg", 76, 1, 74, 171, 18], - ["setarg", 76, 2, 10, 171, 18], - ["invoke", 76, 75, 171, 18], - ["move", 22, 75, 171, 18], - ["access", 78, "streamline", 172, 11], - ["store_field", 20, 22, 78, 172, 11], - ["null", 16, 175, 22], - ["null", 21, 280, 15], - ["array", 79, 0, 281, 17], - ["move", 4, 79, 281, 17], - ["access", 5, 0, 282, 10], + ["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", - 80, + 76, { "name": "args", "kind": "name", "make": "intrinsic" }, - 284, + 204, 5 ], - ["null", 81, 284, 13], - ["is_identical", 82, 80, 81, 284, 13], - ["jump_true", 82, "ne_nid_382", 284, 13], - ["jump", "ne_ni_383", 284, 13], - "ne_nid_382", - ["false", 82, 284, 13], - ["jump", "ne_done_381", 284, 13], - "ne_ni_383", - ["is_int", 83, 80, 284, 13], - ["jump_false", 83, "ne_nn_384", 284, 13], - ["is_int", 84, 81, 284, 13], - ["jump_false", 84, "ne_nn_384", 284, 13], - ["ne_int", 82, 80, 81, 284, 13], - ["jump", "ne_done_381", 284, 13], - "ne_nn_384", - ["is_num", 83, 80, 284, 13], - ["jump_false", 83, "ne_nt_385", 284, 13], - ["is_num", 84, 81, 284, 13], - ["jump_false", 84, "ne_nt_385", 284, 13], - ["ne_float", 82, 80, 81, 284, 13], - ["jump", "ne_done_381", 284, 13], - "ne_nt_385", - ["is_text", 83, 80, 284, 13], - ["jump_false", 83, "ne_nnl_386", 284, 13], - ["is_text", 84, 81, 284, 13], - ["jump_false", 84, "ne_nnl_386", 284, 13], - ["ne_text", 82, 80, 81, 284, 13], - ["jump", "ne_done_381", 284, 13], - "ne_nnl_386", - ["is_null", 83, 80, 284, 13], - ["jump_false", 83, "ne_nb_387", 284, 13], - ["is_null", 84, 81, 284, 13], - ["jump_false", 84, "ne_nb_387", 284, 13], - ["false", 82, 284, 13], - ["jump", "ne_done_381", 284, 13], - "ne_nb_387", - ["is_bool", 83, 80, 284, 13], - ["jump_false", 83, "ne_mis_388", 284, 13], - ["is_bool", 84, 81, 284, 13], - ["jump_false", 84, "ne_mis_388", 284, 13], - ["ne_bool", 82, 80, 81, 284, 13], - ["jump", "ne_done_381", 284, 13], - "ne_mis_388", - ["true", 82, 284, 13], - "ne_done_381", - ["jump_false", 82, "if_else_379", 284, 13], + ["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", - 85, + 81, { "name": "args", "kind": "name", "make": "intrinsic" }, - 286, + 206, 13 ], - ["access", 86, 0, 286, 18], - ["load_index", 87, 85, 86, 286, 18], - ["move", 21, 87, 286, 18], + ["access", 82, 0, 206, 18], + ["load_index", 83, 81, 82, 206, 18], + ["move", 19, 83, 206, 18], "_nop_bl_1", - ["jump_true", 21, "if_else_389", 287, 8], - ["access", 89, "error: no program specified\n", 288, 11], + ["jump_true", 19, "if_else_257", 207, 8], + ["access", 85, "error: no program specified\n", 208, 11], [ "access", - 91, + 87, { "name": "print", "kind": "name", "make": "intrinsic" }, - 288, + 208, 5 ], - ["frame", 92, 91, 1, 288, 5], - ["null", 93, 288, 5], - ["setarg", 92, 0, 93, 288, 5], - ["setarg", 92, 1, 89, 288, 5], - ["invoke", 92, 90, 288, 5], - ["disrupt", 289, 5], - ["jump", "if_end_390", 289, 5], - "if_else_389", - "if_end_390", - ["access", 94, 1, 291, 8], - ["move", 5, 94, 291, 8], - "while_start_391", + ["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", - 95, + 91, { "name": "args", "kind": "name", "make": "intrinsic" }, - 292, + 212, 22 ], - ["length", 96, 95, 292, 22], - ["is_int", 98, 5, 292, 22], - ["jump_false", 98, "rel_ni_393", 292, 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", 97, 5, 96, 292, 22], - ["jump", "rel_done_395", 292, 22], - "rel_ni_393", - ["is_num", 98, 5, 292, 22], - ["jump_false", 98, "rel_nn_394", 292, 22], - ["is_num", 99, 96, 292, 22], - ["jump_false", 99, "rel_nn_394", 292, 22], - ["lt_float", 97, 5, 96, 292, 22], - ["jump", "rel_done_395", 292, 22], - "rel_nn_394", - ["is_text", 98, 5, 292, 22], - ["jump_false", 98, "rel_err_396", 292, 22], - ["is_text", 99, 96, 292, 22], - ["jump_false", 99, "rel_err_396", 292, 22], - ["lt_text", 97, 5, 96, 292, 22], - ["jump", "rel_done_395", 292, 22], - "rel_err_396", - ["disrupt", 292, 22], - "rel_done_395", - ["jump_false", 97, "while_end_392", 292, 22], + ["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", - 100, + 96, { "name": "args", "kind": "name", "make": "intrinsic" }, - 293, + 213, 21 ], - ["load_dynamic", 101, 100, 5, 293, 26], - ["is_array", 102, 4, 293, 26], - ["jump_false", 102, "push_err_397", 293, 26], - ["push", 4, 101, 293, 26], - ["jump", "push_done_398", 293, 26], - "push_err_397", - ["disrupt", 293, 26], - "push_done_398", - ["access", 103, 1, 294, 15], - ["is_int", 105, 5, 294, 15], - ["jump_false", 105, "add_ni_399", 294, 15], - ["add_int", 104, 5, 103, 294, 15], - ["jump", "add_done_401", 294, 15], - "add_ni_399", - ["is_text", 105, 5, 294, 15], - ["jump_false", 105, "add_nt_400", 294, 15], - ["is_text", 106, 103, 294, 15], - ["jump_false", 106, "add_nt_400", 294, 15], - ["concat", 104, 5, 103, 294, 15], - ["jump", "add_done_401", 294, 15], - "add_nt_400", - ["is_num", 105, 5, 294, 15], - ["jump_false", 105, "add_err_402", 294, 15], - ["add_float", 104, 5, 103, 294, 15], - ["jump", "add_done_401", 294, 15], - "add_err_402", - ["disrupt", 294, 15], - "add_done_401", - ["move", 5, 104, 294, 15], - ["jump", "while_start_391", 294, 15], - "while_end_392", - ["record", 107, 0], + ["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", - 108, + 104, { "name": "os", "kind": "name", "make": "intrinsic" }, - 298, + 218, 9 ], - ["store_field", 107, 108, "os", 298, 9], + ["store_field", 103, 104, "os", 218, 9], [ "access", - 109, + 105, { "name": "actorsym", "kind": "name", "make": "intrinsic" }, - 298, + 218, 23 ], - ["store_field", 107, 109, "actorsym", 298, 23], - ["record", 110, 0], - ["store_field", 110, 21, "program", 299, 21], - ["store_field", 110, 4, "arg", 299, 35], - ["store_field", 107, 110, "init", 299, 35], + ["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", - 111, + 107, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 300, + 220, 16 ], - ["store_field", 107, 111, "core_path", 300, 16], + ["store_field", 103, 107, "core_path", 220, 16], [ "access", - 112, + 108, { "name": "shop_path", "kind": "name", "make": "intrinsic" }, - 300, + 220, 38 ], - ["store_field", 107, 112, "shop_path", 300, 38], - ["store_field", 107, 23, "json", 300, 55], - ["store_field", 107, 7, "analyze", 301, 14], - ["store_field", 107, 18, "run_ast_fn", 301, 35], - ["store_field", 107, 24, "run_ast_noopt_fn", 301, 62], - ["frame", 114, 2, 1, 297, 3], - ["null", 115, 297, 3], - ["setarg", 114, 0, 115, 297, 3], - ["setarg", 114, 1, 107, 297, 3], - ["invoke", 114, 113, 297, 3], - ["jump", "if_end_380", 297, 3], - "if_else_379", - ["record", 116, 0], + ["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", - 117, + 113, { "name": "os", "kind": "name", "make": "intrinsic" }, - 306, + 227, 9 ], - ["store_field", 116, 117, "os", 306, 9], + ["store_field", 112, 113, "os", 227, 9], [ "access", - 118, + 114, { "name": "actorsym", "kind": "name", "make": "intrinsic" }, - 306, + 227, 23 ], - ["store_field", 116, 118, "actorsym", 306, 23], + ["store_field", 112, 114, "actorsym", 227, 23], [ "access", - 119, + 115, { "name": "init", "kind": "name", "make": "intrinsic" }, - 306, + 227, 39 ], - ["store_field", 116, 119, "init", 306, 39], + ["store_field", 112, 115, "init", 227, 39], [ "access", - 120, + 116, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 307, + 228, 16 ], - ["store_field", 116, 120, "core_path", 307, 16], + ["store_field", 112, 116, "core_path", 228, 16], [ "access", - 121, + 117, { "name": "shop_path", "kind": "name", "make": "intrinsic" }, - 307, + 228, 38 ], - ["store_field", 116, 121, "shop_path", 307, 38], - ["store_field", 116, 23, "json", 307, 55], + ["store_field", 112, 117, "shop_path", 228, 38], + ["store_field", 112, 21, "json", 228, 55], [ "access", - 122, + 118, { "name": "nota", "kind": "name", "make": "intrinsic" }, - 307, + 228, 67 ], - ["store_field", 116, 122, "nota", 307, 67], + ["store_field", 112, 118, "nota", 228, 67], [ "access", - 123, + 119, { "name": "wota", "kind": "name", "make": "intrinsic" }, - 307, + 228, 79 ], - ["store_field", 116, 123, "wota", 307, 79], - ["store_field", 116, 7, "analyze", 308, 14], - ["store_field", 116, 18, "run_ast_fn", 308, 35], - ["store_field", 116, 24, "run_ast_noopt_fn", 308, 62], - ["frame", 125, 2, 1, 305, 3], - ["null", 126, 305, 3], - ["setarg", 125, 0, 126, 305, 3], - ["setarg", 125, 1, 116, 305, 3], - ["invoke", 125, 124, 305, 3], - "if_end_380", - ["null", 127, 305, 3], - ["return", 127, 305, 3] + ["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", diff --git a/internal/engine.cm b/internal/engine.cm index a47abe91..edaaf974 100644 --- a/internal/engine.cm +++ b/internal/engine.cm @@ -1,4 +1,4 @@ -// Hidden vars (os, actorsym, init, core_path, shop_path, analyze, run_ast_fn, run_ast_noopt_fn, json) come from env +// Hidden vars (os, actorsym, init, core_path, shop_path, analyze, run_ast_fn, run_ast_noopt_fn, json, use_cache) come from env // In actor spawn mode, also: nota, wota var ACTORDATA = actorsym var SYSYM = '__SYSTEM__' @@ -53,7 +53,6 @@ var js = use_embed('js') // shop_path may be null if --core was used without --shop var packages_path = shop_path ? shop_path + '/packages' : null -var use_cache = {} use_cache['core/os'] = os // Extra env properties added as engine initializes (log, runtime fns, etc.) @@ -70,11 +69,18 @@ function use_core(path) { var result = null var script = null var ast = null + var c_cache_key = null - // Build env: merge core_extras, include C embed as 'native' if available + // If C embed exists, register it so .cm modules can use('internal/_c') + if (sym) { + c_cache_key = 'core/internal/' + path + '_c' + if (!use_cache[c_cache_key]) + use_cache[c_cache_key] = sym + } + + // Build env: merge core_extras env = {use: use_core} arrfor(array(core_extras), function(k) { env[k] = core_extras[k] }) - if (sym) env.native = sym // Check for pre-compiled .cm.mach file first var mach_path = core_path + '/' + path + '.cm.mach' diff --git a/internal/engine.cm.mcode b/internal/engine.cm.mcode index af4d346c..faa2a802 100644 --- a/internal/engine.cm.mcode +++ b/internal/engine.cm.mcode @@ -735,12 +735,12 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 58, 2, 76, 53], - ["load_dynamic", 3, 2, 1, 76, 65], - ["get", 4, 2, 1, 76, 44], - ["store_dynamic", 4, 3, 1, 76, 48], - ["null", 5, 76, 48], - ["return", 5, 76, 48] + ["get", 2, 58, 2, 83, 53], + ["load_dynamic", 3, 2, 1, 83, 65], + ["get", 4, 7, 1, 83, 44], + ["store_dynamic", 4, 3, 1, 83, 48], + ["null", 5, 83, 48], + ["return", 5, 83, 48] ], "name": "", "filename": "internal/engine.cm", @@ -748,652 +748,786 @@ }, { "disruption_pc": 0, - "nr_slots": 173, + "nr_slots": 186, "nr_close_slots": 0, "instructions": [ - ["access", 11, "core/", 64, 19], + ["access", 12, "core/", 63, 19], "_nop_tc_1", - ["jump", "add_ni_90", 64, 29], - ["is_int", 14, 1, 64, 29], - ["jump_false", 14, "add_ni_90", 64, 29], - ["add_int", 12, 11, 1, 64, 29], - ["jump", "add_done_92", 64, 29], + ["jump", "add_ni_90", 63, 29], + ["is_int", 15, 1, 63, 29], + ["jump_false", 15, "add_ni_90", 63, 29], + ["add_int", 13, 12, 1, 63, 29], + ["jump", "add_done_92", 63, 29], "add_ni_90", - ["is_text", 14, 1, 64, 29], - ["jump_false", 14, "add_nt_91", 64, 29], - ["concat", 12, 11, 1, 64, 29], - ["jump", "add_done_92", 64, 29], + ["is_text", 15, 1, 63, 29], + ["jump_false", 15, "add_nt_91", 63, 29], + ["concat", 13, 12, 1, 63, 29], + ["jump", "add_done_92", 63, 29], "add_nt_91", - ["is_num", 13, 11, 64, 29], - ["jump_false", 13, "add_err_93", 64, 29], - ["is_num", 14, 1, 64, 29], - ["jump_false", 14, "add_err_93", 64, 29], - ["add_float", 12, 11, 1, 64, 29], - ["jump", "add_done_92", 64, 29], + ["is_num", 14, 12, 63, 29], + ["jump_false", 14, "add_err_93", 63, 29], + ["is_num", 15, 1, 63, 29], + ["jump_false", 15, "add_err_93", 63, 29], + ["add_float", 13, 12, 1, 63, 29], + ["jump", "add_done_92", 63, 29], "add_err_93", - ["disrupt", 64, 29], + ["disrupt", 63, 29], "add_done_92", - ["move", 9, 12, 64, 29], - ["null", 2, 65, 13], - ["get", 15, 67, 1, 66, 7], - ["load_dynamic", 16, 15, 9, 66, 17], - ["jump_false", 16, "if_else_94", 66, 17], - ["get", 17, 67, 1, 67, 12], - ["load_dynamic", 18, 17, 9, 67, 22], - ["return", 18, 67, 22], - ["jump", "if_end_95", 67, 22], - "if_else_94", - "if_end_95", - ["access", 19, "/", 69, 37], - ["access", 20, "_", 69, 42], + ["move", 11, 13, 63, 29], + ["null", 7, 64, 13], [ "access", - 22, + 16, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 65, + 7 + ], + ["load_dynamic", 17, 16, 11, 65, 17], + ["jump_false", 17, "if_else_94", 65, 17], + [ + "access", + 18, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 66, + 12 + ], + ["load_dynamic", 19, 18, 11, 66, 22], + ["return", 19, 66, 22], + ["jump", "if_end_95", 66, 22], + "if_else_94", + "if_end_95", + ["access", 20, "/", 68, 37], + ["access", 21, "_", 68, 42], + [ + "access", + 23, { "name": "replace", "kind": "name", "make": "intrinsic" }, - 69, + 68, 23 ], - ["frame", 23, 22, 3, 69, 23], - ["null", 24, 69, 23], - ["setarg", 23, 0, 24, 69, 23], - ["setarg", 23, 1, 1, 69, 23], - ["setarg", 23, 2, 19, 69, 23], - ["setarg", 23, 3, 20, 69, 23], - ["invoke", 23, 21, 69, 23], - ["get", 26, 17, 1, 69, 13], - ["frame", 27, 26, 1, 69, 13], - ["null", 28, 69, 13], - ["setarg", 27, 0, 28, 69, 13], - ["setarg", 27, 1, 21, 69, 13], - ["invoke", 27, 25, 69, 13], - ["move", 5, 25, 69, 13], + ["frame", 24, 23, 3, 68, 23], + ["null", 25, 68, 23], + ["setarg", 24, 0, 25, 68, 23], + ["setarg", 24, 1, 1, 68, 23], + ["setarg", 24, 2, 20, 68, 23], + ["setarg", 24, 3, 21, 68, 23], + ["invoke", 24, 22, 68, 23], + ["get", 27, 17, 1, 68, 13], + ["frame", 28, 27, 1, 68, 13], + ["null", 29, 68, 13], + ["setarg", 28, 0, 29, 68, 13], + ["setarg", 28, 1, 22, 68, 13], + ["invoke", 28, 26, 68, 13], + ["move", 4, 26, 68, 13], + ["null", 2, 69, 16], ["null", 3, 70, 16], - ["null", 4, 71, 16], - ["null", 6, 72, 13], - ["record", 29, 0], - ["get", 30, 32, 1, 75, 15], - ["store_field", 29, 30, "use", 75, 15], - ["move", 2, 29, 75, 15], - ["get", 31, 58, 1, 76, 16], + ["null", 8, 71, 13], + ["null", 5, 72, 21], + ["jump_false", 4, "if_else_96", 75, 7], + ["access", 30, "core/internal/", 76, 19], + "_nop_tc_2", + ["jump", "add_ni_98", 76, 38], + ["is_int", 33, 1, 76, 38], + ["jump_false", 33, "add_ni_98", 76, 38], + ["add_int", 31, 30, 1, 76, 38], + ["jump", "add_done_100", 76, 38], + "add_ni_98", + ["is_text", 33, 1, 76, 38], + ["jump_false", 33, "add_nt_99", 76, 38], + ["concat", 31, 30, 1, 76, 38], + ["jump", "add_done_100", 76, 38], + "add_nt_99", + ["is_num", 32, 30, 76, 38], + ["jump_false", 32, "add_err_101", 76, 38], + ["is_num", 33, 1, 76, 38], + ["jump_false", 33, "add_err_101", 76, 38], + ["add_float", 31, 30, 1, 76, 38], + ["jump", "add_done_100", 76, 38], + "add_err_101", + ["disrupt", 76, 38], + "add_done_100", + ["access", 34, "_c", 76, 45], + ["is_int", 36, 31, 76, 45], + ["jump_false", 36, "add_ni_102", 76, 45], + "_nop_tc_3", + ["jump", "add_ni_102", 76, 45], + ["add_int", 35, 31, 34, 76, 45], + ["jump", "add_done_104", 76, 45], + "add_ni_102", + ["is_text", 36, 31, 76, 45], + ["jump_false", 36, "add_nt_103", 76, 45], + ["concat", 35, 31, 34, 76, 45], + ["jump", "add_done_104", 76, 45], + "add_nt_103", + ["is_num", 36, 31, 76, 45], + ["jump_false", 36, "add_err_105", 76, 45], + ["is_num", 37, 34, 76, 45], + ["jump_false", 37, "add_err_105", 76, 45], + ["add_float", 35, 31, 34, 76, 45], + ["jump", "add_done_104", 76, 45], + "add_err_105", + ["disrupt", 76, 45], + "add_done_104", + ["move", 5, 35, 76, 45], [ "access", - 33, + 38, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 77, + 10 + ], + ["load_dynamic", 39, 38, 5, 77, 20], + "_nop_bl_1", + ["jump_true", 39, "if_else_106", 77, 20], + [ + "access", + 41, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 78, + 7 + ], + ["store_dynamic", 41, 4, 5, 78, 17], + ["jump", "if_end_107", 78, 17], + "if_else_106", + "if_end_107", + ["jump", "if_end_97", 78, 17], + "if_else_96", + "if_end_97", + ["record", 42, 0], + ["get", 43, 32, 1, 82, 15], + ["store_field", 42, 43, "use", 82, 15], + ["move", 7, 42, 82, 15], + ["get", 44, 58, 1, 83, 16], + [ + "access", + 46, { "name": "array", "kind": "name", "make": "intrinsic" }, - 76, + 83, 10 ], - ["frame", 34, 33, 1, 76, 10], - ["null", 35, 76, 10], - ["setarg", 34, 0, 35, 76, 10], - ["setarg", 34, 1, 31, 76, 10], - ["invoke", 34, 32, 76, 10], - ["function", 36, 7, 76, 30], - ["length", 38, 32, 76, 30], - ["int", 39, 0, 76, 30], - ["int", 43, 1, 76, 30], - ["null", 42, 76, 30], - "arrfor_loop_96", - ["lt_int", 40, 39, 38, 76, 30], - ["jump_false", 40, "arrfor_done_97", 76, 30], - ["load_index", 41, 32, 39, 76, 30], - ["frame", 44, 36, 2, 76, 30], - ["setarg", 44, 0, 42, 76, 30], - ["setarg", 44, 1, 41, 76, 30], - ["setarg", 44, 2, 39, 76, 30], - ["invoke", 44, 45, 76, 30], - ["add_int", 39, 39, 43, 76, 30], - ["jump", "arrfor_loop_96", 76, 30], - "arrfor_done_97", - ["null", 37, 76, 30], - ["jump_false", 5, "if_else_98", 77, 7], - ["store_field", 2, 5, "native", 77, 12], - ["jump", "if_end_99", 77, 12], - "if_else_98", - "if_end_99", + ["frame", 47, 46, 1, 83, 10], + ["null", 48, 83, 10], + ["setarg", 47, 0, 48, 83, 10], + ["setarg", 47, 1, 44, 83, 10], + ["invoke", 47, 45, 83, 10], + ["function", 49, 7, 83, 30], + ["length", 51, 45, 83, 30], + ["int", 52, 0, 83, 30], + ["int", 56, 1, 83, 30], + ["null", 55, 83, 30], + "arrfor_loop_108", + ["lt_int", 53, 52, 51, 83, 30], + ["jump_false", 53, "arrfor_done_109", 83, 30], + ["load_index", 54, 45, 52, 83, 30], + ["frame", 57, 49, 2, 83, 30], + ["setarg", 57, 0, 55, 83, 30], + ["setarg", 57, 1, 54, 83, 30], + ["setarg", 57, 2, 52, 83, 30], + ["invoke", 57, 58, 83, 30], + ["add_int", 52, 52, 56, 83, 30], + ["jump", "arrfor_loop_108", 83, 30], + "arrfor_done_109", + ["null", 50, 83, 30], [ "access", - 46, + 59, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 80, + 86, 19 ], - ["access", 47, "/", 80, 31], - ["is_int", 49, 46, 80, 31], - ["jump_false", 49, "add_ni_100", 80, 31], - "_nop_tc_2", - ["jump", "add_ni_100", 80, 31], - ["add_int", 48, 46, 47, 80, 31], - ["jump", "add_done_102", 80, 31], - "add_ni_100", - ["is_text", 49, 46, 80, 31], - ["jump_false", 49, "add_nt_101", 80, 31], - ["concat", 48, 46, 47, 80, 31], - ["jump", "add_done_102", 80, 31], - "add_nt_101", - ["is_num", 49, 46, 80, 31], - ["jump_false", 49, "add_err_103", 80, 31], - ["is_num", 50, 47, 80, 31], - ["jump_false", 50, "add_err_103", 80, 31], - ["add_float", 48, 46, 47, 80, 31], - ["jump", "add_done_102", 80, 31], - "add_err_103", - ["disrupt", 80, 31], - "add_done_102", - ["is_int", 52, 48, 80, 37], - ["jump_false", 52, "add_ni_104", 80, 37], - ["is_int", 53, 1, 80, 37], - ["jump_false", 53, "add_ni_104", 80, 37], - ["add_int", 51, 48, 1, 80, 37], - ["jump", "add_done_106", 80, 37], - "add_ni_104", - ["is_text", 52, 48, 80, 37], - ["jump_false", 52, "add_nt_105", 80, 37], - ["is_text", 53, 1, 80, 37], - ["jump_false", 53, "add_nt_105", 80, 37], - ["concat", 51, 48, 1, 80, 37], - ["jump", "add_done_106", 80, 37], - "add_nt_105", - ["is_num", 52, 48, 80, 37], - ["jump_false", 52, "add_err_107", 80, 37], - ["is_num", 53, 1, 80, 37], - ["jump_false", 53, "add_err_107", 80, 37], - ["add_float", 51, 48, 1, 80, 37], - ["jump", "add_done_106", 80, 37], - "add_err_107", - ["disrupt", 80, 37], - "add_done_106", - ["access", 54, ".cm.mach", 80, 44], - ["is_int", 56, 51, 80, 44], - ["jump_false", 56, "add_ni_108", 80, 44], - "_nop_tc_3", - ["jump", "add_ni_108", 80, 44], - ["add_int", 55, 51, 54, 80, 44], - ["jump", "add_done_110", 80, 44], - "add_ni_108", - ["is_text", 56, 51, 80, 44], - ["jump_false", 56, "add_nt_109", 80, 44], - ["concat", 55, 51, 54, 80, 44], - ["jump", "add_done_110", 80, 44], - "add_nt_109", - ["is_num", 56, 51, 80, 44], - ["jump_false", 56, "add_err_111", 80, 44], - ["is_num", 57, 54, 80, 44], - ["jump_false", 57, "add_err_111", 80, 44], - ["add_float", 55, 51, 54, 80, 44], - ["jump", "add_done_110", 80, 44], - "add_err_111", - ["disrupt", 80, 44], - "add_done_110", - ["move", 7, 55, 80, 44], - ["get", 59, 20, 1, 81, 7], - ["is_proxy", 60, 59, 81, 7], - ["jump_false", 60, "record_path_114", 81, 7], - ["null", 61, 81, 7], - ["access", 62, "is_file", 81, 7], - ["array", 63, 0, 81, 7], - ["push", 63, 7, 81, 7], - ["frame", 64, 59, 2, 81, 7], - ["setarg", 64, 0, 61, 81, 7], - ["setarg", 64, 1, 62, 81, 7], - ["setarg", 64, 2, 63, 81, 7], - ["invoke", 64, 58, 81, 7], - ["jump", "call_done_115", 81, 7], - "record_path_114", - ["load_field", 65, 59, "is_file", 81, 7], - ["frame", 66, 65, 1, 81, 7], - ["setarg", 66, 0, 59, 81, 7], - ["setarg", 66, 1, 7, 81, 7], - ["invoke", 66, 58, 81, 7], - "call_done_115", - ["jump_false", 58, "if_else_112", 81, 7], - ["get", 68, 20, 1, 82, 24], - ["is_proxy", 69, 68, 82, 24], - ["jump_false", 69, "record_path_116", 82, 24], - ["null", 70, 82, 24], - ["access", 71, "slurp", 82, 24], - ["array", 72, 0, 82, 24], - ["push", 72, 7, 82, 24], - ["frame", 73, 68, 2, 82, 24], - ["setarg", 73, 0, 70, 82, 24], - ["setarg", 73, 1, 71, 82, 24], - ["setarg", 73, 2, 72, 82, 24], - ["invoke", 73, 67, 82, 24], - ["jump", "call_done_117", 82, 24], - "record_path_116", - ["load_field", 74, 68, "slurp", 82, 24], - ["frame", 75, 74, 1, 82, 24], - ["setarg", 75, 0, 68, 82, 24], - ["setarg", 75, 1, 7, 82, 24], - ["invoke", 75, 67, 82, 24], - "call_done_117", + ["access", 60, "/", 86, 31], + ["is_int", 62, 59, 86, 31], + ["jump_false", 62, "add_ni_110", 86, 31], + "_nop_tc_4", + ["jump", "add_ni_110", 86, 31], + ["add_int", 61, 59, 60, 86, 31], + ["jump", "add_done_112", 86, 31], + "add_ni_110", + ["is_text", 62, 59, 86, 31], + ["jump_false", 62, "add_nt_111", 86, 31], + ["concat", 61, 59, 60, 86, 31], + ["jump", "add_done_112", 86, 31], + "add_nt_111", + ["is_num", 62, 59, 86, 31], + ["jump_false", 62, "add_err_113", 86, 31], + ["is_num", 63, 60, 86, 31], + ["jump_false", 63, "add_err_113", 86, 31], + ["add_float", 61, 59, 60, 86, 31], + ["jump", "add_done_112", 86, 31], + "add_err_113", + ["disrupt", 86, 31], + "add_done_112", + ["is_int", 65, 61, 86, 37], + ["jump_false", 65, "add_ni_114", 86, 37], + ["is_int", 66, 1, 86, 37], + ["jump_false", 66, "add_ni_114", 86, 37], + ["add_int", 64, 61, 1, 86, 37], + ["jump", "add_done_116", 86, 37], + "add_ni_114", + ["is_text", 65, 61, 86, 37], + ["jump_false", 65, "add_nt_115", 86, 37], + ["is_text", 66, 1, 86, 37], + ["jump_false", 66, "add_nt_115", 86, 37], + ["concat", 64, 61, 1, 86, 37], + ["jump", "add_done_116", 86, 37], + "add_nt_115", + ["is_num", 65, 61, 86, 37], + ["jump_false", 65, "add_err_117", 86, 37], + ["is_num", 66, 1, 86, 37], + ["jump_false", 66, "add_err_117", 86, 37], + ["add_float", 64, 61, 1, 86, 37], + ["jump", "add_done_116", 86, 37], + "add_err_117", + ["disrupt", 86, 37], + "add_done_116", + ["access", 67, ".cm.mach", 86, 44], + ["is_int", 69, 64, 86, 44], + ["jump_false", 69, "add_ni_118", 86, 44], + "_nop_tc_5", + ["jump", "add_ni_118", 86, 44], + ["add_int", 68, 64, 67, 86, 44], + ["jump", "add_done_120", 86, 44], + "add_ni_118", + ["is_text", 69, 64, 86, 44], + ["jump_false", 69, "add_nt_119", 86, 44], + ["concat", 68, 64, 67, 86, 44], + ["jump", "add_done_120", 86, 44], + "add_nt_119", + ["is_num", 69, 64, 86, 44], + ["jump_false", 69, "add_err_121", 86, 44], + ["is_num", 70, 67, 86, 44], + ["jump_false", 70, "add_err_121", 86, 44], + ["add_float", 68, 64, 67, 86, 44], + ["jump", "add_done_120", 86, 44], + "add_err_121", + ["disrupt", 86, 44], + "add_done_120", + ["move", 9, 68, 86, 44], + ["get", 72, 20, 1, 87, 7], + ["is_proxy", 73, 72, 87, 7], + ["jump_false", 73, "record_path_124", 87, 7], + ["null", 74, 87, 7], + ["access", 75, "is_file", 87, 7], + ["array", 76, 0, 87, 7], + ["push", 76, 9, 87, 7], + ["frame", 77, 72, 2, 87, 7], + ["setarg", 77, 0, 74, 87, 7], + ["setarg", 77, 1, 75, 87, 7], + ["setarg", 77, 2, 76, 87, 7], + ["invoke", 77, 71, 87, 7], + ["jump", "call_done_125", 87, 7], + "record_path_124", + ["load_field", 78, 72, "is_file", 87, 7], + ["frame", 79, 78, 1, 87, 7], + ["setarg", 79, 0, 72, 87, 7], + ["setarg", 79, 1, 9, 87, 7], + ["invoke", 79, 71, 87, 7], + "call_done_125", + ["jump_false", 71, "if_else_122", 87, 7], + ["get", 81, 20, 1, 88, 24], + ["is_proxy", 82, 81, 88, 24], + ["jump_false", 82, "record_path_126", 88, 24], + ["null", 83, 88, 24], + ["access", 84, "slurp", 88, 24], + ["array", 85, 0, 88, 24], + ["push", 85, 9, 88, 24], + ["frame", 86, 81, 2, 88, 24], + ["setarg", 86, 0, 83, 88, 24], + ["setarg", 86, 1, 84, 88, 24], + ["setarg", 86, 2, 85, 88, 24], + ["invoke", 86, 80, 88, 24], + ["jump", "call_done_127", 88, 24], + "record_path_126", + ["load_field", 87, 81, "slurp", 88, 24], + ["frame", 88, 87, 1, 88, 24], + ["setarg", 88, 0, 81, 88, 24], + ["setarg", 88, 1, 9, 88, 24], + ["invoke", 88, 80, 88, 24], + "call_done_127", [ "access", - 77, + 90, { "name": "mach_load", "kind": "name", "make": "intrinsic" }, - 82, + 88, 14 ], - ["frame", 78, 77, 2, 82, 14], - ["null", 79, 82, 14], - ["setarg", 78, 0, 79, 82, 14], - ["setarg", 78, 1, 67, 82, 14], - ["setarg", 78, 2, 2, 82, 14], - ["invoke", 78, 76, 82, 14], - ["move", 3, 76, 82, 14], - ["get", 80, 67, 1, 83, 5], - ["store_dynamic", 80, 3, 9, 83, 15], - ["return", 3, 84, 12], - ["jump", "if_end_113", 84, 12], - "if_else_112", - "if_end_113", + ["frame", 91, 90, 2, 88, 14], + ["null", 92, 88, 14], + ["setarg", 91, 0, 92, 88, 14], + ["setarg", 91, 1, 80, 88, 14], + ["setarg", 91, 2, 7, 88, 14], + ["invoke", 91, 89, 88, 14], + ["move", 2, 89, 88, 14], [ "access", - 81, + 93, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 89, + 5 + ], + ["store_dynamic", 93, 2, 11, 89, 15], + ["return", 2, 90, 12], + ["jump", "if_end_123", 90, 12], + "if_else_122", + "if_end_123", + [ + "access", + 94, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 88, + 94, 20 ], - ["access", 82, "/", 88, 32], - ["is_int", 84, 81, 88, 32], - ["jump_false", 84, "add_ni_118", 88, 32], - "_nop_tc_4", - ["jump", "add_ni_118", 88, 32], - ["add_int", 83, 81, 82, 88, 32], - ["jump", "add_done_120", 88, 32], - "add_ni_118", - ["is_text", 84, 81, 88, 32], - ["jump_false", 84, "add_nt_119", 88, 32], - ["concat", 83, 81, 82, 88, 32], - ["jump", "add_done_120", 88, 32], - "add_nt_119", - ["is_num", 84, 81, 88, 32], - ["jump_false", 84, "add_err_121", 88, 32], - ["is_num", 85, 82, 88, 32], - ["jump_false", 85, "add_err_121", 88, 32], - ["add_float", 83, 81, 82, 88, 32], - ["jump", "add_done_120", 88, 32], - "add_err_121", - ["disrupt", 88, 32], - "add_done_120", - ["is_int", 87, 83, 88, 38], - ["jump_false", 87, "add_ni_122", 88, 38], - ["is_int", 88, 1, 88, 38], - ["jump_false", 88, "add_ni_122", 88, 38], - ["add_int", 86, 83, 1, 88, 38], - ["jump", "add_done_124", 88, 38], - "add_ni_122", - ["is_text", 87, 83, 88, 38], - ["jump_false", 87, "add_nt_123", 88, 38], - ["is_text", 88, 1, 88, 38], - ["jump_false", 88, "add_nt_123", 88, 38], - ["concat", 86, 83, 1, 88, 38], - ["jump", "add_done_124", 88, 38], - "add_nt_123", - ["is_num", 87, 83, 88, 38], - ["jump_false", 87, "add_err_125", 88, 38], - ["is_num", 88, 1, 88, 38], - ["jump_false", 88, "add_err_125", 88, 38], - ["add_float", 86, 83, 1, 88, 38], - ["jump", "add_done_124", 88, 38], - "add_err_125", - ["disrupt", 88, 38], - "add_done_124", - ["access", 89, ".cm.mcode", 88, 45], - ["is_int", 91, 86, 88, 45], - ["jump_false", 91, "add_ni_126", 88, 45], - "_nop_tc_5", - ["jump", "add_ni_126", 88, 45], - ["add_int", 90, 86, 89, 88, 45], - ["jump", "add_done_128", 88, 45], - "add_ni_126", - ["is_text", 91, 86, 88, 45], - ["jump_false", 91, "add_nt_127", 88, 45], - ["concat", 90, 86, 89, 88, 45], - ["jump", "add_done_128", 88, 45], - "add_nt_127", - ["is_num", 91, 86, 88, 45], - ["jump_false", 91, "add_err_129", 88, 45], - ["is_num", 92, 89, 88, 45], - ["jump_false", 92, "add_err_129", 88, 45], - ["add_float", 90, 86, 89, 88, 45], - ["jump", "add_done_128", 88, 45], - "add_err_129", - ["disrupt", 88, 45], - "add_done_128", - ["move", 10, 90, 88, 45], - ["get", 94, 20, 1, 89, 7], - ["is_proxy", 95, 94, 89, 7], - ["jump_false", 95, "record_path_132", 89, 7], - ["null", 96, 89, 7], - ["access", 97, "is_file", 89, 7], - ["array", 98, 0, 89, 7], - ["push", 98, 10, 89, 7], - ["frame", 99, 94, 2, 89, 7], - ["setarg", 99, 0, 96, 89, 7], - ["setarg", 99, 1, 97, 89, 7], - ["setarg", 99, 2, 98, 89, 7], - ["invoke", 99, 93, 89, 7], - ["jump", "call_done_133", 89, 7], - "record_path_132", - ["load_field", 100, 94, "is_file", 89, 7], - ["frame", 101, 100, 1, 89, 7], - ["setarg", 101, 0, 94, 89, 7], - ["setarg", 101, 1, 10, 89, 7], - ["invoke", 101, 93, 89, 7], - "call_done_133", - ["jump_false", 93, "if_else_130", 89, 7], - ["access", 102, "core:", 90, 30], + ["access", 95, "/", 94, 32], + ["is_int", 97, 94, 94, 32], + ["jump_false", 97, "add_ni_128", 94, 32], "_nop_tc_6", - ["jump", "add_ni_134", 90, 40], - ["is_int", 105, 1, 90, 40], - ["jump_false", 105, "add_ni_134", 90, 40], - ["add_int", 103, 102, 1, 90, 40], - ["jump", "add_done_136", 90, 40], - "add_ni_134", - ["is_text", 105, 1, 90, 40], - ["jump_false", 105, "add_nt_135", 90, 40], - ["concat", 103, 102, 1, 90, 40], - ["jump", "add_done_136", 90, 40], - "add_nt_135", - ["is_num", 104, 102, 90, 40], - ["jump_false", 104, "add_err_137", 90, 40], - ["is_num", 105, 1, 90, 40], - ["jump_false", 105, "add_err_137", 90, 40], - ["add_float", 103, 102, 1, 90, 40], - ["jump", "add_done_136", 90, 40], - "add_err_137", - ["disrupt", 90, 40], - "add_done_136", - ["get", 107, 20, 1, 90, 51], - ["is_proxy", 108, 107, 90, 51], - ["jump_false", 108, "record_path_138", 90, 51], - ["null", 109, 90, 51], - ["access", 110, "slurp", 90, 51], - ["array", 111, 0, 90, 51], - ["push", 111, 10, 90, 51], - ["frame", 112, 107, 2, 90, 51], - ["setarg", 112, 0, 109, 90, 51], - ["setarg", 112, 1, 110, 90, 51], - ["setarg", 112, 2, 111, 90, 51], - ["invoke", 112, 106, 90, 51], - ["jump", "call_done_139", 90, 51], - "record_path_138", - ["load_field", 113, 107, "slurp", 90, 51], - ["frame", 114, 113, 1, 90, 51], - ["setarg", 114, 0, 107, 90, 51], - ["setarg", 114, 1, 10, 90, 51], - ["invoke", 114, 106, 90, 51], - "call_done_139", + ["jump", "add_ni_128", 94, 32], + ["add_int", 96, 94, 95, 94, 32], + ["jump", "add_done_130", 94, 32], + "add_ni_128", + ["is_text", 97, 94, 94, 32], + ["jump_false", 97, "add_nt_129", 94, 32], + ["concat", 96, 94, 95, 94, 32], + ["jump", "add_done_130", 94, 32], + "add_nt_129", + ["is_num", 97, 94, 94, 32], + ["jump_false", 97, "add_err_131", 94, 32], + ["is_num", 98, 95, 94, 32], + ["jump_false", 98, "add_err_131", 94, 32], + ["add_float", 96, 94, 95, 94, 32], + ["jump", "add_done_130", 94, 32], + "add_err_131", + ["disrupt", 94, 32], + "add_done_130", + ["is_int", 100, 96, 94, 38], + ["jump_false", 100, "add_ni_132", 94, 38], + ["is_int", 101, 1, 94, 38], + ["jump_false", 101, "add_ni_132", 94, 38], + ["add_int", 99, 96, 1, 94, 38], + ["jump", "add_done_134", 94, 38], + "add_ni_132", + ["is_text", 100, 96, 94, 38], + ["jump_false", 100, "add_nt_133", 94, 38], + ["is_text", 101, 1, 94, 38], + ["jump_false", 101, "add_nt_133", 94, 38], + ["concat", 99, 96, 1, 94, 38], + ["jump", "add_done_134", 94, 38], + "add_nt_133", + ["is_num", 100, 96, 94, 38], + ["jump_false", 100, "add_err_135", 94, 38], + ["is_num", 101, 1, 94, 38], + ["jump_false", 101, "add_err_135", 94, 38], + ["add_float", 99, 96, 1, 94, 38], + ["jump", "add_done_134", 94, 38], + "add_err_135", + ["disrupt", 94, 38], + "add_done_134", + ["access", 102, ".cm.mcode", 94, 45], + ["is_int", 104, 99, 94, 45], + ["jump_false", 104, "add_ni_136", 94, 45], + "_nop_tc_7", + ["jump", "add_ni_136", 94, 45], + ["add_int", 103, 99, 102, 94, 45], + ["jump", "add_done_138", 94, 45], + "add_ni_136", + ["is_text", 104, 99, 94, 45], + ["jump_false", 104, "add_nt_137", 94, 45], + ["concat", 103, 99, 102, 94, 45], + ["jump", "add_done_138", 94, 45], + "add_nt_137", + ["is_num", 104, 99, 94, 45], + ["jump_false", 104, "add_err_139", 94, 45], + ["is_num", 105, 102, 94, 45], + ["jump_false", 105, "add_err_139", 94, 45], + ["add_float", 103, 99, 102, 94, 45], + ["jump", "add_done_138", 94, 45], + "add_err_139", + ["disrupt", 94, 45], + "add_done_138", + ["move", 6, 103, 94, 45], + ["get", 107, 20, 1, 95, 7], + ["is_proxy", 108, 107, 95, 7], + ["jump_false", 108, "record_path_142", 95, 7], + ["null", 109, 95, 7], + ["access", 110, "is_file", 95, 7], + ["array", 111, 0, 95, 7], + ["push", 111, 6, 95, 7], + ["frame", 112, 107, 2, 95, 7], + ["setarg", 112, 0, 109, 95, 7], + ["setarg", 112, 1, 110, 95, 7], + ["setarg", 112, 2, 111, 95, 7], + ["invoke", 112, 106, 95, 7], + ["jump", "call_done_143", 95, 7], + "record_path_142", + ["load_field", 113, 107, "is_file", 95, 7], + ["frame", 114, 113, 1, 95, 7], + ["setarg", 114, 0, 107, 95, 7], + ["setarg", 114, 1, 6, 95, 7], + ["invoke", 114, 106, 95, 7], + "call_done_143", + ["jump_false", 106, "if_else_140", 95, 7], + ["access", 115, "core:", 96, 30], + "_nop_tc_8", + ["jump", "add_ni_144", 96, 40], + ["is_int", 118, 1, 96, 40], + ["jump_false", 118, "add_ni_144", 96, 40], + ["add_int", 116, 115, 1, 96, 40], + ["jump", "add_done_146", 96, 40], + "add_ni_144", + ["is_text", 118, 1, 96, 40], + ["jump_false", 118, "add_nt_145", 96, 40], + ["concat", 116, 115, 1, 96, 40], + ["jump", "add_done_146", 96, 40], + "add_nt_145", + ["is_num", 117, 115, 96, 40], + ["jump_false", 117, "add_err_147", 96, 40], + ["is_num", 118, 1, 96, 40], + ["jump_false", 118, "add_err_147", 96, 40], + ["add_float", 116, 115, 1, 96, 40], + ["jump", "add_done_146", 96, 40], + "add_err_147", + ["disrupt", 96, 40], + "add_done_146", + ["get", 120, 20, 1, 96, 51], + ["is_proxy", 121, 120, 96, 51], + ["jump_false", 121, "record_path_148", 96, 51], + ["null", 122, 96, 51], + ["access", 123, "slurp", 96, 51], + ["array", 124, 0, 96, 51], + ["push", 124, 6, 96, 51], + ["frame", 125, 120, 2, 96, 51], + ["setarg", 125, 0, 122, 96, 51], + ["setarg", 125, 1, 123, 96, 51], + ["setarg", 125, 2, 124, 96, 51], + ["invoke", 125, 119, 96, 51], + ["jump", "call_done_149", 96, 51], + "record_path_148", + ["load_field", 126, 120, "slurp", 96, 51], + ["frame", 127, 126, 1, 96, 51], + ["setarg", 127, 0, 120, 96, 51], + ["setarg", 127, 1, 6, 96, 51], + ["invoke", 127, 119, 96, 51], + "call_done_149", [ "access", - 116, + 129, { "name": "text", "kind": "name", "make": "intrinsic" }, - 90, + 96, 46 ], - ["frame", 117, 116, 1, 90, 46], - ["null", 118, 90, 46], - ["setarg", 117, 0, 118, 90, 46], - ["setarg", 117, 1, 106, 90, 46], - ["invoke", 117, 115, 90, 46], + ["frame", 130, 129, 1, 96, 46], + ["null", 131, 96, 46], + ["setarg", 130, 0, 131, 96, 46], + ["setarg", 130, 1, 119, 96, 46], + ["invoke", 130, 128, 96, 46], [ "access", - 120, + 133, { "name": "mach_eval_mcode", "kind": "name", "make": "intrinsic" }, - 90, + 96, 14 ], - ["frame", 121, 120, 3, 90, 14], - ["null", 122, 90, 14], - ["setarg", 121, 0, 122, 90, 14], - ["setarg", 121, 1, 103, 90, 14], - ["setarg", 121, 2, 115, 90, 14], - ["setarg", 121, 3, 2, 90, 14], - ["invoke", 121, 119, 90, 14], - ["move", 3, 119, 90, 14], - ["get", 123, 67, 1, 91, 5], - ["store_dynamic", 123, 3, 9, 91, 15], - ["return", 3, 92, 12], - ["jump", "if_end_131", 92, 12], - "if_else_130", - "if_end_131", + ["frame", 134, 133, 3, 96, 14], + ["null", 135, 96, 14], + ["setarg", 134, 0, 135, 96, 14], + ["setarg", 134, 1, 116, 96, 14], + ["setarg", 134, 2, 128, 96, 14], + ["setarg", 134, 3, 7, 96, 14], + ["invoke", 134, 132, 96, 14], + ["move", 2, 132, 96, 14], [ "access", - 124, + 136, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 97, + 5 + ], + ["store_dynamic", 136, 2, 11, 97, 15], + ["return", 2, 98, 12], + ["jump", "if_end_141", 98, 12], + "if_else_140", + "if_end_141", + [ + "access", + 137, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 96, + 102, 19 ], - ["access", 125, "/", 96, 31], - ["is_int", 127, 124, 96, 31], - ["jump_false", 127, "add_ni_140", 96, 31], - "_nop_tc_7", - ["jump", "add_ni_140", 96, 31], - ["add_int", 126, 124, 125, 96, 31], - ["jump", "add_done_142", 96, 31], - "add_ni_140", - ["is_text", 127, 124, 96, 31], - ["jump_false", 127, "add_nt_141", 96, 31], - ["concat", 126, 124, 125, 96, 31], - ["jump", "add_done_142", 96, 31], - "add_nt_141", - ["is_num", 127, 124, 96, 31], - ["jump_false", 127, "add_err_143", 96, 31], - ["is_num", 128, 125, 96, 31], - ["jump_false", 128, "add_err_143", 96, 31], - ["add_float", 126, 124, 125, 96, 31], - ["jump", "add_done_142", 96, 31], - "add_err_143", - ["disrupt", 96, 31], - "add_done_142", - ["is_int", 130, 126, 96, 37], - ["jump_false", 130, "add_ni_144", 96, 37], - ["is_int", 131, 1, 96, 37], - ["jump_false", 131, "add_ni_144", 96, 37], - ["add_int", 129, 126, 1, 96, 37], - ["jump", "add_done_146", 96, 37], - "add_ni_144", - ["is_text", 130, 126, 96, 37], - ["jump_false", 130, "add_nt_145", 96, 37], - ["is_text", 131, 1, 96, 37], - ["jump_false", 131, "add_nt_145", 96, 37], - ["concat", 129, 126, 1, 96, 37], - ["jump", "add_done_146", 96, 37], - "add_nt_145", - ["is_num", 130, 126, 96, 37], - ["jump_false", 130, "add_err_147", 96, 37], - ["is_num", 131, 1, 96, 37], - ["jump_false", 131, "add_err_147", 96, 37], - ["add_float", 129, 126, 1, 96, 37], - ["jump", "add_done_146", 96, 37], - "add_err_147", - ["disrupt", 96, 37], - "add_done_146", - ["get", 132, 44, 1, 96, 44], - ["is_int", 134, 129, 96, 44], - ["jump_false", 134, "add_ni_148", 96, 44], - ["is_int", 135, 132, 96, 44], - ["jump_false", 135, "add_ni_148", 96, 44], - ["add_int", 133, 129, 132, 96, 44], - ["jump", "add_done_150", 96, 44], - "add_ni_148", - ["is_text", 134, 129, 96, 44], - ["jump_false", 134, "add_nt_149", 96, 44], - ["is_text", 135, 132, 96, 44], - ["jump_false", 135, "add_nt_149", 96, 44], - ["concat", 133, 129, 132, 96, 44], - ["jump", "add_done_150", 96, 44], - "add_nt_149", - ["is_num", 134, 129, 96, 44], - ["jump_false", 134, "add_err_151", 96, 44], - ["is_num", 135, 132, 96, 44], - ["jump_false", 135, "add_err_151", 96, 44], - ["add_float", 133, 129, 132, 96, 44], - ["jump", "add_done_150", 96, 44], - "add_err_151", - ["disrupt", 96, 44], - "add_done_150", - ["move", 8, 133, 96, 44], - ["get", 137, 20, 1, 97, 7], - ["is_proxy", 138, 137, 97, 7], - ["jump_false", 138, "record_path_154", 97, 7], - ["null", 139, 97, 7], - ["access", 140, "is_file", 97, 7], - ["array", 141, 0, 97, 7], - ["push", 141, 8, 97, 7], - ["frame", 142, 137, 2, 97, 7], - ["setarg", 142, 0, 139, 97, 7], - ["setarg", 142, 1, 140, 97, 7], - ["setarg", 142, 2, 141, 97, 7], - ["invoke", 142, 136, 97, 7], - ["jump", "call_done_155", 97, 7], - "record_path_154", - ["load_field", 143, 137, "is_file", 97, 7], - ["frame", 144, 143, 1, 97, 7], - ["setarg", 144, 0, 137, 97, 7], - ["setarg", 144, 1, 8, 97, 7], - ["invoke", 144, 136, 97, 7], - "call_done_155", - ["jump_false", 136, "if_else_152", 97, 7], - ["get", 146, 20, 1, 98, 19], - ["is_proxy", 147, 146, 98, 19], - ["jump_false", 147, "record_path_156", 98, 19], - ["null", 148, 98, 19], - ["access", 149, "slurp", 98, 19], - ["array", 150, 0, 98, 19], - ["push", 150, 8, 98, 19], - ["frame", 151, 146, 2, 98, 19], - ["setarg", 151, 0, 148, 98, 19], - ["setarg", 151, 1, 149, 98, 19], - ["setarg", 151, 2, 150, 98, 19], - ["invoke", 151, 145, 98, 19], - ["jump", "call_done_157", 98, 19], - "record_path_156", - ["load_field", 152, 146, "slurp", 98, 19], - ["frame", 153, 152, 1, 98, 19], - ["setarg", 153, 0, 146, 98, 19], - ["setarg", 153, 1, 8, 98, 19], - ["invoke", 153, 145, 98, 19], - "call_done_157", + ["access", 138, "/", 102, 31], + ["is_int", 140, 137, 102, 31], + ["jump_false", 140, "add_ni_150", 102, 31], + "_nop_tc_9", + ["jump", "add_ni_150", 102, 31], + ["add_int", 139, 137, 138, 102, 31], + ["jump", "add_done_152", 102, 31], + "add_ni_150", + ["is_text", 140, 137, 102, 31], + ["jump_false", 140, "add_nt_151", 102, 31], + ["concat", 139, 137, 138, 102, 31], + ["jump", "add_done_152", 102, 31], + "add_nt_151", + ["is_num", 140, 137, 102, 31], + ["jump_false", 140, "add_err_153", 102, 31], + ["is_num", 141, 138, 102, 31], + ["jump_false", 141, "add_err_153", 102, 31], + ["add_float", 139, 137, 138, 102, 31], + ["jump", "add_done_152", 102, 31], + "add_err_153", + ["disrupt", 102, 31], + "add_done_152", + ["is_int", 143, 139, 102, 37], + ["jump_false", 143, "add_ni_154", 102, 37], + ["is_int", 144, 1, 102, 37], + ["jump_false", 144, "add_ni_154", 102, 37], + ["add_int", 142, 139, 1, 102, 37], + ["jump", "add_done_156", 102, 37], + "add_ni_154", + ["is_text", 143, 139, 102, 37], + ["jump_false", 143, "add_nt_155", 102, 37], + ["is_text", 144, 1, 102, 37], + ["jump_false", 144, "add_nt_155", 102, 37], + ["concat", 142, 139, 1, 102, 37], + ["jump", "add_done_156", 102, 37], + "add_nt_155", + ["is_num", 143, 139, 102, 37], + ["jump_false", 143, "add_err_157", 102, 37], + ["is_num", 144, 1, 102, 37], + ["jump_false", 144, "add_err_157", 102, 37], + ["add_float", 142, 139, 1, 102, 37], + ["jump", "add_done_156", 102, 37], + "add_err_157", + ["disrupt", 102, 37], + "add_done_156", + ["get", 145, 44, 1, 102, 44], + ["is_int", 147, 142, 102, 44], + ["jump_false", 147, "add_ni_158", 102, 44], + ["is_int", 148, 145, 102, 44], + ["jump_false", 148, "add_ni_158", 102, 44], + ["add_int", 146, 142, 145, 102, 44], + ["jump", "add_done_160", 102, 44], + "add_ni_158", + ["is_text", 147, 142, 102, 44], + ["jump_false", 147, "add_nt_159", 102, 44], + ["is_text", 148, 145, 102, 44], + ["jump_false", 148, "add_nt_159", 102, 44], + ["concat", 146, 142, 145, 102, 44], + ["jump", "add_done_160", 102, 44], + "add_nt_159", + ["is_num", 147, 142, 102, 44], + ["jump_false", 147, "add_err_161", 102, 44], + ["is_num", 148, 145, 102, 44], + ["jump_false", 148, "add_err_161", 102, 44], + ["add_float", 146, 142, 145, 102, 44], + ["jump", "add_done_160", 102, 44], + "add_err_161", + ["disrupt", 102, 44], + "add_done_160", + ["move", 10, 146, 102, 44], + ["get", 150, 20, 1, 103, 7], + ["is_proxy", 151, 150, 103, 7], + ["jump_false", 151, "record_path_164", 103, 7], + ["null", 152, 103, 7], + ["access", 153, "is_file", 103, 7], + ["array", 154, 0, 103, 7], + ["push", 154, 10, 103, 7], + ["frame", 155, 150, 2, 103, 7], + ["setarg", 155, 0, 152, 103, 7], + ["setarg", 155, 1, 153, 103, 7], + ["setarg", 155, 2, 154, 103, 7], + ["invoke", 155, 149, 103, 7], + ["jump", "call_done_165", 103, 7], + "record_path_164", + ["load_field", 156, 150, "is_file", 103, 7], + ["frame", 157, 156, 1, 103, 7], + ["setarg", 157, 0, 150, 103, 7], + ["setarg", 157, 1, 10, 103, 7], + ["invoke", 157, 149, 103, 7], + "call_done_165", + ["jump_false", 149, "if_else_162", 103, 7], + ["get", 159, 20, 1, 104, 19], + ["is_proxy", 160, 159, 104, 19], + ["jump_false", 160, "record_path_166", 104, 19], + ["null", 161, 104, 19], + ["access", 162, "slurp", 104, 19], + ["array", 163, 0, 104, 19], + ["push", 163, 10, 104, 19], + ["frame", 164, 159, 2, 104, 19], + ["setarg", 164, 0, 161, 104, 19], + ["setarg", 164, 1, 162, 104, 19], + ["setarg", 164, 2, 163, 104, 19], + ["invoke", 164, 158, 104, 19], + ["jump", "call_done_167", 104, 19], + "record_path_166", + ["load_field", 165, 159, "slurp", 104, 19], + ["frame", 166, 165, 1, 104, 19], + ["setarg", 166, 0, 159, 104, 19], + ["setarg", 166, 1, 10, 104, 19], + ["invoke", 166, 158, 104, 19], + "call_done_167", [ "access", - 155, + 168, { "name": "text", "kind": "name", "make": "intrinsic" }, - 98, + 104, 14 ], - ["frame", 156, 155, 1, 98, 14], - ["null", 157, 98, 14], - ["setarg", 156, 0, 157, 98, 14], - ["setarg", 156, 1, 145, 98, 14], - ["invoke", 156, 154, 98, 14], - ["move", 4, 154, 98, 14], + ["frame", 169, 168, 1, 104, 14], + ["null", 170, 104, 14], + ["setarg", 169, 0, 170, 104, 14], + ["setarg", 169, 1, 158, 104, 14], + ["invoke", 169, 167, 104, 14], + ["move", 3, 167, 104, 14], [ "access", - 159, + 172, { "name": "analyze", "kind": "name", "make": "intrinsic" }, - 99, + 105, 11 ], - ["frame", 160, 159, 2, 99, 11], - ["null", 161, 99, 11], - ["setarg", 160, 0, 161, 99, 11], - ["setarg", 160, 1, 4, 99, 11], - ["setarg", 160, 2, 8, 99, 11], - ["invoke", 160, 158, 99, 11], - ["move", 6, 158, 99, 11], - ["access", 162, "core:", 100, 25], - "_nop_tc_8", - ["jump", "add_ni_158", 100, 35], - ["is_int", 165, 1, 100, 35], - ["jump_false", 165, "add_ni_158", 100, 35], - ["add_int", 163, 162, 1, 100, 35], - ["jump", "add_done_160", 100, 35], - "add_ni_158", - ["is_text", 165, 1, 100, 35], - ["jump_false", 165, "add_nt_159", 100, 35], - ["concat", 163, 162, 1, 100, 35], - ["jump", "add_done_160", 100, 35], - "add_nt_159", - ["is_num", 164, 162, 100, 35], - ["jump_false", 164, "add_err_161", 100, 35], - ["is_num", 165, 1, 100, 35], - ["jump_false", 165, "add_err_161", 100, 35], - ["add_float", 163, 162, 1, 100, 35], - ["jump", "add_done_160", 100, 35], - "add_err_161", - ["disrupt", 100, 35], - "add_done_160", + ["frame", 173, 172, 2, 105, 11], + ["null", 174, 105, 11], + ["setarg", 173, 0, 174, 105, 11], + ["setarg", 173, 1, 3, 105, 11], + ["setarg", 173, 2, 10, 105, 11], + ["invoke", 173, 171, 105, 11], + ["move", 8, 171, 105, 11], + ["access", 175, "core:", 106, 25], + "_nop_tc_10", + ["jump", "add_ni_168", 106, 35], + ["is_int", 178, 1, 106, 35], + ["jump_false", 178, "add_ni_168", 106, 35], + ["add_int", 176, 175, 1, 106, 35], + ["jump", "add_done_170", 106, 35], + "add_ni_168", + ["is_text", 178, 1, 106, 35], + ["jump_false", 178, "add_nt_169", 106, 35], + ["concat", 176, 175, 1, 106, 35], + ["jump", "add_done_170", 106, 35], + "add_nt_169", + ["is_num", 177, 175, 106, 35], + ["jump_false", 177, "add_err_171", 106, 35], + ["is_num", 178, 1, 106, 35], + ["jump_false", 178, "add_err_171", 106, 35], + ["add_float", 176, 175, 1, 106, 35], + ["jump", "add_done_170", 106, 35], + "add_err_171", + ["disrupt", 106, 35], + "add_done_170", [ "access", - 167, + 180, { "name": "run_ast_fn", "kind": "name", "make": "intrinsic" }, - 100, + 106, 14 ], - ["frame", 168, 167, 3, 100, 14], - ["null", 169, 100, 14], - ["setarg", 168, 0, 169, 100, 14], - ["setarg", 168, 1, 163, 100, 14], - ["setarg", 168, 2, 6, 100, 14], - ["setarg", 168, 3, 2, 100, 14], - ["invoke", 168, 166, 100, 14], - ["move", 3, 166, 100, 14], - ["get", 170, 67, 1, 101, 5], - ["store_dynamic", 170, 3, 9, 101, 15], - ["return", 3, 102, 12], - ["jump", "if_end_153", 102, 12], - "if_else_152", - "if_end_153", - ["get", 171, 67, 1, 106, 3], - ["store_dynamic", 171, 5, 9, 106, 13], - ["return", 5, 107, 10], - ["null", 172, 107, 10], - ["return", 172, 107, 10] + ["frame", 181, 180, 3, 106, 14], + ["null", 182, 106, 14], + ["setarg", 181, 0, 182, 106, 14], + ["setarg", 181, 1, 176, 106, 14], + ["setarg", 181, 2, 8, 106, 14], + ["setarg", 181, 3, 7, 106, 14], + ["invoke", 181, 179, 106, 14], + ["move", 2, 179, 106, 14], + [ + "access", + 183, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 107, + 5 + ], + ["store_dynamic", 183, 2, 11, 107, 15], + ["return", 2, 108, 12], + ["jump", "if_end_163", 108, 12], + "if_else_162", + "if_end_163", + [ + "access", + 184, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 112, + 3 + ], + ["store_dynamic", 184, 4, 11, 112, 13], + ["return", 4, 113, 10], + ["null", 185, 113, 10], + ["return", 185, 113, 10] ], "name": "use_core", "filename": "internal/engine.cm", @@ -1416,16 +1550,16 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["is_record", 2, 1, 124, 20], - ["move", 3, 2, 124, 20], - ["jump_false", 3, "and_end_162", 124, 20], - ["get", 4, 27, 1, 124, 36], - ["load_dynamic", 5, 1, 4, 124, 36], - ["move", 3, 5, 124, 36], - "and_end_162", - ["return", 3, 124, 36], - ["null", 6, 124, 36], - ["return", 6, 124, 36] + ["is_record", 2, 1, 130, 20], + ["move", 3, 2, 130, 20], + ["jump_false", 3, "and_end_172", 130, 20], + ["get", 4, 27, 1, 130, 36], + ["load_dynamic", 5, 1, 4, 130, 36], + ["move", 3, 5, 130, 36], + "and_end_172", + ["return", 3, 130, 36], + ["null", 6, 130, 36], + ["return", 6, 130, 36] ], "name": "is_actor", "filename": "internal/engine.cm", @@ -1437,13 +1571,13 @@ "nr_close_slots": 0, "instructions": [ ["record", 2, 0], - ["access", 3, "nofile", 132, 17], - ["store_field", 2, 3, "file", 132, 17], - ["access", 4, 0, 132, 33], - ["store_field", 2, 4, "line", 132, 33], - ["return", 2, 132, 33], - ["null", 5, 132, 33], - ["return", 5, 132, 33] + ["access", 3, "nofile", 138, 17], + ["store_field", 2, 3, "file", 138, 17], + ["access", 4, 0, 138, 33], + ["store_field", 2, 4, "line", 138, 33], + ["return", 2, 138, 33], + ["null", 5, 138, 33], + ["return", 5, 138, 33] ], "name": "caller_data", "filename": "internal/engine.cm", @@ -1512,68 +1646,68 @@ "nr_slots": 94, "nr_close_slots": 0, "instructions": [ - ["access", 5, 1, 141, 28], - ["get", 7, 53, 1, 141, 16], - ["frame", 8, 7, 1, 141, 16], - ["null", 9, 141, 16], - ["setarg", 8, 0, 9, 141, 16], - ["setarg", 8, 1, 5, 141, 16], - ["invoke", 8, 6, 141, 16], - ["move", 4, 6, 141, 16], - ["access", 10, 0, 142, 18], - ["load_index", 11, 2, 10, 142, 18], - ["move", 3, 11, 142, 18], - ["access", 12, "console", 144, 15], - ["is_identical", 13, 1, 12, 144, 15], - ["jump_true", 13, "eq_done_165", 144, 15], - ["is_int", 14, 1, 144, 15], - ["jump_false", 14, "eq_ni_166", 144, 15], + ["access", 5, 1, 147, 28], + ["get", 7, 53, 1, 147, 16], + ["frame", 8, 7, 1, 147, 16], + ["null", 9, 147, 16], + ["setarg", 8, 0, 9, 147, 16], + ["setarg", 8, 1, 5, 147, 16], + ["invoke", 8, 6, 147, 16], + ["move", 4, 6, 147, 16], + ["access", 10, 0, 148, 18], + ["load_index", 11, 2, 10, 148, 18], + ["move", 3, 11, 148, 18], + ["access", 12, "console", 150, 15], + ["is_identical", 13, 1, 12, 150, 15], + ["jump_true", 13, "eq_done_175", 150, 15], + ["is_int", 14, 1, 150, 15], + ["jump_false", 14, "eq_ni_176", 150, 15], "_nop_tc_1", - ["jump", "eq_ni_166", 144, 15], - ["eq_int", 13, 1, 12, 144, 15], - ["jump", "eq_done_165", 144, 15], - "eq_ni_166", - ["is_num", 14, 1, 144, 15], - ["jump_false", 14, "eq_nn_167", 144, 15], - ["is_num", 15, 12, 144, 15], - ["jump_false", 15, "eq_nn_167", 144, 15], - ["eq_float", 13, 1, 12, 144, 15], - ["jump", "eq_done_165", 144, 15], - "eq_nn_167", - ["is_text", 14, 1, 144, 15], - ["jump_false", 14, "eq_nt_168", 144, 15], - ["is_text", 15, 12, 144, 15], - ["jump_false", 15, "eq_nt_168", 144, 15], - ["eq_text", 13, 1, 12, 144, 15], - ["jump", "eq_done_165", 144, 15], - "eq_nt_168", - ["is_null", 14, 1, 144, 15], - ["jump_false", 14, "eq_nnl_169", 144, 15], - ["is_null", 15, 12, 144, 15], - ["jump_false", 15, "eq_nnl_169", 144, 15], - ["true", 13, 144, 15], - ["jump", "eq_done_165", 144, 15], - "eq_nnl_169", - ["is_bool", 14, 1, 144, 15], - ["jump_false", 14, "eq_nb_170", 144, 15], - ["is_bool", 15, 12, 144, 15], - ["jump_false", 15, "eq_nb_170", 144, 15], - ["eq_bool", 13, 1, 12, 144, 15], - ["jump", "eq_done_165", 144, 15], - "eq_nb_170", - ["false", 13, 144, 15], - "eq_done_165", - ["jump_false", 13, "if_else_163", 144, 15], - ["load_field", 16, 4, "line", 145, 26], - ["load_field", 17, 4, "file", 145, 39], - ["get", 19, 13, 1, 145, 14], - ["frame", 20, 19, 3, 145, 14], - ["null", 21, 145, 14], - ["setarg", 20, 0, 21, 145, 14], - ["setarg", 20, 1, 16, 145, 14], - ["setarg", 20, 2, 17, 145, 14], - ["setarg", 20, 3, 3, 145, 14], - ["invoke", 20, 18, 145, 14], + ["jump", "eq_ni_176", 150, 15], + ["eq_int", 13, 1, 12, 150, 15], + ["jump", "eq_done_175", 150, 15], + "eq_ni_176", + ["is_num", 14, 1, 150, 15], + ["jump_false", 14, "eq_nn_177", 150, 15], + ["is_num", 15, 12, 150, 15], + ["jump_false", 15, "eq_nn_177", 150, 15], + ["eq_float", 13, 1, 12, 150, 15], + ["jump", "eq_done_175", 150, 15], + "eq_nn_177", + ["is_text", 14, 1, 150, 15], + ["jump_false", 14, "eq_nt_178", 150, 15], + ["is_text", 15, 12, 150, 15], + ["jump_false", 15, "eq_nt_178", 150, 15], + ["eq_text", 13, 1, 12, 150, 15], + ["jump", "eq_done_175", 150, 15], + "eq_nt_178", + ["is_null", 14, 1, 150, 15], + ["jump_false", 14, "eq_nnl_179", 150, 15], + ["is_null", 15, 12, 150, 15], + ["jump_false", 15, "eq_nnl_179", 150, 15], + ["true", 13, 150, 15], + ["jump", "eq_done_175", 150, 15], + "eq_nnl_179", + ["is_bool", 14, 1, 150, 15], + ["jump_false", 14, "eq_nb_180", 150, 15], + ["is_bool", 15, 12, 150, 15], + ["jump_false", 15, "eq_nb_180", 150, 15], + ["eq_bool", 13, 1, 12, 150, 15], + ["jump", "eq_done_175", 150, 15], + "eq_nb_180", + ["false", 13, 150, 15], + "eq_done_175", + ["jump_false", 13, "if_else_173", 150, 15], + ["load_field", 16, 4, "line", 151, 26], + ["load_field", 17, 4, "file", 151, 39], + ["get", 19, 13, 1, 151, 14], + ["frame", 20, 19, 3, 151, 14], + ["null", 21, 151, 14], + ["setarg", 20, 0, 21, 151, 14], + ["setarg", 20, 1, 16, 151, 14], + ["setarg", 20, 2, 17, 151, 14], + ["setarg", 20, 3, 3, 151, 14], + ["invoke", 20, 18, 151, 14], [ "access", 23, @@ -1582,127 +1716,127 @@ "kind": "name", "make": "intrinsic" }, - 145, + 151, 5 ], - ["is_proxy", 24, 23, 145, 5], - ["jump_false", 24, "record_path_171", 145, 5], - ["null", 25, 145, 5], - ["access", 26, "print", 145, 5], - ["array", 27, 0, 145, 5], - ["push", 27, 18, 145, 5], - ["frame", 28, 23, 2, 145, 5], - ["setarg", 28, 0, 25, 145, 5], - ["setarg", 28, 1, 26, 145, 5], - ["setarg", 28, 2, 27, 145, 5], - ["invoke", 28, 22, 145, 5], - ["jump", "call_done_172", 145, 5], - "record_path_171", - ["load_field", 29, 23, "print", 145, 5], - ["frame", 30, 29, 1, 145, 5], - ["setarg", 30, 0, 23, 145, 5], - ["setarg", 30, 1, 18, 145, 5], - ["invoke", 30, 22, 145, 5], - "call_done_172", - ["jump", "if_end_164", 145, 5], - "if_else_163", - ["access", 31, "error", 146, 22], - ["is_identical", 32, 1, 31, 146, 22], - ["jump_true", 32, "eq_done_175", 146, 22], - ["is_int", 33, 1, 146, 22], - ["jump_false", 33, "eq_ni_176", 146, 22], + ["is_proxy", 24, 23, 151, 5], + ["jump_false", 24, "record_path_181", 151, 5], + ["null", 25, 151, 5], + ["access", 26, "print", 151, 5], + ["array", 27, 0, 151, 5], + ["push", 27, 18, 151, 5], + ["frame", 28, 23, 2, 151, 5], + ["setarg", 28, 0, 25, 151, 5], + ["setarg", 28, 1, 26, 151, 5], + ["setarg", 28, 2, 27, 151, 5], + ["invoke", 28, 22, 151, 5], + ["jump", "call_done_182", 151, 5], + "record_path_181", + ["load_field", 29, 23, "print", 151, 5], + ["frame", 30, 29, 1, 151, 5], + ["setarg", 30, 0, 23, 151, 5], + ["setarg", 30, 1, 18, 151, 5], + ["invoke", 30, 22, 151, 5], + "call_done_182", + ["jump", "if_end_174", 151, 5], + "if_else_173", + ["access", 31, "error", 152, 22], + ["is_identical", 32, 1, 31, 152, 22], + ["jump_true", 32, "eq_done_185", 152, 22], + ["is_int", 33, 1, 152, 22], + ["jump_false", 33, "eq_ni_186", 152, 22], "_nop_tc_2", - ["jump", "eq_ni_176", 146, 22], - ["eq_int", 32, 1, 31, 146, 22], - ["jump", "eq_done_175", 146, 22], - "eq_ni_176", - ["is_num", 33, 1, 146, 22], - ["jump_false", 33, "eq_nn_177", 146, 22], - ["is_num", 34, 31, 146, 22], - ["jump_false", 34, "eq_nn_177", 146, 22], - ["eq_float", 32, 1, 31, 146, 22], - ["jump", "eq_done_175", 146, 22], - "eq_nn_177", - ["is_text", 33, 1, 146, 22], - ["jump_false", 33, "eq_nt_178", 146, 22], - ["is_text", 34, 31, 146, 22], - ["jump_false", 34, "eq_nt_178", 146, 22], - ["eq_text", 32, 1, 31, 146, 22], - ["jump", "eq_done_175", 146, 22], - "eq_nt_178", - ["is_null", 33, 1, 146, 22], - ["jump_false", 33, "eq_nnl_179", 146, 22], - ["is_null", 34, 31, 146, 22], - ["jump_false", 34, "eq_nnl_179", 146, 22], - ["true", 32, 146, 22], - ["jump", "eq_done_175", 146, 22], - "eq_nnl_179", - ["is_bool", 33, 1, 146, 22], - ["jump_false", 33, "eq_nb_180", 146, 22], - ["is_bool", 34, 31, 146, 22], - ["jump_false", 34, "eq_nb_180", 146, 22], - ["eq_bool", 32, 1, 31, 146, 22], - ["jump", "eq_done_175", 146, 22], - "eq_nb_180", - ["false", 32, 146, 22], - "eq_done_175", - ["jump_false", 32, "if_else_173", 146, 22], - ["null", 35, 147, 16], - ["is_identical", 36, 3, 35, 147, 16], - ["jump_true", 36, "eq_done_183", 147, 16], - ["is_int", 37, 3, 147, 16], - ["jump_false", 37, "eq_ni_184", 147, 16], + ["jump", "eq_ni_186", 152, 22], + ["eq_int", 32, 1, 31, 152, 22], + ["jump", "eq_done_185", 152, 22], + "eq_ni_186", + ["is_num", 33, 1, 152, 22], + ["jump_false", 33, "eq_nn_187", 152, 22], + ["is_num", 34, 31, 152, 22], + ["jump_false", 34, "eq_nn_187", 152, 22], + ["eq_float", 32, 1, 31, 152, 22], + ["jump", "eq_done_185", 152, 22], + "eq_nn_187", + ["is_text", 33, 1, 152, 22], + ["jump_false", 33, "eq_nt_188", 152, 22], + ["is_text", 34, 31, 152, 22], + ["jump_false", 34, "eq_nt_188", 152, 22], + ["eq_text", 32, 1, 31, 152, 22], + ["jump", "eq_done_185", 152, 22], + "eq_nt_188", + ["is_null", 33, 1, 152, 22], + ["jump_false", 33, "eq_nnl_189", 152, 22], + ["is_null", 34, 31, 152, 22], + ["jump_false", 34, "eq_nnl_189", 152, 22], + ["true", 32, 152, 22], + ["jump", "eq_done_185", 152, 22], + "eq_nnl_189", + ["is_bool", 33, 1, 152, 22], + ["jump_false", 33, "eq_nb_190", 152, 22], + ["is_bool", 34, 31, 152, 22], + ["jump_false", 34, "eq_nb_190", 152, 22], + ["eq_bool", 32, 1, 31, 152, 22], + ["jump", "eq_done_185", 152, 22], + "eq_nb_190", + ["false", 32, 152, 22], + "eq_done_185", + ["jump_false", 32, "if_else_183", 152, 22], + ["null", 35, 153, 16], + ["is_identical", 36, 3, 35, 153, 16], + ["jump_true", 36, "eq_done_193", 153, 16], + ["is_int", 37, 3, 153, 16], + ["jump_false", 37, "eq_ni_194", 153, 16], "_nop_tc_3", - ["jump", "eq_ni_184", 147, 16], - ["eq_int", 36, 3, 35, 147, 16], - ["jump", "eq_done_183", 147, 16], - "eq_ni_184", - ["is_num", 37, 3, 147, 16], - ["jump_false", 37, "eq_nn_185", 147, 16], - ["is_num", 38, 35, 147, 16], - ["jump_false", 38, "eq_nn_185", 147, 16], - ["eq_float", 36, 3, 35, 147, 16], - ["jump", "eq_done_183", 147, 16], - "eq_nn_185", - ["is_text", 37, 3, 147, 16], - ["jump_false", 37, "eq_nt_186", 147, 16], - ["is_text", 38, 35, 147, 16], - ["jump_false", 38, "eq_nt_186", 147, 16], - ["eq_text", 36, 3, 35, 147, 16], - ["jump", "eq_done_183", 147, 16], - "eq_nt_186", - ["is_null", 37, 3, 147, 16], - ["jump_false", 37, "eq_nnl_187", 147, 16], - ["is_null", 38, 35, 147, 16], - ["jump_false", 38, "eq_nnl_187", 147, 16], - ["true", 36, 147, 16], - ["jump", "eq_done_183", 147, 16], - "eq_nnl_187", - ["is_bool", 37, 3, 147, 16], - ["jump_false", 37, "eq_nb_188", 147, 16], - ["is_bool", 38, 35, 147, 16], - ["jump_false", 38, "eq_nb_188", 147, 16], - ["eq_bool", 36, 3, 35, 147, 16], - ["jump", "eq_done_183", 147, 16], - "eq_nb_188", - ["false", 36, 147, 16], - "eq_done_183", - ["jump_false", 36, "if_else_181", 147, 16], - ["access", 39, "error", 147, 28], - ["move", 3, 39, 147, 28], - ["jump", "if_end_182", 147, 28], - "if_else_181", - "if_end_182", - ["load_field", 40, 4, "line", 148, 26], - ["load_field", 41, 4, "file", 148, 39], - ["get", 43, 13, 1, 148, 14], - ["frame", 44, 43, 3, 148, 14], - ["null", 45, 148, 14], - ["setarg", 44, 0, 45, 148, 14], - ["setarg", 44, 1, 40, 148, 14], - ["setarg", 44, 2, 41, 148, 14], - ["setarg", 44, 3, 3, 148, 14], - ["invoke", 44, 42, 148, 14], + ["jump", "eq_ni_194", 153, 16], + ["eq_int", 36, 3, 35, 153, 16], + ["jump", "eq_done_193", 153, 16], + "eq_ni_194", + ["is_num", 37, 3, 153, 16], + ["jump_false", 37, "eq_nn_195", 153, 16], + ["is_num", 38, 35, 153, 16], + ["jump_false", 38, "eq_nn_195", 153, 16], + ["eq_float", 36, 3, 35, 153, 16], + ["jump", "eq_done_193", 153, 16], + "eq_nn_195", + ["is_text", 37, 3, 153, 16], + ["jump_false", 37, "eq_nt_196", 153, 16], + ["is_text", 38, 35, 153, 16], + ["jump_false", 38, "eq_nt_196", 153, 16], + ["eq_text", 36, 3, 35, 153, 16], + ["jump", "eq_done_193", 153, 16], + "eq_nt_196", + ["is_null", 37, 3, 153, 16], + ["jump_false", 37, "eq_nnl_197", 153, 16], + ["is_null", 38, 35, 153, 16], + ["jump_false", 38, "eq_nnl_197", 153, 16], + ["true", 36, 153, 16], + ["jump", "eq_done_193", 153, 16], + "eq_nnl_197", + ["is_bool", 37, 3, 153, 16], + ["jump_false", 37, "eq_nb_198", 153, 16], + ["is_bool", 38, 35, 153, 16], + ["jump_false", 38, "eq_nb_198", 153, 16], + ["eq_bool", 36, 3, 35, 153, 16], + ["jump", "eq_done_193", 153, 16], + "eq_nb_198", + ["false", 36, 153, 16], + "eq_done_193", + ["jump_false", 36, "if_else_191", 153, 16], + ["access", 39, "error", 153, 28], + ["move", 3, 39, 153, 28], + ["jump", "if_end_192", 153, 28], + "if_else_191", + "if_end_192", + ["load_field", 40, 4, "line", 154, 26], + ["load_field", 41, 4, "file", 154, 39], + ["get", 43, 13, 1, 154, 14], + ["frame", 44, 43, 3, 154, 14], + ["null", 45, 154, 14], + ["setarg", 44, 0, 45, 154, 14], + ["setarg", 44, 1, 40, 154, 14], + ["setarg", 44, 2, 41, 154, 14], + ["setarg", 44, 3, 3, 154, 14], + ["invoke", 44, 42, 154, 14], [ "access", 47, @@ -1711,104 +1845,104 @@ "kind": "name", "make": "intrinsic" }, - 148, + 154, 5 ], - ["is_proxy", 48, 47, 148, 5], - ["jump_false", 48, "record_path_189", 148, 5], - ["null", 49, 148, 5], - ["access", 50, "print", 148, 5], - ["array", 51, 0, 148, 5], - ["push", 51, 42, 148, 5], - ["frame", 52, 47, 2, 148, 5], - ["setarg", 52, 0, 49, 148, 5], - ["setarg", 52, 1, 50, 148, 5], - ["setarg", 52, 2, 51, 148, 5], - ["invoke", 52, 46, 148, 5], - ["jump", "call_done_190", 148, 5], - "record_path_189", - ["load_field", 53, 47, "print", 148, 5], - ["frame", 54, 53, 1, 148, 5], - ["setarg", 54, 0, 47, 148, 5], - ["setarg", 54, 1, 42, 148, 5], - ["invoke", 54, 46, 148, 5], - "call_done_190", - ["jump", "if_end_174", 148, 5], - "if_else_173", - ["access", 55, "system", 149, 22], - ["is_identical", 56, 1, 55, 149, 22], - ["jump_true", 56, "eq_done_193", 149, 22], - ["is_int", 57, 1, 149, 22], - ["jump_false", 57, "eq_ni_194", 149, 22], + ["is_proxy", 48, 47, 154, 5], + ["jump_false", 48, "record_path_199", 154, 5], + ["null", 49, 154, 5], + ["access", 50, "print", 154, 5], + ["array", 51, 0, 154, 5], + ["push", 51, 42, 154, 5], + ["frame", 52, 47, 2, 154, 5], + ["setarg", 52, 0, 49, 154, 5], + ["setarg", 52, 1, 50, 154, 5], + ["setarg", 52, 2, 51, 154, 5], + ["invoke", 52, 46, 154, 5], + ["jump", "call_done_200", 154, 5], + "record_path_199", + ["load_field", 53, 47, "print", 154, 5], + ["frame", 54, 53, 1, 154, 5], + ["setarg", 54, 0, 47, 154, 5], + ["setarg", 54, 1, 42, 154, 5], + ["invoke", 54, 46, 154, 5], + "call_done_200", + ["jump", "if_end_184", 154, 5], + "if_else_183", + ["access", 55, "system", 155, 22], + ["is_identical", 56, 1, 55, 155, 22], + ["jump_true", 56, "eq_done_203", 155, 22], + ["is_int", 57, 1, 155, 22], + ["jump_false", 57, "eq_ni_204", 155, 22], "_nop_tc_4", - ["jump", "eq_ni_194", 149, 22], - ["eq_int", 56, 1, 55, 149, 22], - ["jump", "eq_done_193", 149, 22], - "eq_ni_194", - ["is_num", 57, 1, 149, 22], - ["jump_false", 57, "eq_nn_195", 149, 22], - ["is_num", 58, 55, 149, 22], - ["jump_false", 58, "eq_nn_195", 149, 22], - ["eq_float", 56, 1, 55, 149, 22], - ["jump", "eq_done_193", 149, 22], - "eq_nn_195", - ["is_text", 57, 1, 149, 22], - ["jump_false", 57, "eq_nt_196", 149, 22], - ["is_text", 58, 55, 149, 22], - ["jump_false", 58, "eq_nt_196", 149, 22], - ["eq_text", 56, 1, 55, 149, 22], - ["jump", "eq_done_193", 149, 22], - "eq_nt_196", - ["is_null", 57, 1, 149, 22], - ["jump_false", 57, "eq_nnl_197", 149, 22], - ["is_null", 58, 55, 149, 22], - ["jump_false", 58, "eq_nnl_197", 149, 22], - ["true", 56, 149, 22], - ["jump", "eq_done_193", 149, 22], - "eq_nnl_197", - ["is_bool", 57, 1, 149, 22], - ["jump_false", 57, "eq_nb_198", 149, 22], - ["is_bool", 58, 55, 149, 22], - ["jump_false", 58, "eq_nb_198", 149, 22], - ["eq_bool", 56, 1, 55, 149, 22], - ["jump", "eq_done_193", 149, 22], - "eq_nb_198", - ["false", 56, 149, 22], - "eq_done_193", - ["jump_false", 56, "if_else_191", 149, 22], - ["access", 59, "[SYSTEM] ", 150, 11], + ["jump", "eq_ni_204", 155, 22], + ["eq_int", 56, 1, 55, 155, 22], + ["jump", "eq_done_203", 155, 22], + "eq_ni_204", + ["is_num", 57, 1, 155, 22], + ["jump_false", 57, "eq_nn_205", 155, 22], + ["is_num", 58, 55, 155, 22], + ["jump_false", 58, "eq_nn_205", 155, 22], + ["eq_float", 56, 1, 55, 155, 22], + ["jump", "eq_done_203", 155, 22], + "eq_nn_205", + ["is_text", 57, 1, 155, 22], + ["jump_false", 57, "eq_nt_206", 155, 22], + ["is_text", 58, 55, 155, 22], + ["jump_false", 58, "eq_nt_206", 155, 22], + ["eq_text", 56, 1, 55, 155, 22], + ["jump", "eq_done_203", 155, 22], + "eq_nt_206", + ["is_null", 57, 1, 155, 22], + ["jump_false", 57, "eq_nnl_207", 155, 22], + ["is_null", 58, 55, 155, 22], + ["jump_false", 58, "eq_nnl_207", 155, 22], + ["true", 56, 155, 22], + ["jump", "eq_done_203", 155, 22], + "eq_nnl_207", + ["is_bool", 57, 1, 155, 22], + ["jump_false", 57, "eq_nb_208", 155, 22], + ["is_bool", 58, 55, 155, 22], + ["jump_false", 58, "eq_nb_208", 155, 22], + ["eq_bool", 56, 1, 55, 155, 22], + ["jump", "eq_done_203", 155, 22], + "eq_nb_208", + ["false", 56, 155, 22], + "eq_done_203", + ["jump_false", 56, "if_else_201", 155, 22], + ["access", 59, "[SYSTEM] ", 156, 11], "_nop_tc_5", - ["jump", "add_ni_199", 150, 25], - ["is_int", 62, 3, 150, 25], - ["jump_false", 62, "add_ni_199", 150, 25], - ["add_int", 60, 59, 3, 150, 25], - ["jump", "add_done_201", 150, 25], - "add_ni_199", - ["is_text", 62, 3, 150, 25], - ["jump_false", 62, "add_nt_200", 150, 25], - ["concat", 60, 59, 3, 150, 25], - ["jump", "add_done_201", 150, 25], - "add_nt_200", - ["is_num", 61, 59, 150, 25], - ["jump_false", 61, "add_err_202", 150, 25], - ["is_num", 62, 3, 150, 25], - ["jump_false", 62, "add_err_202", 150, 25], - ["add_float", 60, 59, 3, 150, 25], - ["jump", "add_done_201", 150, 25], - "add_err_202", - ["disrupt", 150, 25], - "add_done_201", - ["move", 3, 60, 150, 25], - ["load_field", 63, 4, "line", 151, 26], - ["load_field", 64, 4, "file", 151, 39], - ["get", 66, 13, 1, 151, 14], - ["frame", 67, 66, 3, 151, 14], - ["null", 68, 151, 14], - ["setarg", 67, 0, 68, 151, 14], - ["setarg", 67, 1, 63, 151, 14], - ["setarg", 67, 2, 64, 151, 14], - ["setarg", 67, 3, 3, 151, 14], - ["invoke", 67, 65, 151, 14], + ["jump", "add_ni_209", 156, 25], + ["is_int", 62, 3, 156, 25], + ["jump_false", 62, "add_ni_209", 156, 25], + ["add_int", 60, 59, 3, 156, 25], + ["jump", "add_done_211", 156, 25], + "add_ni_209", + ["is_text", 62, 3, 156, 25], + ["jump_false", 62, "add_nt_210", 156, 25], + ["concat", 60, 59, 3, 156, 25], + ["jump", "add_done_211", 156, 25], + "add_nt_210", + ["is_num", 61, 59, 156, 25], + ["jump_false", 61, "add_err_212", 156, 25], + ["is_num", 62, 3, 156, 25], + ["jump_false", 62, "add_err_212", 156, 25], + ["add_float", 60, 59, 3, 156, 25], + ["jump", "add_done_211", 156, 25], + "add_err_212", + ["disrupt", 156, 25], + "add_done_211", + ["move", 3, 60, 156, 25], + ["load_field", 63, 4, "line", 157, 26], + ["load_field", 64, 4, "file", 157, 39], + ["get", 66, 13, 1, 157, 14], + ["frame", 67, 66, 3, 157, 14], + ["null", 68, 157, 14], + ["setarg", 67, 0, 68, 157, 14], + ["setarg", 67, 1, 63, 157, 14], + ["setarg", 67, 2, 64, 157, 14], + ["setarg", 67, 3, 3, 157, 14], + ["invoke", 67, 65, 157, 14], [ "access", 70, @@ -1817,30 +1951,30 @@ "kind": "name", "make": "intrinsic" }, - 151, + 157, 5 ], - ["is_proxy", 71, 70, 151, 5], - ["jump_false", 71, "record_path_203", 151, 5], - ["null", 72, 151, 5], - ["access", 73, "print", 151, 5], - ["array", 74, 0, 151, 5], - ["push", 74, 65, 151, 5], - ["frame", 75, 70, 2, 151, 5], - ["setarg", 75, 0, 72, 151, 5], - ["setarg", 75, 1, 73, 151, 5], - ["setarg", 75, 2, 74, 151, 5], - ["invoke", 75, 69, 151, 5], - ["jump", "call_done_204", 151, 5], - "record_path_203", - ["load_field", 76, 70, "print", 151, 5], - ["frame", 77, 76, 1, 151, 5], - ["setarg", 77, 0, 70, 151, 5], - ["setarg", 77, 1, 65, 151, 5], - ["invoke", 77, 69, 151, 5], - "call_done_204", - ["jump", "if_end_192", 151, 5], - "if_else_191", + ["is_proxy", 71, 70, 157, 5], + ["jump_false", 71, "record_path_213", 157, 5], + ["null", 72, 157, 5], + ["access", 73, "print", 157, 5], + ["array", 74, 0, 157, 5], + ["push", 74, 65, 157, 5], + ["frame", 75, 70, 2, 157, 5], + ["setarg", 75, 0, 72, 157, 5], + ["setarg", 75, 1, 73, 157, 5], + ["setarg", 75, 2, 74, 157, 5], + ["invoke", 75, 69, 157, 5], + ["jump", "call_done_214", 157, 5], + "record_path_213", + ["load_field", 76, 70, "print", 157, 5], + ["frame", 77, 76, 1, 157, 5], + ["setarg", 77, 0, 70, 157, 5], + ["setarg", 77, 1, 65, 157, 5], + ["invoke", 77, 69, 157, 5], + "call_done_214", + ["jump", "if_end_202", 157, 5], + "if_else_201", ["array", 78, 0, 1, 1], ["push", 78, 1, 1, 1], [ @@ -1861,31 +1995,31 @@ ["setarg", 82, 1, 80, 1, 1], ["setarg", 82, 2, 78, 1, 1], ["invoke", 82, 81, 1, 1], - ["get", 85, 63, 1, 153, 5], - ["is_proxy", 86, 85, 153, 5], - ["jump_false", 86, "record_path_205", 153, 5], - ["null", 87, 153, 5], - ["access", 88, "console", 153, 5], - ["array", 89, 0, 153, 5], - ["push", 89, 81, 153, 5], - ["frame", 90, 85, 2, 153, 5], - ["setarg", 90, 0, 87, 153, 5], - ["setarg", 90, 1, 88, 153, 5], - ["setarg", 90, 2, 89, 153, 5], - ["invoke", 90, 84, 153, 5], - ["jump", "call_done_206", 153, 5], - "record_path_205", - ["load_field", 91, 85, "console", 153, 5], - ["frame", 92, 91, 1, 153, 5], - ["setarg", 92, 0, 85, 153, 5], - ["setarg", 92, 1, 81, 153, 5], - ["invoke", 92, 84, 153, 5], - "call_done_206", - "if_end_192", + ["get", 85, 63, 1, 159, 5], + ["is_proxy", 86, 85, 159, 5], + ["jump_false", 86, "record_path_215", 159, 5], + ["null", 87, 159, 5], + ["access", 88, "console", 159, 5], + ["array", 89, 0, 159, 5], + ["push", 89, 81, 159, 5], + ["frame", 90, 85, 2, 159, 5], + ["setarg", 90, 0, 87, 159, 5], + ["setarg", 90, 1, 88, 159, 5], + ["setarg", 90, 2, 89, 159, 5], + ["invoke", 90, 84, 159, 5], + ["jump", "call_done_216", 159, 5], + "record_path_215", + ["load_field", 91, 85, "console", 159, 5], + ["frame", 92, 91, 1, 159, 5], + ["setarg", 92, 0, 85, 159, 5], + ["setarg", 92, 1, 81, 159, 5], + ["invoke", 92, 84, 159, 5], + "call_done_216", + "if_end_202", + "if_end_184", "if_end_174", - "if_end_164", - ["null", 93, 153, 5], - ["return", 93, 153, 5] + ["null", 93, 159, 5], + ["return", 93, 159, 5] ], "name": "log", "filename": "internal/engine.cm", @@ -1916,56 +2050,56 @@ ["setarg", 7, 1, 5, 1, 1], ["setarg", 7, 2, 3, 1, 1], ["invoke", 7, 6, 1, 1], - ["get", 10, 63, 2, 180, 7], - ["is_proxy", 11, 10, 180, 7], - ["jump_false", 11, "record_path_226", 180, 7], - ["null", 12, 180, 7], - ["access", 13, "console", 180, 7], - ["array", 14, 0, 180, 7], - ["push", 14, 6, 180, 7], - ["frame", 15, 10, 2, 180, 7], - ["setarg", 15, 0, 12, 180, 7], - ["setarg", 15, 1, 13, 180, 7], - ["setarg", 15, 2, 14, 180, 7], - ["invoke", 15, 9, 180, 7], - ["jump", "call_done_227", 180, 7], - "record_path_226", - ["load_field", 16, 10, "console", 180, 7], - ["frame", 17, 16, 1, 180, 7], - ["setarg", 17, 0, 10, 180, 7], - ["setarg", 17, 1, 6, 180, 7], - ["invoke", 17, 9, 180, 7], - "call_done_227", + ["get", 10, 63, 2, 186, 7], + ["is_proxy", 11, 10, 186, 7], + ["jump_false", 11, "record_path_236", 186, 7], + ["null", 12, 186, 7], + ["access", 13, "console", 186, 7], + ["array", 14, 0, 186, 7], + ["push", 14, 6, 186, 7], + ["frame", 15, 10, 2, 186, 7], + ["setarg", 15, 0, 12, 186, 7], + ["setarg", 15, 1, 13, 186, 7], + ["setarg", 15, 2, 14, 186, 7], + ["invoke", 15, 9, 186, 7], + ["jump", "call_done_237", 186, 7], + "record_path_236", + ["load_field", 16, 10, "console", 186, 7], + ["frame", 17, 16, 1, 186, 7], + ["setarg", 17, 0, 10, 186, 7], + ["setarg", 17, 1, 6, 186, 7], + ["invoke", 17, 9, 186, 7], + "call_done_237", ["record", 18, 0], - ["store_field", 18, 1, "id", 181, 29], - ["get", 20, 72, 2, 181, 15], - ["frame", 21, 20, 1, 181, 15], - ["null", 22, 181, 15], - ["setarg", 21, 0, 22, 181, 15], - ["setarg", 21, 1, 18, 181, 15], - ["invoke", 21, 19, 181, 15], - ["get", 24, 2, 2, 181, 7], - ["is_proxy", 25, 24, 181, 7], - ["jump_false", 25, "record_path_228", 181, 7], - ["null", 26, 181, 7], - ["access", 27, "stop", 181, 7], - ["array", 28, 0, 181, 7], - ["push", 28, 19, 181, 7], - ["frame", 29, 24, 2, 181, 7], - ["setarg", 29, 0, 26, 181, 7], - ["setarg", 29, 1, 27, 181, 7], - ["setarg", 29, 2, 28, 181, 7], - ["invoke", 29, 23, 181, 7], - ["jump", "call_done_229", 181, 7], - "record_path_228", - ["load_field", 30, 24, "stop", 181, 7], - ["frame", 31, 30, 1, 181, 7], - ["setarg", 31, 0, 24, 181, 7], - ["setarg", 31, 1, 19, 181, 7], - ["invoke", 31, 23, 181, 7], - "call_done_229", - ["null", 32, 181, 7], - ["return", 32, 181, 7] + ["store_field", 18, 1, "id", 187, 29], + ["get", 20, 72, 2, 187, 15], + ["frame", 21, 20, 1, 187, 15], + ["null", 22, 187, 15], + ["setarg", 21, 0, 22, 187, 15], + ["setarg", 21, 1, 18, 187, 15], + ["invoke", 21, 19, 187, 15], + ["get", 24, 2, 2, 187, 7], + ["is_proxy", 25, 24, 187, 7], + ["jump_false", 25, "record_path_238", 187, 7], + ["null", 26, 187, 7], + ["access", 27, "stop", 187, 7], + ["array", 28, 0, 187, 7], + ["push", 28, 19, 187, 7], + ["frame", 29, 24, 2, 187, 7], + ["setarg", 29, 0, 26, 187, 7], + ["setarg", 29, 1, 27, 187, 7], + ["setarg", 29, 2, 28, 187, 7], + ["invoke", 29, 23, 187, 7], + ["jump", "call_done_239", 187, 7], + "record_path_238", + ["load_field", 30, 24, "stop", 187, 7], + ["frame", 31, 30, 1, 187, 7], + ["setarg", 31, 0, 24, 187, 7], + ["setarg", 31, 1, 19, 187, 7], + ["invoke", 31, 23, 187, 7], + "call_done_239", + ["null", 32, 187, 7], + ["return", 32, 187, 7] ], "name": "", "filename": "internal/engine.cm", @@ -1976,32 +2110,32 @@ "nr_slots": 107, "nr_close_slots": 0, "instructions": [ - ["null", 2, 159, 16], - ["null", 3, 160, 16], - ["move", 4, 1, 162, 7], - ["jump_false", 4, "and_end_209", 162, 7], - ["load_field", 5, 1, "toString", 162, 26], - ["is_func", 6, 5, 162, 26], - ["move", 4, 6, 162, 26], - "and_end_209", - ["jump_false", 4, "if_else_207", 162, 26], - ["is_proxy", 8, 1, 163, 14], - ["jump_false", 8, "record_path_210", 163, 14], - ["null", 9, 163, 14], - ["access", 10, "toString", 163, 14], - ["array", 11, 0, 163, 14], - ["frame", 12, 1, 2, 163, 14], - ["setarg", 12, 0, 9, 163, 14], - ["setarg", 12, 1, 10, 163, 14], - ["setarg", 12, 2, 11, 163, 14], - ["invoke", 12, 7, 163, 14], - ["jump", "call_done_211", 163, 14], - "record_path_210", - ["load_field", 13, 1, "toString", 163, 14], - ["frame", 14, 13, 0, 163, 14], - ["setarg", 14, 0, 1, 163, 14], - ["invoke", 14, 7, 163, 14], - "call_done_211", + ["null", 2, 165, 16], + ["null", 3, 166, 16], + ["move", 4, 1, 168, 7], + ["jump_false", 4, "and_end_219", 168, 7], + ["load_field", 5, 1, "toString", 168, 26], + ["is_func", 6, 5, 168, 26], + ["move", 4, 6, 168, 26], + "and_end_219", + ["jump_false", 4, "if_else_217", 168, 26], + ["is_proxy", 8, 1, 169, 14], + ["jump_false", 8, "record_path_220", 169, 14], + ["null", 9, 169, 14], + ["access", 10, "toString", 169, 14], + ["array", 11, 0, 169, 14], + ["frame", 12, 1, 2, 169, 14], + ["setarg", 12, 0, 9, 169, 14], + ["setarg", 12, 1, 10, 169, 14], + ["setarg", 12, 2, 11, 169, 14], + ["invoke", 12, 7, 169, 14], + ["jump", "call_done_221", 169, 14], + "record_path_220", + ["load_field", 13, 1, "toString", 169, 14], + ["frame", 14, 13, 0, 169, 14], + ["setarg", 14, 0, 1, 169, 14], + ["invoke", 14, 7, 169, 14], + "call_done_221", [ "access", 16, @@ -2010,29 +2144,29 @@ "kind": "name", "make": "intrinsic" }, - 163, + 169, 5 ], - ["is_proxy", 17, 16, 163, 5], - ["jump_false", 17, "record_path_212", 163, 5], - ["null", 18, 163, 5], - ["access", 19, "print", 163, 5], - ["array", 20, 0, 163, 5], - ["push", 20, 7, 163, 5], - ["frame", 21, 16, 2, 163, 5], - ["setarg", 21, 0, 18, 163, 5], - ["setarg", 21, 1, 19, 163, 5], - ["setarg", 21, 2, 20, 163, 5], - ["invoke", 21, 15, 163, 5], - ["jump", "call_done_213", 163, 5], - "record_path_212", - ["load_field", 22, 16, "print", 163, 5], - ["frame", 23, 22, 1, 163, 5], - ["setarg", 23, 0, 16, 163, 5], - ["setarg", 23, 1, 7, 163, 5], - ["invoke", 23, 15, 163, 5], - "call_done_213", - ["access", 24, "\n", 164, 14], + ["is_proxy", 17, 16, 169, 5], + ["jump_false", 17, "record_path_222", 169, 5], + ["null", 18, 169, 5], + ["access", 19, "print", 169, 5], + ["array", 20, 0, 169, 5], + ["push", 20, 7, 169, 5], + ["frame", 21, 16, 2, 169, 5], + ["setarg", 21, 0, 18, 169, 5], + ["setarg", 21, 1, 19, 169, 5], + ["setarg", 21, 2, 20, 169, 5], + ["invoke", 21, 15, 169, 5], + ["jump", "call_done_223", 169, 5], + "record_path_222", + ["load_field", 22, 16, "print", 169, 5], + ["frame", 23, 22, 1, 169, 5], + ["setarg", 23, 0, 16, 169, 5], + ["setarg", 23, 1, 7, 169, 5], + ["invoke", 23, 15, 169, 5], + "call_done_223", + ["access", 24, "\n", 170, 14], [ "access", 26, @@ -2041,31 +2175,31 @@ "kind": "name", "make": "intrinsic" }, - 164, + 170, 5 ], - ["is_proxy", 27, 26, 164, 5], - ["jump_false", 27, "record_path_214", 164, 5], - ["null", 28, 164, 5], - ["access", 29, "print", 164, 5], - ["array", 30, 0, 164, 5], - ["push", 30, 24, 164, 5], - ["frame", 31, 26, 2, 164, 5], - ["setarg", 31, 0, 28, 164, 5], - ["setarg", 31, 1, 29, 164, 5], - ["setarg", 31, 2, 30, 164, 5], - ["invoke", 31, 25, 164, 5], - ["jump", "call_done_215", 164, 5], - "record_path_214", - ["load_field", 32, 26, "print", 164, 5], - ["frame", 33, 32, 1, 164, 5], - ["setarg", 33, 0, 26, 164, 5], - ["setarg", 33, 1, 24, 164, 5], - ["invoke", 33, 25, 164, 5], - "call_done_215", - ["load_field", 34, 1, "stack", 165, 9], - ["jump_false", 34, "if_else_216", 165, 9], - ["load_field", 35, 1, "stack", 165, 29], + ["is_proxy", 27, 26, 170, 5], + ["jump_false", 27, "record_path_224", 170, 5], + ["null", 28, 170, 5], + ["access", 29, "print", 170, 5], + ["array", 30, 0, 170, 5], + ["push", 30, 24, 170, 5], + ["frame", 31, 26, 2, 170, 5], + ["setarg", 31, 0, 28, 170, 5], + ["setarg", 31, 1, 29, 170, 5], + ["setarg", 31, 2, 30, 170, 5], + ["invoke", 31, 25, 170, 5], + ["jump", "call_done_225", 170, 5], + "record_path_224", + ["load_field", 32, 26, "print", 170, 5], + ["frame", 33, 32, 1, 170, 5], + ["setarg", 33, 0, 26, 170, 5], + ["setarg", 33, 1, 24, 170, 5], + ["invoke", 33, 25, 170, 5], + "call_done_225", + ["load_field", 34, 1, "stack", 171, 9], + ["jump_false", 34, "if_else_226", 171, 9], + ["load_field", 35, 1, "stack", 171, 29], [ "access", 37, @@ -2074,66 +2208,66 @@ "kind": "name", "make": "intrinsic" }, - 165, + 171, 20 ], - ["is_proxy", 38, 37, 165, 20], - ["jump_false", 38, "record_path_218", 165, 20], - ["null", 39, 165, 20], - ["access", 40, "print", 165, 20], - ["array", 41, 0, 165, 20], - ["push", 41, 35, 165, 20], - ["frame", 42, 37, 2, 165, 20], - ["setarg", 42, 0, 39, 165, 20], - ["setarg", 42, 1, 40, 165, 20], - ["setarg", 42, 2, 41, 165, 20], - ["invoke", 42, 36, 165, 20], - ["jump", "call_done_219", 165, 20], - "record_path_218", - ["load_field", 43, 37, "print", 165, 20], - ["frame", 44, 43, 1, 165, 20], - ["setarg", 44, 0, 37, 165, 20], - ["setarg", 44, 1, 35, 165, 20], - ["invoke", 44, 36, 165, 20], - "call_done_219", - ["jump", "if_end_217", 165, 20], - "if_else_216", - "if_end_217", - ["jump", "if_end_208", 165, 20], - "if_else_207", - "if_end_208", - ["get", 45, 39, 1, 168, 7], - ["jump_false", 45, "if_else_220", 168, 7], - ["jump_false", 1, "if_else_222", 169, 9], - ["move", 2, 1, 171, 16], + ["is_proxy", 38, 37, 171, 20], + ["jump_false", 38, "record_path_228", 171, 20], + ["null", 39, 171, 20], + ["access", 40, "print", 171, 20], + ["array", 41, 0, 171, 20], + ["push", 41, 35, 171, 20], + ["frame", 42, 37, 2, 171, 20], + ["setarg", 42, 0, 39, 171, 20], + ["setarg", 42, 1, 40, 171, 20], + ["setarg", 42, 2, 41, 171, 20], + ["invoke", 42, 36, 171, 20], + ["jump", "call_done_229", 171, 20], + "record_path_228", + ["load_field", 43, 37, "print", 171, 20], + ["frame", 44, 43, 1, 171, 20], + ["setarg", 44, 0, 37, 171, 20], + ["setarg", 44, 1, 35, 171, 20], + ["invoke", 44, 36, 171, 20], + "call_done_229", + ["jump", "if_end_227", 171, 20], + "if_else_226", + "if_end_227", + ["jump", "if_end_218", 171, 20], + "if_else_217", + "if_end_218", + ["get", 45, 39, 1, 174, 7], + ["jump_false", 45, "if_else_230", 174, 7], + ["jump_false", 1, "if_else_232", 175, 9], + ["move", 2, 1, 177, 16], ["record", 46, 0], - ["access", 47, "disrupt", 172, 32], - ["store_field", 46, 47, "type", 172, 32], - ["store_field", 46, 2, "reason", 172, 43], - ["get", 49, 18, 1, 172, 7], - ["frame", 50, 49, 1, 172, 7], - ["null", 51, 172, 7], - ["setarg", 50, 0, 51, 172, 7], - ["setarg", 50, 1, 46, 172, 7], - ["invoke", 50, 48, 172, 7], - ["jump", "if_end_223", 172, 7], - "if_else_222", + ["access", 47, "disrupt", 178, 32], + ["store_field", 46, 47, "type", 178, 32], + ["store_field", 46, 2, "reason", 178, 43], + ["get", 49, 18, 1, 178, 7], + ["frame", 50, 49, 1, 178, 7], + ["null", 51, 178, 7], + ["setarg", 50, 0, 51, 178, 7], + ["setarg", 50, 1, 46, 178, 7], + ["invoke", 50, 48, 178, 7], + ["jump", "if_end_233", 178, 7], + "if_else_232", ["record", 52, 0], - ["access", 53, "stop", 174, 32], - ["store_field", 52, 53, "type", 174, 32], - ["get", 55, 18, 1, 174, 7], - ["frame", 56, 55, 1, 174, 7], - ["null", 57, 174, 7], - ["setarg", 56, 0, 57, 174, 7], - ["setarg", 56, 1, 52, 174, 7], - ["invoke", 56, 54, 174, 7], - "if_end_223", - ["jump", "if_end_221", 174, 7], - "if_else_220", - "if_end_221", - ["get", 58, 12, 1, 177, 7], - ["jump_false", 58, "if_else_224", 177, 7], - ["get", 59, 12, 1, 178, 20], + ["access", 53, "stop", 180, 32], + ["store_field", 52, 53, "type", 180, 32], + ["get", 55, 18, 1, 180, 7], + ["frame", 56, 55, 1, 180, 7], + ["null", 57, 180, 7], + ["setarg", 56, 0, 57, 180, 7], + ["setarg", 56, 1, 52, 180, 7], + ["invoke", 56, 54, 180, 7], + "if_end_233", + ["jump", "if_end_231", 180, 7], + "if_else_230", + "if_end_231", + ["get", 58, 12, 1, 183, 7], + ["jump_false", 58, "if_else_234", 183, 7], + ["get", 59, 12, 1, 184, 20], [ "access", 61, @@ -2142,117 +2276,117 @@ "kind": "name", "make": "intrinsic" }, - 178, + 184, 14 ], - ["frame", 62, 61, 1, 178, 14], - ["null", 63, 178, 14], - ["setarg", 62, 0, 63, 178, 14], - ["setarg", 62, 1, 59, 178, 14], - ["invoke", 62, 60, 178, 14], - ["move", 3, 60, 178, 14], - ["function", 64, 14, 179, 20], - ["length", 66, 3, 179, 20], - ["int", 67, 0, 179, 20], - ["int", 71, 1, 179, 20], - ["null", 70, 179, 20], - "arrfor_loop_230", - ["lt_int", 68, 67, 66, 179, 20], - ["jump_false", 68, "arrfor_done_231", 179, 20], - ["load_index", 69, 3, 67, 179, 20], - ["frame", 72, 64, 2, 179, 20], - ["setarg", 72, 0, 70, 179, 20], - ["setarg", 72, 1, 69, 179, 20], - ["setarg", 72, 2, 67, 179, 20], - ["invoke", 72, 73, 179, 20], - ["add_int", 67, 67, 71, 179, 20], - ["jump", "arrfor_loop_230", 179, 20], - "arrfor_done_231", - ["null", 65, 179, 20], - ["jump", "if_end_225", 179, 20], - "if_else_224", - "if_end_225", - ["jump_false", 1, "if_else_232", 185, 7], - ["load_field", 74, 1, "message", 186, 9], - ["jump_false", 74, "if_else_234", 186, 9], - ["load_field", 75, 1, "message", 187, 19], - ["get", 77, 63, 1, 187, 7], - ["is_proxy", 78, 77, 187, 7], - ["jump_false", 78, "record_path_236", 187, 7], - ["null", 79, 187, 7], - ["access", 80, "console", 187, 7], - ["array", 81, 0, 187, 7], - ["push", 81, 75, 187, 7], - ["frame", 82, 77, 2, 187, 7], - ["setarg", 82, 0, 79, 187, 7], - ["setarg", 82, 1, 80, 187, 7], - ["setarg", 82, 2, 81, 187, 7], - ["invoke", 82, 76, 187, 7], - ["jump", "call_done_237", 187, 7], - "record_path_236", - ["load_field", 83, 77, "console", 187, 7], - ["frame", 84, 83, 1, 187, 7], - ["setarg", 84, 0, 77, 187, 7], - ["setarg", 84, 1, 75, 187, 7], - ["invoke", 84, 76, 187, 7], - "call_done_237", - ["jump", "if_end_235", 187, 7], + ["frame", 62, 61, 1, 184, 14], + ["null", 63, 184, 14], + ["setarg", 62, 0, 63, 184, 14], + ["setarg", 62, 1, 59, 184, 14], + ["invoke", 62, 60, 184, 14], + ["move", 3, 60, 184, 14], + ["function", 64, 14, 185, 20], + ["length", 66, 3, 185, 20], + ["int", 67, 0, 185, 20], + ["int", 71, 1, 185, 20], + ["null", 70, 185, 20], + "arrfor_loop_240", + ["lt_int", 68, 67, 66, 185, 20], + ["jump_false", 68, "arrfor_done_241", 185, 20], + ["load_index", 69, 3, 67, 185, 20], + ["frame", 72, 64, 2, 185, 20], + ["setarg", 72, 0, 70, 185, 20], + ["setarg", 72, 1, 69, 185, 20], + ["setarg", 72, 2, 67, 185, 20], + ["invoke", 72, 73, 185, 20], + ["add_int", 67, 67, 71, 185, 20], + ["jump", "arrfor_loop_240", 185, 20], + "arrfor_done_241", + ["null", 65, 185, 20], + ["jump", "if_end_235", 185, 20], "if_else_234", "if_end_235", - ["load_field", 85, 1, "stack", 188, 9], - ["jump_false", 85, "if_else_238", 188, 9], - ["load_field", 86, 1, "stack", 189, 19], - ["get", 88, 63, 1, 189, 7], - ["is_proxy", 89, 88, 189, 7], - ["jump_false", 89, "record_path_240", 189, 7], - ["null", 90, 189, 7], - ["access", 91, "console", 189, 7], - ["array", 92, 0, 189, 7], - ["push", 92, 86, 189, 7], - ["frame", 93, 88, 2, 189, 7], - ["setarg", 93, 0, 90, 189, 7], - ["setarg", 93, 1, 91, 189, 7], - ["setarg", 93, 2, 92, 189, 7], - ["invoke", 93, 87, 189, 7], - ["jump", "call_done_241", 189, 7], - "record_path_240", - ["load_field", 94, 88, "console", 189, 7], - ["frame", 95, 94, 1, 189, 7], - ["setarg", 95, 0, 88, 189, 7], - ["setarg", 95, 1, 86, 189, 7], - ["invoke", 95, 87, 189, 7], - "call_done_241", - ["jump", "if_end_239", 189, 7], - "if_else_238", - "if_end_239", - ["jump", "if_end_233", 189, 7], - "if_else_232", - "if_end_233", - ["get", 97, 30, 1, 192, 3], - ["access", 98, "disrupt", 192, 13], - ["is_proxy", 99, 97, 192, 13], - ["jump_false", 99, "dyn_record_path_242", 192, 13], + ["jump_false", 1, "if_else_242", 191, 7], + ["load_field", 74, 1, "message", 192, 9], + ["jump_false", 74, "if_else_244", 192, 9], + ["load_field", 75, 1, "message", 193, 19], + ["get", 77, 63, 1, 193, 7], + ["is_proxy", 78, 77, 193, 7], + ["jump_false", 78, "record_path_246", 193, 7], + ["null", 79, 193, 7], + ["access", 80, "console", 193, 7], + ["array", 81, 0, 193, 7], + ["push", 81, 75, 193, 7], + ["frame", 82, 77, 2, 193, 7], + ["setarg", 82, 0, 79, 193, 7], + ["setarg", 82, 1, 80, 193, 7], + ["setarg", 82, 2, 81, 193, 7], + ["invoke", 82, 76, 193, 7], + ["jump", "call_done_247", 193, 7], + "record_path_246", + ["load_field", 83, 77, "console", 193, 7], + ["frame", 84, 83, 1, 193, 7], + ["setarg", 84, 0, 77, 193, 7], + ["setarg", 84, 1, 75, 193, 7], + ["invoke", 84, 76, 193, 7], + "call_done_247", + ["jump", "if_end_245", 193, 7], + "if_else_244", + "if_end_245", + ["load_field", 85, 1, "stack", 194, 9], + ["jump_false", 85, "if_else_248", 194, 9], + ["load_field", 86, 1, "stack", 195, 19], + ["get", 88, 63, 1, 195, 7], + ["is_proxy", 89, 88, 195, 7], + ["jump_false", 89, "record_path_250", 195, 7], + ["null", 90, 195, 7], + ["access", 91, "console", 195, 7], + ["array", 92, 0, 195, 7], + ["push", 92, 86, 195, 7], + ["frame", 93, 88, 2, 195, 7], + ["setarg", 93, 0, 90, 195, 7], + ["setarg", 93, 1, 91, 195, 7], + ["setarg", 93, 2, 92, 195, 7], + ["invoke", 93, 87, 195, 7], + ["jump", "call_done_251", 195, 7], + "record_path_250", + ["load_field", 94, 88, "console", 195, 7], + ["frame", 95, 94, 1, 195, 7], + ["setarg", 95, 0, 88, 195, 7], + ["setarg", 95, 1, 86, 195, 7], + ["invoke", 95, 87, 195, 7], + "call_done_251", + ["jump", "if_end_249", 195, 7], + "if_else_248", + "if_end_249", + ["jump", "if_end_243", 195, 7], + "if_else_242", + "if_end_243", + ["get", 97, 30, 1, 198, 3], + ["access", 98, "disrupt", 198, 13], + ["is_proxy", 99, 97, 198, 13], + ["jump_false", 99, "dyn_record_path_252", 198, 13], "_nop_tc_1", "_nop_tc_2", - ["null", 101, 192, 13], - ["array", 102, 0, 192, 13], - ["frame", 103, 97, 2, 192, 13], - ["setarg", 103, 0, 101, 192, 13], - ["setarg", 103, 1, 98, 192, 13], - ["setarg", 103, 2, 102, 192, 13], - ["invoke", 103, 96, 192, 13], - ["jump", "dyn_call_done_243", 192, 13], - "dyn_error_244", - ["disrupt", 192, 13], - ["jump", "dyn_call_done_243", 192, 13], - "dyn_record_path_242", - ["load_dynamic", 104, 97, 98, 192, 13], - ["frame", 105, 104, 0, 192, 13], - ["setarg", 105, 0, 97, 192, 13], - ["invoke", 105, 96, 192, 13], - "dyn_call_done_243", - ["null", 106, 192, 13], - ["return", 106, 192, 13] + ["null", 101, 198, 13], + ["array", 102, 0, 198, 13], + ["frame", 103, 97, 2, 198, 13], + ["setarg", 103, 0, 101, 198, 13], + ["setarg", 103, 1, 98, 198, 13], + ["setarg", 103, 2, 102, 198, 13], + ["invoke", 103, 96, 198, 13], + ["jump", "dyn_call_done_253", 198, 13], + "dyn_error_254", + ["disrupt", 198, 13], + ["jump", "dyn_call_done_253", 198, 13], + "dyn_record_path_252", + ["load_dynamic", 104, 97, 98, 198, 13], + ["frame", 105, 104, 0, 198, 13], + ["setarg", 105, 0, 97, 198, 13], + ["invoke", 105, 96, 198, 13], + "dyn_call_done_253", + ["null", 106, 198, 13], + ["return", 106, 198, 13] ], "name": "actor_die", "filename": "internal/engine.cm", @@ -2263,67 +2397,67 @@ "nr_slots": 17, "nr_close_slots": 0, "instructions": [ - ["null", 4, 203, 23], - ["is_identical", 5, 1, 4, 203, 23], - ["jump_true", 5, "eq_done_247", 203, 23], - ["is_int", 6, 1, 203, 23], - ["jump_false", 6, "eq_ni_248", 203, 23], + ["null", 4, 209, 23], + ["is_identical", 5, 1, 4, 209, 23], + ["jump_true", 5, "eq_done_257", 209, 23], + ["is_int", 6, 1, 209, 23], + ["jump_false", 6, "eq_ni_258", 209, 23], "_nop_tc_1", - ["jump", "eq_ni_248", 203, 23], - ["eq_int", 5, 1, 4, 203, 23], - ["jump", "eq_done_247", 203, 23], - "eq_ni_248", - ["is_num", 6, 1, 203, 23], - ["jump_false", 6, "eq_nn_249", 203, 23], - ["is_num", 7, 4, 203, 23], - ["jump_false", 7, "eq_nn_249", 203, 23], - ["eq_float", 5, 1, 4, 203, 23], - ["jump", "eq_done_247", 203, 23], - "eq_nn_249", - ["is_text", 6, 1, 203, 23], - ["jump_false", 6, "eq_nt_250", 203, 23], - ["is_text", 7, 4, 203, 23], - ["jump_false", 7, "eq_nt_250", 203, 23], - ["eq_text", 5, 1, 4, 203, 23], - ["jump", "eq_done_247", 203, 23], - "eq_nt_250", - ["is_null", 6, 1, 203, 23], - ["jump_false", 6, "eq_nnl_251", 203, 23], - ["is_null", 7, 4, 203, 23], - ["jump_false", 7, "eq_nnl_251", 203, 23], - ["true", 5, 203, 23], - ["jump", "eq_done_247", 203, 23], - "eq_nnl_251", - ["is_bool", 6, 1, 203, 23], - ["jump_false", 6, "eq_nb_252", 203, 23], - ["is_bool", 7, 4, 203, 23], - ["jump_false", 7, "eq_nb_252", 203, 23], - ["eq_bool", 5, 1, 4, 203, 23], - ["jump", "eq_done_247", 203, 23], - "eq_nb_252", - ["false", 5, 203, 23], - "eq_done_247", - ["jump_false", 5, "tern_else_245", 203, 23], + ["jump", "eq_ni_258", 209, 23], + ["eq_int", 5, 1, 4, 209, 23], + ["jump", "eq_done_257", 209, 23], + "eq_ni_258", + ["is_num", 6, 1, 209, 23], + ["jump_false", 6, "eq_nn_259", 209, 23], + ["is_num", 7, 4, 209, 23], + ["jump_false", 7, "eq_nn_259", 209, 23], + ["eq_float", 5, 1, 4, 209, 23], + ["jump", "eq_done_257", 209, 23], + "eq_nn_259", + ["is_text", 6, 1, 209, 23], + ["jump_false", 6, "eq_nt_260", 209, 23], + ["is_text", 7, 4, 209, 23], + ["jump_false", 7, "eq_nt_260", 209, 23], + ["eq_text", 5, 1, 4, 209, 23], + ["jump", "eq_done_257", 209, 23], + "eq_nt_260", + ["is_null", 6, 1, 209, 23], + ["jump_false", 6, "eq_nnl_261", 209, 23], + ["is_null", 7, 4, 209, 23], + ["jump_false", 7, "eq_nnl_261", 209, 23], + ["true", 5, 209, 23], + ["jump", "eq_done_257", 209, 23], + "eq_nnl_261", + ["is_bool", 6, 1, 209, 23], + ["jump_false", 6, "eq_nb_262", 209, 23], + ["is_bool", 7, 4, 209, 23], + ["jump_false", 7, "eq_nb_262", 209, 23], + ["eq_bool", 5, 1, 4, 209, 23], + ["jump", "eq_done_257", 209, 23], + "eq_nb_262", + ["false", 5, 209, 23], + "eq_done_257", + ["jump_false", 5, "tern_else_255", 209, 23], ["record", 9, 0], - ["get", 11, 6, 1, 203, 34], - ["frame", 12, 11, 0, 203, 34], - ["null", 13, 203, 34], - ["setarg", 12, 0, 13, 203, 34], - ["invoke", 12, 10, 203, 34], - ["store_field", 9, 10, "id", 203, 34], - ["move", 8, 9, 203, 34], - ["jump", "tern_end_246", 203, 34], - "tern_else_245", - ["move", 8, 1, 203, 44], - "tern_end_246", - ["move", 2, 8, 203, 44], + ["get", 11, 6, 1, 209, 34], + ["frame", 12, 11, 0, 209, 34], + ["null", 13, 209, 34], + ["setarg", 12, 0, 13, 209, 34], + ["invoke", 12, 10, 209, 34], + ["store_field", 9, 10, "id", 209, 34], + ["move", 8, 9, 209, 34], + ["jump", "tern_end_256", 209, 34], + "tern_else_255", + ["move", 8, 1, 209, 44], + "tern_end_256", + ["move", 2, 8, 209, 44], ["record", 14, 0], - ["move", 3, 14, 204, 15], - ["get", 15, 27, 1, 205, 9], - ["store_dynamic", 3, 2, 15, 205, 9], - ["return", 3, 206, 10], - ["null", 16, 206, 10], - ["return", 16, 206, 10] + ["move", 3, 14, 210, 15], + ["get", 15, 27, 1, 211, 9], + ["store_dynamic", 3, 2, 15, 211, 9], + ["return", 3, 212, 10], + ["null", 16, 212, 10], + ["return", 16, 212, 10] ], "name": "create_actor", "filename": "internal/engine.cm", @@ -2334,54 +2468,54 @@ "nr_slots": 26, "nr_close_slots": 0, "instructions": [ - ["null", 4, 360, 23], - ["is_identical", 5, 1, 4, 360, 23], - ["jump_true", 5, "eq_done_255", 360, 23], - ["is_int", 6, 1, 360, 23], - ["jump_false", 6, "eq_ni_256", 360, 23], + ["null", 4, 366, 23], + ["is_identical", 5, 1, 4, 366, 23], + ["jump_true", 5, "eq_done_265", 366, 23], + ["is_int", 6, 1, 366, 23], + ["jump_false", 6, "eq_ni_266", 366, 23], "_nop_tc_1", - ["jump", "eq_ni_256", 360, 23], - ["eq_int", 5, 1, 4, 360, 23], - ["jump", "eq_done_255", 360, 23], - "eq_ni_256", - ["is_num", 6, 1, 360, 23], - ["jump_false", 6, "eq_nn_257", 360, 23], - ["is_num", 7, 4, 360, 23], - ["jump_false", 7, "eq_nn_257", 360, 23], - ["eq_float", 5, 1, 4, 360, 23], - ["jump", "eq_done_255", 360, 23], - "eq_nn_257", - ["is_text", 6, 1, 360, 23], - ["jump_false", 6, "eq_nt_258", 360, 23], - ["is_text", 7, 4, 360, 23], - ["jump_false", 7, "eq_nt_258", 360, 23], - ["eq_text", 5, 1, 4, 360, 23], - ["jump", "eq_done_255", 360, 23], - "eq_nt_258", - ["is_null", 6, 1, 360, 23], - ["jump_false", 6, "eq_nnl_259", 360, 23], - ["is_null", 7, 4, 360, 23], - ["jump_false", 7, "eq_nnl_259", 360, 23], - ["true", 5, 360, 23], - ["jump", "eq_done_255", 360, 23], - "eq_nnl_259", - ["is_bool", 6, 1, 360, 23], - ["jump_false", 6, "eq_nb_260", 360, 23], - ["is_bool", 7, 4, 360, 23], - ["jump_false", 7, "eq_nb_260", 360, 23], - ["eq_bool", 5, 1, 4, 360, 23], - ["jump", "eq_done_255", 360, 23], - "eq_nb_260", - ["false", 5, 360, 23], - "eq_done_255", - ["jump_false", 5, "tern_else_253", 360, 23], - ["access", 9, 256, 360, 30], - ["move", 8, 9, 360, 30], - ["jump", "tern_end_254", 360, 30], - "tern_else_253", - ["move", 8, 1, 360, 36], - "tern_end_254", - ["move", 3, 8, 360, 36], + ["jump", "eq_ni_266", 366, 23], + ["eq_int", 5, 1, 4, 366, 23], + ["jump", "eq_done_265", 366, 23], + "eq_ni_266", + ["is_num", 6, 1, 366, 23], + ["jump_false", 6, "eq_nn_267", 366, 23], + ["is_num", 7, 4, 366, 23], + ["jump_false", 7, "eq_nn_267", 366, 23], + ["eq_float", 5, 1, 4, 366, 23], + ["jump", "eq_done_265", 366, 23], + "eq_nn_267", + ["is_text", 6, 1, 366, 23], + ["jump_false", 6, "eq_nt_268", 366, 23], + ["is_text", 7, 4, 366, 23], + ["jump_false", 7, "eq_nt_268", 366, 23], + ["eq_text", 5, 1, 4, 366, 23], + ["jump", "eq_done_265", 366, 23], + "eq_nt_268", + ["is_null", 6, 1, 366, 23], + ["jump_false", 6, "eq_nnl_269", 366, 23], + ["is_null", 7, 4, 366, 23], + ["jump_false", 7, "eq_nnl_269", 366, 23], + ["true", 5, 366, 23], + ["jump", "eq_done_265", 366, 23], + "eq_nnl_269", + ["is_bool", 6, 1, 366, 23], + ["jump_false", 6, "eq_nb_270", 366, 23], + ["is_bool", 7, 4, 366, 23], + ["jump_false", 7, "eq_nb_270", 366, 23], + ["eq_bool", 5, 1, 4, 366, 23], + ["jump", "eq_done_265", 366, 23], + "eq_nb_270", + ["false", 5, 366, 23], + "eq_done_265", + ["jump_false", 5, "tern_else_263", 366, 23], + ["access", 9, 256, 366, 30], + ["move", 8, 9, 366, 30], + ["jump", "tern_end_264", 366, 30], + "tern_else_263", + ["move", 8, 1, 366, 36], + "tern_end_264", + ["move", 3, 8, 366, 36], [ "access", 10, @@ -2390,18 +2524,18 @@ "kind": "name", "make": "intrinsic" }, - 361, + 367, 26 ], - ["load_field", 11, 10, "random", 361, 26], - ["get", 13, 62, 1, 361, 14], - ["frame", 14, 13, 2, 361, 14], - ["null", 15, 361, 14], - ["setarg", 14, 0, 15, 361, 14], - ["setarg", 14, 1, 3, 361, 14], - ["setarg", 14, 2, 11, 361, 14], - ["invoke", 14, 12, 361, 14], - ["move", 2, 12, 361, 14], + ["load_field", 11, 10, "random", 367, 26], + ["get", 13, 62, 1, 367, 14], + ["frame", 14, 13, 2, 367, 14], + ["null", 15, 367, 14], + ["setarg", 14, 0, 15, 367, 14], + ["setarg", 14, 1, 3, 367, 14], + ["setarg", 14, 2, 11, 367, 14], + ["invoke", 14, 12, 367, 14], + ["move", 2, 12, 367, 14], [ "access", 17, @@ -2410,15 +2544,15 @@ "kind": "name", "make": "intrinsic" }, - 362, + 368, 3 ], - ["frame", 18, 17, 1, 362, 3], - ["null", 19, 362, 3], - ["setarg", 18, 0, 19, 362, 3], - ["setarg", 18, 1, 2, 362, 3], - ["invoke", 18, 16, 362, 3], - ["access", 20, "h", 363, 20], + ["frame", 18, 17, 1, 368, 3], + ["null", 19, 368, 3], + ["setarg", 18, 0, 19, 368, 3], + ["setarg", 18, 1, 2, 368, 3], + ["invoke", 18, 16, 368, 3], + ["access", 20, "h", 369, 20], [ "access", 22, @@ -2427,18 +2561,18 @@ "kind": "name", "make": "intrinsic" }, - 363, + 369, 10 ], - ["frame", 23, 22, 2, 363, 10], - ["null", 24, 363, 10], - ["setarg", 23, 0, 24, 363, 10], - ["setarg", 23, 1, 2, 363, 10], - ["setarg", 23, 2, 20, 363, 10], - ["invoke", 23, 21, 363, 10], - ["return", 21, 363, 10], - ["null", 25, 363, 10], - ["return", 25, 363, 10] + ["frame", 23, 22, 2, 369, 10], + ["null", 24, 369, 10], + ["setarg", 23, 0, 24, 369, 10], + ["setarg", 23, 1, 2, 369, 10], + ["setarg", 23, 2, 20, 369, 10], + ["invoke", 23, 21, 369, 10], + ["return", 21, 369, 10], + ["null", 25, 369, 10], + ["return", 25, 369, 10] ], "name": "guid", "filename": "internal/engine.cm", @@ -2450,39 +2584,39 @@ "nr_close_slots": 0, "instructions": [ ["record", 2, 0], - ["load_field", 3, 1, "rtt", 385, 14], - ["store_field", 2, 3, "latency", 385, 14], + ["load_field", 3, 1, "rtt", 391, 14], + ["store_field", 2, 3, "latency", 391, 14], ["record", 4, 0], - ["load_field", 5, 1, "incoming_bandwidth", 387, 17], - ["store_field", 4, 5, "incoming", 387, 17], - ["load_field", 6, 1, "outgoing_bandwidth", 388, 17], - ["store_field", 4, 6, "outgoing", 388, 17], - ["store_field", 2, 4, "bandwidth", 388, 17], + ["load_field", 5, 1, "incoming_bandwidth", 393, 17], + ["store_field", 4, 5, "incoming", 393, 17], + ["load_field", 6, 1, "outgoing_bandwidth", 394, 17], + ["store_field", 4, 6, "outgoing", 394, 17], + ["store_field", 2, 4, "bandwidth", 394, 17], ["record", 7, 0], - ["load_field", 8, 1, "last_send_time", 391, 18], - ["store_field", 7, 8, "last_sent", 391, 18], - ["load_field", 9, 1, "last_receive_time", 392, 22], - ["store_field", 7, 9, "last_received", 392, 22], - ["store_field", 2, 7, "activity", 392, 22], - ["load_field", 10, 1, "mtu", 394, 10], - ["store_field", 2, 10, "mtu", 394, 10], + ["load_field", 8, 1, "last_send_time", 397, 18], + ["store_field", 7, 8, "last_sent", 397, 18], + ["load_field", 9, 1, "last_receive_time", 398, 22], + ["store_field", 7, 9, "last_received", 398, 22], + ["store_field", 2, 7, "activity", 398, 22], + ["load_field", 10, 1, "mtu", 400, 10], + ["store_field", 2, 10, "mtu", 400, 10], ["record", 11, 0], - ["load_field", 12, 1, "incoming_data_total", 396, 23], - ["store_field", 11, 12, "incoming_total", 396, 23], - ["load_field", 13, 1, "outgoing_data_total", 397, 23], - ["store_field", 11, 13, "outgoing_total", 397, 23], - ["load_field", 14, 1, "reliable_data_in_transit", 398, 28], - ["store_field", 11, 14, "reliable_in_transit", 398, 28], - ["store_field", 2, 11, "data", 398, 28], - ["load_field", 15, 1, "rtt_variance", 400, 23], - ["store_field", 2, 15, "latency_variance", 400, 23], - ["load_field", 16, 1, "packet_loss", 401, 18], - ["store_field", 2, 16, "packet_loss", 401, 18], - ["load_field", 17, 1, "state", 402, 12], - ["store_field", 2, 17, "state", 402, 12], - ["return", 2, 402, 12], - ["null", 18, 402, 12], - ["return", 18, 402, 12] + ["load_field", 12, 1, "incoming_data_total", 402, 23], + ["store_field", 11, 12, "incoming_total", 402, 23], + ["load_field", 13, 1, "outgoing_data_total", 403, 23], + ["store_field", 11, 13, "outgoing_total", 403, 23], + ["load_field", 14, 1, "reliable_data_in_transit", 404, 28], + ["store_field", 11, 14, "reliable_in_transit", 404, 28], + ["store_field", 2, 11, "data", 404, 28], + ["load_field", 15, 1, "rtt_variance", 406, 23], + ["store_field", 2, 15, "latency_variance", 406, 23], + ["load_field", 16, 1, "packet_loss", 407, 18], + ["store_field", 2, 16, "packet_loss", 407, 18], + ["load_field", 17, 1, "state", 408, 12], + ["store_field", 2, 17, "state", 408, 12], + ["return", 2, 408, 12], + ["null", 18, 408, 12], + ["return", 18, 408, 12] ], "name": "peer_connection", "filename": "internal/engine.cm", @@ -2493,50 +2627,50 @@ "nr_slots": 23, "nr_close_slots": 0, "instructions": [ - ["get", 4, 49, 2, 451, 49], - ["is_proxy", 5, 4, 451, 49], - ["jump_false", 5, "record_path_275", 451, 49], - ["null", 6, 451, 49], - ["access", 7, "encode", 451, 49], - ["array", 8, 0, 451, 49], - ["push", 8, 1, 451, 49], - ["frame", 9, 4, 2, 451, 49], - ["setarg", 9, 0, 6, 451, 49], - ["setarg", 9, 1, 7, 451, 49], - ["setarg", 9, 2, 8, 451, 49], - ["invoke", 9, 3, 451, 49], - ["jump", "call_done_276", 451, 49], - "record_path_275", - ["load_field", 10, 4, "encode", 451, 49], - ["frame", 11, 10, 1, 451, 49], - ["setarg", 11, 0, 4, 451, 49], - ["setarg", 11, 1, 1, 451, 49], - ["invoke", 11, 3, 451, 49], - "call_done_276", - ["get", 13, 1, 1, 451, 37], - ["load_field", 14, 13, "peer", 451, 37], - ["is_proxy", 15, 14, 451, 37], - ["jump_false", 15, "record_path_277", 451, 37], - ["null", 16, 451, 37], - ["access", 17, "send", 451, 37], - ["array", 18, 0, 451, 37], - ["push", 18, 3, 451, 37], - ["frame", 19, 14, 2, 451, 37], - ["setarg", 19, 0, 16, 451, 37], - ["setarg", 19, 1, 17, 451, 37], - ["setarg", 19, 2, 18, 451, 37], - ["invoke", 19, 12, 451, 37], - ["jump", "call_done_278", 451, 37], - "record_path_277", - ["load_field", 20, 14, "send", 451, 37], - ["frame", 21, 20, 1, 451, 37], - ["setarg", 21, 0, 14, 451, 37], - ["setarg", 21, 1, 3, 451, 37], - ["invoke", 21, 12, 451, 37], - "call_done_278", - ["return", 12, 451, 37], - ["null", 22, 451, 37], - ["return", 22, 451, 37] + ["get", 4, 49, 2, 457, 49], + ["is_proxy", 5, 4, 457, 49], + ["jump_false", 5, "record_path_285", 457, 49], + ["null", 6, 457, 49], + ["access", 7, "encode", 457, 49], + ["array", 8, 0, 457, 49], + ["push", 8, 1, 457, 49], + ["frame", 9, 4, 2, 457, 49], + ["setarg", 9, 0, 6, 457, 49], + ["setarg", 9, 1, 7, 457, 49], + ["setarg", 9, 2, 8, 457, 49], + ["invoke", 9, 3, 457, 49], + ["jump", "call_done_286", 457, 49], + "record_path_285", + ["load_field", 10, 4, "encode", 457, 49], + ["frame", 11, 10, 1, 457, 49], + ["setarg", 11, 0, 4, 457, 49], + ["setarg", 11, 1, 1, 457, 49], + ["invoke", 11, 3, 457, 49], + "call_done_286", + ["get", 13, 1, 1, 457, 37], + ["load_field", 14, 13, "peer", 457, 37], + ["is_proxy", 15, 14, 457, 37], + ["jump_false", 15, "record_path_287", 457, 37], + ["null", 16, 457, 37], + ["access", 17, "send", 457, 37], + ["array", 18, 0, 457, 37], + ["push", 18, 3, 457, 37], + ["frame", 19, 14, 2, 457, 37], + ["setarg", 19, 0, 16, 457, 37], + ["setarg", 19, 1, 17, 457, 37], + ["setarg", 19, 2, 18, 457, 37], + ["invoke", 19, 12, 457, 37], + ["jump", "call_done_288", 457, 37], + "record_path_287", + ["load_field", 20, 14, "send", 457, 37], + ["frame", 21, 20, 1, 457, 37], + ["setarg", 21, 0, 14, 457, 37], + ["setarg", 21, 1, 3, 457, 37], + ["invoke", 21, 12, 457, 37], + "call_done_288", + ["return", 12, 457, 37], + ["null", 22, 457, 37], + ["return", 22, 457, 37] ], "name": "", "filename": "internal/engine.cm", @@ -2547,57 +2681,57 @@ "nr_slots": 13, "nr_close_slots": 0, "instructions": [ - ["get", 3, 24, 2, 458, 11], - ["load_dynamic", 4, 3, 1, 458, 17], - ["get", 5, 1, 1, 458, 24], - ["load_field", 6, 5, "peer", 458, 24], - ["is_identical", 7, 4, 6, 458, 24], - ["jump_true", 7, "eq_done_297", 458, 24], - ["is_int", 8, 4, 458, 24], - ["jump_false", 8, "eq_ni_298", 458, 24], - ["is_int", 9, 6, 458, 24], - ["jump_false", 9, "eq_ni_298", 458, 24], - ["eq_int", 7, 4, 6, 458, 24], - ["jump", "eq_done_297", 458, 24], - "eq_ni_298", - ["is_num", 8, 4, 458, 24], - ["jump_false", 8, "eq_nn_299", 458, 24], - ["is_num", 9, 6, 458, 24], - ["jump_false", 9, "eq_nn_299", 458, 24], - ["eq_float", 7, 4, 6, 458, 24], - ["jump", "eq_done_297", 458, 24], - "eq_nn_299", - ["is_text", 8, 4, 458, 24], - ["jump_false", 8, "eq_nt_300", 458, 24], - ["is_text", 9, 6, 458, 24], - ["jump_false", 9, "eq_nt_300", 458, 24], - ["eq_text", 7, 4, 6, 458, 24], - ["jump", "eq_done_297", 458, 24], - "eq_nt_300", - ["is_null", 8, 4, 458, 24], - ["jump_false", 8, "eq_nnl_301", 458, 24], - ["is_null", 9, 6, 458, 24], - ["jump_false", 9, "eq_nnl_301", 458, 24], - ["true", 7, 458, 24], - ["jump", "eq_done_297", 458, 24], - "eq_nnl_301", - ["is_bool", 8, 4, 458, 24], - ["jump_false", 8, "eq_nb_302", 458, 24], - ["is_bool", 9, 6, 458, 24], - ["jump_false", 9, "eq_nb_302", 458, 24], - ["eq_bool", 7, 4, 6, 458, 24], - ["jump", "eq_done_297", 458, 24], - "eq_nb_302", - ["false", 7, 458, 24], - "eq_done_297", - ["jump_false", 7, "if_else_295", 458, 24], - ["get", 11, 24, 2, 458, 39], - ["delete", 10, 11, 1, 458, 45], - ["jump", "if_end_296", 458, 45], - "if_else_295", - "if_end_296", - ["null", 12, 458, 45], - ["return", 12, 458, 45] + ["get", 3, 24, 2, 464, 11], + ["load_dynamic", 4, 3, 1, 464, 17], + ["get", 5, 1, 1, 464, 24], + ["load_field", 6, 5, "peer", 464, 24], + ["is_identical", 7, 4, 6, 464, 24], + ["jump_true", 7, "eq_done_307", 464, 24], + ["is_int", 8, 4, 464, 24], + ["jump_false", 8, "eq_ni_308", 464, 24], + ["is_int", 9, 6, 464, 24], + ["jump_false", 9, "eq_ni_308", 464, 24], + ["eq_int", 7, 4, 6, 464, 24], + ["jump", "eq_done_307", 464, 24], + "eq_ni_308", + ["is_num", 8, 4, 464, 24], + ["jump_false", 8, "eq_nn_309", 464, 24], + ["is_num", 9, 6, 464, 24], + ["jump_false", 9, "eq_nn_309", 464, 24], + ["eq_float", 7, 4, 6, 464, 24], + ["jump", "eq_done_307", 464, 24], + "eq_nn_309", + ["is_text", 8, 4, 464, 24], + ["jump_false", 8, "eq_nt_310", 464, 24], + ["is_text", 9, 6, 464, 24], + ["jump_false", 9, "eq_nt_310", 464, 24], + ["eq_text", 7, 4, 6, 464, 24], + ["jump", "eq_done_307", 464, 24], + "eq_nt_310", + ["is_null", 8, 4, 464, 24], + ["jump_false", 8, "eq_nnl_311", 464, 24], + ["is_null", 9, 6, 464, 24], + ["jump_false", 9, "eq_nnl_311", 464, 24], + ["true", 7, 464, 24], + ["jump", "eq_done_307", 464, 24], + "eq_nnl_311", + ["is_bool", 8, 4, 464, 24], + ["jump_false", 8, "eq_nb_312", 464, 24], + ["is_bool", 9, 6, 464, 24], + ["jump_false", 9, "eq_nb_312", 464, 24], + ["eq_bool", 7, 4, 6, 464, 24], + ["jump", "eq_done_307", 464, 24], + "eq_nb_312", + ["false", 7, 464, 24], + "eq_done_307", + ["jump_false", 7, "if_else_305", 464, 24], + ["get", 11, 24, 2, 464, 39], + ["delete", 10, 11, 1, 464, 45], + ["jump", "if_end_306", 464, 45], + "if_else_305", + "if_end_306", + ["null", 12, 464, 45], + ["return", 12, 464, 45] ], "name": "", "filename": "internal/engine.cm", @@ -2608,50 +2742,50 @@ "nr_slots": 175, "nr_close_slots": 0, "instructions": [ - ["null", 3, 443, 15], - ["null", 2, 444, 14], - ["load_field", 4, 1, "type", 446, 7], - ["access", 5, "connect", 446, 17], - ["is_identical", 6, 4, 5, 446, 17], - ["jump_true", 6, "eq_done_263", 446, 17], - ["is_int", 7, 4, 446, 17], - ["jump_false", 7, "eq_ni_264", 446, 17], + ["null", 3, 449, 15], + ["null", 2, 450, 14], + ["load_field", 4, 1, "type", 452, 7], + ["access", 5, "connect", 452, 17], + ["is_identical", 6, 4, 5, 452, 17], + ["jump_true", 6, "eq_done_273", 452, 17], + ["is_int", 7, 4, 452, 17], + ["jump_false", 7, "eq_ni_274", 452, 17], "_nop_tc_1", - ["jump", "eq_ni_264", 446, 17], - ["eq_int", 6, 4, 5, 446, 17], - ["jump", "eq_done_263", 446, 17], - "eq_ni_264", - ["is_num", 7, 4, 446, 17], - ["jump_false", 7, "eq_nn_265", 446, 17], - ["is_num", 8, 5, 446, 17], - ["jump_false", 8, "eq_nn_265", 446, 17], - ["eq_float", 6, 4, 5, 446, 17], - ["jump", "eq_done_263", 446, 17], - "eq_nn_265", - ["is_text", 7, 4, 446, 17], - ["jump_false", 7, "eq_nt_266", 446, 17], - ["is_text", 8, 5, 446, 17], - ["jump_false", 8, "eq_nt_266", 446, 17], - ["eq_text", 6, 4, 5, 446, 17], - ["jump", "eq_done_263", 446, 17], - "eq_nt_266", - ["is_null", 7, 4, 446, 17], - ["jump_false", 7, "eq_nnl_267", 446, 17], - ["is_null", 8, 5, 446, 17], - ["jump_false", 8, "eq_nnl_267", 446, 17], - ["true", 6, 446, 17], - ["jump", "eq_done_263", 446, 17], - "eq_nnl_267", - ["is_bool", 7, 4, 446, 17], - ["jump_false", 7, "eq_nb_268", 446, 17], - ["is_bool", 8, 5, 446, 17], - ["jump_false", 8, "eq_nb_268", 446, 17], - ["eq_bool", 6, 4, 5, 446, 17], - ["jump", "eq_done_263", 446, 17], - "eq_nb_268", - ["false", 6, 446, 17], - "eq_done_263", - ["jump_false", 6, "if_else_261", 446, 17], + ["jump", "eq_ni_274", 452, 17], + ["eq_int", 6, 4, 5, 452, 17], + ["jump", "eq_done_273", 452, 17], + "eq_ni_274", + ["is_num", 7, 4, 452, 17], + ["jump_false", 7, "eq_nn_275", 452, 17], + ["is_num", 8, 5, 452, 17], + ["jump_false", 8, "eq_nn_275", 452, 17], + ["eq_float", 6, 4, 5, 452, 17], + ["jump", "eq_done_273", 452, 17], + "eq_nn_275", + ["is_text", 7, 4, 452, 17], + ["jump_false", 7, "eq_nt_276", 452, 17], + ["is_text", 8, 5, 452, 17], + ["jump_false", 8, "eq_nt_276", 452, 17], + ["eq_text", 6, 4, 5, 452, 17], + ["jump", "eq_done_273", 452, 17], + "eq_nt_276", + ["is_null", 7, 4, 452, 17], + ["jump_false", 7, "eq_nnl_277", 452, 17], + ["is_null", 8, 5, 452, 17], + ["jump_false", 8, "eq_nnl_277", 452, 17], + ["true", 6, 452, 17], + ["jump", "eq_done_273", 452, 17], + "eq_nnl_277", + ["is_bool", 7, 4, 452, 17], + ["jump_false", 7, "eq_nb_278", 452, 17], + ["is_bool", 8, 5, 452, 17], + ["jump_false", 8, "eq_nb_278", 452, 17], + ["eq_bool", 6, 4, 5, 452, 17], + ["jump", "eq_done_273", 452, 17], + "eq_nb_278", + ["false", 6, 452, 17], + "eq_done_273", + ["jump_false", 6, "if_else_271", 452, 17], ["load_field", 9, 1, "peer", 1, 1], ["load_field", 10, 9, "address", 1, 1], ["load_field", 11, 1, "peer", 1, 1], @@ -2677,28 +2811,28 @@ ["setarg", 17, 1, 15, 1, 1], ["setarg", 17, 2, 13, 1, 1], ["invoke", 17, 16, 1, 1], - ["get", 20, 63, 1, 447, 5], - ["is_proxy", 21, 20, 447, 5], - ["jump_false", 21, "record_path_269", 447, 5], - ["null", 22, 447, 5], - ["access", 23, "system", 447, 5], - ["array", 24, 0, 447, 5], - ["push", 24, 16, 447, 5], - ["frame", 25, 20, 2, 447, 5], - ["setarg", 25, 0, 22, 447, 5], - ["setarg", 25, 1, 23, 447, 5], - ["setarg", 25, 2, 24, 447, 5], - ["invoke", 25, 19, 447, 5], - ["jump", "call_done_270", 447, 5], - "record_path_269", - ["load_field", 26, 20, "system", 447, 5], - ["frame", 27, 26, 1, 447, 5], - ["setarg", 27, 0, 20, 447, 5], - ["setarg", 27, 1, 16, 447, 5], - ["invoke", 27, 19, 447, 5], - "call_done_270", - ["load_field", 28, 1, "peer", 448, 49], - ["get", 29, 24, 1, 448, 5], + ["get", 20, 63, 1, 453, 5], + ["is_proxy", 21, 20, 453, 5], + ["jump_false", 21, "record_path_279", 453, 5], + ["null", 22, 453, 5], + ["access", 23, "system", 453, 5], + ["array", 24, 0, 453, 5], + ["push", 24, 16, 453, 5], + ["frame", 25, 20, 2, 453, 5], + ["setarg", 25, 0, 22, 453, 5], + ["setarg", 25, 1, 23, 453, 5], + ["setarg", 25, 2, 24, 453, 5], + ["invoke", 25, 19, 453, 5], + ["jump", "call_done_280", 453, 5], + "record_path_279", + ["load_field", 26, 20, "system", 453, 5], + ["frame", 27, 26, 1, 453, 5], + ["setarg", 27, 0, 20, 453, 5], + ["setarg", 27, 1, 16, 453, 5], + ["invoke", 27, 19, 453, 5], + "call_done_280", + ["load_field", 28, 1, "peer", 454, 49], + ["get", 29, 24, 1, 454, 5], ["load_field", 30, 1, "peer", 1, 1], ["load_field", 31, 30, "address", 1, 1], ["load_field", 32, 1, "peer", 1, 1], @@ -2725,158 +2859,158 @@ ["setarg", 38, 2, 34, 1, 1], ["invoke", 38, 37, 1, 1], ["store_dynamic", 29, 28, 37, 1, 1], - ["load_field", 40, 1, "peer", 449, 28], - ["get", 42, 55, 1, 449, 13], - ["is_proxy", 43, 42, 449, 13], - ["jump_false", 43, "record_path_271", 449, 13], - ["null", 44, 449, 13], - ["access", 45, "get", 449, 13], - ["array", 46, 0, 449, 13], - ["push", 46, 40, 449, 13], - ["frame", 47, 42, 2, 449, 13], - ["setarg", 47, 0, 44, 449, 13], - ["setarg", 47, 1, 45, 449, 13], - ["setarg", 47, 2, 46, 449, 13], - ["invoke", 47, 41, 449, 13], - ["jump", "call_done_272", 449, 13], - "record_path_271", - ["load_field", 48, 42, "get", 449, 13], - ["frame", 49, 48, 1, 449, 13], - ["setarg", 49, 0, 42, 449, 13], - ["setarg", 49, 1, 40, 449, 13], - ["invoke", 49, 41, 449, 13], - "call_done_272", - ["move", 3, 41, 449, 13], - ["jump_false", 3, "if_else_273", 450, 9], - ["function", 50, 19, 451, 21], - ["length", 52, 3, 451, 21], - ["int", 53, 0, 451, 21], - ["int", 57, 1, 451, 21], - ["null", 56, 451, 21], - "arrfor_loop_279", - ["lt_int", 54, 53, 52, 451, 21], - ["jump_false", 54, "arrfor_done_280", 451, 21], - ["load_index", 55, 3, 53, 451, 21], - ["frame", 58, 50, 2, 451, 21], - ["setarg", 58, 0, 56, 451, 21], - ["setarg", 58, 1, 55, 451, 21], - ["setarg", 58, 2, 53, 451, 21], - ["invoke", 58, 59, 451, 21], - ["add_int", 53, 53, 57, 451, 21], - ["jump", "arrfor_loop_279", 451, 21], - "arrfor_done_280", - ["null", 51, 451, 21], - ["access", 60, "sent queue out of queue", 452, 18], - ["get", 62, 63, 1, 452, 7], - ["is_proxy", 63, 62, 452, 7], - ["jump_false", 63, "record_path_281", 452, 7], - ["null", 64, 452, 7], - ["access", 65, "system", 452, 7], - ["array", 66, 0, 452, 7], - ["push", 66, 60, 452, 7], - ["frame", 67, 62, 2, 452, 7], - ["setarg", 67, 0, 64, 452, 7], - ["setarg", 67, 1, 65, 452, 7], - ["setarg", 67, 2, 66, 452, 7], - ["invoke", 67, 61, 452, 7], - ["jump", "call_done_282", 452, 7], + ["load_field", 40, 1, "peer", 455, 28], + ["get", 42, 55, 1, 455, 13], + ["is_proxy", 43, 42, 455, 13], + ["jump_false", 43, "record_path_281", 455, 13], + ["null", 44, 455, 13], + ["access", 45, "get", 455, 13], + ["array", 46, 0, 455, 13], + ["push", 46, 40, 455, 13], + ["frame", 47, 42, 2, 455, 13], + ["setarg", 47, 0, 44, 455, 13], + ["setarg", 47, 1, 45, 455, 13], + ["setarg", 47, 2, 46, 455, 13], + ["invoke", 47, 41, 455, 13], + ["jump", "call_done_282", 455, 13], "record_path_281", - ["load_field", 68, 62, "system", 452, 7], - ["frame", 69, 68, 1, 452, 7], - ["setarg", 69, 0, 62, 452, 7], - ["setarg", 69, 1, 60, 452, 7], - ["invoke", 69, 61, 452, 7], + ["load_field", 48, 42, "get", 455, 13], + ["frame", 49, 48, 1, 455, 13], + ["setarg", 49, 0, 42, 455, 13], + ["setarg", 49, 1, 40, 455, 13], + ["invoke", 49, 41, 455, 13], "call_done_282", - ["load_field", 70, 1, "peer", 453, 25], - ["get", 72, 55, 1, 453, 7], - ["is_proxy", 73, 72, 453, 7], - ["jump_false", 73, "record_path_283", 453, 7], - ["null", 74, 453, 7], - ["access", 75, "delete", 453, 7], - ["array", 76, 0, 453, 7], - ["push", 76, 70, 453, 7], - ["frame", 77, 72, 2, 453, 7], - ["setarg", 77, 0, 74, 453, 7], - ["setarg", 77, 1, 75, 453, 7], - ["setarg", 77, 2, 76, 453, 7], - ["invoke", 77, 71, 453, 7], - ["jump", "call_done_284", 453, 7], - "record_path_283", - ["load_field", 78, 72, "delete", 453, 7], - ["frame", 79, 78, 1, 453, 7], - ["setarg", 79, 0, 72, 453, 7], - ["setarg", 79, 1, 70, 453, 7], - ["invoke", 79, 71, 453, 7], - "call_done_284", - ["jump", "if_end_274", 453, 7], - "if_else_273", - "if_end_274", - ["jump", "if_end_262", 453, 7], - "if_else_261", - ["load_field", 80, 1, "type", 455, 14], - ["access", 81, "disconnect", 455, 24], - ["is_identical", 82, 80, 81, 455, 24], - ["jump_true", 82, "eq_done_287", 455, 24], - ["is_int", 83, 80, 455, 24], - ["jump_false", 83, "eq_ni_288", 455, 24], - "_nop_tc_2", - ["jump", "eq_ni_288", 455, 24], - ["eq_int", 82, 80, 81, 455, 24], - ["jump", "eq_done_287", 455, 24], - "eq_ni_288", - ["is_num", 83, 80, 455, 24], - ["jump_false", 83, "eq_nn_289", 455, 24], - ["is_num", 84, 81, 455, 24], - ["jump_false", 84, "eq_nn_289", 455, 24], - ["eq_float", 82, 80, 81, 455, 24], - ["jump", "eq_done_287", 455, 24], - "eq_nn_289", - ["is_text", 83, 80, 455, 24], - ["jump_false", 83, "eq_nt_290", 455, 24], - ["is_text", 84, 81, 455, 24], - ["jump_false", 84, "eq_nt_290", 455, 24], - ["eq_text", 82, 80, 81, 455, 24], - ["jump", "eq_done_287", 455, 24], - "eq_nt_290", - ["is_null", 83, 80, 455, 24], - ["jump_false", 83, "eq_nnl_291", 455, 24], - ["is_null", 84, 81, 455, 24], - ["jump_false", 84, "eq_nnl_291", 455, 24], - ["true", 82, 455, 24], - ["jump", "eq_done_287", 455, 24], - "eq_nnl_291", - ["is_bool", 83, 80, 455, 24], - ["jump_false", 83, "eq_nb_292", 455, 24], - ["is_bool", 84, 81, 455, 24], - ["jump_false", 84, "eq_nb_292", 455, 24], - ["eq_bool", 82, 80, 81, 455, 24], - ["jump", "eq_done_287", 455, 24], - "eq_nb_292", - ["false", 82, 455, 24], - "eq_done_287", - ["jump_false", 82, "if_else_285", 455, 24], - ["load_field", 85, 1, "peer", 456, 23], - ["get", 87, 55, 1, 456, 5], - ["is_proxy", 88, 87, 456, 5], - ["jump_false", 88, "record_path_293", 456, 5], - ["null", 89, 456, 5], - ["access", 90, "delete", 456, 5], - ["array", 91, 0, 456, 5], - ["push", 91, 85, 456, 5], - ["frame", 92, 87, 2, 456, 5], - ["setarg", 92, 0, 89, 456, 5], - ["setarg", 92, 1, 90, 456, 5], - ["setarg", 92, 2, 91, 456, 5], - ["invoke", 92, 86, 456, 5], - ["jump", "call_done_294", 456, 5], + ["move", 3, 41, 455, 13], + ["jump_false", 3, "if_else_283", 456, 9], + ["function", 50, 19, 457, 21], + ["length", 52, 3, 457, 21], + ["int", 53, 0, 457, 21], + ["int", 57, 1, 457, 21], + ["null", 56, 457, 21], + "arrfor_loop_289", + ["lt_int", 54, 53, 52, 457, 21], + ["jump_false", 54, "arrfor_done_290", 457, 21], + ["load_index", 55, 3, 53, 457, 21], + ["frame", 58, 50, 2, 457, 21], + ["setarg", 58, 0, 56, 457, 21], + ["setarg", 58, 1, 55, 457, 21], + ["setarg", 58, 2, 53, 457, 21], + ["invoke", 58, 59, 457, 21], + ["add_int", 53, 53, 57, 457, 21], + ["jump", "arrfor_loop_289", 457, 21], + "arrfor_done_290", + ["null", 51, 457, 21], + ["access", 60, "sent queue out of queue", 458, 18], + ["get", 62, 63, 1, 458, 7], + ["is_proxy", 63, 62, 458, 7], + ["jump_false", 63, "record_path_291", 458, 7], + ["null", 64, 458, 7], + ["access", 65, "system", 458, 7], + ["array", 66, 0, 458, 7], + ["push", 66, 60, 458, 7], + ["frame", 67, 62, 2, 458, 7], + ["setarg", 67, 0, 64, 458, 7], + ["setarg", 67, 1, 65, 458, 7], + ["setarg", 67, 2, 66, 458, 7], + ["invoke", 67, 61, 458, 7], + ["jump", "call_done_292", 458, 7], + "record_path_291", + ["load_field", 68, 62, "system", 458, 7], + ["frame", 69, 68, 1, 458, 7], + ["setarg", 69, 0, 62, 458, 7], + ["setarg", 69, 1, 60, 458, 7], + ["invoke", 69, 61, 458, 7], + "call_done_292", + ["load_field", 70, 1, "peer", 459, 25], + ["get", 72, 55, 1, 459, 7], + ["is_proxy", 73, 72, 459, 7], + ["jump_false", 73, "record_path_293", 459, 7], + ["null", 74, 459, 7], + ["access", 75, "delete", 459, 7], + ["array", 76, 0, 459, 7], + ["push", 76, 70, 459, 7], + ["frame", 77, 72, 2, 459, 7], + ["setarg", 77, 0, 74, 459, 7], + ["setarg", 77, 1, 75, 459, 7], + ["setarg", 77, 2, 76, 459, 7], + ["invoke", 77, 71, 459, 7], + ["jump", "call_done_294", 459, 7], "record_path_293", - ["load_field", 93, 87, "delete", 456, 5], - ["frame", 94, 93, 1, 456, 5], - ["setarg", 94, 0, 87, 456, 5], - ["setarg", 94, 1, 85, 456, 5], - ["invoke", 94, 86, 456, 5], + ["load_field", 78, 72, "delete", 459, 7], + ["frame", 79, 78, 1, 459, 7], + ["setarg", 79, 0, 72, 459, 7], + ["setarg", 79, 1, 70, 459, 7], + ["invoke", 79, 71, 459, 7], "call_done_294", - ["get", 95, 24, 1, 457, 18], + ["jump", "if_end_284", 459, 7], + "if_else_283", + "if_end_284", + ["jump", "if_end_272", 459, 7], + "if_else_271", + ["load_field", 80, 1, "type", 461, 14], + ["access", 81, "disconnect", 461, 24], + ["is_identical", 82, 80, 81, 461, 24], + ["jump_true", 82, "eq_done_297", 461, 24], + ["is_int", 83, 80, 461, 24], + ["jump_false", 83, "eq_ni_298", 461, 24], + "_nop_tc_2", + ["jump", "eq_ni_298", 461, 24], + ["eq_int", 82, 80, 81, 461, 24], + ["jump", "eq_done_297", 461, 24], + "eq_ni_298", + ["is_num", 83, 80, 461, 24], + ["jump_false", 83, "eq_nn_299", 461, 24], + ["is_num", 84, 81, 461, 24], + ["jump_false", 84, "eq_nn_299", 461, 24], + ["eq_float", 82, 80, 81, 461, 24], + ["jump", "eq_done_297", 461, 24], + "eq_nn_299", + ["is_text", 83, 80, 461, 24], + ["jump_false", 83, "eq_nt_300", 461, 24], + ["is_text", 84, 81, 461, 24], + ["jump_false", 84, "eq_nt_300", 461, 24], + ["eq_text", 82, 80, 81, 461, 24], + ["jump", "eq_done_297", 461, 24], + "eq_nt_300", + ["is_null", 83, 80, 461, 24], + ["jump_false", 83, "eq_nnl_301", 461, 24], + ["is_null", 84, 81, 461, 24], + ["jump_false", 84, "eq_nnl_301", 461, 24], + ["true", 82, 461, 24], + ["jump", "eq_done_297", 461, 24], + "eq_nnl_301", + ["is_bool", 83, 80, 461, 24], + ["jump_false", 83, "eq_nb_302", 461, 24], + ["is_bool", 84, 81, 461, 24], + ["jump_false", 84, "eq_nb_302", 461, 24], + ["eq_bool", 82, 80, 81, 461, 24], + ["jump", "eq_done_297", 461, 24], + "eq_nb_302", + ["false", 82, 461, 24], + "eq_done_297", + ["jump_false", 82, "if_else_295", 461, 24], + ["load_field", 85, 1, "peer", 462, 23], + ["get", 87, 55, 1, 462, 5], + ["is_proxy", 88, 87, 462, 5], + ["jump_false", 88, "record_path_303", 462, 5], + ["null", 89, 462, 5], + ["access", 90, "delete", 462, 5], + ["array", 91, 0, 462, 5], + ["push", 91, 85, 462, 5], + ["frame", 92, 87, 2, 462, 5], + ["setarg", 92, 0, 89, 462, 5], + ["setarg", 92, 1, 90, 462, 5], + ["setarg", 92, 2, 91, 462, 5], + ["invoke", 92, 86, 462, 5], + ["jump", "call_done_304", 462, 5], + "record_path_303", + ["load_field", 93, 87, "delete", 462, 5], + ["frame", 94, 93, 1, 462, 5], + ["setarg", 94, 0, 87, 462, 5], + ["setarg", 94, 1, 85, 462, 5], + ["invoke", 94, 86, 462, 5], + "call_done_304", + ["get", 95, 24, 1, 463, 18], [ "access", 97, @@ -2885,239 +3019,239 @@ "kind": "name", "make": "intrinsic" }, - 457, + 463, 12 ], - ["frame", 98, 97, 1, 457, 12], - ["null", 99, 457, 12], - ["setarg", 98, 0, 99, 457, 12], - ["setarg", 98, 1, 95, 457, 12], - ["invoke", 98, 96, 457, 12], - ["function", 100, 20, 457, 26], - ["length", 102, 96, 457, 26], - ["int", 103, 0, 457, 26], - ["int", 107, 1, 457, 26], - ["null", 106, 457, 26], - "arrfor_loop_303", - ["lt_int", 104, 103, 102, 457, 26], - ["jump_false", 104, "arrfor_done_304", 457, 26], - ["load_index", 105, 96, 103, 457, 26], - ["frame", 108, 100, 2, 457, 26], - ["setarg", 108, 0, 106, 457, 26], - ["setarg", 108, 1, 105, 457, 26], - ["setarg", 108, 2, 103, 457, 26], - ["invoke", 108, 109, 457, 26], - ["add_int", 103, 103, 107, 457, 26], - ["jump", "arrfor_loop_303", 457, 26], - "arrfor_done_304", - ["null", 101, 457, 26], - ["access", 110, "portal got disconnect from ", 460, 16], - ["load_field", 111, 1, "peer", 460, 48], - ["load_field", 112, 111, "address", 460, 48], + ["frame", 98, 97, 1, 463, 12], + ["null", 99, 463, 12], + ["setarg", 98, 0, 99, 463, 12], + ["setarg", 98, 1, 95, 463, 12], + ["invoke", 98, 96, 463, 12], + ["function", 100, 20, 463, 26], + ["length", 102, 96, 463, 26], + ["int", 103, 0, 463, 26], + ["int", 107, 1, 463, 26], + ["null", 106, 463, 26], + "arrfor_loop_313", + ["lt_int", 104, 103, 102, 463, 26], + ["jump_false", 104, "arrfor_done_314", 463, 26], + ["load_index", 105, 96, 103, 463, 26], + ["frame", 108, 100, 2, 463, 26], + ["setarg", 108, 0, 106, 463, 26], + ["setarg", 108, 1, 105, 463, 26], + ["setarg", 108, 2, 103, 463, 26], + ["invoke", 108, 109, 463, 26], + ["add_int", 103, 103, 107, 463, 26], + ["jump", "arrfor_loop_313", 463, 26], + "arrfor_done_314", + ["null", 101, 463, 26], + ["access", 110, "portal got disconnect from ", 466, 16], + ["load_field", 111, 1, "peer", 466, 48], + ["load_field", 112, 111, "address", 466, 48], "_nop_tc_3", - ["jump", "add_ni_305", 460, 48], - ["is_int", 115, 112, 460, 48], - ["jump_false", 115, "add_ni_305", 460, 48], - ["add_int", 113, 110, 112, 460, 48], - ["jump", "add_done_307", 460, 48], - "add_ni_305", - ["is_text", 115, 112, 460, 48], - ["jump_false", 115, "add_nt_306", 460, 48], - ["concat", 113, 110, 112, 460, 48], - ["jump", "add_done_307", 460, 48], - "add_nt_306", - ["is_num", 114, 110, 460, 48], - ["jump_false", 114, "add_err_308", 460, 48], - ["is_num", 115, 112, 460, 48], - ["jump_false", 115, "add_err_308", 460, 48], - ["add_float", 113, 110, 112, 460, 48], - ["jump", "add_done_307", 460, 48], - "add_err_308", - ["disrupt", 460, 48], - "add_done_307", - ["access", 116, ":", 460, 65], - ["is_int", 118, 113, 460, 65], - ["jump_false", 118, "add_ni_309", 460, 65], + ["jump", "add_ni_315", 466, 48], + ["is_int", 115, 112, 466, 48], + ["jump_false", 115, "add_ni_315", 466, 48], + ["add_int", 113, 110, 112, 466, 48], + ["jump", "add_done_317", 466, 48], + "add_ni_315", + ["is_text", 115, 112, 466, 48], + ["jump_false", 115, "add_nt_316", 466, 48], + ["concat", 113, 110, 112, 466, 48], + ["jump", "add_done_317", 466, 48], + "add_nt_316", + ["is_num", 114, 110, 466, 48], + ["jump_false", 114, "add_err_318", 466, 48], + ["is_num", 115, 112, 466, 48], + ["jump_false", 115, "add_err_318", 466, 48], + ["add_float", 113, 110, 112, 466, 48], + ["jump", "add_done_317", 466, 48], + "add_err_318", + ["disrupt", 466, 48], + "add_done_317", + ["access", 116, ":", 466, 65], + ["is_int", 118, 113, 466, 65], + ["jump_false", 118, "add_ni_319", 466, 65], "_nop_tc_4", - ["jump", "add_ni_309", 460, 65], - ["add_int", 117, 113, 116, 460, 65], - ["jump", "add_done_311", 460, 65], - "add_ni_309", - ["is_text", 118, 113, 460, 65], - ["jump_false", 118, "add_nt_310", 460, 65], - ["concat", 117, 113, 116, 460, 65], - ["jump", "add_done_311", 460, 65], - "add_nt_310", - ["is_num", 118, 113, 460, 65], - ["jump_false", 118, "add_err_312", 460, 65], - ["is_num", 119, 116, 460, 65], - ["jump_false", 119, "add_err_312", 460, 65], - ["add_float", 117, 113, 116, 460, 65], - ["jump", "add_done_311", 460, 65], - "add_err_312", - ["disrupt", 460, 65], - "add_done_311", - ["load_field", 120, 1, "peer", 460, 71], - ["load_field", 121, 120, "port", 460, 71], - ["is_int", 123, 117, 460, 71], - ["jump_false", 123, "add_ni_313", 460, 71], - ["is_int", 124, 121, 460, 71], - ["jump_false", 124, "add_ni_313", 460, 71], - ["add_int", 122, 117, 121, 460, 71], - ["jump", "add_done_315", 460, 71], - "add_ni_313", - ["is_text", 123, 117, 460, 71], - ["jump_false", 123, "add_nt_314", 460, 71], - ["is_text", 124, 121, 460, 71], - ["jump_false", 124, "add_nt_314", 460, 71], - ["concat", 122, 117, 121, 460, 71], - ["jump", "add_done_315", 460, 71], - "add_nt_314", - ["is_num", 123, 117, 460, 71], - ["jump_false", 123, "add_err_316", 460, 71], - ["is_num", 124, 121, 460, 71], - ["jump_false", 124, "add_err_316", 460, 71], - ["add_float", 122, 117, 121, 460, 71], - ["jump", "add_done_315", 460, 71], - "add_err_316", - ["disrupt", 460, 71], - "add_done_315", - ["get", 126, 63, 1, 460, 5], - ["is_proxy", 127, 126, 460, 5], - ["jump_false", 127, "record_path_317", 460, 5], - ["null", 128, 460, 5], - ["access", 129, "system", 460, 5], - ["array", 130, 0, 460, 5], - ["push", 130, 122, 460, 5], - ["frame", 131, 126, 2, 460, 5], - ["setarg", 131, 0, 128, 460, 5], - ["setarg", 131, 1, 129, 460, 5], - ["setarg", 131, 2, 130, 460, 5], - ["invoke", 131, 125, 460, 5], - ["jump", "call_done_318", 460, 5], - "record_path_317", - ["load_field", 132, 126, "system", 460, 5], - ["frame", 133, 132, 1, 460, 5], - ["setarg", 133, 0, 126, 460, 5], - ["setarg", 133, 1, 122, 460, 5], - ["invoke", 133, 125, 460, 5], - "call_done_318", - ["jump", "if_end_286", 460, 5], - "if_else_285", - ["load_field", 134, 1, "type", 461, 14], - ["access", 135, "receive", 461, 24], - ["is_identical", 136, 134, 135, 461, 24], - ["jump_true", 136, "eq_done_321", 461, 24], - ["is_int", 137, 134, 461, 24], - ["jump_false", 137, "eq_ni_322", 461, 24], - "_nop_tc_5", - ["jump", "eq_ni_322", 461, 24], - ["eq_int", 136, 134, 135, 461, 24], - ["jump", "eq_done_321", 461, 24], - "eq_ni_322", - ["is_num", 137, 134, 461, 24], - ["jump_false", 137, "eq_nn_323", 461, 24], - ["is_num", 138, 135, 461, 24], - ["jump_false", 138, "eq_nn_323", 461, 24], - ["eq_float", 136, 134, 135, 461, 24], - ["jump", "eq_done_321", 461, 24], - "eq_nn_323", - ["is_text", 137, 134, 461, 24], - ["jump_false", 137, "eq_nt_324", 461, 24], - ["is_text", 138, 135, 461, 24], - ["jump_false", 138, "eq_nt_324", 461, 24], - ["eq_text", 136, 134, 135, 461, 24], - ["jump", "eq_done_321", 461, 24], - "eq_nt_324", - ["is_null", 137, 134, 461, 24], - ["jump_false", 137, "eq_nnl_325", 461, 24], - ["is_null", 138, 135, 461, 24], - ["jump_false", 138, "eq_nnl_325", 461, 24], - ["true", 136, 461, 24], - ["jump", "eq_done_321", 461, 24], - "eq_nnl_325", - ["is_bool", 137, 134, 461, 24], - ["jump_false", 137, "eq_nb_326", 461, 24], - ["is_bool", 138, 135, 461, 24], - ["jump_false", 138, "eq_nb_326", 461, 24], - ["eq_bool", 136, 134, 135, 461, 24], - ["jump", "eq_done_321", 461, 24], - "eq_nb_326", - ["false", 136, 461, 24], - "eq_done_321", - ["jump_false", 136, "if_else_319", 461, 24], - ["load_field", 139, 1, "data", 462, 24], - ["get", 141, 49, 1, 462, 12], - ["is_proxy", 142, 141, 462, 12], - ["jump_false", 142, "record_path_327", 462, 12], - ["null", 143, 462, 12], - ["access", 144, "decode", 462, 12], - ["array", 145, 0, 462, 12], - ["push", 145, 139, 462, 12], - ["frame", 146, 141, 2, 462, 12], - ["setarg", 146, 0, 143, 462, 12], - ["setarg", 146, 1, 144, 462, 12], - ["setarg", 146, 2, 145, 462, 12], - ["invoke", 146, 140, 462, 12], - ["jump", "call_done_328", 462, 12], + ["jump", "add_ni_319", 466, 65], + ["add_int", 117, 113, 116, 466, 65], + ["jump", "add_done_321", 466, 65], + "add_ni_319", + ["is_text", 118, 113, 466, 65], + ["jump_false", 118, "add_nt_320", 466, 65], + ["concat", 117, 113, 116, 466, 65], + ["jump", "add_done_321", 466, 65], + "add_nt_320", + ["is_num", 118, 113, 466, 65], + ["jump_false", 118, "add_err_322", 466, 65], + ["is_num", 119, 116, 466, 65], + ["jump_false", 119, "add_err_322", 466, 65], + ["add_float", 117, 113, 116, 466, 65], + ["jump", "add_done_321", 466, 65], + "add_err_322", + ["disrupt", 466, 65], + "add_done_321", + ["load_field", 120, 1, "peer", 466, 71], + ["load_field", 121, 120, "port", 466, 71], + ["is_int", 123, 117, 466, 71], + ["jump_false", 123, "add_ni_323", 466, 71], + ["is_int", 124, 121, 466, 71], + ["jump_false", 124, "add_ni_323", 466, 71], + ["add_int", 122, 117, 121, 466, 71], + ["jump", "add_done_325", 466, 71], + "add_ni_323", + ["is_text", 123, 117, 466, 71], + ["jump_false", 123, "add_nt_324", 466, 71], + ["is_text", 124, 121, 466, 71], + ["jump_false", 124, "add_nt_324", 466, 71], + ["concat", 122, 117, 121, 466, 71], + ["jump", "add_done_325", 466, 71], + "add_nt_324", + ["is_num", 123, 117, 466, 71], + ["jump_false", 123, "add_err_326", 466, 71], + ["is_num", 124, 121, 466, 71], + ["jump_false", 124, "add_err_326", 466, 71], + ["add_float", 122, 117, 121, 466, 71], + ["jump", "add_done_325", 466, 71], + "add_err_326", + ["disrupt", 466, 71], + "add_done_325", + ["get", 126, 63, 1, 466, 5], + ["is_proxy", 127, 126, 466, 5], + ["jump_false", 127, "record_path_327", 466, 5], + ["null", 128, 466, 5], + ["access", 129, "system", 466, 5], + ["array", 130, 0, 466, 5], + ["push", 130, 122, 466, 5], + ["frame", 131, 126, 2, 466, 5], + ["setarg", 131, 0, 128, 466, 5], + ["setarg", 131, 1, 129, 466, 5], + ["setarg", 131, 2, 130, 466, 5], + ["invoke", 131, 125, 466, 5], + ["jump", "call_done_328", 466, 5], "record_path_327", - ["load_field", 147, 141, "decode", 462, 12], - ["frame", 148, 147, 1, 462, 12], - ["setarg", 148, 0, 141, 462, 12], - ["setarg", 148, 1, 139, 462, 12], - ["invoke", 148, 140, 462, 12], + ["load_field", 132, 126, "system", 466, 5], + ["frame", 133, 132, 1, 466, 5], + ["setarg", 133, 0, 126, 466, 5], + ["setarg", 133, 1, 122, 466, 5], + ["invoke", 133, 125, 466, 5], "call_done_328", - ["move", 2, 140, 462, 12], - ["load_field", 149, 2, "replycc", 463, 9], - ["move", 150, 149, 463, 9], - ["jump_false", 150, "and_end_331", 463, 9], - ["load_field", 151, 2, "replycc", 463, 26], - ["load_field", 152, 151, "address", 463, 26], - ["not", 153, 152, 463, 26], - ["move", 150, 153, 463, 26], - "and_end_331", - ["jump_false", 150, "if_else_329", 463, 26], - ["load_field", 154, 1, "peer", 464, 41], - ["load_field", 155, 154, "address", 464, 41], - ["load_field", 156, 2, "replycc", 464, 7], - ["get", 157, 27, 1, 464, 20], - ["load_dynamic", 158, 156, 157, 464, 20], - ["store_field", 158, 155, "address", 464, 20], - ["load_field", 159, 1, "peer", 465, 38], - ["load_field", 160, 159, "port", 465, 38], - ["load_field", 161, 2, "replycc", 465, 7], - ["get", 162, 27, 1, 465, 20], - ["load_dynamic", 163, 161, 162, 465, 20], - ["store_field", 163, 160, "port", 465, 20], - ["jump", "if_end_330", 465, 20], + ["jump", "if_end_296", 466, 5], + "if_else_295", + ["load_field", 134, 1, "type", 467, 14], + ["access", 135, "receive", 467, 24], + ["is_identical", 136, 134, 135, 467, 24], + ["jump_true", 136, "eq_done_331", 467, 24], + ["is_int", 137, 134, 467, 24], + ["jump_false", 137, "eq_ni_332", 467, 24], + "_nop_tc_5", + ["jump", "eq_ni_332", 467, 24], + ["eq_int", 136, 134, 135, 467, 24], + ["jump", "eq_done_331", 467, 24], + "eq_ni_332", + ["is_num", 137, 134, 467, 24], + ["jump_false", 137, "eq_nn_333", 467, 24], + ["is_num", 138, 135, 467, 24], + ["jump_false", 138, "eq_nn_333", 467, 24], + ["eq_float", 136, 134, 135, 467, 24], + ["jump", "eq_done_331", 467, 24], + "eq_nn_333", + ["is_text", 137, 134, 467, 24], + ["jump_false", 137, "eq_nt_334", 467, 24], + ["is_text", 138, 135, 467, 24], + ["jump_false", 138, "eq_nt_334", 467, 24], + ["eq_text", 136, 134, 135, 467, 24], + ["jump", "eq_done_331", 467, 24], + "eq_nt_334", + ["is_null", 137, 134, 467, 24], + ["jump_false", 137, "eq_nnl_335", 467, 24], + ["is_null", 138, 135, 467, 24], + ["jump_false", 138, "eq_nnl_335", 467, 24], + ["true", 136, 467, 24], + ["jump", "eq_done_331", 467, 24], + "eq_nnl_335", + ["is_bool", 137, 134, 467, 24], + ["jump_false", 137, "eq_nb_336", 467, 24], + ["is_bool", 138, 135, 467, 24], + ["jump_false", 138, "eq_nb_336", 467, 24], + ["eq_bool", 136, 134, 135, 467, 24], + ["jump", "eq_done_331", 467, 24], + "eq_nb_336", + ["false", 136, 467, 24], + "eq_done_331", + ["jump_false", 136, "if_else_329", 467, 24], + ["load_field", 139, 1, "data", 468, 24], + ["get", 141, 49, 1, 468, 12], + ["is_proxy", 142, 141, 468, 12], + ["jump_false", 142, "record_path_337", 468, 12], + ["null", 143, 468, 12], + ["access", 144, "decode", 468, 12], + ["array", 145, 0, 468, 12], + ["push", 145, 139, 468, 12], + ["frame", 146, 141, 2, 468, 12], + ["setarg", 146, 0, 143, 468, 12], + ["setarg", 146, 1, 144, 468, 12], + ["setarg", 146, 2, 145, 468, 12], + ["invoke", 146, 140, 468, 12], + ["jump", "call_done_338", 468, 12], + "record_path_337", + ["load_field", 147, 141, "decode", 468, 12], + ["frame", 148, 147, 1, 468, 12], + ["setarg", 148, 0, 141, 468, 12], + ["setarg", 148, 1, 139, 468, 12], + ["invoke", 148, 140, 468, 12], + "call_done_338", + ["move", 2, 140, 468, 12], + ["load_field", 149, 2, "replycc", 469, 9], + ["move", 150, 149, 469, 9], + ["jump_false", 150, "and_end_341", 469, 9], + ["load_field", 151, 2, "replycc", 469, 26], + ["load_field", 152, 151, "address", 469, 26], + ["not", 153, 152, 469, 26], + ["move", 150, 153, 469, 26], + "and_end_341", + ["jump_false", 150, "if_else_339", 469, 26], + ["load_field", 154, 1, "peer", 470, 41], + ["load_field", 155, 154, "address", 470, 41], + ["load_field", 156, 2, "replycc", 470, 7], + ["get", 157, 27, 1, 470, 20], + ["load_dynamic", 158, 156, 157, 470, 20], + ["store_field", 158, 155, "address", 470, 20], + ["load_field", 159, 1, "peer", 471, 38], + ["load_field", 160, 159, "port", 471, 38], + ["load_field", 161, 2, "replycc", 471, 7], + ["get", 162, 27, 1, 471, 20], + ["load_dynamic", 163, 161, 162, 471, 20], + ["store_field", 163, 160, "port", 471, 20], + ["jump", "if_end_340", 471, 20], + "if_else_339", + "if_end_340", + ["load_field", 164, 2, "data", 473, 9], + ["jump_false", 164, "if_else_342", 473, 9], + ["load_field", 165, 2, "data", 473, 45], + ["get", 167, 61, 1, 473, 20], + ["frame", 168, 167, 2, 473, 20], + ["null", 169, 473, 20], + ["setarg", 168, 0, 169, 473, 20], + ["setarg", 168, 1, 165, 473, 20], + ["setarg", 168, 2, 1, 473, 20], + ["invoke", 168, 166, 473, 20], + ["jump", "if_end_343", 473, 20], + "if_else_342", + "if_end_343", + ["get", 171, 8, 1, 474, 5], + ["frame", 172, 171, 1, 474, 5], + ["null", 173, 474, 5], + ["setarg", 172, 0, 173, 474, 5], + ["setarg", 172, 1, 2, 474, 5], + ["invoke", 172, 170, 474, 5], + ["jump", "if_end_330", 474, 5], "if_else_329", "if_end_330", - ["load_field", 164, 2, "data", 467, 9], - ["jump_false", 164, "if_else_332", 467, 9], - ["load_field", 165, 2, "data", 467, 45], - ["get", 167, 61, 1, 467, 20], - ["frame", 168, 167, 2, 467, 20], - ["null", 169, 467, 20], - ["setarg", 168, 0, 169, 467, 20], - ["setarg", 168, 1, 165, 467, 20], - ["setarg", 168, 2, 1, 467, 20], - ["invoke", 168, 166, 467, 20], - ["jump", "if_end_333", 467, 20], - "if_else_332", - "if_end_333", - ["get", 171, 8, 1, 468, 5], - ["frame", 172, 171, 1, 468, 5], - ["null", 173, 468, 5], - ["setarg", 172, 0, 173, 468, 5], - ["setarg", 172, 1, 2, 468, 5], - ["invoke", 172, 170, 468, 5], - ["jump", "if_end_320", 468, 5], - "if_else_319", - "if_end_320", - "if_end_286", - "if_end_262", - ["null", 174, 468, 5], - ["return", 174, 468, 5] + "if_end_296", + "if_end_272", + ["null", 174, 474, 5], + ["return", 174, 474, 5] ], "name": "handle_host", "filename": "internal/engine.cm", @@ -3128,24 +3262,24 @@ "nr_slots": 13, "nr_close_slots": 0, "instructions": [ - ["get", 3, 1, 1, 479, 16], - ["in", 4, 1, 3, 479, 16], - ["jump_false", 4, "if_else_339", 479, 16], - ["get", 5, 1, 1, 480, 32], - ["load_dynamic", 6, 5, 1, 480, 36], - ["get", 7, 2, 1, 480, 42], - ["get", 9, 61, 2, 480, 7], - ["frame", 10, 9, 2, 480, 7], - ["null", 11, 480, 7], - ["setarg", 10, 0, 11, 480, 7], - ["setarg", 10, 1, 6, 480, 7], - ["setarg", 10, 2, 7, 480, 7], - ["invoke", 10, 8, 480, 7], - ["jump", "if_end_340", 480, 7], - "if_else_339", - "if_end_340", - ["null", 12, 480, 7], - ["return", 12, 480, 7] + ["get", 3, 1, 1, 485, 16], + ["in", 4, 1, 3, 485, 16], + ["jump_false", 4, "if_else_349", 485, 16], + ["get", 5, 1, 1, 486, 32], + ["load_dynamic", 6, 5, 1, 486, 36], + ["get", 7, 2, 1, 486, 42], + ["get", 9, 61, 2, 486, 7], + ["frame", 10, 9, 2, 486, 7], + ["null", 11, 486, 7], + ["setarg", 10, 0, 11, 486, 7], + ["setarg", 10, 1, 6, 486, 7], + ["setarg", 10, 2, 7, 486, 7], + ["invoke", 10, 8, 486, 7], + ["jump", "if_end_350", 486, 7], + "if_else_349", + "if_end_350", + ["null", 12, 486, 7], + ["return", 12, 486, 7] ], "name": "", "filename": "internal/engine.cm", @@ -3156,38 +3290,38 @@ "nr_slots": 36, "nr_close_slots": 0, "instructions": [ - ["is_record", 3, 1, 473, 18], + ["is_record", 3, 1, 479, 18], "_nop_bl_1", - ["jump_true", 3, "if_else_334", 473, 18], - ["null", 5, 473, 24], - ["return", 5, 473, 24], - ["jump", "if_end_335", 473, 24], - "if_else_334", - "if_end_335", - ["get", 6, 27, 1, 474, 11], - ["load_dynamic", 7, 1, 6, 474, 11], - ["move", 8, 7, 474, 11], - ["jump_false", 8, "and_end_338", 474, 11], - ["get", 9, 27, 1, 474, 30], - ["load_dynamic", 10, 1, 9, 474, 30], - ["load_field", 11, 10, "address", 474, 30], - ["not", 12, 11, 474, 30], - ["move", 8, 12, 474, 30], - "and_end_338", - ["jump_false", 8, "if_else_336", 474, 30], - ["load_field", 13, 2, "peer", 475, 30], - ["load_field", 14, 13, "address", 475, 30], - ["get", 15, 27, 1, 475, 9], - ["load_dynamic", 16, 1, 15, 475, 9], - ["store_field", 16, 14, "address", 475, 9], - ["load_field", 17, 2, "peer", 476, 27], - ["load_field", 18, 17, "port", 476, 27], - ["get", 19, 27, 1, 476, 9], - ["load_dynamic", 20, 1, 19, 476, 9], - ["store_field", 20, 18, "port", 476, 9], - ["jump", "if_end_337", 476, 9], - "if_else_336", - "if_end_337", + ["jump_true", 3, "if_else_344", 479, 18], + ["null", 5, 479, 24], + ["return", 5, 479, 24], + ["jump", "if_end_345", 479, 24], + "if_else_344", + "if_end_345", + ["get", 6, 27, 1, 480, 11], + ["load_dynamic", 7, 1, 6, 480, 11], + ["move", 8, 7, 480, 11], + ["jump_false", 8, "and_end_348", 480, 11], + ["get", 9, 27, 1, 480, 30], + ["load_dynamic", 10, 1, 9, 480, 30], + ["load_field", 11, 10, "address", 480, 30], + ["not", 12, 11, 480, 30], + ["move", 8, 12, 480, 30], + "and_end_348", + ["jump_false", 8, "if_else_346", 480, 30], + ["load_field", 13, 2, "peer", 481, 30], + ["load_field", 14, 13, "address", 481, 30], + ["get", 15, 27, 1, 481, 9], + ["load_dynamic", 16, 1, 15, 481, 9], + ["store_field", 16, 14, "address", 481, 9], + ["load_field", 17, 2, "peer", 482, 27], + ["load_field", 18, 17, "port", 482, 27], + ["get", 19, 27, 1, 482, 9], + ["load_dynamic", 20, 1, 19, 482, 9], + ["store_field", 20, 18, "port", 482, 9], + ["jump", "if_end_347", 482, 9], + "if_else_346", + "if_end_347", [ "access", 22, @@ -3196,34 +3330,34 @@ "kind": "name", "make": "intrinsic" }, - 478, + 484, 10 ], - ["frame", 23, 22, 1, 478, 10], - ["null", 24, 478, 10], - ["setarg", 23, 0, 24, 478, 10], - ["setarg", 23, 1, 1, 478, 10], - ["invoke", 23, 21, 478, 10], - ["function", 25, 22, 478, 22], - ["length", 27, 21, 478, 22], - ["int", 28, 0, 478, 22], - ["int", 32, 1, 478, 22], - ["null", 31, 478, 22], - "arrfor_loop_341", - ["lt_int", 29, 28, 27, 478, 22], - ["jump_false", 29, "arrfor_done_342", 478, 22], - ["load_index", 30, 21, 28, 478, 22], - ["frame", 33, 25, 2, 478, 22], - ["setarg", 33, 0, 31, 478, 22], - ["setarg", 33, 1, 30, 478, 22], - ["setarg", 33, 2, 28, 478, 22], - ["invoke", 33, 34, 478, 22], - ["add_int", 28, 28, 32, 478, 22], - ["jump", "arrfor_loop_341", 478, 22], - "arrfor_done_342", - ["null", 26, 478, 22], - ["null", 35, 478, 22], - ["return", 35, 478, 22] + ["frame", 23, 22, 1, 484, 10], + ["null", 24, 484, 10], + ["setarg", 23, 0, 24, 484, 10], + ["setarg", 23, 1, 1, 484, 10], + ["invoke", 23, 21, 484, 10], + ["function", 25, 22, 484, 22], + ["length", 27, 21, 484, 22], + ["int", 28, 0, 484, 22], + ["int", 32, 1, 484, 22], + ["null", 31, 484, 22], + "arrfor_loop_351", + ["lt_int", 29, 28, 27, 484, 22], + ["jump_false", 29, "arrfor_done_352", 484, 22], + ["load_index", 30, 21, 28, 484, 22], + ["frame", 33, 25, 2, 484, 22], + ["setarg", 33, 0, 31, 484, 22], + ["setarg", 33, 1, 30, 484, 22], + ["setarg", 33, 2, 28, 484, 22], + ["invoke", 33, 34, 484, 22], + ["add_int", 28, 28, 32, 484, 22], + ["jump", "arrfor_loop_351", 484, 22], + "arrfor_done_352", + ["null", 26, 484, 22], + ["null", 35, 484, 22], + ["return", 35, 484, 22] ], "name": "populate_actor_addresses", "filename": "internal/engine.cm", @@ -3234,19 +3368,19 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["get", 3, 43, 1, 554, 8], + ["get", 3, 43, 1, 560, 8], ["record", 4, 0], - ["store_field", 4, 1, "actor", 554, 24], - ["store_field", 4, 2, "send", 554, 30], - ["is_array", 5, 3, 554, 30], - ["jump_false", 5, "push_err_343", 554, 30], - ["push", 3, 4, 554, 30], - ["jump", "push_done_344", 554, 30], - "push_err_343", - ["disrupt", 554, 30], - "push_done_344", - ["null", 6, 554, 30], - ["return", 6, 554, 30] + ["store_field", 4, 1, "actor", 560, 24], + ["store_field", 4, 2, "send", 560, 30], + ["is_array", 5, 3, 560, 30], + ["jump_false", 5, "push_err_353", 560, 30], + ["push", 3, 4, 560, 30], + ["jump", "push_done_354", 560, 30], + "push_err_353", + ["disrupt", 560, 30], + "push_done_354", + ["null", 6, 560, 30], + ["return", 6, 560, 30] ], "name": "actor_prep", "filename": "internal/engine.cm", @@ -3257,15 +3391,15 @@ "nr_slots": 8, "nr_close_slots": 0, "instructions": [ - ["get", 4, 33, 1, 559, 3], - ["frame", 5, 4, 2, 559, 3], - ["null", 6, 559, 3], - ["setarg", 5, 0, 6, 559, 3], - ["setarg", 5, 1, 1, 559, 3], - ["setarg", 5, 2, 2, 559, 3], - ["invoke", 5, 3, 559, 3], - ["null", 7, 559, 3], - ["return", 7, 559, 3] + ["get", 4, 33, 1, 565, 3], + ["frame", 5, 4, 2, 565, 3], + ["null", 6, 565, 3], + ["setarg", 5, 0, 6, 565, 3], + ["setarg", 5, 1, 1, 565, 3], + ["setarg", 5, 2, 2, 565, 3], + ["invoke", 5, 3, 565, 3], + ["null", 7, 565, 3], + ["return", 7, 565, 3] ], "name": "actor_send_immediate", "filename": "internal/engine.cm", @@ -3276,44 +3410,44 @@ "nr_slots": 253, "nr_close_slots": 0, "instructions": [ - ["null", 4, 563, 19], - ["null", 3, 564, 14], - ["get", 5, 41, 1, 566, 13], - ["load_dynamic", 6, 1, 5, 566, 13], - ["move", 7, 6, 566, 13], - ["jump_false", 7, "and_end_347", 566, 13], - ["get", 8, 41, 1, 566, 31], - ["load_dynamic", 9, 1, 8, 566, 31], - ["load_field", 10, 9, "replycc", 566, 31], - ["not", 11, 10, 566, 31], - ["move", 7, 11, 566, 31], - "and_end_347", - ["jump_false", 7, "if_else_345", 566, 31], - ["null", 12, 567, 5], - ["return", 12, 567, 5], - ["jump", "if_end_346", 567, 5], - "if_else_345", - "if_end_346", - ["get", 14, 5, 1, 569, 8], - ["frame", 15, 14, 1, 569, 8], - ["null", 16, 569, 8], - ["setarg", 15, 0, 16, 569, 8], - ["setarg", 15, 1, 1, 569, 8], - ["invoke", 15, 13, 569, 8], - ["not", 17, 13, 569, 8], - ["move", 18, 17, 569, 8], - ["jump_false", 18, "and_end_350", 569, 8], - ["load_field", 19, 1, "replycc", 569, 37], - ["get", 21, 5, 1, 569, 28], - ["frame", 22, 21, 1, 569, 28], - ["null", 23, 569, 28], - ["setarg", 22, 0, 23, 569, 28], - ["setarg", 22, 1, 19, 569, 28], - ["invoke", 22, 20, 569, 28], - ["not", 24, 20, 569, 28], - ["move", 18, 24, 569, 28], - "and_end_350", - ["jump_false", 18, "if_else_348", 569, 28], + ["null", 4, 569, 19], + ["null", 3, 570, 14], + ["get", 5, 41, 1, 572, 13], + ["load_dynamic", 6, 1, 5, 572, 13], + ["move", 7, 6, 572, 13], + ["jump_false", 7, "and_end_357", 572, 13], + ["get", 8, 41, 1, 572, 31], + ["load_dynamic", 9, 1, 8, 572, 31], + ["load_field", 10, 9, "replycc", 572, 31], + ["not", 11, 10, 572, 31], + ["move", 7, 11, 572, 31], + "and_end_357", + ["jump_false", 7, "if_else_355", 572, 31], + ["null", 12, 573, 5], + ["return", 12, 573, 5], + ["jump", "if_end_356", 573, 5], + "if_else_355", + "if_end_356", + ["get", 14, 5, 1, 575, 8], + ["frame", 15, 14, 1, 575, 8], + ["null", 16, 575, 8], + ["setarg", 15, 0, 16, 575, 8], + ["setarg", 15, 1, 1, 575, 8], + ["invoke", 15, 13, 575, 8], + ["not", 17, 13, 575, 8], + ["move", 18, 17, 575, 8], + ["jump_false", 18, "and_end_360", 575, 8], + ["load_field", 19, 1, "replycc", 575, 37], + ["get", 21, 5, 1, 575, 28], + ["frame", 22, 21, 1, 575, 28], + ["null", 23, 575, 28], + ["setarg", 22, 0, 23, 575, 28], + ["setarg", 22, 1, 19, 575, 28], + ["invoke", 22, 20, 575, 28], + ["not", 24, 20, 575, 28], + ["move", 18, 24, 575, 28], + "and_end_360", + ["jump_false", 18, "if_else_358", 575, 28], ["array", 25, 0, 1, 1], ["push", 25, 1, 1, 1], [ @@ -3334,323 +3468,323 @@ ["setarg", 29, 1, 27, 1, 1], ["setarg", 29, 2, 25, 1, 1], ["invoke", 29, 28, 1, 1], - ["get", 32, 63, 1, 570, 5], - ["is_proxy", 33, 32, 570, 5], - ["jump_false", 33, "record_path_351", 570, 5], - ["null", 34, 570, 5], - ["access", 35, "error", 570, 5], - ["array", 36, 0, 570, 5], - ["push", 36, 28, 570, 5], - ["frame", 37, 32, 2, 570, 5], - ["setarg", 37, 0, 34, 570, 5], - ["setarg", 37, 1, 35, 570, 5], - ["setarg", 37, 2, 36, 570, 5], - ["invoke", 37, 31, 570, 5], - ["jump", "call_done_352", 570, 5], - "record_path_351", - ["load_field", 38, 32, "error", 570, 5], - ["frame", 39, 38, 1, 570, 5], - ["setarg", 39, 0, 32, 570, 5], - ["setarg", 39, 1, 28, 570, 5], - ["invoke", 39, 31, 570, 5], - "call_done_352", - ["disrupt", 571, 5], - ["jump", "if_end_349", 571, 5], - "if_else_348", - "if_end_349", - ["is_record", 40, 2, 574, 18], + ["get", 32, 63, 1, 576, 5], + ["is_proxy", 33, 32, 576, 5], + ["jump_false", 33, "record_path_361", 576, 5], + ["null", 34, 576, 5], + ["access", 35, "error", 576, 5], + ["array", 36, 0, 576, 5], + ["push", 36, 28, 576, 5], + ["frame", 37, 32, 2, 576, 5], + ["setarg", 37, 0, 34, 576, 5], + ["setarg", 37, 1, 35, 576, 5], + ["setarg", 37, 2, 36, 576, 5], + ["invoke", 37, 31, 576, 5], + ["jump", "call_done_362", 576, 5], + "record_path_361", + ["load_field", 38, 32, "error", 576, 5], + ["frame", 39, 38, 1, 576, 5], + ["setarg", 39, 0, 32, 576, 5], + ["setarg", 39, 1, 28, 576, 5], + ["invoke", 39, 31, 576, 5], + "call_done_362", + ["disrupt", 577, 5], + ["jump", "if_end_359", 577, 5], + "if_else_358", + "if_end_359", + ["is_record", 40, 2, 580, 18], "_nop_bl_1", - ["jump_true", 40, "if_else_353", 574, 18], - ["access", 42, "Must send an object record.", 575, 15], - ["get", 44, 63, 1, 575, 5], - ["is_proxy", 45, 44, 575, 5], - ["jump_false", 45, "record_path_355", 575, 5], - ["null", 46, 575, 5], - ["access", 47, "error", 575, 5], - ["array", 48, 0, 575, 5], - ["push", 48, 42, 575, 5], - ["frame", 49, 44, 2, 575, 5], - ["setarg", 49, 0, 46, 575, 5], - ["setarg", 49, 1, 47, 575, 5], - ["setarg", 49, 2, 48, 575, 5], - ["invoke", 49, 43, 575, 5], - ["jump", "call_done_356", 575, 5], - "record_path_355", - ["load_field", 50, 44, "error", 575, 5], - ["frame", 51, 50, 1, 575, 5], - ["setarg", 51, 0, 44, 575, 5], - ["setarg", 51, 1, 42, 575, 5], - ["invoke", 51, 43, 575, 5], - "call_done_356", - ["disrupt", 576, 5], - ["jump", "if_end_354", 576, 5], - "if_else_353", - "if_end_354", - ["get", 52, 27, 1, 580, 13], - ["load_dynamic", 53, 1, 52, 580, 13], - ["load_field", 54, 53, "id", 580, 13], - ["get", 55, 11, 1, 580, 30], - ["load_field", 56, 55, "id", 580, 30], - ["is_identical", 57, 54, 56, 580, 30], - ["jump_true", 57, "eq_done_359", 580, 30], - ["is_int", 58, 54, 580, 30], - ["jump_false", 58, "eq_ni_360", 580, 30], - ["is_int", 59, 56, 580, 30], - ["jump_false", 59, "eq_ni_360", 580, 30], - ["eq_int", 57, 54, 56, 580, 30], - ["jump", "eq_done_359", 580, 30], - "eq_ni_360", - ["is_num", 58, 54, 580, 30], - ["jump_false", 58, "eq_nn_361", 580, 30], - ["is_num", 59, 56, 580, 30], - ["jump_false", 59, "eq_nn_361", 580, 30], - ["eq_float", 57, 54, 56, 580, 30], - ["jump", "eq_done_359", 580, 30], - "eq_nn_361", - ["is_text", 58, 54, 580, 30], - ["jump_false", 58, "eq_nt_362", 580, 30], - ["is_text", 59, 56, 580, 30], - ["jump_false", 59, "eq_nt_362", 580, 30], - ["eq_text", 57, 54, 56, 580, 30], - ["jump", "eq_done_359", 580, 30], - "eq_nt_362", - ["is_null", 58, 54, 580, 30], - ["jump_false", 58, "eq_nnl_363", 580, 30], - ["is_null", 59, 56, 580, 30], - ["jump_false", 59, "eq_nnl_363", 580, 30], - ["true", 57, 580, 30], - ["jump", "eq_done_359", 580, 30], - "eq_nnl_363", - ["is_bool", 58, 54, 580, 30], - ["jump_false", 58, "eq_nb_364", 580, 30], - ["is_bool", 59, 56, 580, 30], - ["jump_false", 59, "eq_nb_364", 580, 30], - ["eq_bool", 57, 54, 56, 580, 30], - ["jump", "eq_done_359", 580, 30], - "eq_nb_364", - ["false", 57, 580, 30], - "eq_done_359", - ["jump_false", 57, "if_else_357", 580, 30], - ["get", 60, 14, 1, 581, 9], - ["jump_false", 60, "if_else_365", 581, 9], - ["load_field", 61, 2, "data", 581, 32], - ["get", 63, 14, 1, 581, 21], - ["frame", 64, 63, 1, 581, 21], - ["null", 65, 581, 21], - ["setarg", 64, 0, 65, 581, 21], - ["setarg", 64, 1, 61, 581, 21], - ["invoke", 64, 62, 581, 21], - ["jump", "if_end_366", 581, 21], - "if_else_365", - "if_end_366", - ["null", 66, 582, 5], - ["return", 66, 582, 5], - ["jump", "if_end_358", 582, 5], - "if_else_357", - "if_end_358", - ["get", 67, 27, 1, 586, 13], - ["load_dynamic", 68, 1, 67, 586, 13], - ["load_field", 69, 68, "id", 586, 13], - ["move", 70, 69, 586, 13], - ["jump_false", 70, "and_end_369", 586, 13], - ["get", 71, 27, 1, 586, 60], - ["load_dynamic", 72, 1, 71, 586, 60], - ["load_field", 73, 72, "id", 586, 60], - ["get", 75, 30, 1, 586, 30], - ["is_proxy", 76, 75, 586, 30], - ["jump_false", 76, "record_path_370", 586, 30], - ["null", 77, 586, 30], - ["access", 78, "mailbox_exist", 586, 30], - ["array", 79, 0, 586, 30], - ["push", 79, 73, 586, 30], - ["frame", 80, 75, 2, 586, 30], - ["setarg", 80, 0, 77, 586, 30], - ["setarg", 80, 1, 78, 586, 30], - ["setarg", 80, 2, 79, 586, 30], - ["invoke", 80, 74, 586, 30], - ["jump", "call_done_371", 586, 30], - "record_path_370", - ["load_field", 81, 75, "mailbox_exist", 586, 30], - ["frame", 82, 81, 1, 586, 30], - ["setarg", 82, 0, 75, 586, 30], - ["setarg", 82, 1, 73, 586, 30], - ["invoke", 82, 74, 586, 30], - "call_done_371", - ["move", 70, 74, 586, 30], - "and_end_369", - ["jump_false", 70, "if_else_367", 586, 30], - ["get", 84, 7, 1, 587, 17], - ["is_proxy", 85, 84, 587, 17], - ["jump_false", 85, "record_path_372", 587, 17], - ["null", 86, 587, 17], - ["access", 87, "encode", 587, 17], - ["array", 88, 0, 587, 17], - ["push", 88, 2, 587, 17], - ["frame", 89, 84, 2, 587, 17], - ["setarg", 89, 0, 86, 587, 17], - ["setarg", 89, 1, 87, 587, 17], - ["setarg", 89, 2, 88, 587, 17], - ["invoke", 89, 83, 587, 17], - ["jump", "call_done_373", 587, 17], - "record_path_372", - ["load_field", 90, 84, "encode", 587, 17], - ["frame", 91, 90, 1, 587, 17], - ["setarg", 91, 0, 84, 587, 17], - ["setarg", 91, 1, 2, 587, 17], - ["invoke", 91, 83, 587, 17], - "call_done_373", - ["move", 4, 83, 587, 17], - ["get", 92, 27, 1, 588, 34], - ["load_dynamic", 93, 1, 92, 588, 34], - ["load_field", 94, 93, "id", 588, 34], - ["get", 96, 30, 1, 588, 5], - ["is_proxy", 97, 96, 588, 5], - ["jump_false", 97, "record_path_374", 588, 5], - ["null", 98, 588, 5], - ["access", 99, "mailbox_push", 588, 5], - ["array", 100, 0, 588, 5], - ["push", 100, 94, 588, 5], - ["push", 100, 4, 588, 5], - ["frame", 101, 96, 2, 588, 5], - ["setarg", 101, 0, 98, 588, 5], - ["setarg", 101, 1, 99, 588, 5], - ["setarg", 101, 2, 100, 588, 5], - ["invoke", 101, 95, 588, 5], - ["jump", "call_done_375", 588, 5], - "record_path_374", - ["load_field", 102, 96, "mailbox_push", 588, 5], - ["frame", 103, 102, 2, 588, 5], - ["setarg", 103, 0, 96, 588, 5], - ["setarg", 103, 1, 94, 588, 5], - ["setarg", 103, 2, 4, 588, 5], - ["invoke", 103, 95, 588, 5], - "call_done_375", - ["null", 104, 589, 5], - ["return", 104, 589, 5], - ["jump", "if_end_368", 589, 5], + ["jump_true", 40, "if_else_363", 580, 18], + ["access", 42, "Must send an object record.", 581, 15], + ["get", 44, 63, 1, 581, 5], + ["is_proxy", 45, 44, 581, 5], + ["jump_false", 45, "record_path_365", 581, 5], + ["null", 46, 581, 5], + ["access", 47, "error", 581, 5], + ["array", 48, 0, 581, 5], + ["push", 48, 42, 581, 5], + ["frame", 49, 44, 2, 581, 5], + ["setarg", 49, 0, 46, 581, 5], + ["setarg", 49, 1, 47, 581, 5], + ["setarg", 49, 2, 48, 581, 5], + ["invoke", 49, 43, 581, 5], + ["jump", "call_done_366", 581, 5], + "record_path_365", + ["load_field", 50, 44, "error", 581, 5], + ["frame", 51, 50, 1, 581, 5], + ["setarg", 51, 0, 44, 581, 5], + ["setarg", 51, 1, 42, 581, 5], + ["invoke", 51, 43, 581, 5], + "call_done_366", + ["disrupt", 582, 5], + ["jump", "if_end_364", 582, 5], + "if_else_363", + "if_end_364", + ["get", 52, 27, 1, 586, 13], + ["load_dynamic", 53, 1, 52, 586, 13], + ["load_field", 54, 53, "id", 586, 13], + ["get", 55, 11, 1, 586, 30], + ["load_field", 56, 55, "id", 586, 30], + ["is_identical", 57, 54, 56, 586, 30], + ["jump_true", 57, "eq_done_369", 586, 30], + ["is_int", 58, 54, 586, 30], + ["jump_false", 58, "eq_ni_370", 586, 30], + ["is_int", 59, 56, 586, 30], + ["jump_false", 59, "eq_ni_370", 586, 30], + ["eq_int", 57, 54, 56, 586, 30], + ["jump", "eq_done_369", 586, 30], + "eq_ni_370", + ["is_num", 58, 54, 586, 30], + ["jump_false", 58, "eq_nn_371", 586, 30], + ["is_num", 59, 56, 586, 30], + ["jump_false", 59, "eq_nn_371", 586, 30], + ["eq_float", 57, 54, 56, 586, 30], + ["jump", "eq_done_369", 586, 30], + "eq_nn_371", + ["is_text", 58, 54, 586, 30], + ["jump_false", 58, "eq_nt_372", 586, 30], + ["is_text", 59, 56, 586, 30], + ["jump_false", 59, "eq_nt_372", 586, 30], + ["eq_text", 57, 54, 56, 586, 30], + ["jump", "eq_done_369", 586, 30], + "eq_nt_372", + ["is_null", 58, 54, 586, 30], + ["jump_false", 58, "eq_nnl_373", 586, 30], + ["is_null", 59, 56, 586, 30], + ["jump_false", 59, "eq_nnl_373", 586, 30], + ["true", 57, 586, 30], + ["jump", "eq_done_369", 586, 30], + "eq_nnl_373", + ["is_bool", 58, 54, 586, 30], + ["jump_false", 58, "eq_nb_374", 586, 30], + ["is_bool", 59, 56, 586, 30], + ["jump_false", 59, "eq_nb_374", 586, 30], + ["eq_bool", 57, 54, 56, 586, 30], + ["jump", "eq_done_369", 586, 30], + "eq_nb_374", + ["false", 57, 586, 30], + "eq_done_369", + ["jump_false", 57, "if_else_367", 586, 30], + ["get", 60, 14, 1, 587, 9], + ["jump_false", 60, "if_else_375", 587, 9], + ["load_field", 61, 2, "data", 587, 32], + ["get", 63, 14, 1, 587, 21], + ["frame", 64, 63, 1, 587, 21], + ["null", 65, 587, 21], + ["setarg", 64, 0, 65, 587, 21], + ["setarg", 64, 1, 61, 587, 21], + ["invoke", 64, 62, 587, 21], + ["jump", "if_end_376", 587, 21], + "if_else_375", + "if_end_376", + ["null", 66, 588, 5], + ["return", 66, 588, 5], + ["jump", "if_end_368", 588, 5], "if_else_367", "if_end_368", - ["get", 105, 27, 1, 592, 13], - ["load_dynamic", 106, 1, 105, 592, 13], - ["load_field", 107, 106, "address", 592, 13], - ["jump_false", 107, "if_else_376", 592, 13], - ["get", 108, 27, 1, 593, 15], - ["load_dynamic", 109, 1, 108, 593, 15], - ["load_field", 110, 109, "id", 593, 15], - ["jump_false", 110, "if_else_378", 593, 15], - ["get", 111, 27, 1, 594, 30], - ["load_dynamic", 112, 1, 111, 594, 30], - ["load_field", 113, 112, "id", 594, 30], - ["store_field", 2, 113, "target", 594, 7], - ["jump", "if_end_379", 594, 7], - "if_else_378", - ["access", 114, "contact", 596, 22], - ["store_field", 2, 114, "type", 596, 7], - "if_end_379", - ["get", 115, 24, 1, 598, 12], - ["get", 116, 27, 1, 598, 24], - ["load_dynamic", 117, 1, 116, 598, 24], - ["load_field", 118, 117, "address", 598, 24], - ["access", 119, ":", 598, 45], - ["is_int", 121, 118, 598, 45], - ["jump_false", 121, "add_ni_380", 598, 45], + ["get", 67, 27, 1, 592, 13], + ["load_dynamic", 68, 1, 67, 592, 13], + ["load_field", 69, 68, "id", 592, 13], + ["move", 70, 69, 592, 13], + ["jump_false", 70, "and_end_379", 592, 13], + ["get", 71, 27, 1, 592, 60], + ["load_dynamic", 72, 1, 71, 592, 60], + ["load_field", 73, 72, "id", 592, 60], + ["get", 75, 30, 1, 592, 30], + ["is_proxy", 76, 75, 592, 30], + ["jump_false", 76, "record_path_380", 592, 30], + ["null", 77, 592, 30], + ["access", 78, "mailbox_exist", 592, 30], + ["array", 79, 0, 592, 30], + ["push", 79, 73, 592, 30], + ["frame", 80, 75, 2, 592, 30], + ["setarg", 80, 0, 77, 592, 30], + ["setarg", 80, 1, 78, 592, 30], + ["setarg", 80, 2, 79, 592, 30], + ["invoke", 80, 74, 592, 30], + ["jump", "call_done_381", 592, 30], + "record_path_380", + ["load_field", 81, 75, "mailbox_exist", 592, 30], + ["frame", 82, 81, 1, 592, 30], + ["setarg", 82, 0, 75, 592, 30], + ["setarg", 82, 1, 73, 592, 30], + ["invoke", 82, 74, 592, 30], + "call_done_381", + ["move", 70, 74, 592, 30], + "and_end_379", + ["jump_false", 70, "if_else_377", 592, 30], + ["get", 84, 7, 1, 593, 17], + ["is_proxy", 85, 84, 593, 17], + ["jump_false", 85, "record_path_382", 593, 17], + ["null", 86, 593, 17], + ["access", 87, "encode", 593, 17], + ["array", 88, 0, 593, 17], + ["push", 88, 2, 593, 17], + ["frame", 89, 84, 2, 593, 17], + ["setarg", 89, 0, 86, 593, 17], + ["setarg", 89, 1, 87, 593, 17], + ["setarg", 89, 2, 88, 593, 17], + ["invoke", 89, 83, 593, 17], + ["jump", "call_done_383", 593, 17], + "record_path_382", + ["load_field", 90, 84, "encode", 593, 17], + ["frame", 91, 90, 1, 593, 17], + ["setarg", 91, 0, 84, 593, 17], + ["setarg", 91, 1, 2, 593, 17], + ["invoke", 91, 83, 593, 17], + "call_done_383", + ["move", 4, 83, 593, 17], + ["get", 92, 27, 1, 594, 34], + ["load_dynamic", 93, 1, 92, 594, 34], + ["load_field", 94, 93, "id", 594, 34], + ["get", 96, 30, 1, 594, 5], + ["is_proxy", 97, 96, 594, 5], + ["jump_false", 97, "record_path_384", 594, 5], + ["null", 98, 594, 5], + ["access", 99, "mailbox_push", 594, 5], + ["array", 100, 0, 594, 5], + ["push", 100, 94, 594, 5], + ["push", 100, 4, 594, 5], + ["frame", 101, 96, 2, 594, 5], + ["setarg", 101, 0, 98, 594, 5], + ["setarg", 101, 1, 99, 594, 5], + ["setarg", 101, 2, 100, 594, 5], + ["invoke", 101, 95, 594, 5], + ["jump", "call_done_385", 594, 5], + "record_path_384", + ["load_field", 102, 96, "mailbox_push", 594, 5], + ["frame", 103, 102, 2, 594, 5], + ["setarg", 103, 0, 96, 594, 5], + ["setarg", 103, 1, 94, 594, 5], + ["setarg", 103, 2, 4, 594, 5], + ["invoke", 103, 95, 594, 5], + "call_done_385", + ["null", 104, 595, 5], + ["return", 104, 595, 5], + ["jump", "if_end_378", 595, 5], + "if_else_377", + "if_end_378", + ["get", 105, 27, 1, 598, 13], + ["load_dynamic", 106, 1, 105, 598, 13], + ["load_field", 107, 106, "address", 598, 13], + ["jump_false", 107, "if_else_386", 598, 13], + ["get", 108, 27, 1, 599, 15], + ["load_dynamic", 109, 1, 108, 599, 15], + ["load_field", 110, 109, "id", 599, 15], + ["jump_false", 110, "if_else_388", 599, 15], + ["get", 111, 27, 1, 600, 30], + ["load_dynamic", 112, 1, 111, 600, 30], + ["load_field", 113, 112, "id", 600, 30], + ["store_field", 2, 113, "target", 600, 7], + ["jump", "if_end_389", 600, 7], + "if_else_388", + ["access", 114, "contact", 602, 22], + ["store_field", 2, 114, "type", 602, 7], + "if_end_389", + ["get", 115, 24, 1, 604, 12], + ["get", 116, 27, 1, 604, 24], + ["load_dynamic", 117, 1, 116, 604, 24], + ["load_field", 118, 117, "address", 604, 24], + ["access", 119, ":", 604, 45], + ["is_int", 121, 118, 604, 45], + ["jump_false", 121, "add_ni_390", 604, 45], "_nop_tc_1", - ["jump", "add_ni_380", 598, 45], - ["add_int", 120, 118, 119, 598, 45], - ["jump", "add_done_382", 598, 45], - "add_ni_380", - ["is_text", 121, 118, 598, 45], - ["jump_false", 121, "add_nt_381", 598, 45], - ["concat", 120, 118, 119, 598, 45], - ["jump", "add_done_382", 598, 45], - "add_nt_381", - ["is_num", 121, 118, 598, 45], - ["jump_false", 121, "add_err_383", 598, 45], - ["is_num", 122, 119, 598, 45], - ["jump_false", 122, "add_err_383", 598, 45], - ["add_float", 120, 118, 119, 598, 45], - ["jump", "add_done_382", 598, 45], - "add_err_383", - ["disrupt", 598, 45], - "add_done_382", - ["get", 123, 27, 1, 598, 57], - ["load_dynamic", 124, 1, 123, 598, 57], - ["load_field", 125, 124, "port", 598, 57], - ["is_int", 127, 120, 598, 57], - ["jump_false", 127, "add_ni_384", 598, 57], - ["is_int", 128, 125, 598, 57], - ["jump_false", 128, "add_ni_384", 598, 57], - ["add_int", 126, 120, 125, 598, 57], - ["jump", "add_done_386", 598, 57], - "add_ni_384", - ["is_text", 127, 120, 598, 57], - ["jump_false", 127, "add_nt_385", 598, 57], - ["is_text", 128, 125, 598, 57], - ["jump_false", 128, "add_nt_385", 598, 57], - ["concat", 126, 120, 125, 598, 57], - ["jump", "add_done_386", 598, 57], - "add_nt_385", - ["is_num", 127, 120, 598, 57], - ["jump_false", 127, "add_err_387", 598, 57], - ["is_num", 128, 125, 598, 57], - ["jump_false", 128, "add_err_387", 598, 57], - ["add_float", 126, 120, 125, 598, 57], - ["jump", "add_done_386", 598, 57], - "add_err_387", - ["disrupt", 598, 57], - "add_done_386", - ["load_dynamic", 129, 115, 126, 598, 57], - ["move", 3, 129, 598, 57], + ["jump", "add_ni_390", 604, 45], + ["add_int", 120, 118, 119, 604, 45], + ["jump", "add_done_392", 604, 45], + "add_ni_390", + ["is_text", 121, 118, 604, 45], + ["jump_false", 121, "add_nt_391", 604, 45], + ["concat", 120, 118, 119, 604, 45], + ["jump", "add_done_392", 604, 45], + "add_nt_391", + ["is_num", 121, 118, 604, 45], + ["jump_false", 121, "add_err_393", 604, 45], + ["is_num", 122, 119, 604, 45], + ["jump_false", 122, "add_err_393", 604, 45], + ["add_float", 120, 118, 119, 604, 45], + ["jump", "add_done_392", 604, 45], + "add_err_393", + ["disrupt", 604, 45], + "add_done_392", + ["get", 123, 27, 1, 604, 57], + ["load_dynamic", 124, 1, 123, 604, 57], + ["load_field", 125, 124, "port", 604, 57], + ["is_int", 127, 120, 604, 57], + ["jump_false", 127, "add_ni_394", 604, 57], + ["is_int", 128, 125, 604, 57], + ["jump_false", 128, "add_ni_394", 604, 57], + ["add_int", 126, 120, 125, 604, 57], + ["jump", "add_done_396", 604, 57], + "add_ni_394", + ["is_text", 127, 120, 604, 57], + ["jump_false", 127, "add_nt_395", 604, 57], + ["is_text", 128, 125, 604, 57], + ["jump_false", 128, "add_nt_395", 604, 57], + ["concat", 126, 120, 125, 604, 57], + ["jump", "add_done_396", 604, 57], + "add_nt_395", + ["is_num", 127, 120, 604, 57], + ["jump_false", 127, "add_err_397", 604, 57], + ["is_num", 128, 125, 604, 57], + ["jump_false", 128, "add_err_397", 604, 57], + ["add_float", 126, 120, 125, 604, 57], + ["jump", "add_done_396", 604, 57], + "add_err_397", + ["disrupt", 604, 57], + "add_done_396", + ["load_dynamic", 129, 115, 126, 604, 57], + ["move", 3, 129, 604, 57], "_nop_bl_2", - ["jump_true", 3, "if_else_388", 599, 10], - ["get", 131, 23, 1, 600, 12], + ["jump_true", 3, "if_else_398", 605, 10], + ["get", 131, 23, 1, 606, 12], "_nop_bl_3", - ["jump_true", 131, "if_else_390", 600, 12], - ["access", 133, "creating a contactor ...", 601, 20], - ["get", 135, 63, 1, 601, 9], - ["is_proxy", 136, 135, 601, 9], - ["jump_false", 136, "record_path_392", 601, 9], - ["null", 137, 601, 9], - ["access", 138, "system", 601, 9], - ["array", 139, 0, 601, 9], - ["push", 139, 133, 601, 9], - ["frame", 140, 135, 2, 601, 9], - ["setarg", 140, 0, 137, 601, 9], - ["setarg", 140, 1, 138, 601, 9], - ["setarg", 140, 2, 139, 601, 9], - ["invoke", 140, 134, 601, 9], - ["jump", "call_done_393", 601, 9], - "record_path_392", - ["load_field", 141, 135, "system", 601, 9], - ["frame", 142, 141, 1, 601, 9], - ["setarg", 142, 0, 135, 601, 9], - ["setarg", 142, 1, 133, 601, 9], - ["invoke", 142, 134, 601, 9], - "call_done_393", + ["jump_true", 131, "if_else_400", 606, 12], + ["access", 133, "creating a contactor ...", 607, 20], + ["get", 135, 63, 1, 607, 9], + ["is_proxy", 136, 135, 607, 9], + ["jump_false", 136, "record_path_402", 607, 9], + ["null", 137, 607, 9], + ["access", 138, "system", 607, 9], + ["array", 139, 0, 607, 9], + ["push", 139, 133, 607, 9], + ["frame", 140, 135, 2, 607, 9], + ["setarg", 140, 0, 137, 607, 9], + ["setarg", 140, 1, 138, 607, 9], + ["setarg", 140, 2, 139, 607, 9], + ["invoke", 140, 134, 607, 9], + ["jump", "call_done_403", 607, 9], + "record_path_402", + ["load_field", 141, 135, "system", 607, 9], + ["frame", 142, 141, 1, 607, 9], + ["setarg", 142, 0, 135, 607, 9], + ["setarg", 142, 1, 133, 607, 9], + ["invoke", 142, 134, 607, 9], + "call_done_403", ["record", 143, 0], - ["access", 144, "any", 602, 44], - ["store_field", 143, 144, "address", 602, 44], - ["get", 146, 22, 1, 602, 18], - ["is_proxy", 147, 146, 602, 18], - ["jump_false", 147, "record_path_394", 602, 18], - ["null", 148, 602, 18], - ["access", 149, "create_host", 602, 18], - ["array", 150, 0, 602, 18], - ["push", 150, 143, 602, 18], - ["frame", 151, 146, 2, 602, 18], - ["setarg", 151, 0, 148, 602, 18], - ["setarg", 151, 1, 149, 602, 18], - ["setarg", 151, 2, 150, 602, 18], - ["invoke", 151, 145, 602, 18], - ["jump", "call_done_395", 602, 18], - "record_path_394", - ["load_field", 152, 146, "create_host", 602, 18], - ["frame", 153, 152, 1, 602, 18], - ["setarg", 153, 0, 146, 602, 18], - ["setarg", 153, 1, 143, 602, 18], - ["invoke", 153, 145, 602, 18], - "call_done_395", - ["put", 145, 23, 1, 602, 18], + ["access", 144, "any", 608, 44], + ["store_field", 143, 144, "address", 608, 44], + ["get", 146, 22, 1, 608, 18], + ["is_proxy", 147, 146, 608, 18], + ["jump_false", 147, "record_path_404", 608, 18], + ["null", 148, 608, 18], + ["access", 149, "create_host", 608, 18], + ["array", 150, 0, 608, 18], + ["push", 150, 143, 608, 18], + ["frame", 151, 146, 2, 608, 18], + ["setarg", 151, 0, 148, 608, 18], + ["setarg", 151, 1, 149, 608, 18], + ["setarg", 151, 2, 150, 608, 18], + ["invoke", 151, 145, 608, 18], + ["jump", "call_done_405", 608, 18], + "record_path_404", + ["load_field", 152, 146, "create_host", 608, 18], + ["frame", 153, 152, 1, 608, 18], + ["setarg", 153, 0, 146, 608, 18], + ["setarg", 153, 1, 143, 608, 18], + ["invoke", 153, 145, 608, 18], + "call_done_405", + ["put", 145, 23, 1, 608, 18], ["get", 154, 23, 1, 1, 1], ["load_field", 155, 154, "port", 1, 1], ["array", 156, 0, 1, 1], @@ -3673,29 +3807,29 @@ ["setarg", 160, 1, 158, 1, 1], ["setarg", 160, 2, 156, 1, 1], ["invoke", 160, 159, 1, 1], - ["get", 163, 63, 1, 603, 9], - ["is_proxy", 164, 163, 603, 9], - ["jump_false", 164, "record_path_396", 603, 9], - ["null", 165, 603, 9], - ["access", 166, "system", 603, 9], - ["array", 167, 0, 603, 9], - ["push", 167, 159, 603, 9], - ["frame", 168, 163, 2, 603, 9], - ["setarg", 168, 0, 165, 603, 9], - ["setarg", 168, 1, 166, 603, 9], - ["setarg", 168, 2, 167, 603, 9], - ["invoke", 168, 162, 603, 9], - ["jump", "call_done_397", 603, 9], - "record_path_396", - ["load_field", 169, 163, "system", 603, 9], - ["frame", 170, 169, 1, 603, 9], - ["setarg", 170, 0, 163, 603, 9], - ["setarg", 170, 1, 159, 603, 9], - ["invoke", 170, 162, 603, 9], - "call_done_397", - ["jump", "if_end_391", 603, 9], - "if_else_390", - "if_end_391", + ["get", 163, 63, 1, 609, 9], + ["is_proxy", 164, 163, 609, 9], + ["jump_false", 164, "record_path_406", 609, 9], + ["null", 165, 609, 9], + ["access", 166, "system", 609, 9], + ["array", 167, 0, 609, 9], + ["push", 167, 159, 609, 9], + ["frame", 168, 163, 2, 609, 9], + ["setarg", 168, 0, 165, 609, 9], + ["setarg", 168, 1, 166, 609, 9], + ["setarg", 168, 2, 167, 609, 9], + ["invoke", 168, 162, 609, 9], + ["jump", "call_done_407", 609, 9], + "record_path_406", + ["load_field", 169, 163, "system", 609, 9], + ["frame", 170, 169, 1, 609, 9], + ["setarg", 170, 0, 163, 609, 9], + ["setarg", 170, 1, 159, 609, 9], + ["invoke", 170, 162, 609, 9], + "call_done_407", + ["jump", "if_end_401", 609, 9], + "if_else_400", + "if_end_401", ["get", 171, 27, 1, 1, 7], ["load_dynamic", 172, 1, 171, 1, 7], ["load_field", 173, 172, "address", 1, 7], @@ -3723,126 +3857,126 @@ ["setarg", 181, 1, 179, 1, 7], ["setarg", 181, 2, 177, 1, 7], ["invoke", 181, 180, 1, 7], - ["get", 184, 63, 1, 605, 7], - ["is_proxy", 185, 184, 605, 7], - ["jump_false", 185, "record_path_398", 605, 7], - ["null", 186, 605, 7], - ["access", 187, "system", 605, 7], - ["array", 188, 0, 605, 7], - ["push", 188, 180, 605, 7], - ["frame", 189, 184, 2, 605, 7], - ["setarg", 189, 0, 186, 605, 7], - ["setarg", 189, 1, 187, 605, 7], - ["setarg", 189, 2, 188, 605, 7], - ["invoke", 189, 183, 605, 7], - ["jump", "call_done_399", 605, 7], - "record_path_398", - ["load_field", 190, 184, "system", 605, 7], - ["frame", 191, 190, 1, 605, 7], - ["setarg", 191, 0, 184, 605, 7], - ["setarg", 191, 1, 180, 605, 7], - ["invoke", 191, 183, 605, 7], - "call_done_399", - ["get", 192, 27, 1, 606, 35], - ["load_dynamic", 193, 1, 192, 606, 35], - ["load_field", 194, 193, "address", 606, 35], - ["get", 195, 27, 1, 606, 61], - ["load_dynamic", 196, 1, 195, 606, 61], - ["load_field", 197, 196, "port", 606, 61], - ["get", 199, 23, 1, 606, 14], - ["is_proxy", 200, 199, 606, 14], - ["jump_false", 200, "record_path_400", 606, 14], - ["null", 201, 606, 14], - ["access", 202, "connect", 606, 14], - ["array", 203, 0, 606, 14], - ["push", 203, 194, 606, 14], - ["push", 203, 197, 606, 14], - ["frame", 204, 199, 2, 606, 14], - ["setarg", 204, 0, 201, 606, 14], - ["setarg", 204, 1, 202, 606, 14], - ["setarg", 204, 2, 203, 606, 14], - ["invoke", 204, 198, 606, 14], - ["jump", "call_done_401", 606, 14], - "record_path_400", - ["load_field", 205, 199, "connect", 606, 14], - ["frame", 206, 205, 2, 606, 14], - ["setarg", 206, 0, 199, 606, 14], - ["setarg", 206, 1, 194, 606, 14], - ["setarg", 206, 2, 197, 606, 14], - ["invoke", 206, 198, 606, 14], - "call_done_401", - ["move", 3, 198, 606, 14], - ["array", 207, 0, 607, 29], - ["push", 207, 2, 607, 29], - ["get", 209, 55, 1, 607, 7], - ["is_proxy", 210, 209, 607, 7], - ["jump_false", 210, "record_path_402", 607, 7], - ["null", 211, 607, 7], - ["access", 212, "set", 607, 7], - ["array", 213, 0, 607, 7], - ["push", 213, 3, 607, 7], - ["push", 213, 207, 607, 7], - ["frame", 214, 209, 2, 607, 7], - ["setarg", 214, 0, 211, 607, 7], - ["setarg", 214, 1, 212, 607, 7], - ["setarg", 214, 2, 213, 607, 7], - ["invoke", 214, 208, 607, 7], - ["jump", "call_done_403", 607, 7], - "record_path_402", - ["load_field", 215, 209, "set", 607, 7], - ["frame", 216, 215, 2, 607, 7], - ["setarg", 216, 0, 209, 607, 7], - ["setarg", 216, 1, 3, 607, 7], - ["setarg", 216, 2, 207, 607, 7], - ["invoke", 216, 208, 607, 7], - "call_done_403", - ["jump", "if_end_389", 607, 7], - "if_else_388", - ["get", 218, 49, 1, 609, 17], - ["is_proxy", 219, 218, 609, 17], - ["jump_false", 219, "record_path_404", 609, 17], - ["null", 220, 609, 17], - ["access", 221, "encode", 609, 17], - ["array", 222, 0, 609, 17], - ["push", 222, 2, 609, 17], - ["frame", 223, 218, 2, 609, 17], - ["setarg", 223, 0, 220, 609, 17], - ["setarg", 223, 1, 221, 609, 17], - ["setarg", 223, 2, 222, 609, 17], - ["invoke", 223, 217, 609, 17], - ["jump", "call_done_405", 609, 17], - "record_path_404", - ["load_field", 224, 218, "encode", 609, 17], - ["frame", 225, 224, 1, 609, 17], - ["setarg", 225, 0, 218, 609, 17], - ["setarg", 225, 1, 2, 609, 17], - ["invoke", 225, 217, 609, 17], - "call_done_405", - ["is_proxy", 227, 3, 609, 7], - ["jump_false", 227, "record_path_406", 609, 7], - ["null", 228, 609, 7], - ["access", 229, "send", 609, 7], - ["array", 230, 0, 609, 7], - ["push", 230, 217, 609, 7], - ["frame", 231, 3, 2, 609, 7], - ["setarg", 231, 0, 228, 609, 7], - ["setarg", 231, 1, 229, 609, 7], - ["setarg", 231, 2, 230, 609, 7], - ["invoke", 231, 226, 609, 7], - ["jump", "call_done_407", 609, 7], - "record_path_406", - ["load_field", 232, 3, "send", 609, 7], - ["frame", 233, 232, 1, 609, 7], - ["setarg", 233, 0, 3, 609, 7], - ["setarg", 233, 1, 217, 609, 7], - ["invoke", 233, 226, 609, 7], - "call_done_407", - "if_end_389", - ["null", 234, 611, 5], - ["return", 234, 611, 5], - ["jump", "if_end_377", 611, 5], - "if_else_376", - "if_end_377", + ["get", 184, 63, 1, 611, 7], + ["is_proxy", 185, 184, 611, 7], + ["jump_false", 185, "record_path_408", 611, 7], + ["null", 186, 611, 7], + ["access", 187, "system", 611, 7], + ["array", 188, 0, 611, 7], + ["push", 188, 180, 611, 7], + ["frame", 189, 184, 2, 611, 7], + ["setarg", 189, 0, 186, 611, 7], + ["setarg", 189, 1, 187, 611, 7], + ["setarg", 189, 2, 188, 611, 7], + ["invoke", 189, 183, 611, 7], + ["jump", "call_done_409", 611, 7], + "record_path_408", + ["load_field", 190, 184, "system", 611, 7], + ["frame", 191, 190, 1, 611, 7], + ["setarg", 191, 0, 184, 611, 7], + ["setarg", 191, 1, 180, 611, 7], + ["invoke", 191, 183, 611, 7], + "call_done_409", + ["get", 192, 27, 1, 612, 35], + ["load_dynamic", 193, 1, 192, 612, 35], + ["load_field", 194, 193, "address", 612, 35], + ["get", 195, 27, 1, 612, 61], + ["load_dynamic", 196, 1, 195, 612, 61], + ["load_field", 197, 196, "port", 612, 61], + ["get", 199, 23, 1, 612, 14], + ["is_proxy", 200, 199, 612, 14], + ["jump_false", 200, "record_path_410", 612, 14], + ["null", 201, 612, 14], + ["access", 202, "connect", 612, 14], + ["array", 203, 0, 612, 14], + ["push", 203, 194, 612, 14], + ["push", 203, 197, 612, 14], + ["frame", 204, 199, 2, 612, 14], + ["setarg", 204, 0, 201, 612, 14], + ["setarg", 204, 1, 202, 612, 14], + ["setarg", 204, 2, 203, 612, 14], + ["invoke", 204, 198, 612, 14], + ["jump", "call_done_411", 612, 14], + "record_path_410", + ["load_field", 205, 199, "connect", 612, 14], + ["frame", 206, 205, 2, 612, 14], + ["setarg", 206, 0, 199, 612, 14], + ["setarg", 206, 1, 194, 612, 14], + ["setarg", 206, 2, 197, 612, 14], + ["invoke", 206, 198, 612, 14], + "call_done_411", + ["move", 3, 198, 612, 14], + ["array", 207, 0, 613, 29], + ["push", 207, 2, 613, 29], + ["get", 209, 55, 1, 613, 7], + ["is_proxy", 210, 209, 613, 7], + ["jump_false", 210, "record_path_412", 613, 7], + ["null", 211, 613, 7], + ["access", 212, "set", 613, 7], + ["array", 213, 0, 613, 7], + ["push", 213, 3, 613, 7], + ["push", 213, 207, 613, 7], + ["frame", 214, 209, 2, 613, 7], + ["setarg", 214, 0, 211, 613, 7], + ["setarg", 214, 1, 212, 613, 7], + ["setarg", 214, 2, 213, 613, 7], + ["invoke", 214, 208, 613, 7], + ["jump", "call_done_413", 613, 7], + "record_path_412", + ["load_field", 215, 209, "set", 613, 7], + ["frame", 216, 215, 2, 613, 7], + ["setarg", 216, 0, 209, 613, 7], + ["setarg", 216, 1, 3, 613, 7], + ["setarg", 216, 2, 207, 613, 7], + ["invoke", 216, 208, 613, 7], + "call_done_413", + ["jump", "if_end_399", 613, 7], + "if_else_398", + ["get", 218, 49, 1, 615, 17], + ["is_proxy", 219, 218, 615, 17], + ["jump_false", 219, "record_path_414", 615, 17], + ["null", 220, 615, 17], + ["access", 221, "encode", 615, 17], + ["array", 222, 0, 615, 17], + ["push", 222, 2, 615, 17], + ["frame", 223, 218, 2, 615, 17], + ["setarg", 223, 0, 220, 615, 17], + ["setarg", 223, 1, 221, 615, 17], + ["setarg", 223, 2, 222, 615, 17], + ["invoke", 223, 217, 615, 17], + ["jump", "call_done_415", 615, 17], + "record_path_414", + ["load_field", 224, 218, "encode", 615, 17], + ["frame", 225, 224, 1, 615, 17], + ["setarg", 225, 0, 218, 615, 17], + ["setarg", 225, 1, 2, 615, 17], + ["invoke", 225, 217, 615, 17], + "call_done_415", + ["is_proxy", 227, 3, 615, 7], + ["jump_false", 227, "record_path_416", 615, 7], + ["null", 228, 615, 7], + ["access", 229, "send", 615, 7], + ["array", 230, 0, 615, 7], + ["push", 230, 217, 615, 7], + ["frame", 231, 3, 2, 615, 7], + ["setarg", 231, 0, 228, 615, 7], + ["setarg", 231, 1, 229, 615, 7], + ["setarg", 231, 2, 230, 615, 7], + ["invoke", 231, 226, 615, 7], + ["jump", "call_done_417", 615, 7], + "record_path_416", + ["load_field", 232, 3, "send", 615, 7], + ["frame", 233, 232, 1, 615, 7], + ["setarg", 233, 0, 3, 615, 7], + ["setarg", 233, 1, 217, 615, 7], + ["invoke", 233, 226, 615, 7], + "call_done_417", + "if_end_399", + ["null", 234, 617, 5], + ["return", 234, 617, 5], + ["jump", "if_end_387", 617, 5], + "if_else_386", + "if_end_387", ["get", 235, 27, 1, 1, 7], ["load_dynamic", 236, 1, 235, 1, 7], ["array", 237, 0, 1, 7], @@ -3865,28 +3999,28 @@ ["setarg", 241, 1, 239, 1, 7], ["setarg", 241, 2, 237, 1, 7], ["invoke", 241, 240, 1, 7], - ["get", 244, 63, 1, 613, 3], - ["is_proxy", 245, 244, 613, 3], - ["jump_false", 245, "record_path_408", 613, 3], - ["null", 246, 613, 3], - ["access", 247, "system", 613, 3], - ["array", 248, 0, 613, 3], - ["push", 248, 240, 613, 3], - ["frame", 249, 244, 2, 613, 3], - ["setarg", 249, 0, 246, 613, 3], - ["setarg", 249, 1, 247, 613, 3], - ["setarg", 249, 2, 248, 613, 3], - ["invoke", 249, 243, 613, 3], - ["jump", "call_done_409", 613, 3], - "record_path_408", - ["load_field", 250, 244, "system", 613, 3], - ["frame", 251, 250, 1, 613, 3], - ["setarg", 251, 0, 244, 613, 3], - ["setarg", 251, 1, 240, 613, 3], - ["invoke", 251, 243, 613, 3], - "call_done_409", - ["null", 252, 613, 3], - ["return", 252, 613, 3] + ["get", 244, 63, 1, 619, 3], + ["is_proxy", 245, 244, 619, 3], + ["jump_false", 245, "record_path_418", 619, 3], + ["null", 246, 619, 3], + ["access", 247, "system", 619, 3], + ["array", 248, 0, 619, 3], + ["push", 248, 240, 619, 3], + ["frame", 249, 244, 2, 619, 3], + ["setarg", 249, 0, 246, 619, 3], + ["setarg", 249, 1, 247, 619, 3], + ["setarg", 249, 2, 248, 619, 3], + ["invoke", 249, 243, 619, 3], + ["jump", "call_done_419", 619, 3], + "record_path_418", + ["load_field", 250, 244, "system", 619, 3], + ["frame", 251, 250, 1, 619, 3], + ["setarg", 251, 0, 244, 619, 3], + ["setarg", 251, 1, 240, 619, 3], + ["invoke", 251, 243, 619, 3], + "call_done_419", + ["null", 252, 619, 3], + ["return", 252, 619, 3] ], "name": "actor_send", "filename": "internal/engine.cm", @@ -3897,43 +4031,43 @@ "nr_slots": 21, "nr_close_slots": 0, "instructions": [ - ["load_field", 3, 1, "startup", 628, 10], - ["jump_false", 3, "if_else_412", 628, 10], - ["load_field", 4, 1, "startup", 630, 30], - ["get", 6, 30, 2, 630, 8], - ["is_proxy", 7, 6, 630, 8], - ["jump_false", 7, "record_path_414", 630, 8], - ["null", 8, 630, 8], - ["access", 9, "createactor", 630, 8], - ["array", 10, 0, 630, 8], - ["push", 10, 4, 630, 8], - ["frame", 11, 6, 2, 630, 8], - ["setarg", 11, 0, 8, 630, 8], - ["setarg", 11, 1, 9, 630, 8], - ["setarg", 11, 2, 10, 630, 8], - ["invoke", 11, 5, 630, 8], - ["jump", "call_done_415", 630, 8], - "record_path_414", - ["load_field", 12, 6, "createactor", 630, 8], - ["frame", 13, 12, 1, 630, 8], - ["setarg", 13, 0, 6, 630, 8], - ["setarg", 13, 1, 4, 630, 8], - ["invoke", 13, 5, 630, 8], - "call_done_415", - ["jump", "if_end_413", 630, 8], - "if_else_412", - ["load_field", 14, 1, "actor", 632, 19], - ["load_field", 15, 1, "send", 632, 30], - ["get", 17, 33, 2, 632, 8], - ["frame", 18, 17, 2, 632, 8], - ["null", 19, 632, 8], - ["setarg", 18, 0, 19, 632, 8], - ["setarg", 18, 1, 14, 632, 8], - ["setarg", 18, 2, 15, 632, 8], - ["invoke", 18, 16, 632, 8], - "if_end_413", - ["null", 20, 632, 8], - ["return", 20, 632, 8] + ["load_field", 3, 1, "startup", 634, 10], + ["jump_false", 3, "if_else_422", 634, 10], + ["load_field", 4, 1, "startup", 636, 30], + ["get", 6, 30, 2, 636, 8], + ["is_proxy", 7, 6, 636, 8], + ["jump_false", 7, "record_path_424", 636, 8], + ["null", 8, 636, 8], + ["access", 9, "createactor", 636, 8], + ["array", 10, 0, 636, 8], + ["push", 10, 4, 636, 8], + ["frame", 11, 6, 2, 636, 8], + ["setarg", 11, 0, 8, 636, 8], + ["setarg", 11, 1, 9, 636, 8], + ["setarg", 11, 2, 10, 636, 8], + ["invoke", 11, 5, 636, 8], + ["jump", "call_done_425", 636, 8], + "record_path_424", + ["load_field", 12, 6, "createactor", 636, 8], + ["frame", 13, 12, 1, 636, 8], + ["setarg", 13, 0, 6, 636, 8], + ["setarg", 13, 1, 4, 636, 8], + ["invoke", 13, 5, 636, 8], + "call_done_425", + ["jump", "if_end_423", 636, 8], + "if_else_422", + ["load_field", 14, 1, "actor", 638, 19], + ["load_field", 15, 1, "send", 638, 30], + ["get", 17, 33, 2, 638, 8], + ["frame", 18, 17, 2, 638, 8], + ["null", 19, 638, 8], + ["setarg", 18, 0, 19, 638, 8], + ["setarg", 18, 1, 14, 638, 8], + ["setarg", 18, 2, 15, 638, 8], + ["invoke", 18, 16, 638, 8], + "if_end_423", + ["null", 20, 638, 8], + ["return", 20, 638, 8] ], "name": "", "filename": "internal/engine.cm", @@ -3944,43 +4078,43 @@ "nr_slots": 21, "nr_close_slots": 0, "instructions": [ - ["get", 1, 51, 1, 621, 8], - ["jump_false", 1, "if_else_410", 621, 8], - ["get", 3, 65, 1, 622, 6], - ["frame", 4, 3, 0, 622, 6], - ["null", 5, 622, 6], - ["setarg", 4, 0, 5, 622, 6], - ["invoke", 4, 2, 622, 6], - ["array", 6, 0, 623, 22], - ["put", 6, 43, 1, 623, 22], - ["null", 7, 624, 6], - ["return", 7, 624, 6], - ["jump", "if_end_411", 624, 6], - "if_else_410", - "if_end_411", - ["get", 8, 43, 1, 627, 11], - ["function", 9, 27, 627, 26], - ["length", 11, 8, 627, 26], - ["int", 12, 0, 627, 26], - ["int", 16, 1, 627, 26], - ["null", 15, 627, 26], - "arrfor_loop_416", - ["lt_int", 13, 12, 11, 627, 26], - ["jump_false", 13, "arrfor_done_417", 627, 26], - ["load_index", 14, 8, 12, 627, 26], - ["frame", 17, 9, 2, 627, 26], - ["setarg", 17, 0, 15, 627, 26], - ["setarg", 17, 1, 14, 627, 26], - ["setarg", 17, 2, 12, 627, 26], - ["invoke", 17, 18, 627, 26], - ["add_int", 12, 12, 16, 627, 26], - ["jump", "arrfor_loop_416", 627, 26], - "arrfor_done_417", - ["null", 10, 627, 26], - ["array", 19, 0, 636, 20], - ["put", 19, 43, 1, 636, 20], - ["null", 20, 636, 20], - ["return", 20, 636, 20] + ["get", 1, 51, 1, 627, 8], + ["jump_false", 1, "if_else_420", 627, 8], + ["get", 3, 65, 1, 628, 6], + ["frame", 4, 3, 0, 628, 6], + ["null", 5, 628, 6], + ["setarg", 4, 0, 5, 628, 6], + ["invoke", 4, 2, 628, 6], + ["array", 6, 0, 629, 22], + ["put", 6, 43, 1, 629, 22], + ["null", 7, 630, 6], + ["return", 7, 630, 6], + ["jump", "if_end_421", 630, 6], + "if_else_420", + "if_end_421", + ["get", 8, 43, 1, 633, 11], + ["function", 9, 27, 633, 26], + ["length", 11, 8, 633, 26], + ["int", 12, 0, 633, 26], + ["int", 16, 1, 633, 26], + ["null", 15, 633, 26], + "arrfor_loop_426", + ["lt_int", 13, 12, 11, 633, 26], + ["jump_false", 13, "arrfor_done_427", 633, 26], + ["load_index", 14, 8, 12, 633, 26], + ["frame", 17, 9, 2, 633, 26], + ["setarg", 17, 0, 15, 633, 26], + ["setarg", 17, 1, 14, 633, 26], + ["setarg", 17, 2, 12, 633, 26], + ["invoke", 17, 18, 633, 26], + ["add_int", 12, 12, 16, 633, 26], + ["jump", "arrfor_loop_426", 633, 26], + "arrfor_done_427", + ["null", 10, 633, 26], + ["array", 19, 0, 642, 20], + ["put", 19, 43, 1, 642, 20], + ["null", 20, 642, 20], + ["return", 20, 642, 20] ], "name": "send_messages", "filename": "internal/engine.cm", @@ -3991,47 +4125,47 @@ "nr_slots": 21, "nr_close_slots": 0, "instructions": [ - ["get", 2, 64, 2, 674, 11], - ["get", 3, 7, 1, 674, 19], - ["load_dynamic", 4, 2, 3, 674, 19], - ["jump_false", 4, "if_else_436", 674, 19], - ["null", 5, 675, 21], - ["access", 6, "timeout", 675, 27], - ["get", 8, 64, 2, 675, 9], - ["get", 9, 7, 1, 675, 17], - ["is_proxy", 10, 8, 675, 17], - ["jump_false", 10, "dyn_record_path_438", 675, 17], - ["is_text", 11, 9, 675, 17], - ["jump_false", 11, "dyn_error_440", 675, 17], - ["null", 12, 675, 17], - ["array", 13, 0, 675, 17], - ["push", 13, 5, 675, 17], - ["push", 13, 6, 675, 17], - ["frame", 14, 8, 2, 675, 17], - ["setarg", 14, 0, 12, 675, 17], - ["setarg", 14, 1, 9, 675, 17], - ["setarg", 14, 2, 13, 675, 17], - ["invoke", 14, 7, 675, 17], - ["jump", "dyn_call_done_439", 675, 17], - "dyn_error_440", - ["disrupt", 675, 17], - ["jump", "dyn_call_done_439", 675, 17], - "dyn_record_path_438", - ["load_dynamic", 15, 8, 9, 675, 17], - ["frame", 16, 15, 2, 675, 17], - ["setarg", 16, 0, 8, 675, 17], - ["setarg", 16, 1, 5, 675, 17], - ["setarg", 16, 2, 6, 675, 17], - ["invoke", 16, 7, 675, 17], - "dyn_call_done_439", - ["get", 18, 64, 2, 676, 16], - ["get", 19, 7, 1, 676, 24], - ["delete", 17, 18, 19, 676, 24], - ["jump", "if_end_437", 676, 24], - "if_else_436", - "if_end_437", - ["null", 20, 676, 24], - ["return", 20, 676, 24] + ["get", 2, 64, 2, 680, 11], + ["get", 3, 7, 1, 680, 19], + ["load_dynamic", 4, 2, 3, 680, 19], + ["jump_false", 4, "if_else_446", 680, 19], + ["null", 5, 681, 21], + ["access", 6, "timeout", 681, 27], + ["get", 8, 64, 2, 681, 9], + ["get", 9, 7, 1, 681, 17], + ["is_proxy", 10, 8, 681, 17], + ["jump_false", 10, "dyn_record_path_448", 681, 17], + ["is_text", 11, 9, 681, 17], + ["jump_false", 11, "dyn_error_450", 681, 17], + ["null", 12, 681, 17], + ["array", 13, 0, 681, 17], + ["push", 13, 5, 681, 17], + ["push", 13, 6, 681, 17], + ["frame", 14, 8, 2, 681, 17], + ["setarg", 14, 0, 12, 681, 17], + ["setarg", 14, 1, 9, 681, 17], + ["setarg", 14, 2, 13, 681, 17], + ["invoke", 14, 7, 681, 17], + ["jump", "dyn_call_done_449", 681, 17], + "dyn_error_450", + ["disrupt", 681, 17], + ["jump", "dyn_call_done_449", 681, 17], + "dyn_record_path_448", + ["load_dynamic", 15, 8, 9, 681, 17], + ["frame", 16, 15, 2, 681, 17], + ["setarg", 16, 0, 8, 681, 17], + ["setarg", 16, 1, 5, 681, 17], + ["setarg", 16, 2, 6, 681, 17], + ["invoke", 16, 7, 681, 17], + "dyn_call_done_449", + ["get", 18, 64, 2, 682, 16], + ["get", 19, 7, 1, 682, 24], + ["delete", 17, 18, 19, 682, 24], + ["jump", "if_end_447", 682, 24], + "if_else_446", + "if_end_447", + ["null", 20, 682, 24], + ["return", 20, 682, 24] ], "name": "", "filename": "internal/engine.cm", @@ -4042,13 +4176,13 @@ "nr_slots": 98, "nr_close_slots": 0, "instructions": [ - ["null", 6, 642, 18], - ["null", 4, 643, 16], - ["null", 5, 644, 16], - ["null", 7, 645, 12], - ["is_record", 8, 1, 647, 18], + ["null", 6, 648, 18], + ["null", 4, 649, 16], + ["null", 5, 650, 16], + ["null", 7, 651, 12], + ["is_record", 8, 1, 653, 18], "_nop_bl_1", - ["jump_true", 8, "if_else_418", 647, 18], + ["jump_true", 8, "if_else_428", 653, 18], ["array", 10, 0, 1, 1], ["push", 10, 1, 1, 1], [ @@ -4069,92 +4203,92 @@ ["setarg", 14, 1, 12, 1, 1], ["setarg", 14, 2, 10, 1, 1], ["invoke", 14, 13, 1, 1], - ["get", 17, 63, 1, 648, 5], - ["is_proxy", 18, 17, 648, 5], - ["jump_false", 18, "record_path_420", 648, 5], - ["null", 19, 648, 5], - ["access", 20, "error", 648, 5], - ["array", 21, 0, 648, 5], - ["push", 21, 13, 648, 5], - ["frame", 22, 17, 2, 648, 5], - ["setarg", 22, 0, 19, 648, 5], - ["setarg", 22, 1, 20, 648, 5], - ["setarg", 22, 2, 21, 648, 5], - ["invoke", 22, 16, 648, 5], - ["jump", "call_done_421", 648, 5], - "record_path_420", - ["load_field", 23, 17, "error", 648, 5], - ["frame", 24, 23, 1, 648, 5], - ["setarg", 24, 0, 17, 648, 5], - ["setarg", 24, 1, 13, 648, 5], - ["invoke", 24, 16, 648, 5], - "call_done_421", - ["disrupt", 649, 5], - ["jump", "if_end_419", 649, 5], - "if_else_418", - "if_end_419", - ["is_record", 25, 2, 652, 18], + ["get", 17, 63, 1, 654, 5], + ["is_proxy", 18, 17, 654, 5], + ["jump_false", 18, "record_path_430", 654, 5], + ["null", 19, 654, 5], + ["access", 20, "error", 654, 5], + ["array", 21, 0, 654, 5], + ["push", 21, 13, 654, 5], + ["frame", 22, 17, 2, 654, 5], + ["setarg", 22, 0, 19, 654, 5], + ["setarg", 22, 1, 20, 654, 5], + ["setarg", 22, 2, 21, 654, 5], + ["invoke", 22, 16, 654, 5], + ["jump", "call_done_431", 654, 5], + "record_path_430", + ["load_field", 23, 17, "error", 654, 5], + ["frame", 24, 23, 1, 654, 5], + ["setarg", 24, 0, 17, 654, 5], + ["setarg", 24, 1, 13, 654, 5], + ["invoke", 24, 16, 654, 5], + "call_done_431", + ["disrupt", 655, 5], + ["jump", "if_end_429", 655, 5], + "if_else_428", + "if_end_429", + ["is_record", 25, 2, 658, 18], "_nop_bl_2", - ["jump_true", 25, "if_else_422", 652, 18], - ["access", 27, "Message must be an object", 653, 15], - ["get", 29, 63, 1, 653, 5], - ["is_proxy", 30, 29, 653, 5], - ["jump_false", 30, "record_path_424", 653, 5], - ["null", 31, 653, 5], - ["access", 32, "error", 653, 5], - ["array", 33, 0, 653, 5], - ["push", 33, 27, 653, 5], - ["frame", 34, 29, 2, 653, 5], - ["setarg", 34, 0, 31, 653, 5], - ["setarg", 34, 1, 32, 653, 5], - ["setarg", 34, 2, 33, 653, 5], - ["invoke", 34, 28, 653, 5], - ["jump", "call_done_425", 653, 5], - "record_path_424", - ["load_field", 35, 29, "error", 653, 5], - ["frame", 36, 35, 1, 653, 5], - ["setarg", 36, 0, 29, 653, 5], - ["setarg", 36, 1, 27, 653, 5], - ["invoke", 36, 28, 653, 5], - "call_done_425", - ["disrupt", 654, 5], - ["jump", "if_end_423", 654, 5], - "if_else_422", - "if_end_423", + ["jump_true", 25, "if_else_432", 658, 18], + ["access", 27, "Message must be an object", 659, 15], + ["get", 29, 63, 1, 659, 5], + ["is_proxy", 30, 29, 659, 5], + ["jump_false", 30, "record_path_434", 659, 5], + ["null", 31, 659, 5], + ["access", 32, "error", 659, 5], + ["array", 33, 0, 659, 5], + ["push", 33, 27, 659, 5], + ["frame", 34, 29, 2, 659, 5], + ["setarg", 34, 0, 31, 659, 5], + ["setarg", 34, 1, 32, 659, 5], + ["setarg", 34, 2, 33, 659, 5], + ["invoke", 34, 28, 659, 5], + ["jump", "call_done_435", 659, 5], + "record_path_434", + ["load_field", 35, 29, "error", 659, 5], + ["frame", 36, 35, 1, 659, 5], + ["setarg", 36, 0, 29, 659, 5], + ["setarg", 36, 1, 27, 659, 5], + ["invoke", 36, 28, 659, 5], + "call_done_435", + ["disrupt", 660, 5], + ["jump", "if_end_433", 660, 5], + "if_else_432", + "if_end_433", ["record", 37, 0], - ["access", 38, "user", 656, 20], - ["store_field", 37, 38, "type", 656, 20], - ["store_field", 37, 2, "data", 656, 34], - ["move", 6, 37, 656, 34], - ["move", 4, 1, 657, 12], - ["get", 39, 41, 1, 659, 13], - ["load_dynamic", 40, 1, 39, 659, 13], - ["move", 41, 40, 659, 13], - ["jump_false", 41, "and_end_428", 659, 13], - ["get", 42, 41, 1, 659, 30], - ["load_dynamic", 43, 1, 42, 659, 30], - ["load_field", 44, 43, "replycc", 659, 30], - ["move", 41, 44, 659, 30], - "and_end_428", - ["jump_false", 41, "if_else_426", 659, 30], - ["get", 45, 41, 1, 660, 20], - ["load_dynamic", 46, 1, 45, 660, 20], - ["move", 5, 46, 660, 20], - ["load_field", 47, 5, "replycc", 661, 10], - ["not", 48, 47, 661, 10], - ["move", 49, 48, 661, 10], - ["jump_true", 49, "or_end_431", 661, 10], - ["load_field", 50, 5, "replycc", 661, 38], - ["get", 52, 5, 1, 661, 29], - ["frame", 53, 52, 1, 661, 29], - ["null", 54, 661, 29], - ["setarg", 53, 0, 54, 661, 29], - ["setarg", 53, 1, 50, 661, 29], - ["invoke", 53, 51, 661, 29], - ["not", 55, 51, 661, 29], - ["move", 49, 55, 661, 29], - "or_end_431", - ["jump_false", 49, "if_else_429", 661, 29], + ["access", 38, "user", 662, 20], + ["store_field", 37, 38, "type", 662, 20], + ["store_field", 37, 2, "data", 662, 34], + ["move", 6, 37, 662, 34], + ["move", 4, 1, 663, 12], + ["get", 39, 41, 1, 665, 13], + ["load_dynamic", 40, 1, 39, 665, 13], + ["move", 41, 40, 665, 13], + ["jump_false", 41, "and_end_438", 665, 13], + ["get", 42, 41, 1, 665, 30], + ["load_dynamic", 43, 1, 42, 665, 30], + ["load_field", 44, 43, "replycc", 665, 30], + ["move", 41, 44, 665, 30], + "and_end_438", + ["jump_false", 41, "if_else_436", 665, 30], + ["get", 45, 41, 1, 666, 20], + ["load_dynamic", 46, 1, 45, 666, 20], + ["move", 5, 46, 666, 20], + ["load_field", 47, 5, "replycc", 667, 10], + ["not", 48, 47, 667, 10], + ["move", 49, 48, 667, 10], + ["jump_true", 49, "or_end_441", 667, 10], + ["load_field", 50, 5, "replycc", 667, 38], + ["get", 52, 5, 1, 667, 29], + ["frame", 53, 52, 1, 667, 29], + ["null", 54, 667, 29], + ["setarg", 53, 0, 54, 667, 29], + ["setarg", 53, 1, 50, 667, 29], + ["invoke", 53, 51, 667, 29], + ["not", 55, 51, 667, 29], + ["move", 49, 55, 667, 29], + "or_end_441", + ["jump_false", 49, "if_else_439", 667, 29], ["get", 56, 41, 1, 1, 7], ["load_dynamic", 57, 1, 56, 1, 7], ["array", 58, 0, 1, 7], @@ -4177,86 +4311,86 @@ ["setarg", 62, 1, 60, 1, 7], ["setarg", 62, 2, 58, 1, 7], ["invoke", 62, 61, 1, 7], - ["get", 65, 63, 1, 662, 7], - ["is_proxy", 66, 65, 662, 7], - ["jump_false", 66, "record_path_432", 662, 7], - ["null", 67, 662, 7], - ["access", 68, "error", 662, 7], - ["array", 69, 0, 662, 7], - ["push", 69, 61, 662, 7], - ["frame", 70, 65, 2, 662, 7], - ["setarg", 70, 0, 67, 662, 7], - ["setarg", 70, 1, 68, 662, 7], - ["setarg", 70, 2, 69, 662, 7], - ["invoke", 70, 64, 662, 7], - ["jump", "call_done_433", 662, 7], - "record_path_432", - ["load_field", 71, 65, "error", 662, 7], - ["frame", 72, 71, 1, 662, 7], - ["setarg", 72, 0, 65, 662, 7], - ["setarg", 72, 1, 61, 662, 7], - ["invoke", 72, 64, 662, 7], - "call_done_433", - ["disrupt", 663, 7], - ["jump", "if_end_430", 663, 7], - "if_else_429", - "if_end_430", - ["load_field", 73, 5, "replycc", 666, 14], - ["move", 4, 73, 666, 14], - ["load_field", 74, 5, "reply", 667, 23], - ["store_field", 6, 74, "return", 667, 5], - ["jump", "if_end_427", 667, 5], - "if_else_426", - "if_end_427", - ["jump_false", 3, "if_else_434", 670, 7], - ["get", 76, 6, 1, 671, 10], - ["frame", 77, 76, 0, 671, 10], - ["null", 78, 671, 10], - ["setarg", 77, 0, 78, 671, 10], - ["invoke", 77, 75, 671, 10], - ["move", 7, 75, 671, 10], - ["get", 79, 64, 1, 672, 5], - ["store_dynamic", 79, 3, 7, 672, 13], - ["function", 80, 29, 673, 14], - ["get", 81, 35, 1, 678, 8], - ["get", 83, 2, 1, 673, 5], - ["is_proxy", 84, 83, 673, 5], - ["jump_false", 84, "record_path_441", 673, 5], - ["null", 85, 673, 5], - ["access", 86, "delay", 673, 5], - ["array", 87, 0, 673, 5], - ["push", 87, 80, 673, 5], - ["push", 87, 81, 673, 5], - ["frame", 88, 83, 2, 673, 5], - ["setarg", 88, 0, 85, 673, 5], - ["setarg", 88, 1, 86, 673, 5], - ["setarg", 88, 2, 87, 673, 5], - ["invoke", 88, 82, 673, 5], - ["jump", "call_done_442", 673, 5], - "record_path_441", - ["load_field", 89, 83, "delay", 673, 5], - ["frame", 90, 89, 2, 673, 5], - ["setarg", 90, 0, 83, 673, 5], - ["setarg", 90, 1, 80, 673, 5], - ["setarg", 90, 2, 81, 673, 5], - ["invoke", 90, 82, 673, 5], - "call_done_442", - ["store_field", 6, 7, "reply", 679, 5], - ["get", 91, 2, 1, 680, 24], - ["load_field", 92, 91, "self", 680, 24], - ["store_field", 6, 92, "replycc", 680, 5], - ["jump", "if_end_435", 680, 5], - "if_else_434", - "if_end_435", - ["get", 94, 66, 1, 684, 3], - ["frame", 95, 94, 2, 684, 3], - ["null", 96, 684, 3], - ["setarg", 95, 0, 96, 684, 3], - ["setarg", 95, 1, 4, 684, 3], - ["setarg", 95, 2, 6, 684, 3], - ["invoke", 95, 93, 684, 3], - ["null", 97, 684, 3], - ["return", 97, 684, 3] + ["get", 65, 63, 1, 668, 7], + ["is_proxy", 66, 65, 668, 7], + ["jump_false", 66, "record_path_442", 668, 7], + ["null", 67, 668, 7], + ["access", 68, "error", 668, 7], + ["array", 69, 0, 668, 7], + ["push", 69, 61, 668, 7], + ["frame", 70, 65, 2, 668, 7], + ["setarg", 70, 0, 67, 668, 7], + ["setarg", 70, 1, 68, 668, 7], + ["setarg", 70, 2, 69, 668, 7], + ["invoke", 70, 64, 668, 7], + ["jump", "call_done_443", 668, 7], + "record_path_442", + ["load_field", 71, 65, "error", 668, 7], + ["frame", 72, 71, 1, 668, 7], + ["setarg", 72, 0, 65, 668, 7], + ["setarg", 72, 1, 61, 668, 7], + ["invoke", 72, 64, 668, 7], + "call_done_443", + ["disrupt", 669, 7], + ["jump", "if_end_440", 669, 7], + "if_else_439", + "if_end_440", + ["load_field", 73, 5, "replycc", 672, 14], + ["move", 4, 73, 672, 14], + ["load_field", 74, 5, "reply", 673, 23], + ["store_field", 6, 74, "return", 673, 5], + ["jump", "if_end_437", 673, 5], + "if_else_436", + "if_end_437", + ["jump_false", 3, "if_else_444", 676, 7], + ["get", 76, 6, 1, 677, 10], + ["frame", 77, 76, 0, 677, 10], + ["null", 78, 677, 10], + ["setarg", 77, 0, 78, 677, 10], + ["invoke", 77, 75, 677, 10], + ["move", 7, 75, 677, 10], + ["get", 79, 64, 1, 678, 5], + ["store_dynamic", 79, 3, 7, 678, 13], + ["function", 80, 29, 679, 14], + ["get", 81, 35, 1, 684, 8], + ["get", 83, 2, 1, 679, 5], + ["is_proxy", 84, 83, 679, 5], + ["jump_false", 84, "record_path_451", 679, 5], + ["null", 85, 679, 5], + ["access", 86, "delay", 679, 5], + ["array", 87, 0, 679, 5], + ["push", 87, 80, 679, 5], + ["push", 87, 81, 679, 5], + ["frame", 88, 83, 2, 679, 5], + ["setarg", 88, 0, 85, 679, 5], + ["setarg", 88, 1, 86, 679, 5], + ["setarg", 88, 2, 87, 679, 5], + ["invoke", 88, 82, 679, 5], + ["jump", "call_done_452", 679, 5], + "record_path_451", + ["load_field", 89, 83, "delay", 679, 5], + ["frame", 90, 89, 2, 679, 5], + ["setarg", 90, 0, 83, 679, 5], + ["setarg", 90, 1, 80, 679, 5], + ["setarg", 90, 2, 81, 679, 5], + ["invoke", 90, 82, 679, 5], + "call_done_452", + ["store_field", 6, 7, "reply", 685, 5], + ["get", 91, 2, 1, 686, 24], + ["load_field", 92, 91, "self", 686, 24], + ["store_field", 6, 92, "replycc", 686, 5], + ["jump", "if_end_445", 686, 5], + "if_else_444", + "if_end_445", + ["get", 94, 66, 1, 690, 3], + ["frame", 95, 94, 2, 690, 3], + ["null", 96, 690, 3], + ["setarg", 95, 0, 96, 690, 3], + ["setarg", 95, 1, 4, 690, 3], + ["setarg", 95, 2, 6, 690, 3], + ["invoke", 95, 93, 690, 3], + ["null", 97, 690, 3], + ["return", 97, 690, 3] ], "name": "send", "filename": "internal/engine.cm", @@ -4267,40 +4401,40 @@ "nr_slots": 21, "nr_close_slots": 0, "instructions": [ - ["get", 4, 7, 1, 697, 13], - ["is_proxy", 5, 4, 697, 13], - ["jump_false", 5, "record_path_443", 697, 13], - ["null", 6, 697, 13], - ["access", 7, "decode", 697, 13], - ["array", 8, 0, 697, 13], - ["push", 8, 1, 697, 13], - ["frame", 9, 4, 2, 697, 13], - ["setarg", 9, 0, 6, 697, 13], - ["setarg", 9, 1, 7, 697, 13], - ["setarg", 9, 2, 8, 697, 13], - ["invoke", 9, 3, 697, 13], - ["jump", "call_done_444", 697, 13], - "record_path_443", - ["load_field", 10, 4, "decode", 697, 13], - ["frame", 11, 10, 1, 697, 13], - ["setarg", 11, 0, 4, 697, 13], - ["setarg", 11, 1, 1, 697, 13], - ["invoke", 11, 3, 697, 13], - "call_done_444", - ["move", 2, 3, 697, 13], - ["get", 13, 34, 1, 698, 3], - ["frame", 14, 13, 1, 698, 3], - ["null", 15, 698, 3], - ["setarg", 14, 0, 15, 698, 3], - ["setarg", 14, 1, 2, 698, 3], - ["invoke", 14, 12, 698, 3], - ["get", 17, 70, 1, 699, 3], - ["frame", 18, 17, 0, 699, 3], - ["null", 19, 699, 3], - ["setarg", 18, 0, 19, 699, 3], - ["invoke", 18, 16, 699, 3], - ["null", 20, 699, 3], - ["return", 20, 699, 3] + ["get", 4, 7, 1, 703, 13], + ["is_proxy", 5, 4, 703, 13], + ["jump_false", 5, "record_path_453", 703, 13], + ["null", 6, 703, 13], + ["access", 7, "decode", 703, 13], + ["array", 8, 0, 703, 13], + ["push", 8, 1, 703, 13], + ["frame", 9, 4, 2, 703, 13], + ["setarg", 9, 0, 6, 703, 13], + ["setarg", 9, 1, 7, 703, 13], + ["setarg", 9, 2, 8, 703, 13], + ["invoke", 9, 3, 703, 13], + ["jump", "call_done_454", 703, 13], + "record_path_453", + ["load_field", 10, 4, "decode", 703, 13], + ["frame", 11, 10, 1, 703, 13], + ["setarg", 11, 0, 4, 703, 13], + ["setarg", 11, 1, 1, 703, 13], + ["invoke", 11, 3, 703, 13], + "call_done_454", + ["move", 2, 3, 703, 13], + ["get", 13, 34, 1, 704, 3], + ["frame", 14, 13, 1, 704, 3], + ["null", 15, 704, 3], + ["setarg", 14, 0, 15, 704, 3], + ["setarg", 14, 1, 2, 704, 3], + ["invoke", 14, 12, 704, 3], + ["get", 17, 70, 1, 705, 3], + ["frame", 18, 17, 0, 705, 3], + ["null", 19, 705, 3], + ["setarg", 18, 0, 19, 705, 3], + ["invoke", 18, 16, 705, 3], + ["null", 20, 705, 3], + ["return", 20, 705, 3] ], "name": "turn", "filename": "internal/engine.cm", @@ -4312,16 +4446,16 @@ "nr_close_slots": 0, "instructions": [ ["record", 3, 0], - ["store_field", 3, 2, "SYSYM", 726, 30], - ["get", 5, 33, 1, 726, 3], - ["frame", 6, 5, 2, 726, 3], - ["null", 7, 726, 3], - ["setarg", 6, 0, 7, 726, 3], - ["setarg", 6, 1, 1, 726, 3], - ["setarg", 6, 2, 3, 726, 3], - ["invoke", 6, 4, 726, 3], - ["null", 8, 726, 3], - ["return", 8, 726, 3] + ["store_field", 3, 2, "SYSYM", 732, 30], + ["get", 5, 33, 1, 732, 3], + ["frame", 6, 5, 2, 732, 3], + ["null", 7, 732, 3], + ["setarg", 6, 0, 7, 732, 3], + ["setarg", 6, 1, 1, 732, 3], + ["setarg", 6, 2, 3, 732, 3], + ["invoke", 6, 4, 732, 3], + ["null", 8, 732, 3], + ["return", 8, 732, 3] ], "name": "sys_msg", "filename": "internal/engine.cm", @@ -4332,31 +4466,31 @@ "nr_slots": 15, "nr_close_slots": 0, "instructions": [ - ["get", 2, 39, 1, 732, 8], + ["get", 2, 39, 1, 738, 8], "_nop_bl_1", - ["jump_true", 2, "if_else_445", 732, 8], - ["null", 4, 732, 18], - ["return", 4, 732, 18], - ["jump", "if_end_446", 732, 18], - "if_else_445", - "if_end_446", - ["get", 5, 39, 1, 733, 11], + ["jump_true", 2, "if_else_455", 738, 8], + ["null", 4, 738, 18], + ["return", 4, 738, 18], + ["jump", "if_end_456", 738, 18], + "if_else_455", + "if_end_456", + ["get", 5, 39, 1, 739, 11], ["record", 6, 0], - ["access", 7, "underling", 733, 27], - ["store_field", 6, 7, "kind", 733, 27], - ["store_field", 6, 1, "message", 733, 48], - ["get", 8, 2, 1, 733, 59], - ["load_field", 9, 8, "self", 733, 59], - ["store_field", 6, 9, "from", 733, 59], - ["get", 11, 16, 1, 733, 3], - ["frame", 12, 11, 2, 733, 3], - ["null", 13, 733, 3], - ["setarg", 12, 0, 13, 733, 3], - ["setarg", 12, 1, 5, 733, 3], - ["setarg", 12, 2, 6, 733, 3], - ["invoke", 12, 10, 733, 3], - ["null", 14, 733, 3], - ["return", 14, 733, 3] + ["access", 7, "underling", 739, 27], + ["store_field", 6, 7, "kind", 739, 27], + ["store_field", 6, 1, "message", 739, 48], + ["get", 8, 2, 1, 739, 59], + ["load_field", 9, 8, "self", 739, 59], + ["store_field", 6, 9, "from", 739, 59], + ["get", 11, 16, 1, 739, 3], + ["frame", 12, 11, 2, 739, 3], + ["null", 13, 739, 3], + ["setarg", 12, 0, 13, 739, 3], + ["setarg", 12, 1, 5, 739, 3], + ["setarg", 12, 2, 6, 739, 3], + ["invoke", 12, 10, 739, 3], + ["null", 14, 739, 3], + ["return", 14, 739, 3] ], "name": "report_to_overling", "filename": "internal/engine.cm", @@ -4367,24 +4501,24 @@ "nr_slots": 37, "nr_close_slots": 0, "instructions": [ - ["get", 3, 75, 1, 745, 17], - ["load_dynamic", 4, 3, 1, 745, 26], - ["move", 2, 4, 745, 26], - ["jump_false", 2, "if_else_447", 746, 7], + ["get", 3, 75, 1, 751, 17], + ["load_dynamic", 4, 3, 1, 751, 26], + ["move", 2, 4, 751, 26], + ["jump_false", 2, "if_else_457", 752, 7], ["record", 5, 0], - ["access", 6, "stopped", 747, 20], - ["store_field", 5, 6, "type", 747, 20], - ["store_field", 5, 1, "id", 747, 31], - ["frame", 8, 2, 1, 747, 5], - ["null", 9, 747, 5], - ["setarg", 8, 0, 9, 747, 5], - ["setarg", 8, 1, 5, 747, 5], - ["invoke", 8, 7, 747, 5], - ["get", 11, 75, 1, 748, 12], - ["delete", 10, 11, 1, 748, 21], - ["jump", "if_end_448", 748, 21], - "if_else_447", - "if_end_448", + ["access", 6, "stopped", 753, 20], + ["store_field", 5, 6, "type", 753, 20], + ["store_field", 5, 1, "id", 753, 31], + ["frame", 8, 2, 1, 753, 5], + ["null", 9, 753, 5], + ["setarg", 8, 0, 9, 753, 5], + ["setarg", 8, 1, 5, 753, 5], + ["invoke", 8, 7, 753, 5], + ["get", 11, 75, 1, 754, 12], + ["delete", 10, 11, 1, 754, 21], + ["jump", "if_end_458", 754, 21], + "if_else_457", + "if_end_458", ["array", 12, 0, 1, 1], ["push", 12, 1, 1, 1], [ @@ -4405,43 +4539,43 @@ ["setarg", 16, 1, 14, 1, 1], ["setarg", 16, 2, 12, 1, 1], ["invoke", 16, 15, 1, 1], - ["get", 19, 63, 1, 750, 3], - ["is_proxy", 20, 19, 750, 3], - ["jump_false", 20, "record_path_449", 750, 3], - ["null", 21, 750, 3], - ["access", 22, "system", 750, 3], - ["array", 23, 0, 750, 3], - ["push", 23, 15, 750, 3], - ["frame", 24, 19, 2, 750, 3], - ["setarg", 24, 0, 21, 750, 3], - ["setarg", 24, 1, 22, 750, 3], - ["setarg", 24, 2, 23, 750, 3], - ["invoke", 24, 18, 750, 3], - ["jump", "call_done_450", 750, 3], - "record_path_449", - ["load_field", 25, 19, "system", 750, 3], - ["frame", 26, 25, 1, 750, 3], - ["setarg", 26, 0, 19, 750, 3], - ["setarg", 26, 1, 15, 750, 3], - ["invoke", 26, 18, 750, 3], - "call_done_450", - ["get", 27, 26, 1, 751, 16], - ["load_dynamic", 28, 27, 1, 751, 26], - ["is_null", 29, 28, 751, 26], + ["get", 19, 63, 1, 756, 3], + ["is_proxy", 20, 19, 756, 3], + ["jump_false", 20, "record_path_459", 756, 3], + ["null", 21, 756, 3], + ["access", 22, "system", 756, 3], + ["array", 23, 0, 756, 3], + ["push", 23, 15, 756, 3], + ["frame", 24, 19, 2, 756, 3], + ["setarg", 24, 0, 21, 756, 3], + ["setarg", 24, 1, 22, 756, 3], + ["setarg", 24, 2, 23, 756, 3], + ["invoke", 24, 18, 756, 3], + ["jump", "call_done_460", 756, 3], + "record_path_459", + ["load_field", 25, 19, "system", 756, 3], + ["frame", 26, 25, 1, 756, 3], + ["setarg", 26, 0, 19, 756, 3], + ["setarg", 26, 1, 15, 756, 3], + ["invoke", 26, 18, 756, 3], + "call_done_460", + ["get", 27, 26, 1, 757, 16], + ["load_dynamic", 28, 27, 1, 757, 26], + ["is_null", 29, 28, 757, 26], "_nop_bl_1", - ["jump_true", 29, "if_else_451", 751, 26], - ["access", 31, "coupled actor died", 751, 42], - ["get", 33, 65, 1, 751, 32], - ["frame", 34, 33, 1, 751, 32], - ["null", 35, 751, 32], - ["setarg", 34, 0, 35, 751, 32], - ["setarg", 34, 1, 31, 751, 32], - ["invoke", 34, 32, 751, 32], - ["jump", "if_end_452", 751, 32], - "if_else_451", - "if_end_452", - ["null", 36, 751, 32], - ["return", 36, 751, 32] + ["jump_true", 29, "if_else_461", 757, 26], + ["access", 31, "coupled actor died", 757, 42], + ["get", 33, 65, 1, 757, 32], + ["frame", 34, 33, 1, 757, 32], + ["null", 35, 757, 32], + ["setarg", 34, 0, 35, 757, 32], + ["setarg", 34, 1, 31, 757, 32], + ["invoke", 34, 32, 757, 32], + ["jump", "if_end_462", 757, 32], + "if_else_461", + "if_end_462", + ["null", 36, 757, 32], + ["return", 36, 757, 32] ], "name": "handle_actor_disconnect", "filename": "internal/engine.cm", @@ -4452,305 +4586,305 @@ "nr_slots": 91, "nr_close_slots": 0, "instructions": [ - ["null", 4, 756, 14], - ["null", 2, 757, 17], - ["null", 3, 758, 17], - ["load_field", 5, 1, "kind", 760, 7], - ["access", 6, "stop", 760, 19], - ["is_identical", 7, 5, 6, 760, 19], - ["jump_true", 7, "eq_done_455", 760, 19], - ["is_int", 8, 5, 760, 19], - ["jump_false", 8, "eq_ni_456", 760, 19], + ["null", 4, 762, 14], + ["null", 2, 763, 17], + ["null", 3, 764, 17], + ["load_field", 5, 1, "kind", 766, 7], + ["access", 6, "stop", 766, 19], + ["is_identical", 7, 5, 6, 766, 19], + ["jump_true", 7, "eq_done_465", 766, 19], + ["is_int", 8, 5, 766, 19], + ["jump_false", 8, "eq_ni_466", 766, 19], "_nop_tc_1", - ["jump", "eq_ni_456", 760, 19], - ["eq_int", 7, 5, 6, 760, 19], - ["jump", "eq_done_455", 760, 19], - "eq_ni_456", - ["is_num", 8, 5, 760, 19], - ["jump_false", 8, "eq_nn_457", 760, 19], - ["is_num", 9, 6, 760, 19], - ["jump_false", 9, "eq_nn_457", 760, 19], - ["eq_float", 7, 5, 6, 760, 19], - ["jump", "eq_done_455", 760, 19], - "eq_nn_457", - ["is_text", 8, 5, 760, 19], - ["jump_false", 8, "eq_nt_458", 760, 19], - ["is_text", 9, 6, 760, 19], - ["jump_false", 9, "eq_nt_458", 760, 19], - ["eq_text", 7, 5, 6, 760, 19], - ["jump", "eq_done_455", 760, 19], - "eq_nt_458", - ["is_null", 8, 5, 760, 19], - ["jump_false", 8, "eq_nnl_459", 760, 19], - ["is_null", 9, 6, 760, 19], - ["jump_false", 9, "eq_nnl_459", 760, 19], - ["true", 7, 760, 19], - ["jump", "eq_done_455", 760, 19], - "eq_nnl_459", - ["is_bool", 8, 5, 760, 19], - ["jump_false", 8, "eq_nb_460", 760, 19], - ["is_bool", 9, 6, 760, 19], - ["jump_false", 9, "eq_nb_460", 760, 19], - ["eq_bool", 7, 5, 6, 760, 19], - ["jump", "eq_done_455", 760, 19], - "eq_nb_460", - ["false", 7, 760, 19], - "eq_done_455", - ["jump_false", 7, "if_else_453", 760, 19], - ["access", 10, "got stop message", 761, 15], - ["get", 12, 65, 1, 761, 5], - ["frame", 13, 12, 1, 761, 5], - ["null", 14, 761, 5], - ["setarg", 13, 0, 14, 761, 5], - ["setarg", 13, 1, 10, 761, 5], - ["invoke", 13, 11, 761, 5], - ["jump", "if_end_454", 761, 5], - "if_else_453", - ["load_field", 15, 1, "kind", 762, 14], - ["access", 16, "underling", 762, 26], - ["is_identical", 17, 15, 16, 762, 26], - ["jump_true", 17, "eq_done_463", 762, 26], - ["is_int", 18, 15, 762, 26], - ["jump_false", 18, "eq_ni_464", 762, 26], + ["jump", "eq_ni_466", 766, 19], + ["eq_int", 7, 5, 6, 766, 19], + ["jump", "eq_done_465", 766, 19], + "eq_ni_466", + ["is_num", 8, 5, 766, 19], + ["jump_false", 8, "eq_nn_467", 766, 19], + ["is_num", 9, 6, 766, 19], + ["jump_false", 9, "eq_nn_467", 766, 19], + ["eq_float", 7, 5, 6, 766, 19], + ["jump", "eq_done_465", 766, 19], + "eq_nn_467", + ["is_text", 8, 5, 766, 19], + ["jump_false", 8, "eq_nt_468", 766, 19], + ["is_text", 9, 6, 766, 19], + ["jump_false", 9, "eq_nt_468", 766, 19], + ["eq_text", 7, 5, 6, 766, 19], + ["jump", "eq_done_465", 766, 19], + "eq_nt_468", + ["is_null", 8, 5, 766, 19], + ["jump_false", 8, "eq_nnl_469", 766, 19], + ["is_null", 9, 6, 766, 19], + ["jump_false", 9, "eq_nnl_469", 766, 19], + ["true", 7, 766, 19], + ["jump", "eq_done_465", 766, 19], + "eq_nnl_469", + ["is_bool", 8, 5, 766, 19], + ["jump_false", 8, "eq_nb_470", 766, 19], + ["is_bool", 9, 6, 766, 19], + ["jump_false", 9, "eq_nb_470", 766, 19], + ["eq_bool", 7, 5, 6, 766, 19], + ["jump", "eq_done_465", 766, 19], + "eq_nb_470", + ["false", 7, 766, 19], + "eq_done_465", + ["jump_false", 7, "if_else_463", 766, 19], + ["access", 10, "got stop message", 767, 15], + ["get", 12, 65, 1, 767, 5], + ["frame", 13, 12, 1, 767, 5], + ["null", 14, 767, 5], + ["setarg", 13, 0, 14, 767, 5], + ["setarg", 13, 1, 10, 767, 5], + ["invoke", 13, 11, 767, 5], + ["jump", "if_end_464", 767, 5], + "if_else_463", + ["load_field", 15, 1, "kind", 768, 14], + ["access", 16, "underling", 768, 26], + ["is_identical", 17, 15, 16, 768, 26], + ["jump_true", 17, "eq_done_473", 768, 26], + ["is_int", 18, 15, 768, 26], + ["jump_false", 18, "eq_ni_474", 768, 26], "_nop_tc_2", - ["jump", "eq_ni_464", 762, 26], - ["eq_int", 17, 15, 16, 762, 26], - ["jump", "eq_done_463", 762, 26], - "eq_ni_464", - ["is_num", 18, 15, 762, 26], - ["jump_false", 18, "eq_nn_465", 762, 26], - ["is_num", 19, 16, 762, 26], - ["jump_false", 19, "eq_nn_465", 762, 26], - ["eq_float", 17, 15, 16, 762, 26], - ["jump", "eq_done_463", 762, 26], - "eq_nn_465", - ["is_text", 18, 15, 762, 26], - ["jump_false", 18, "eq_nt_466", 762, 26], - ["is_text", 19, 16, 762, 26], - ["jump_false", 19, "eq_nt_466", 762, 26], - ["eq_text", 17, 15, 16, 762, 26], - ["jump", "eq_done_463", 762, 26], - "eq_nt_466", - ["is_null", 18, 15, 762, 26], - ["jump_false", 18, "eq_nnl_467", 762, 26], - ["is_null", 19, 16, 762, 26], - ["jump_false", 19, "eq_nnl_467", 762, 26], - ["true", 17, 762, 26], - ["jump", "eq_done_463", 762, 26], - "eq_nnl_467", - ["is_bool", 18, 15, 762, 26], - ["jump_false", 18, "eq_nb_468", 762, 26], - ["is_bool", 19, 16, 762, 26], - ["jump_false", 19, "eq_nb_468", 762, 26], - ["eq_bool", 17, 15, 16, 762, 26], - ["jump", "eq_done_463", 762, 26], - "eq_nb_468", - ["false", 17, 762, 26], - "eq_done_463", - ["jump_false", 17, "if_else_461", 762, 26], - ["load_field", 20, 1, "from", 763, 12], - ["move", 4, 20, 763, 12], - ["get", 21, 75, 1, 764, 15], - ["get", 22, 27, 1, 764, 29], - ["load_dynamic", 23, 4, 22, 764, 29], - ["load_field", 24, 23, "id", 764, 29], - ["load_dynamic", 25, 21, 24, 764, 29], - ["move", 2, 25, 764, 29], - ["jump_false", 2, "if_else_469", 765, 9], - ["load_field", 26, 1, "message", 765, 26], - ["frame", 28, 2, 1, 765, 18], - ["null", 29, 765, 18], - ["setarg", 28, 0, 29, 765, 18], - ["setarg", 28, 1, 26, 765, 18], - ["invoke", 28, 27, 765, 18], - ["jump", "if_end_470", 765, 18], - "if_else_469", - "if_end_470", - ["load_field", 30, 1, "message", 766, 9], - ["load_field", 31, 30, "type", 766, 9], - ["access", 32, "disrupt", 766, 29], - ["is_identical", 33, 31, 32, 766, 29], - ["jump_true", 33, "eq_done_473", 766, 29], - ["is_int", 34, 31, 766, 29], - ["jump_false", 34, "eq_ni_474", 766, 29], - "_nop_tc_3", - ["jump", "eq_ni_474", 766, 29], - ["eq_int", 33, 31, 32, 766, 29], - ["jump", "eq_done_473", 766, 29], + ["jump", "eq_ni_474", 768, 26], + ["eq_int", 17, 15, 16, 768, 26], + ["jump", "eq_done_473", 768, 26], "eq_ni_474", - ["is_num", 34, 31, 766, 29], - ["jump_false", 34, "eq_nn_475", 766, 29], - ["is_num", 35, 32, 766, 29], - ["jump_false", 35, "eq_nn_475", 766, 29], - ["eq_float", 33, 31, 32, 766, 29], - ["jump", "eq_done_473", 766, 29], + ["is_num", 18, 15, 768, 26], + ["jump_false", 18, "eq_nn_475", 768, 26], + ["is_num", 19, 16, 768, 26], + ["jump_false", 19, "eq_nn_475", 768, 26], + ["eq_float", 17, 15, 16, 768, 26], + ["jump", "eq_done_473", 768, 26], "eq_nn_475", - ["is_text", 34, 31, 766, 29], - ["jump_false", 34, "eq_nt_476", 766, 29], - ["is_text", 35, 32, 766, 29], - ["jump_false", 35, "eq_nt_476", 766, 29], - ["eq_text", 33, 31, 32, 766, 29], - ["jump", "eq_done_473", 766, 29], + ["is_text", 18, 15, 768, 26], + ["jump_false", 18, "eq_nt_476", 768, 26], + ["is_text", 19, 16, 768, 26], + ["jump_false", 19, "eq_nt_476", 768, 26], + ["eq_text", 17, 15, 16, 768, 26], + ["jump", "eq_done_473", 768, 26], "eq_nt_476", - ["is_null", 34, 31, 766, 29], - ["jump_false", 34, "eq_nnl_477", 766, 29], - ["is_null", 35, 32, 766, 29], - ["jump_false", 35, "eq_nnl_477", 766, 29], - ["true", 33, 766, 29], - ["jump", "eq_done_473", 766, 29], + ["is_null", 18, 15, 768, 26], + ["jump_false", 18, "eq_nnl_477", 768, 26], + ["is_null", 19, 16, 768, 26], + ["jump_false", 19, "eq_nnl_477", 768, 26], + ["true", 17, 768, 26], + ["jump", "eq_done_473", 768, 26], "eq_nnl_477", - ["is_bool", 34, 31, 766, 29], - ["jump_false", 34, "eq_nb_478", 766, 29], - ["is_bool", 35, 32, 766, 29], - ["jump_false", 35, "eq_nb_478", 766, 29], - ["eq_bool", 33, 31, 32, 766, 29], - ["jump", "eq_done_473", 766, 29], + ["is_bool", 18, 15, 768, 26], + ["jump_false", 18, "eq_nb_478", 768, 26], + ["is_bool", 19, 16, 768, 26], + ["jump_false", 19, "eq_nb_478", 768, 26], + ["eq_bool", 17, 15, 16, 768, 26], + ["jump", "eq_done_473", 768, 26], "eq_nb_478", - ["false", 33, 766, 29], + ["false", 17, 768, 26], "eq_done_473", - ["jump_false", 33, "if_else_471", 766, 29], - ["get", 37, 12, 1, 767, 14], - ["get", 38, 27, 1, 767, 30], - ["load_dynamic", 39, 4, 38, 767, 30], - ["load_field", 40, 39, "id", 767, 30], - ["delete", 36, 37, 40, 767, 30], - ["jump", "if_end_472", 767, 30], - "if_else_471", - "if_end_472", - ["jump", "if_end_462", 767, 30], - "if_else_461", - ["load_field", 41, 1, "kind", 768, 14], - ["access", 42, "contact", 768, 26], - ["is_identical", 43, 41, 42, 768, 26], - ["jump_true", 43, "eq_done_481", 768, 26], - ["is_int", 44, 41, 768, 26], - ["jump_false", 44, "eq_ni_482", 768, 26], - "_nop_tc_4", - ["jump", "eq_ni_482", 768, 26], - ["eq_int", 43, 41, 42, 768, 26], - ["jump", "eq_done_481", 768, 26], - "eq_ni_482", - ["is_num", 44, 41, 768, 26], - ["jump_false", 44, "eq_nn_483", 768, 26], - ["is_num", 45, 42, 768, 26], - ["jump_false", 45, "eq_nn_483", 768, 26], - ["eq_float", 43, 41, 42, 768, 26], - ["jump", "eq_done_481", 768, 26], - "eq_nn_483", - ["is_text", 44, 41, 768, 26], - ["jump_false", 44, "eq_nt_484", 768, 26], - ["is_text", 45, 42, 768, 26], - ["jump_false", 45, "eq_nt_484", 768, 26], - ["eq_text", 43, 41, 42, 768, 26], - ["jump", "eq_done_481", 768, 26], - "eq_nt_484", - ["is_null", 44, 41, 768, 26], - ["jump_false", 44, "eq_nnl_485", 768, 26], - ["is_null", 45, 42, 768, 26], - ["jump_false", 45, "eq_nnl_485", 768, 26], - ["true", 43, 768, 26], - ["jump", "eq_done_481", 768, 26], - "eq_nnl_485", - ["is_bool", 44, 41, 768, 26], - ["jump_false", 44, "eq_nb_486", 768, 26], - ["is_bool", 45, 42, 768, 26], - ["jump_false", 45, "eq_nb_486", 768, 26], - ["eq_bool", 43, 41, 42, 768, 26], - ["jump", "eq_done_481", 768, 26], - "eq_nb_486", - ["false", 43, 768, 26], - "eq_done_481", - ["jump_false", 43, "if_else_479", 768, 26], - ["get", 46, 36, 1, 769, 9], - ["jump_false", 46, "if_else_487", 769, 9], - ["load_field", 47, 1, "data", 770, 17], - ["move", 3, 47, 770, 17], - ["get", 48, 41, 1, 771, 15], - ["store_dynamic", 3, 1, 48, 771, 15], - ["delete", 49, 1, "data"], - ["get", 51, 36, 1, 773, 7], - ["frame", 52, 51, 1, 773, 7], - ["null", 53, 773, 7], - ["setarg", 52, 0, 53, 773, 7], - ["setarg", 52, 1, 3, 773, 7], - ["invoke", 52, 50, 773, 7], - ["jump", "if_end_488", 773, 7], - "if_else_487", - ["access", 54, "Got a contact message, but no portal is established.", 775, 17], - ["get", 56, 63, 1, 775, 7], - ["is_proxy", 57, 56, 775, 7], - ["jump_false", 57, "record_path_489", 775, 7], - ["null", 58, 775, 7], - ["access", 59, "error", 775, 7], - ["array", 60, 0, 775, 7], - ["push", 60, 54, 775, 7], - ["frame", 61, 56, 2, 775, 7], - ["setarg", 61, 0, 58, 775, 7], - ["setarg", 61, 1, 59, 775, 7], - ["setarg", 61, 2, 60, 775, 7], - ["invoke", 61, 55, 775, 7], - ["jump", "call_done_490", 775, 7], - "record_path_489", - ["load_field", 62, 56, "error", 775, 7], - ["frame", 63, 62, 1, 775, 7], - ["setarg", 63, 0, 56, 775, 7], - ["setarg", 63, 1, 54, 775, 7], - ["invoke", 63, 55, 775, 7], - "call_done_490", - ["disrupt", 776, 7], - "if_end_488", - ["jump", "if_end_480", 776, 7], + ["jump_false", 17, "if_else_471", 768, 26], + ["load_field", 20, 1, "from", 769, 12], + ["move", 4, 20, 769, 12], + ["get", 21, 75, 1, 770, 15], + ["get", 22, 27, 1, 770, 29], + ["load_dynamic", 23, 4, 22, 770, 29], + ["load_field", 24, 23, "id", 770, 29], + ["load_dynamic", 25, 21, 24, 770, 29], + ["move", 2, 25, 770, 29], + ["jump_false", 2, "if_else_479", 771, 9], + ["load_field", 26, 1, "message", 771, 26], + ["frame", 28, 2, 1, 771, 18], + ["null", 29, 771, 18], + ["setarg", 28, 0, 29, 771, 18], + ["setarg", 28, 1, 26, 771, 18], + ["invoke", 28, 27, 771, 18], + ["jump", "if_end_480", 771, 18], "if_else_479", - ["load_field", 64, 1, "kind", 778, 14], - ["access", 65, "couple", 778, 26], - ["is_identical", 66, 64, 65, 778, 26], - ["jump_true", 66, "eq_done_493", 778, 26], - ["is_int", 67, 64, 778, 26], - ["jump_false", 67, "eq_ni_494", 778, 26], + "if_end_480", + ["load_field", 30, 1, "message", 772, 9], + ["load_field", 31, 30, "type", 772, 9], + ["access", 32, "disrupt", 772, 29], + ["is_identical", 33, 31, 32, 772, 29], + ["jump_true", 33, "eq_done_483", 772, 29], + ["is_int", 34, 31, 772, 29], + ["jump_false", 34, "eq_ni_484", 772, 29], + "_nop_tc_3", + ["jump", "eq_ni_484", 772, 29], + ["eq_int", 33, 31, 32, 772, 29], + ["jump", "eq_done_483", 772, 29], + "eq_ni_484", + ["is_num", 34, 31, 772, 29], + ["jump_false", 34, "eq_nn_485", 772, 29], + ["is_num", 35, 32, 772, 29], + ["jump_false", 35, "eq_nn_485", 772, 29], + ["eq_float", 33, 31, 32, 772, 29], + ["jump", "eq_done_483", 772, 29], + "eq_nn_485", + ["is_text", 34, 31, 772, 29], + ["jump_false", 34, "eq_nt_486", 772, 29], + ["is_text", 35, 32, 772, 29], + ["jump_false", 35, "eq_nt_486", 772, 29], + ["eq_text", 33, 31, 32, 772, 29], + ["jump", "eq_done_483", 772, 29], + "eq_nt_486", + ["is_null", 34, 31, 772, 29], + ["jump_false", 34, "eq_nnl_487", 772, 29], + ["is_null", 35, 32, 772, 29], + ["jump_false", 35, "eq_nnl_487", 772, 29], + ["true", 33, 772, 29], + ["jump", "eq_done_483", 772, 29], + "eq_nnl_487", + ["is_bool", 34, 31, 772, 29], + ["jump_false", 34, "eq_nb_488", 772, 29], + ["is_bool", 35, 32, 772, 29], + ["jump_false", 35, "eq_nb_488", 772, 29], + ["eq_bool", 33, 31, 32, 772, 29], + ["jump", "eq_done_483", 772, 29], + "eq_nb_488", + ["false", 33, 772, 29], + "eq_done_483", + ["jump_false", 33, "if_else_481", 772, 29], + ["get", 37, 12, 1, 773, 14], + ["get", 38, 27, 1, 773, 30], + ["load_dynamic", 39, 4, 38, 773, 30], + ["load_field", 40, 39, "id", 773, 30], + ["delete", 36, 37, 40, 773, 30], + ["jump", "if_end_482", 773, 30], + "if_else_481", + "if_end_482", + ["jump", "if_end_472", 773, 30], + "if_else_471", + ["load_field", 41, 1, "kind", 774, 14], + ["access", 42, "contact", 774, 26], + ["is_identical", 43, 41, 42, 774, 26], + ["jump_true", 43, "eq_done_491", 774, 26], + ["is_int", 44, 41, 774, 26], + ["jump_false", 44, "eq_ni_492", 774, 26], + "_nop_tc_4", + ["jump", "eq_ni_492", 774, 26], + ["eq_int", 43, 41, 42, 774, 26], + ["jump", "eq_done_491", 774, 26], + "eq_ni_492", + ["is_num", 44, 41, 774, 26], + ["jump_false", 44, "eq_nn_493", 774, 26], + ["is_num", 45, 42, 774, 26], + ["jump_false", 45, "eq_nn_493", 774, 26], + ["eq_float", 43, 41, 42, 774, 26], + ["jump", "eq_done_491", 774, 26], + "eq_nn_493", + ["is_text", 44, 41, 774, 26], + ["jump_false", 44, "eq_nt_494", 774, 26], + ["is_text", 45, 42, 774, 26], + ["jump_false", 45, "eq_nt_494", 774, 26], + ["eq_text", 43, 41, 42, 774, 26], + ["jump", "eq_done_491", 774, 26], + "eq_nt_494", + ["is_null", 44, 41, 774, 26], + ["jump_false", 44, "eq_nnl_495", 774, 26], + ["is_null", 45, 42, 774, 26], + ["jump_false", 45, "eq_nnl_495", 774, 26], + ["true", 43, 774, 26], + ["jump", "eq_done_491", 774, 26], + "eq_nnl_495", + ["is_bool", 44, 41, 774, 26], + ["jump_false", 44, "eq_nb_496", 774, 26], + ["is_bool", 45, 42, 774, 26], + ["jump_false", 45, "eq_nb_496", 774, 26], + ["eq_bool", 43, 41, 42, 774, 26], + ["jump", "eq_done_491", 774, 26], + "eq_nb_496", + ["false", 43, 774, 26], + "eq_done_491", + ["jump_false", 43, "if_else_489", 774, 26], + ["get", 46, 36, 1, 775, 9], + ["jump_false", 46, "if_else_497", 775, 9], + ["load_field", 47, 1, "data", 776, 17], + ["move", 3, 47, 776, 17], + ["get", 48, 41, 1, 777, 15], + ["store_dynamic", 3, 1, 48, 777, 15], + ["delete", 49, 1, "data"], + ["get", 51, 36, 1, 779, 7], + ["frame", 52, 51, 1, 779, 7], + ["null", 53, 779, 7], + ["setarg", 52, 0, 53, 779, 7], + ["setarg", 52, 1, 3, 779, 7], + ["invoke", 52, 50, 779, 7], + ["jump", "if_end_498", 779, 7], + "if_else_497", + ["access", 54, "Got a contact message, but no portal is established.", 781, 17], + ["get", 56, 63, 1, 781, 7], + ["is_proxy", 57, 56, 781, 7], + ["jump_false", 57, "record_path_499", 781, 7], + ["null", 58, 781, 7], + ["access", 59, "error", 781, 7], + ["array", 60, 0, 781, 7], + ["push", 60, 54, 781, 7], + ["frame", 61, 56, 2, 781, 7], + ["setarg", 61, 0, 58, 781, 7], + ["setarg", 61, 1, 59, 781, 7], + ["setarg", 61, 2, 60, 781, 7], + ["invoke", 61, 55, 781, 7], + ["jump", "call_done_500", 781, 7], + "record_path_499", + ["load_field", 62, 56, "error", 781, 7], + ["frame", 63, 62, 1, 781, 7], + ["setarg", 63, 0, 56, 781, 7], + ["setarg", 63, 1, 54, 781, 7], + ["invoke", 63, 55, 781, 7], + "call_done_500", + ["disrupt", 782, 7], + "if_end_498", + ["jump", "if_end_490", 782, 7], + "if_else_489", + ["load_field", 64, 1, "kind", 784, 14], + ["access", 65, "couple", 784, 26], + ["is_identical", 66, 64, 65, 784, 26], + ["jump_true", 66, "eq_done_503", 784, 26], + ["is_int", 67, 64, 784, 26], + ["jump_false", 67, "eq_ni_504", 784, 26], "_nop_tc_5", - ["jump", "eq_ni_494", 778, 26], - ["eq_int", 66, 64, 65, 778, 26], - ["jump", "eq_done_493", 778, 26], - "eq_ni_494", - ["is_num", 67, 64, 778, 26], - ["jump_false", 67, "eq_nn_495", 778, 26], - ["is_num", 68, 65, 778, 26], - ["jump_false", 68, "eq_nn_495", 778, 26], - ["eq_float", 66, 64, 65, 778, 26], - ["jump", "eq_done_493", 778, 26], - "eq_nn_495", - ["is_text", 67, 64, 778, 26], - ["jump_false", 67, "eq_nt_496", 778, 26], - ["is_text", 68, 65, 778, 26], - ["jump_false", 68, "eq_nt_496", 778, 26], - ["eq_text", 66, 64, 65, 778, 26], - ["jump", "eq_done_493", 778, 26], - "eq_nt_496", - ["is_null", 67, 64, 778, 26], - ["jump_false", 67, "eq_nnl_497", 778, 26], - ["is_null", 68, 65, 778, 26], - ["jump_false", 68, "eq_nnl_497", 778, 26], - ["true", 66, 778, 26], - ["jump", "eq_done_493", 778, 26], - "eq_nnl_497", - ["is_bool", 67, 64, 778, 26], - ["jump_false", 67, "eq_nb_498", 778, 26], - ["is_bool", 68, 65, 778, 26], - ["jump_false", 68, "eq_nb_498", 778, 26], - ["eq_bool", 66, 64, 65, 778, 26], - ["jump", "eq_done_493", 778, 26], - "eq_nb_498", - ["false", 66, 778, 26], - "eq_done_493", - ["jump_false", 66, "if_else_491", 778, 26], - ["load_field", 69, 1, "from", 780, 12], - ["move", 4, 69, 780, 12], - ["true", 70, 781, 38], - ["get", 71, 12, 1, 781, 5], - ["get", 72, 27, 1, 781, 21], - ["load_dynamic", 73, 4, 72, 781, 21], - ["load_field", 74, 73, "id", 781, 21], - ["store_dynamic", 71, 70, 74, 781, 21], + ["jump", "eq_ni_504", 784, 26], + ["eq_int", 66, 64, 65, 784, 26], + ["jump", "eq_done_503", 784, 26], + "eq_ni_504", + ["is_num", 67, 64, 784, 26], + ["jump_false", 67, "eq_nn_505", 784, 26], + ["is_num", 68, 65, 784, 26], + ["jump_false", 68, "eq_nn_505", 784, 26], + ["eq_float", 66, 64, 65, 784, 26], + ["jump", "eq_done_503", 784, 26], + "eq_nn_505", + ["is_text", 67, 64, 784, 26], + ["jump_false", 67, "eq_nt_506", 784, 26], + ["is_text", 68, 65, 784, 26], + ["jump_false", 68, "eq_nt_506", 784, 26], + ["eq_text", 66, 64, 65, 784, 26], + ["jump", "eq_done_503", 784, 26], + "eq_nt_506", + ["is_null", 67, 64, 784, 26], + ["jump_false", 67, "eq_nnl_507", 784, 26], + ["is_null", 68, 65, 784, 26], + ["jump_false", 68, "eq_nnl_507", 784, 26], + ["true", 66, 784, 26], + ["jump", "eq_done_503", 784, 26], + "eq_nnl_507", + ["is_bool", 67, 64, 784, 26], + ["jump_false", 67, "eq_nb_508", 784, 26], + ["is_bool", 68, 65, 784, 26], + ["jump_false", 68, "eq_nb_508", 784, 26], + ["eq_bool", 66, 64, 65, 784, 26], + ["jump", "eq_done_503", 784, 26], + "eq_nb_508", + ["false", 66, 784, 26], + "eq_done_503", + ["jump_false", 66, "if_else_501", 784, 26], + ["load_field", 69, 1, "from", 786, 12], + ["move", 4, 69, 786, 12], + ["true", 70, 787, 38], + ["get", 71, 12, 1, 787, 5], + ["get", 72, 27, 1, 787, 21], + ["load_dynamic", 73, 4, 72, 787, 21], + ["load_field", 74, 73, "id", 787, 21], + ["store_dynamic", 71, 70, 74, 787, 21], ["array", 75, 0, 1, 1], ["push", 75, 4, 1, 1], [ @@ -4771,34 +4905,34 @@ ["setarg", 79, 1, 77, 1, 1], ["setarg", 79, 2, 75, 1, 1], ["invoke", 79, 78, 1, 1], - ["get", 82, 63, 1, 782, 5], - ["is_proxy", 83, 82, 782, 5], - ["jump_false", 83, "record_path_499", 782, 5], - ["null", 84, 782, 5], - ["access", 85, "system", 782, 5], - ["array", 86, 0, 782, 5], - ["push", 86, 78, 782, 5], - ["frame", 87, 82, 2, 782, 5], - ["setarg", 87, 0, 84, 782, 5], - ["setarg", 87, 1, 85, 782, 5], - ["setarg", 87, 2, 86, 782, 5], - ["invoke", 87, 81, 782, 5], - ["jump", "call_done_500", 782, 5], - "record_path_499", - ["load_field", 88, 82, "system", 782, 5], - ["frame", 89, 88, 1, 782, 5], - ["setarg", 89, 0, 82, 782, 5], - ["setarg", 89, 1, 78, 782, 5], - ["invoke", 89, 81, 782, 5], - "call_done_500", - ["jump", "if_end_492", 782, 5], - "if_else_491", - "if_end_492", - "if_end_480", - "if_end_462", - "if_end_454", - ["null", 90, 782, 5], - ["return", 90, 782, 5] + ["get", 82, 63, 1, 788, 5], + ["is_proxy", 83, 82, 788, 5], + ["jump_false", 83, "record_path_509", 788, 5], + ["null", 84, 788, 5], + ["access", 85, "system", 788, 5], + ["array", 86, 0, 788, 5], + ["push", 86, 78, 788, 5], + ["frame", 87, 82, 2, 788, 5], + ["setarg", 87, 0, 84, 788, 5], + ["setarg", 87, 1, 85, 788, 5], + ["setarg", 87, 2, 86, 788, 5], + ["invoke", 87, 81, 788, 5], + ["jump", "call_done_510", 788, 5], + "record_path_509", + ["load_field", 88, 82, "system", 788, 5], + ["frame", 89, 88, 1, 788, 5], + ["setarg", 89, 0, 82, 788, 5], + ["setarg", 89, 1, 78, 788, 5], + ["invoke", 89, 81, 788, 5], + "call_done_510", + ["jump", "if_end_502", 788, 5], + "if_else_501", + "if_end_502", + "if_end_490", + "if_end_472", + "if_end_464", + ["null", 90, 788, 5], + ["return", 90, 788, 5] ], "name": "handle_sysym", "filename": "internal/engine.cm", @@ -4809,75 +4943,75 @@ "nr_slots": 63, "nr_close_slots": 0, "instructions": [ - ["null", 3, 787, 16], - ["null", 2, 788, 12], - ["get", 4, 73, 1, 790, 11], - ["load_dynamic", 5, 1, 4, 790, 11], - ["jump_false", 5, "if_else_501", 790, 11], - ["get", 6, 73, 1, 791, 22], - ["load_dynamic", 7, 1, 6, 791, 22], - ["load_field", 8, 1, "from", 791, 30], - ["get", 10, 15, 1, 791, 5], - ["frame", 11, 10, 2, 791, 5], - ["null", 12, 791, 5], - ["setarg", 11, 0, 12, 791, 5], - ["setarg", 11, 1, 7, 791, 5], - ["setarg", 11, 2, 8, 791, 5], - ["invoke", 11, 9, 791, 5], - ["null", 13, 792, 5], - ["return", 13, 792, 5], - ["jump", "if_end_502", 792, 5], - "if_else_501", - "if_end_502", - ["load_field", 14, 1, "type", 795, 7], - ["access", 15, "user", 795, 19], - ["is_identical", 16, 14, 15, 795, 19], - ["jump_true", 16, "eq_done_505", 795, 19], - ["is_int", 17, 14, 795, 19], - ["jump_false", 17, "eq_ni_506", 795, 19], + ["null", 3, 793, 16], + ["null", 2, 794, 12], + ["get", 4, 73, 1, 796, 11], + ["load_dynamic", 5, 1, 4, 796, 11], + ["jump_false", 5, "if_else_511", 796, 11], + ["get", 6, 73, 1, 797, 22], + ["load_dynamic", 7, 1, 6, 797, 22], + ["load_field", 8, 1, "from", 797, 30], + ["get", 10, 15, 1, 797, 5], + ["frame", 11, 10, 2, 797, 5], + ["null", 12, 797, 5], + ["setarg", 11, 0, 12, 797, 5], + ["setarg", 11, 1, 7, 797, 5], + ["setarg", 11, 2, 8, 797, 5], + ["invoke", 11, 9, 797, 5], + ["null", 13, 798, 5], + ["return", 13, 798, 5], + ["jump", "if_end_512", 798, 5], + "if_else_511", + "if_end_512", + ["load_field", 14, 1, "type", 801, 7], + ["access", 15, "user", 801, 19], + ["is_identical", 16, 14, 15, 801, 19], + ["jump_true", 16, "eq_done_515", 801, 19], + ["is_int", 17, 14, 801, 19], + ["jump_false", 17, "eq_ni_516", 801, 19], "_nop_tc_1", - ["jump", "eq_ni_506", 795, 19], - ["eq_int", 16, 14, 15, 795, 19], - ["jump", "eq_done_505", 795, 19], - "eq_ni_506", - ["is_num", 17, 14, 795, 19], - ["jump_false", 17, "eq_nn_507", 795, 19], - ["is_num", 18, 15, 795, 19], - ["jump_false", 18, "eq_nn_507", 795, 19], - ["eq_float", 16, 14, 15, 795, 19], - ["jump", "eq_done_505", 795, 19], - "eq_nn_507", - ["is_text", 17, 14, 795, 19], - ["jump_false", 17, "eq_nt_508", 795, 19], - ["is_text", 18, 15, 795, 19], - ["jump_false", 18, "eq_nt_508", 795, 19], - ["eq_text", 16, 14, 15, 795, 19], - ["jump", "eq_done_505", 795, 19], - "eq_nt_508", - ["is_null", 17, 14, 795, 19], - ["jump_false", 17, "eq_nnl_509", 795, 19], - ["is_null", 18, 15, 795, 19], - ["jump_false", 18, "eq_nnl_509", 795, 19], - ["true", 16, 795, 19], - ["jump", "eq_done_505", 795, 19], - "eq_nnl_509", - ["is_bool", 17, 14, 795, 19], - ["jump_false", 17, "eq_nb_510", 795, 19], - ["is_bool", 18, 15, 795, 19], - ["jump_false", 18, "eq_nb_510", 795, 19], - ["eq_bool", 16, 14, 15, 795, 19], - ["jump", "eq_done_505", 795, 19], - "eq_nb_510", - ["false", 16, 795, 19], - "eq_done_505", - ["jump_false", 16, "if_else_503", 795, 19], - ["load_field", 19, 1, "data", 796, 14], - ["move", 3, 19, 796, 14], - ["get", 20, 41, 1, 797, 35], + ["jump", "eq_ni_516", 801, 19], + ["eq_int", 16, 14, 15, 801, 19], + ["jump", "eq_done_515", 801, 19], + "eq_ni_516", + ["is_num", 17, 14, 801, 19], + ["jump_false", 17, "eq_nn_517", 801, 19], + ["is_num", 18, 15, 801, 19], + ["jump_false", 18, "eq_nn_517", 801, 19], + ["eq_float", 16, 14, 15, 801, 19], + ["jump", "eq_done_515", 801, 19], + "eq_nn_517", + ["is_text", 17, 14, 801, 19], + ["jump_false", 17, "eq_nt_518", 801, 19], + ["is_text", 18, 15, 801, 19], + ["jump_false", 18, "eq_nt_518", 801, 19], + ["eq_text", 16, 14, 15, 801, 19], + ["jump", "eq_done_515", 801, 19], + "eq_nt_518", + ["is_null", 17, 14, 801, 19], + ["jump_false", 17, "eq_nnl_519", 801, 19], + ["is_null", 18, 15, 801, 19], + ["jump_false", 18, "eq_nnl_519", 801, 19], + ["true", 16, 801, 19], + ["jump", "eq_done_515", 801, 19], + "eq_nnl_519", + ["is_bool", 17, 14, 801, 19], + ["jump_false", 17, "eq_nb_520", 801, 19], + ["is_bool", 18, 15, 801, 19], + ["jump_false", 18, "eq_nb_520", 801, 19], + ["eq_bool", 16, 14, 15, 801, 19], + ["jump", "eq_done_515", 801, 19], + "eq_nb_520", + ["false", 16, 801, 19], + "eq_done_515", + ["jump_false", 16, "if_else_513", 801, 19], + ["load_field", 19, 1, "data", 802, 14], + ["move", 3, 19, 802, 14], + ["get", 20, 41, 1, 803, 35], ["record", 21, 0], - ["store_field", 21, 1, "value", 798, 14], - ["false", 22, 798, 31], - ["store_field", 21, 22, "enumerable", 798, 31], + ["store_field", 21, 1, "value", 804, 14], + ["false", 22, 804, 31], + ["store_field", 21, 22, "enumerable", 804, 31], [ "access", 24, @@ -4886,24 +5020,24 @@ "kind": "name", "make": "intrinsic" }, - 797, + 803, 5 ], - ["frame", 25, 24, 3, 797, 5], - ["null", 26, 797, 5], - ["setarg", 25, 0, 26, 797, 5], - ["setarg", 25, 1, 3, 797, 5], - ["setarg", 25, 2, 20, 797, 5], - ["setarg", 25, 3, 21, 797, 5], - ["invoke", 25, 23, 797, 5], - ["get", 27, 27, 1, 800, 35], + ["frame", 25, 24, 3, 803, 5], + ["null", 26, 803, 5], + ["setarg", 25, 0, 26, 803, 5], + ["setarg", 25, 1, 3, 803, 5], + ["setarg", 25, 2, 20, 803, 5], + ["setarg", 25, 3, 21, 803, 5], + ["invoke", 25, 23, 803, 5], + ["get", 27, 27, 1, 806, 35], ["record", 28, 0], ["record", 29, 0], - ["load_field", 30, 1, "reply", 801, 23], - ["store_field", 29, 30, "reply", 801, 23], - ["store_field", 28, 29, "value", 801, 23], - ["false", 31, 801, 48], - ["store_field", 28, 31, "enumerable", 801, 48], + ["load_field", 30, 1, "reply", 807, 23], + ["store_field", 29, 30, "reply", 807, 23], + ["store_field", 28, 29, "value", 807, 23], + ["false", 31, 807, 48], + ["store_field", 28, 31, "enumerable", 807, 48], [ "access", 33, @@ -4912,107 +5046,107 @@ "kind": "name", "make": "intrinsic" }, - 800, + 806, 5 ], - ["frame", 34, 33, 3, 800, 5], - ["null", 35, 800, 5], - ["setarg", 34, 0, 35, 800, 5], - ["setarg", 34, 1, 3, 800, 5], - ["setarg", 34, 2, 27, 800, 5], - ["setarg", 34, 3, 28, 800, 5], - ["invoke", 34, 32, 800, 5], - ["load_field", 36, 1, "return", 804, 9], - ["jump_false", 36, "if_else_511", 804, 9], - ["get", 37, 64, 1, 805, 12], - ["load_field", 38, 1, "return", 805, 20], - ["load_dynamic", 39, 37, 38, 805, 20], - ["move", 2, 39, 805, 20], - ["jump_false", 2, "if_else_513", 806, 11], - ["frame", 41, 2, 1, 806, 15], - ["null", 42, 806, 15], - ["setarg", 41, 0, 42, 806, 15], - ["setarg", 41, 1, 3, 806, 15], - ["invoke", 41, 40, 806, 15], - ["jump", "if_end_514", 806, 15], + ["frame", 34, 33, 3, 806, 5], + ["null", 35, 806, 5], + ["setarg", 34, 0, 35, 806, 5], + ["setarg", 34, 1, 3, 806, 5], + ["setarg", 34, 2, 27, 806, 5], + ["setarg", 34, 3, 28, 806, 5], + ["invoke", 34, 32, 806, 5], + ["load_field", 36, 1, "return", 810, 9], + ["jump_false", 36, "if_else_521", 810, 9], + ["get", 37, 64, 1, 811, 12], + ["load_field", 38, 1, "return", 811, 20], + ["load_dynamic", 39, 37, 38, 811, 20], + ["move", 2, 39, 811, 20], + ["jump_false", 2, "if_else_523", 812, 11], + ["frame", 41, 2, 1, 812, 15], + ["null", 42, 812, 15], + ["setarg", 41, 0, 42, 812, 15], + ["setarg", 41, 1, 3, 812, 15], + ["invoke", 41, 40, 812, 15], + ["jump", "if_end_524", 812, 15], + "if_else_523", + "if_end_524", + ["get", 44, 64, 1, 813, 14], + ["load_field", 45, 1, "return", 813, 22], + ["delete", 43, 44, 45, 813, 22], + ["null", 46, 814, 7], + ["return", 46, 814, 7], + ["jump", "if_end_522", 814, 7], + "if_else_521", + "if_end_522", + ["get", 47, 14, 1, 817, 9], + ["jump_false", 47, "if_else_525", 817, 9], + ["get", 49, 14, 1, 817, 21], + ["frame", 50, 49, 1, 817, 21], + ["null", 51, 817, 21], + ["setarg", 50, 0, 51, 817, 21], + ["setarg", 50, 1, 3, 817, 21], + ["invoke", 50, 48, 817, 21], + ["jump", "if_end_526", 817, 21], + "if_else_525", + "if_end_526", + ["jump", "if_end_514", 817, 21], "if_else_513", - "if_end_514", - ["get", 44, 64, 1, 807, 14], - ["load_field", 45, 1, "return", 807, 22], - ["delete", 43, 44, 45, 807, 22], - ["null", 46, 808, 7], - ["return", 46, 808, 7], - ["jump", "if_end_512", 808, 7], - "if_else_511", - "if_end_512", - ["get", 47, 14, 1, 811, 9], - ["jump_false", 47, "if_else_515", 811, 9], - ["get", 49, 14, 1, 811, 21], - ["frame", 50, 49, 1, 811, 21], - ["null", 51, 811, 21], - ["setarg", 50, 0, 51, 811, 21], - ["setarg", 50, 1, 3, 811, 21], - ["invoke", 50, 48, 811, 21], - ["jump", "if_end_516", 811, 21], - "if_else_515", - "if_end_516", - ["jump", "if_end_504", 811, 21], - "if_else_503", - ["load_field", 52, 1, "type", 812, 14], - ["access", 53, "stopped", 812, 26], - ["is_identical", 54, 52, 53, 812, 26], - ["jump_true", 54, "eq_done_519", 812, 26], - ["is_int", 55, 52, 812, 26], - ["jump_false", 55, "eq_ni_520", 812, 26], + ["load_field", 52, 1, "type", 818, 14], + ["access", 53, "stopped", 818, 26], + ["is_identical", 54, 52, 53, 818, 26], + ["jump_true", 54, "eq_done_529", 818, 26], + ["is_int", 55, 52, 818, 26], + ["jump_false", 55, "eq_ni_530", 818, 26], "_nop_tc_2", - ["jump", "eq_ni_520", 812, 26], - ["eq_int", 54, 52, 53, 812, 26], - ["jump", "eq_done_519", 812, 26], - "eq_ni_520", - ["is_num", 55, 52, 812, 26], - ["jump_false", 55, "eq_nn_521", 812, 26], - ["is_num", 56, 53, 812, 26], - ["jump_false", 56, "eq_nn_521", 812, 26], - ["eq_float", 54, 52, 53, 812, 26], - ["jump", "eq_done_519", 812, 26], - "eq_nn_521", - ["is_text", 55, 52, 812, 26], - ["jump_false", 55, "eq_nt_522", 812, 26], - ["is_text", 56, 53, 812, 26], - ["jump_false", 56, "eq_nt_522", 812, 26], - ["eq_text", 54, 52, 53, 812, 26], - ["jump", "eq_done_519", 812, 26], - "eq_nt_522", - ["is_null", 55, 52, 812, 26], - ["jump_false", 55, "eq_nnl_523", 812, 26], - ["is_null", 56, 53, 812, 26], - ["jump_false", 56, "eq_nnl_523", 812, 26], - ["true", 54, 812, 26], - ["jump", "eq_done_519", 812, 26], - "eq_nnl_523", - ["is_bool", 55, 52, 812, 26], - ["jump_false", 55, "eq_nb_524", 812, 26], - ["is_bool", 56, 53, 812, 26], - ["jump_false", 56, "eq_nb_524", 812, 26], - ["eq_bool", 54, 52, 53, 812, 26], - ["jump", "eq_done_519", 812, 26], - "eq_nb_524", - ["false", 54, 812, 26], - "eq_done_519", - ["jump_false", 54, "if_else_517", 812, 26], - ["load_field", 57, 1, "id", 813, 29], - ["get", 59, 25, 1, 813, 5], - ["frame", 60, 59, 1, 813, 5], - ["null", 61, 813, 5], - ["setarg", 60, 0, 61, 813, 5], - ["setarg", 60, 1, 57, 813, 5], - ["invoke", 60, 58, 813, 5], - ["jump", "if_end_518", 813, 5], - "if_else_517", - "if_end_518", - "if_end_504", - ["null", 62, 813, 5], - ["return", 62, 813, 5] + ["jump", "eq_ni_530", 818, 26], + ["eq_int", 54, 52, 53, 818, 26], + ["jump", "eq_done_529", 818, 26], + "eq_ni_530", + ["is_num", 55, 52, 818, 26], + ["jump_false", 55, "eq_nn_531", 818, 26], + ["is_num", 56, 53, 818, 26], + ["jump_false", 56, "eq_nn_531", 818, 26], + ["eq_float", 54, 52, 53, 818, 26], + ["jump", "eq_done_529", 818, 26], + "eq_nn_531", + ["is_text", 55, 52, 818, 26], + ["jump_false", 55, "eq_nt_532", 818, 26], + ["is_text", 56, 53, 818, 26], + ["jump_false", 56, "eq_nt_532", 818, 26], + ["eq_text", 54, 52, 53, 818, 26], + ["jump", "eq_done_529", 818, 26], + "eq_nt_532", + ["is_null", 55, 52, 818, 26], + ["jump_false", 55, "eq_nnl_533", 818, 26], + ["is_null", 56, 53, 818, 26], + ["jump_false", 56, "eq_nnl_533", 818, 26], + ["true", 54, 818, 26], + ["jump", "eq_done_529", 818, 26], + "eq_nnl_533", + ["is_bool", 55, 52, 818, 26], + ["jump_false", 55, "eq_nb_534", 818, 26], + ["is_bool", 56, 53, 818, 26], + ["jump_false", 56, "eq_nb_534", 818, 26], + ["eq_bool", 54, 52, 53, 818, 26], + ["jump", "eq_done_529", 818, 26], + "eq_nb_534", + ["false", 54, 818, 26], + "eq_done_529", + ["jump_false", 54, "if_else_527", 818, 26], + ["load_field", 57, 1, "id", 819, 29], + ["get", 59, 25, 1, 819, 5], + ["frame", 60, 59, 1, 819, 5], + ["null", 61, 819, 5], + ["setarg", 60, 0, 61, 819, 5], + ["setarg", 60, 1, 57, 819, 5], + ["invoke", 60, 58, 819, 5], + ["jump", "if_end_528", 819, 5], + "if_else_527", + "if_end_528", + "if_end_514", + ["null", 62, 819, 5], + ["return", 62, 819, 5] ], "name": "handle_message", "filename": "internal/engine.cm", @@ -5023,58 +5157,58 @@ "nr_slots": 24, "nr_close_slots": 0, "instructions": [ - ["get", 1, 23, 1, 819, 7], - ["jump_false", 1, "if_else_525", 819, 7], - ["get", 2, 48, 1, 819, 30], - ["get", 4, 23, 1, 819, 15], - ["is_proxy", 5, 4, 819, 15], - ["jump_false", 5, "record_path_527", 819, 15], - ["null", 6, 819, 15], - ["access", 7, "service", 819, 15], - ["array", 8, 0, 819, 15], - ["push", 8, 2, 819, 15], - ["frame", 9, 4, 2, 819, 15], - ["setarg", 9, 0, 6, 819, 15], - ["setarg", 9, 1, 7, 819, 15], - ["setarg", 9, 2, 8, 819, 15], - ["invoke", 9, 3, 819, 15], - ["jump", "call_done_528", 819, 15], - "record_path_527", - ["load_field", 10, 4, "service", 819, 15], - ["frame", 11, 10, 1, 819, 15], - ["setarg", 11, 0, 4, 819, 15], - ["setarg", 11, 1, 2, 819, 15], - ["invoke", 11, 3, 819, 15], - "call_done_528", - ["jump", "if_end_526", 819, 15], - "if_else_525", - "if_end_526", - ["get", 12, 37, 1, 821, 12], - ["get", 13, 60, 1, 821, 24], - ["get", 15, 2, 1, 821, 3], - ["is_proxy", 16, 15, 821, 3], - ["jump_false", 16, "record_path_529", 821, 3], - ["null", 17, 821, 3], - ["access", 18, "delay", 821, 3], - ["array", 19, 0, 821, 3], - ["push", 19, 12, 821, 3], - ["push", 19, 13, 821, 3], - ["frame", 20, 15, 2, 821, 3], - ["setarg", 20, 0, 17, 821, 3], - ["setarg", 20, 1, 18, 821, 3], - ["setarg", 20, 2, 19, 821, 3], - ["invoke", 20, 14, 821, 3], - ["jump", "call_done_530", 821, 3], - "record_path_529", - ["load_field", 21, 15, "delay", 821, 3], - ["frame", 22, 21, 2, 821, 3], - ["setarg", 22, 0, 15, 821, 3], - ["setarg", 22, 1, 12, 821, 3], - ["setarg", 22, 2, 13, 821, 3], - ["invoke", 22, 14, 821, 3], - "call_done_530", - ["null", 23, 821, 3], - ["return", 23, 821, 3] + ["get", 1, 23, 1, 825, 7], + ["jump_false", 1, "if_else_535", 825, 7], + ["get", 2, 48, 1, 825, 30], + ["get", 4, 23, 1, 825, 15], + ["is_proxy", 5, 4, 825, 15], + ["jump_false", 5, "record_path_537", 825, 15], + ["null", 6, 825, 15], + ["access", 7, "service", 825, 15], + ["array", 8, 0, 825, 15], + ["push", 8, 2, 825, 15], + ["frame", 9, 4, 2, 825, 15], + ["setarg", 9, 0, 6, 825, 15], + ["setarg", 9, 1, 7, 825, 15], + ["setarg", 9, 2, 8, 825, 15], + ["invoke", 9, 3, 825, 15], + ["jump", "call_done_538", 825, 15], + "record_path_537", + ["load_field", 10, 4, "service", 825, 15], + ["frame", 11, 10, 1, 825, 15], + ["setarg", 11, 0, 4, 825, 15], + ["setarg", 11, 1, 2, 825, 15], + ["invoke", 11, 3, 825, 15], + "call_done_538", + ["jump", "if_end_536", 825, 15], + "if_else_535", + "if_end_536", + ["get", 12, 37, 1, 827, 12], + ["get", 13, 60, 1, 827, 24], + ["get", 15, 2, 1, 827, 3], + ["is_proxy", 16, 15, 827, 3], + ["jump_false", 16, "record_path_539", 827, 3], + ["null", 17, 827, 3], + ["access", 18, "delay", 827, 3], + ["array", 19, 0, 827, 3], + ["push", 19, 12, 827, 3], + ["push", 19, 13, 827, 3], + ["frame", 20, 15, 2, 827, 3], + ["setarg", 20, 0, 17, 827, 3], + ["setarg", 20, 1, 18, 827, 3], + ["setarg", 20, 2, 19, 827, 3], + ["invoke", 20, 14, 827, 3], + ["jump", "call_done_540", 827, 3], + "record_path_539", + ["load_field", 21, 15, "delay", 827, 3], + ["frame", 22, 21, 2, 827, 3], + ["setarg", 22, 0, 15, 827, 3], + ["setarg", 22, 1, 12, 827, 3], + ["setarg", 22, 2, 13, 827, 3], + ["invoke", 22, 14, 827, 3], + "call_done_540", + ["null", 23, 827, 3], + ["return", 23, 827, 3] ], "name": "enet_check", "filename": "internal/engine.cm", @@ -5085,12 +5219,12 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 42, 1, 248, 59], - ["load_dynamic", 3, 2, 1, 248, 71], - ["get", 4, 58, 1, 248, 42], - ["store_dynamic", 4, 3, 1, 248, 54], - ["null", 5, 248, 54], - ["return", 5, 248, 54] + ["get", 2, 42, 1, 254, 59], + ["load_dynamic", 3, 2, 1, 254, 71], + ["get", 4, 58, 1, 254, 42], + ["store_dynamic", 4, 3, 1, 254, 54], + ["null", 5, 254, 54], + ["return", 5, 254, 54] ], "name": "", "filename": "internal/engine.cm", @@ -5101,13 +5235,13 @@ "nr_slots": 22, "nr_close_slots": 0, "instructions": [ - ["get", 2, 7, 1, 291, 11], - ["jump_false", 2, "if_else_568", 291, 11], - ["null", 3, 291, 21], - ["return", 3, 291, 21], - ["jump", "if_end_569", 291, 21], - "if_else_568", - "if_end_569", + ["get", 2, 7, 1, 297, 11], + ["jump_false", 2, "if_else_578", 297, 11], + ["null", 3, 297, 21], + ["return", 3, 297, 21], + ["jump", "if_end_579", 297, 21], + "if_else_578", + "if_end_579", [ "access", 4, @@ -5116,11 +5250,11 @@ "kind": "name", "make": "intrinsic" }, - 292, + 298, 32 ], - ["access", 5, "Timeout.", 292, 41], - ["get", 6, 2, 2, 292, 53], + ["access", 5, "Timeout.", 298, 41], + ["get", 6, 2, 2, 298, 53], [ "access", 8, @@ -5129,35 +5263,35 @@ "kind": "name", "make": "intrinsic" }, - 292, + 298, 20 ], - ["frame", 9, 8, 3, 292, 20], - ["null", 10, 292, 20], - ["setarg", 9, 0, 10, 292, 20], - ["setarg", 9, 1, 4, 292, 20], - ["setarg", 9, 2, 5, 292, 20], - ["setarg", 9, 3, 6, 292, 20], - ["invoke", 9, 7, 292, 20], - ["move", 1, 7, 292, 20], - ["get", 12, 4, 1, 293, 7], - ["frame", 13, 12, 1, 293, 7], - ["null", 14, 293, 7], - ["setarg", 13, 0, 14, 293, 7], - ["setarg", 13, 1, 1, 293, 7], - ["invoke", 13, 11, 293, 7], - ["true", 15, 294, 18], - ["put", 15, 7, 1, 294, 18], - ["null", 16, 295, 16], - ["get", 18, 1, 1, 295, 7], - ["frame", 19, 18, 2, 295, 7], - ["null", 20, 295, 7], - ["setarg", 19, 0, 20, 295, 7], - ["setarg", 19, 1, 16, 295, 7], - ["setarg", 19, 2, 1, 295, 7], - ["invoke", 19, 17, 295, 7], - ["null", 21, 295, 7], - ["return", 21, 295, 7] + ["frame", 9, 8, 3, 298, 20], + ["null", 10, 298, 20], + ["setarg", 9, 0, 10, 298, 20], + ["setarg", 9, 1, 4, 298, 20], + ["setarg", 9, 2, 5, 298, 20], + ["setarg", 9, 3, 6, 298, 20], + ["invoke", 9, 7, 298, 20], + ["move", 1, 7, 298, 20], + ["get", 12, 4, 1, 299, 7], + ["frame", 13, 12, 1, 299, 7], + ["null", 14, 299, 7], + ["setarg", 13, 0, 14, 299, 7], + ["setarg", 13, 1, 1, 299, 7], + ["invoke", 13, 11, 299, 7], + ["true", 15, 300, 18], + ["put", 15, 7, 1, 300, 18], + ["null", 16, 301, 16], + ["get", 18, 1, 1, 301, 7], + ["frame", 19, 18, 2, 301, 7], + ["null", 20, 301, 7], + ["setarg", 19, 0, 20, 301, 7], + ["setarg", 19, 1, 16, 301, 7], + ["setarg", 19, 2, 1, 301, 7], + ["invoke", 19, 17, 301, 7], + ["null", 21, 301, 7], + ["return", 21, 301, 7] ], "name": "", "filename": "internal/engine.cm", @@ -5168,14 +5302,14 @@ "nr_slots": 7, "nr_close_slots": 0, "instructions": [ - ["get", 3, 4, 1, 315, 7], - ["frame", 4, 3, 1, 315, 7], - ["null", 5, 315, 7], - ["setarg", 4, 0, 5, 315, 7], - ["setarg", 4, 1, 1, 315, 7], - ["invoke", 4, 2, 315, 7], - ["null", 6, 315, 7], - ["return", 6, 315, 7] + ["get", 3, 4, 1, 321, 7], + ["frame", 4, 3, 1, 321, 7], + ["null", 5, 321, 7], + ["setarg", 4, 0, 5, 321, 7], + ["setarg", 4, 1, 1, 321, 7], + ["invoke", 4, 2, 321, 7], + ["null", 6, 321, 7], + ["return", 6, 321, 7] ], "name": "", "filename": "internal/engine.cm", @@ -5186,65 +5320,65 @@ "nr_slots": 35, "nr_close_slots": 0, "instructions": [ - ["access", 9, "time_limit", 265, 37], - ["get", 11, 21, 2, 265, 5], - ["is_proxy", 12, 11, 265, 5], - ["jump_false", 12, "record_path_566", 265, 5], - ["null", 13, 265, 5], - ["access", 14, "check_callback", 265, 5], - ["array", 15, 0, 265, 5], - ["push", 15, 1, 265, 5], - ["push", 15, 9, 265, 5], - ["frame", 16, 11, 2, 265, 5], - ["setarg", 16, 0, 13, 265, 5], - ["setarg", 16, 1, 14, 265, 5], - ["setarg", 16, 2, 15, 265, 5], - ["invoke", 16, 10, 265, 5], - ["jump", "call_done_567", 265, 5], - "record_path_566", - ["load_field", 17, 11, "check_callback", 265, 5], - ["frame", 18, 17, 2, 265, 5], - ["setarg", 18, 0, 11, 265, 5], - ["setarg", 18, 1, 1, 265, 5], - ["setarg", 18, 2, 9, 265, 5], - ["invoke", 18, 10, 265, 5], - "call_done_567", - ["false", 7, 266, 20], - ["null", 3, 267, 28], - ["null", 5, 268, 24], - ["function", 19, 39, 290, 29], - ["get", 20, 2, 1, 296, 8], - ["get", 22, 2, 2, 290, 20], - ["is_proxy", 23, 22, 290, 20], - ["jump_false", 23, "record_path_570", 290, 20], - ["null", 24, 290, 20], - ["access", 25, "delay", 290, 20], - ["array", 26, 0, 290, 20], - ["push", 26, 19, 290, 20], - ["push", 26, 20, 290, 20], - ["frame", 27, 22, 2, 290, 20], - ["setarg", 27, 0, 24, 290, 20], - ["setarg", 27, 1, 25, 290, 20], - ["setarg", 27, 2, 26, 290, 20], - ["invoke", 27, 21, 290, 20], - ["jump", "call_done_571", 290, 20], - "record_path_570", - ["load_field", 28, 22, "delay", 290, 20], - ["frame", 29, 28, 2, 290, 20], - ["setarg", 29, 0, 22, 290, 20], - ["setarg", 29, 1, 19, 290, 20], - ["setarg", 29, 2, 20, 290, 20], - ["invoke", 29, 21, 290, 20], - "call_done_571", - ["move", 5, 21, 290, 20], - ["frame", 31, 6, 0, 312, 5], - ["null", 32, 312, 5], - ["setarg", 31, 0, 32, 312, 5], - ["invoke", 31, 30, 312, 5], - ["function", 33, 40, 314, 12], - ["return", 33, 314, 12], - ["null", 34, 314, 12], - ["return", 34, 314, 12] + ["access", 9, "time_limit", 271, 37], + ["get", 11, 21, 2, 271, 5], + ["is_proxy", 12, 11, 271, 5], + ["jump_false", 12, "record_path_576", 271, 5], + ["null", 13, 271, 5], + ["access", 14, "check_callback", 271, 5], + ["array", 15, 0, 271, 5], + ["push", 15, 1, 271, 5], + ["push", 15, 9, 271, 5], + ["frame", 16, 11, 2, 271, 5], + ["setarg", 16, 0, 13, 271, 5], + ["setarg", 16, 1, 14, 271, 5], + ["setarg", 16, 2, 15, 271, 5], + ["invoke", 16, 10, 271, 5], + ["jump", "call_done_577", 271, 5], + "record_path_576", + ["load_field", 17, 11, "check_callback", 271, 5], + ["frame", 18, 17, 2, 271, 5], + ["setarg", 18, 0, 11, 271, 5], + ["setarg", 18, 1, 1, 271, 5], + ["setarg", 18, 2, 9, 271, 5], + ["invoke", 18, 10, 271, 5], + "call_done_577", + ["false", 7, 272, 20], + ["null", 3, 273, 28], + ["null", 5, 274, 24], + ["function", 19, 39, 296, 29], + ["get", 20, 2, 1, 302, 8], + ["get", 22, 2, 2, 296, 20], + ["is_proxy", 23, 22, 296, 20], + ["jump_false", 23, "record_path_580", 296, 20], + ["null", 24, 296, 20], + ["access", 25, "delay", 296, 20], + ["array", 26, 0, 296, 20], + ["push", 26, 19, 296, 20], + ["push", 26, 20, 296, 20], + ["frame", 27, 22, 2, 296, 20], + ["setarg", 27, 0, 24, 296, 20], + ["setarg", 27, 1, 25, 296, 20], + ["setarg", 27, 2, 26, 296, 20], + ["invoke", 27, 21, 296, 20], + ["jump", "call_done_581", 296, 20], + "record_path_580", + ["load_field", 28, 22, "delay", 296, 20], + ["frame", 29, 28, 2, 296, 20], + ["setarg", 29, 0, 22, 296, 20], + ["setarg", 29, 1, 19, 296, 20], + ["setarg", 29, 2, 20, 296, 20], + ["invoke", 29, 21, 296, 20], + "call_done_581", + ["move", 5, 21, 296, 20], + ["frame", 31, 6, 0, 318, 5], + ["null", 32, 318, 5], + ["setarg", 31, 0, 32, 318, 5], + ["invoke", 31, 30, 318, 5], + ["function", 33, 40, 320, 12], + ["return", 33, 320, 12], + ["null", 34, 320, 12], + ["return", 34, 320, 12] ], "name": "time_limit_requestor", "filename": "internal/engine.cm", @@ -5255,113 +5389,113 @@ "nr_slots": 42, "nr_close_slots": 0, "instructions": [ - ["get", 4, 21, 1, 255, 8], - ["is_proxy", 5, 4, 255, 8], - ["jump_false", 5, "record_path_553", 255, 8], - ["null", 6, 255, 8], - ["access", 7, "is_requestor", 255, 8], - ["array", 8, 0, 255, 8], - ["push", 8, 1, 255, 8], - ["frame", 9, 4, 2, 255, 8], - ["setarg", 9, 0, 6, 255, 8], - ["setarg", 9, 1, 7, 255, 8], - ["setarg", 9, 2, 8, 255, 8], - ["invoke", 9, 3, 255, 8], - ["jump", "call_done_554", 255, 8], - "record_path_553", - ["load_field", 10, 4, "is_requestor", 255, 8], - ["frame", 11, 10, 1, 255, 8], - ["setarg", 11, 0, 4, 255, 8], - ["setarg", 11, 1, 1, 255, 8], - ["invoke", 11, 3, 255, 8], - "call_done_554", + ["get", 4, 21, 1, 261, 8], + ["is_proxy", 5, 4, 261, 8], + ["jump_false", 5, "record_path_563", 261, 8], + ["null", 6, 261, 8], + ["access", 7, "is_requestor", 261, 8], + ["array", 8, 0, 261, 8], + ["push", 8, 1, 261, 8], + ["frame", 9, 4, 2, 261, 8], + ["setarg", 9, 0, 6, 261, 8], + ["setarg", 9, 1, 7, 261, 8], + ["setarg", 9, 2, 8, 261, 8], + ["invoke", 9, 3, 261, 8], + ["jump", "call_done_564", 261, 8], + "record_path_563", + ["load_field", 10, 4, "is_requestor", 261, 8], + ["frame", 11, 10, 1, 261, 8], + ["setarg", 11, 0, 4, 261, 8], + ["setarg", 11, 1, 1, 261, 8], + ["invoke", 11, 3, 261, 8], + "call_done_564", "_nop_bl_1", - ["jump_true", 3, "if_else_551", 255, 8], - ["access", 13, "time_limit: first argument must be a requestor", 256, 15], - ["get", 15, 63, 1, 256, 5], - ["is_proxy", 16, 15, 256, 5], - ["jump_false", 16, "record_path_555", 256, 5], - ["null", 17, 256, 5], - ["access", 18, "error", 256, 5], - ["array", 19, 0, 256, 5], - ["push", 19, 13, 256, 5], - ["frame", 20, 15, 2, 256, 5], - ["setarg", 20, 0, 17, 256, 5], - ["setarg", 20, 1, 18, 256, 5], - ["setarg", 20, 2, 19, 256, 5], - ["invoke", 20, 14, 256, 5], - ["jump", "call_done_556", 256, 5], - "record_path_555", - ["load_field", 21, 15, "error", 256, 5], - ["frame", 22, 21, 1, 256, 5], - ["setarg", 22, 0, 15, 256, 5], - ["setarg", 22, 1, 13, 256, 5], - ["invoke", 22, 14, 256, 5], - "call_done_556", - ["disrupt", 257, 5], - ["jump", "if_end_552", 257, 5], - "if_else_551", - "if_end_552", - ["is_num", 23, 2, 259, 18], - ["not", 24, 23, 259, 18], - ["move", 25, 24, 259, 18], - ["jump_true", 25, "or_end_559", 259, 18], - ["access", 26, 0, 259, 41], - ["is_int", 28, 2, 259, 41], - ["jump_false", 28, "rel_ni_560", 259, 41], + ["jump_true", 3, "if_else_561", 261, 8], + ["access", 13, "time_limit: first argument must be a requestor", 262, 15], + ["get", 15, 63, 1, 262, 5], + ["is_proxy", 16, 15, 262, 5], + ["jump_false", 16, "record_path_565", 262, 5], + ["null", 17, 262, 5], + ["access", 18, "error", 262, 5], + ["array", 19, 0, 262, 5], + ["push", 19, 13, 262, 5], + ["frame", 20, 15, 2, 262, 5], + ["setarg", 20, 0, 17, 262, 5], + ["setarg", 20, 1, 18, 262, 5], + ["setarg", 20, 2, 19, 262, 5], + ["invoke", 20, 14, 262, 5], + ["jump", "call_done_566", 262, 5], + "record_path_565", + ["load_field", 21, 15, "error", 262, 5], + ["frame", 22, 21, 1, 262, 5], + ["setarg", 22, 0, 15, 262, 5], + ["setarg", 22, 1, 13, 262, 5], + ["invoke", 22, 14, 262, 5], + "call_done_566", + ["disrupt", 263, 5], + ["jump", "if_end_562", 263, 5], + "if_else_561", + "if_end_562", + ["is_num", 23, 2, 265, 18], + ["not", 24, 23, 265, 18], + ["move", 25, 24, 265, 18], + ["jump_true", 25, "or_end_569", 265, 18], + ["access", 26, 0, 265, 41], + ["is_int", 28, 2, 265, 41], + ["jump_false", 28, "rel_ni_570", 265, 41], "_nop_tc_1", - ["jump", "rel_ni_560", 259, 41], - ["le_int", 27, 2, 26, 259, 41], - ["jump", "rel_done_562", 259, 41], - "rel_ni_560", - ["is_num", 28, 2, 259, 41], - ["jump_false", 28, "rel_nn_561", 259, 41], - ["is_num", 29, 26, 259, 41], - ["jump_false", 29, "rel_nn_561", 259, 41], - ["le_float", 27, 2, 26, 259, 41], - ["jump", "rel_done_562", 259, 41], - "rel_nn_561", - ["is_text", 28, 2, 259, 41], - ["jump_false", 28, "rel_err_563", 259, 41], - ["is_text", 29, 26, 259, 41], - ["jump_false", 29, "rel_err_563", 259, 41], - ["le_text", 27, 2, 26, 259, 41], - ["jump", "rel_done_562", 259, 41], - "rel_err_563", - ["disrupt", 259, 41], - "rel_done_562", - ["move", 25, 27, 259, 41], - "or_end_559", - ["jump_false", 25, "if_else_557", 259, 41], - ["access", 30, "time_limit: seconds must be a positive number", 260, 15], - ["get", 32, 63, 1, 260, 5], - ["is_proxy", 33, 32, 260, 5], - ["jump_false", 33, "record_path_564", 260, 5], - ["null", 34, 260, 5], - ["access", 35, "error", 260, 5], - ["array", 36, 0, 260, 5], - ["push", 36, 30, 260, 5], - ["frame", 37, 32, 2, 260, 5], - ["setarg", 37, 0, 34, 260, 5], - ["setarg", 37, 1, 35, 260, 5], - ["setarg", 37, 2, 36, 260, 5], - ["invoke", 37, 31, 260, 5], - ["jump", "call_done_565", 260, 5], - "record_path_564", - ["load_field", 38, 32, "error", 260, 5], - ["frame", 39, 38, 1, 260, 5], - ["setarg", 39, 0, 32, 260, 5], - ["setarg", 39, 1, 30, 260, 5], - ["invoke", 39, 31, 260, 5], - "call_done_565", - ["disrupt", 261, 5], - ["jump", "if_end_558", 261, 5], - "if_else_557", - "if_end_558", - ["function", 40, 41, 264, 10], - ["return", 40, 264, 10], - ["null", 41, 264, 10], - ["return", 41, 264, 10] + ["jump", "rel_ni_570", 265, 41], + ["le_int", 27, 2, 26, 265, 41], + ["jump", "rel_done_572", 265, 41], + "rel_ni_570", + ["is_num", 28, 2, 265, 41], + ["jump_false", 28, "rel_nn_571", 265, 41], + ["is_num", 29, 26, 265, 41], + ["jump_false", 29, "rel_nn_571", 265, 41], + ["le_float", 27, 2, 26, 265, 41], + ["jump", "rel_done_572", 265, 41], + "rel_nn_571", + ["is_text", 28, 2, 265, 41], + ["jump_false", 28, "rel_err_573", 265, 41], + ["is_text", 29, 26, 265, 41], + ["jump_false", 29, "rel_err_573", 265, 41], + ["le_text", 27, 2, 26, 265, 41], + ["jump", "rel_done_572", 265, 41], + "rel_err_573", + ["disrupt", 265, 41], + "rel_done_572", + ["move", 25, 27, 265, 41], + "or_end_569", + ["jump_false", 25, "if_else_567", 265, 41], + ["access", 30, "time_limit: seconds must be a positive number", 266, 15], + ["get", 32, 63, 1, 266, 5], + ["is_proxy", 33, 32, 266, 5], + ["jump_false", 33, "record_path_574", 266, 5], + ["null", 34, 266, 5], + ["access", 35, "error", 266, 5], + ["array", 36, 0, 266, 5], + ["push", 36, 30, 266, 5], + ["frame", 37, 32, 2, 266, 5], + ["setarg", 37, 0, 34, 266, 5], + ["setarg", 37, 1, 35, 266, 5], + ["setarg", 37, 2, 36, 266, 5], + ["invoke", 37, 31, 266, 5], + ["jump", "call_done_575", 266, 5], + "record_path_574", + ["load_field", 38, 32, "error", 266, 5], + ["frame", 39, 38, 1, 266, 5], + ["setarg", 39, 0, 32, 266, 5], + ["setarg", 39, 1, 30, 266, 5], + ["invoke", 39, 31, 266, 5], + "call_done_575", + ["disrupt", 267, 5], + ["jump", "if_end_568", 267, 5], + "if_else_567", + "if_end_568", + ["function", 40, 41, 270, 10], + ["return", 40, 270, 10], + ["null", 41, 270, 10], + ["return", 41, 270, 10] ], "name": "", "filename": "internal/engine.cm", @@ -5372,37 +5506,37 @@ "nr_slots": 20, "nr_close_slots": 0, "instructions": [ - ["get", 3, 3, 2, 371, 8], - ["is_proxy", 4, 3, 371, 8], - ["jump_false", 4, "record_path_572", 371, 8], - ["null", 5, 371, 8], - ["access", 6, "number", 371, 8], - ["array", 7, 0, 371, 8], - ["frame", 8, 3, 2, 371, 8], - ["setarg", 8, 0, 5, 371, 8], - ["setarg", 8, 1, 6, 371, 8], - ["setarg", 8, 2, 7, 371, 8], - ["invoke", 8, 2, 371, 8], - ["jump", "call_done_573", 371, 8], - "record_path_572", - ["load_field", 9, 3, "number", 371, 8], - ["frame", 10, 9, 0, 371, 8], - ["setarg", 10, 0, 3, 371, 8], - ["invoke", 10, 2, 371, 8], - "call_done_573", - ["get", 12, 1, 1, 371, 5], - ["frame", 13, 12, 1, 371, 5], - ["null", 14, 371, 5], - ["setarg", 13, 0, 14, 371, 5], - ["setarg", 13, 1, 2, 371, 5], - ["invoke", 13, 11, 371, 5], - ["get", 16, 70, 2, 372, 5], - ["frame", 17, 16, 0, 372, 5], - ["null", 18, 372, 5], - ["setarg", 17, 0, 18, 372, 5], - ["invoke", 17, 15, 372, 5], - ["null", 19, 372, 5], - ["return", 19, 372, 5] + ["get", 3, 3, 2, 377, 8], + ["is_proxy", 4, 3, 377, 8], + ["jump_false", 4, "record_path_582", 377, 8], + ["null", 5, 377, 8], + ["access", 6, "number", 377, 8], + ["array", 7, 0, 377, 8], + ["frame", 8, 3, 2, 377, 8], + ["setarg", 8, 0, 5, 377, 8], + ["setarg", 8, 1, 6, 377, 8], + ["setarg", 8, 2, 7, 377, 8], + ["invoke", 8, 2, 377, 8], + ["jump", "call_done_583", 377, 8], + "record_path_582", + ["load_field", 9, 3, "number", 377, 8], + ["frame", 10, 9, 0, 377, 8], + ["setarg", 10, 0, 3, 377, 8], + ["invoke", 10, 2, 377, 8], + "call_done_583", + ["get", 12, 1, 1, 377, 5], + ["frame", 13, 12, 1, 377, 5], + ["null", 14, 377, 5], + ["setarg", 13, 0, 14, 377, 5], + ["setarg", 13, 1, 2, 377, 5], + ["invoke", 13, 11, 377, 5], + ["get", 16, 70, 2, 378, 5], + ["frame", 17, 16, 0, 378, 5], + ["null", 18, 378, 5], + ["setarg", 17, 0, 18, 378, 5], + ["invoke", 17, 15, 378, 5], + ["null", 19, 378, 5], + ["return", 19, 378, 5] ], "name": "", "filename": "internal/engine.cm", @@ -5413,29 +5547,29 @@ "nr_slots": 13, "nr_close_slots": 0, "instructions": [ - ["function", 2, 43, 370, 19], - ["get", 4, 30, 1, 370, 3], - ["is_proxy", 5, 4, 370, 3], - ["jump_false", 5, "record_path_574", 370, 3], - ["null", 6, 370, 3], - ["access", 7, "clock", 370, 3], - ["array", 8, 0, 370, 3], - ["push", 8, 2, 370, 3], - ["frame", 9, 4, 2, 370, 3], - ["setarg", 9, 0, 6, 370, 3], - ["setarg", 9, 1, 7, 370, 3], - ["setarg", 9, 2, 8, 370, 3], - ["invoke", 9, 3, 370, 3], - ["jump", "call_done_575", 370, 3], - "record_path_574", - ["load_field", 10, 4, "clock", 370, 3], - ["frame", 11, 10, 1, 370, 3], - ["setarg", 11, 0, 4, 370, 3], - ["setarg", 11, 1, 2, 370, 3], - ["invoke", 11, 3, 370, 3], - "call_done_575", - ["null", 12, 370, 3], - ["return", 12, 370, 3] + ["function", 2, 43, 376, 19], + ["get", 4, 30, 1, 376, 3], + ["is_proxy", 5, 4, 376, 3], + ["jump_false", 5, "record_path_584", 376, 3], + ["null", 6, 376, 3], + ["access", 7, "clock", 376, 3], + ["array", 8, 0, 376, 3], + ["push", 8, 2, 376, 3], + ["frame", 9, 4, 2, 376, 3], + ["setarg", 9, 0, 6, 376, 3], + ["setarg", 9, 1, 7, 376, 3], + ["setarg", 9, 2, 8, 376, 3], + ["invoke", 9, 3, 376, 3], + ["jump", "call_done_585", 376, 3], + "record_path_584", + ["load_field", 10, 4, "clock", 376, 3], + ["frame", 11, 10, 1, 376, 3], + ["setarg", 11, 0, 4, 376, 3], + ["setarg", 11, 1, 2, 376, 3], + ["invoke", 11, 3, 376, 3], + "call_done_585", + ["null", 12, 376, 3], + ["return", 12, 376, 3] ], "name": "", "filename": "internal/engine.cm", @@ -5454,74 +5588,74 @@ "kind": "name", "make": "intrinsic" }, - 408, + 414, 14 ], - ["get", 6, 27, 1, 408, 26], - ["load_dynamic", 7, 2, 6, 408, 26], - ["load_field", 8, 7, "id", 408, 26], - ["load_dynamic", 9, 5, 8, 408, 26], - ["move", 4, 9, 408, 26], - ["jump_false", 4, "if_else_576", 409, 7], - ["get", 11, 28, 1, 410, 14], - ["frame", 12, 11, 1, 410, 14], - ["null", 13, 410, 14], - ["setarg", 12, 0, 13, 410, 14], - ["setarg", 12, 1, 4, 410, 14], - ["invoke", 12, 10, 410, 14], - ["frame", 15, 1, 1, 410, 5], - ["null", 16, 410, 5], - ["setarg", 15, 0, 16, 410, 5], - ["setarg", 15, 1, 10, 410, 5], - ["invoke", 15, 14, 410, 5], - ["null", 17, 411, 5], - ["return", 17, 411, 5], - ["jump", "if_end_577", 411, 5], - "if_else_576", - "if_end_577", - ["get", 18, 27, 1, 413, 37], - ["load_dynamic", 19, 2, 18, 413, 37], - ["load_field", 20, 19, "id", 413, 37], - ["get", 22, 30, 1, 413, 7], - ["is_proxy", 23, 22, 413, 7], - ["jump_false", 23, "record_path_580", 413, 7], - ["null", 24, 413, 7], - ["access", 25, "mailbox_exist", 413, 7], - ["array", 26, 0, 413, 7], - ["push", 26, 20, 413, 7], - ["frame", 27, 22, 2, 413, 7], - ["setarg", 27, 0, 24, 413, 7], - ["setarg", 27, 1, 25, 413, 7], - ["setarg", 27, 2, 26, 413, 7], - ["invoke", 27, 21, 413, 7], - ["jump", "call_done_581", 413, 7], - "record_path_580", - ["load_field", 28, 22, "mailbox_exist", 413, 7], - ["frame", 29, 28, 1, 413, 7], - ["setarg", 29, 0, 22, 413, 7], - ["setarg", 29, 1, 20, 413, 7], - ["invoke", 29, 21, 413, 7], - "call_done_581", - ["jump_false", 21, "if_else_578", 413, 7], + ["get", 6, 27, 1, 414, 26], + ["load_dynamic", 7, 2, 6, 414, 26], + ["load_field", 8, 7, "id", 414, 26], + ["load_dynamic", 9, 5, 8, 414, 26], + ["move", 4, 9, 414, 26], + ["jump_false", 4, "if_else_586", 415, 7], + ["get", 11, 28, 1, 416, 14], + ["frame", 12, 11, 1, 416, 14], + ["null", 13, 416, 14], + ["setarg", 12, 0, 13, 416, 14], + ["setarg", 12, 1, 4, 416, 14], + ["invoke", 12, 10, 416, 14], + ["frame", 15, 1, 1, 416, 5], + ["null", 16, 416, 5], + ["setarg", 15, 0, 16, 416, 5], + ["setarg", 15, 1, 10, 416, 5], + ["invoke", 15, 14, 416, 5], + ["null", 17, 417, 5], + ["return", 17, 417, 5], + ["jump", "if_end_587", 417, 5], + "if_else_586", + "if_end_587", + ["get", 18, 27, 1, 419, 37], + ["load_dynamic", 19, 2, 18, 419, 37], + ["load_field", 20, 19, "id", 419, 37], + ["get", 22, 30, 1, 419, 7], + ["is_proxy", 23, 22, 419, 7], + ["jump_false", 23, "record_path_590", 419, 7], + ["null", 24, 419, 7], + ["access", 25, "mailbox_exist", 419, 7], + ["array", 26, 0, 419, 7], + ["push", 26, 20, 419, 7], + ["frame", 27, 22, 2, 419, 7], + ["setarg", 27, 0, 24, 419, 7], + ["setarg", 27, 1, 25, 419, 7], + ["setarg", 27, 2, 26, 419, 7], + ["invoke", 27, 21, 419, 7], + ["jump", "call_done_591", 419, 7], + "record_path_590", + ["load_field", 28, 22, "mailbox_exist", 419, 7], + ["frame", 29, 28, 1, 419, 7], + ["setarg", 29, 0, 22, 419, 7], + ["setarg", 29, 1, 20, 419, 7], + ["invoke", 29, 21, 419, 7], + "call_done_591", + ["jump_false", 21, "if_else_588", 419, 7], ["record", 30, 0], - ["access", 31, "local", 414, 20], - ["store_field", 30, 31, "type", 414, 20], - ["frame", 33, 1, 1, 414, 5], - ["null", 34, 414, 5], - ["setarg", 33, 0, 34, 414, 5], - ["setarg", 33, 1, 30, 414, 5], - ["invoke", 33, 32, 414, 5], - ["null", 35, 415, 5], - ["return", 35, 415, 5], - ["jump", "if_end_579", 415, 5], - "if_else_578", - "if_end_579", - ["frame", 37, 1, 0, 418, 3], - ["null", 38, 418, 3], - ["setarg", 37, 0, 38, 418, 3], - ["invoke", 37, 36, 418, 3], - ["null", 39, 418, 3], - ["return", 39, 418, 3] + ["access", 31, "local", 420, 20], + ["store_field", 30, 31, "type", 420, 20], + ["frame", 33, 1, 1, 420, 5], + ["null", 34, 420, 5], + ["setarg", 33, 0, 34, 420, 5], + ["setarg", 33, 1, 30, 420, 5], + ["invoke", 33, 32, 420, 5], + ["null", 35, 421, 5], + ["return", 35, 421, 5], + ["jump", "if_end_589", 421, 5], + "if_else_588", + "if_end_589", + ["frame", 37, 1, 0, 424, 3], + ["null", 38, 424, 3], + ["setarg", 37, 0, 38, 424, 3], + ["invoke", 37, 36, 424, 3], + ["null", 39, 424, 3], + ["return", 39, 424, 3] ], "name": "", "filename": "internal/engine.cm", @@ -5532,8 +5666,8 @@ "nr_slots": 59, "nr_close_slots": 0, "instructions": [ - ["get", 3, 23, 1, 429, 7], - ["jump_false", 3, "if_else_582", 429, 7], + ["get", 3, 23, 1, 435, 7], + ["jump_false", 3, "if_else_592", 435, 7], ["get", 4, 23, 1, 1, 1], ["load_field", 5, 4, "port", 1, 1], ["array", 6, 0, 1, 1], @@ -5556,57 +5690,57 @@ ["setarg", 10, 1, 8, 1, 1], ["setarg", 10, 2, 6, 1, 1], ["invoke", 10, 9, 1, 1], - ["get", 13, 63, 1, 430, 5], - ["is_proxy", 14, 13, 430, 5], - ["jump_false", 14, "record_path_584", 430, 5], - ["null", 15, 430, 5], - ["access", 16, "error", 430, 5], - ["array", 17, 0, 430, 5], - ["push", 17, 9, 430, 5], - ["frame", 18, 13, 2, 430, 5], - ["setarg", 18, 0, 15, 430, 5], - ["setarg", 18, 1, 16, 430, 5], - ["setarg", 18, 2, 17, 430, 5], - ["invoke", 18, 12, 430, 5], - ["jump", "call_done_585", 430, 5], - "record_path_584", - ["load_field", 19, 13, "error", 430, 5], - ["frame", 20, 19, 1, 430, 5], - ["setarg", 20, 0, 13, 430, 5], - ["setarg", 20, 1, 9, 430, 5], - ["invoke", 20, 12, 430, 5], - "call_done_585", - ["disrupt", 431, 5], - ["jump", "if_end_583", 431, 5], - "if_else_582", - "if_end_583", + ["get", 13, 63, 1, 436, 5], + ["is_proxy", 14, 13, 436, 5], + ["jump_false", 14, "record_path_594", 436, 5], + ["null", 15, 436, 5], + ["access", 16, "error", 436, 5], + ["array", 17, 0, 436, 5], + ["push", 17, 9, 436, 5], + ["frame", 18, 13, 2, 436, 5], + ["setarg", 18, 0, 15, 436, 5], + ["setarg", 18, 1, 16, 436, 5], + ["setarg", 18, 2, 17, 436, 5], + ["invoke", 18, 12, 436, 5], + ["jump", "call_done_595", 436, 5], + "record_path_594", + ["load_field", 19, 13, "error", 436, 5], + ["frame", 20, 19, 1, 436, 5], + ["setarg", 20, 0, 13, 436, 5], + ["setarg", 20, 1, 9, 436, 5], + ["invoke", 20, 12, 436, 5], + "call_done_595", + ["disrupt", 437, 5], + ["jump", "if_end_593", 437, 5], + "if_else_592", + "if_end_593", "_nop_bl_1", - ["jump_true", 2, "if_else_586", 433, 8], - ["access", 22, "Requires a valid port.", 434, 15], - ["get", 24, 63, 1, 434, 5], - ["is_proxy", 25, 24, 434, 5], - ["jump_false", 25, "record_path_588", 434, 5], - ["null", 26, 434, 5], - ["access", 27, "error", 434, 5], - ["array", 28, 0, 434, 5], - ["push", 28, 22, 434, 5], - ["frame", 29, 24, 2, 434, 5], - ["setarg", 29, 0, 26, 434, 5], - ["setarg", 29, 1, 27, 434, 5], - ["setarg", 29, 2, 28, 434, 5], - ["invoke", 29, 23, 434, 5], - ["jump", "call_done_589", 434, 5], - "record_path_588", - ["load_field", 30, 24, "error", 434, 5], - ["frame", 31, 30, 1, 434, 5], - ["setarg", 31, 0, 24, 434, 5], - ["setarg", 31, 1, 22, 434, 5], - ["invoke", 31, 23, 434, 5], - "call_done_589", - ["disrupt", 435, 5], - ["jump", "if_end_587", 435, 5], - "if_else_586", - "if_end_587", + ["jump_true", 2, "if_else_596", 439, 8], + ["access", 22, "Requires a valid port.", 440, 15], + ["get", 24, 63, 1, 440, 5], + ["is_proxy", 25, 24, 440, 5], + ["jump_false", 25, "record_path_598", 440, 5], + ["null", 26, 440, 5], + ["access", 27, "error", 440, 5], + ["array", 28, 0, 440, 5], + ["push", 28, 22, 440, 5], + ["frame", 29, 24, 2, 440, 5], + ["setarg", 29, 0, 26, 440, 5], + ["setarg", 29, 1, 27, 440, 5], + ["setarg", 29, 2, 28, 440, 5], + ["invoke", 29, 23, 440, 5], + ["jump", "call_done_599", 440, 5], + "record_path_598", + ["load_field", 30, 24, "error", 440, 5], + ["frame", 31, 30, 1, 440, 5], + ["setarg", 31, 0, 24, 440, 5], + ["setarg", 31, 1, 22, 440, 5], + ["invoke", 31, 23, 440, 5], + "call_done_599", + ["disrupt", 441, 5], + ["jump", "if_end_597", 441, 5], + "if_else_596", + "if_end_597", ["array", 32, 0, 1, 1], ["push", 32, 2, 1, 1], [ @@ -5627,30 +5761,30 @@ ["setarg", 36, 1, 34, 1, 1], ["setarg", 36, 2, 32, 1, 1], ["invoke", 36, 35, 1, 1], - ["get", 39, 63, 1, 437, 3], - ["is_proxy", 40, 39, 437, 3], - ["jump_false", 40, "record_path_590", 437, 3], - ["null", 41, 437, 3], - ["access", 42, "system", 437, 3], - ["array", 43, 0, 437, 3], - ["push", 43, 35, 437, 3], - ["frame", 44, 39, 2, 437, 3], - ["setarg", 44, 0, 41, 437, 3], - ["setarg", 44, 1, 42, 437, 3], - ["setarg", 44, 2, 43, 437, 3], - ["invoke", 44, 38, 437, 3], - ["jump", "call_done_591", 437, 3], - "record_path_590", - ["load_field", 45, 39, "system", 437, 3], - ["frame", 46, 45, 1, 437, 3], - ["setarg", 46, 0, 39, 437, 3], - ["setarg", 46, 1, 35, 437, 3], - ["invoke", 46, 38, 437, 3], - "call_done_591", + ["get", 39, 63, 1, 443, 3], + ["is_proxy", 40, 39, 443, 3], + ["jump_false", 40, "record_path_600", 443, 3], + ["null", 41, 443, 3], + ["access", 42, "system", 443, 3], + ["array", 43, 0, 443, 3], + ["push", 43, 35, 443, 3], + ["frame", 44, 39, 2, 443, 3], + ["setarg", 44, 0, 41, 443, 3], + ["setarg", 44, 1, 42, 443, 3], + ["setarg", 44, 2, 43, 443, 3], + ["invoke", 44, 38, 443, 3], + ["jump", "call_done_601", 443, 3], + "record_path_600", + ["load_field", 45, 39, "system", 443, 3], + ["frame", 46, 45, 1, 443, 3], + ["setarg", 46, 0, 39, 443, 3], + ["setarg", 46, 1, 35, 443, 3], + ["invoke", 46, 38, 443, 3], + "call_done_601", ["record", 47, 0], - ["access", 48, "any", 438, 39], - ["store_field", 47, 48, "address", 438, 39], - ["store_field", 47, 2, "port", 438, 46], + ["access", 48, "any", 444, 39], + ["store_field", 47, 48, "address", 444, 39], + ["store_field", 47, 2, "port", 444, 46], [ "access", 50, @@ -5659,32 +5793,32 @@ "kind": "name", "make": "intrinsic" }, - 438, + 444, 12 ], - ["is_proxy", 51, 50, 438, 12], - ["jump_false", 51, "record_path_592", 438, 12], - ["null", 52, 438, 12], - ["access", 53, "create_host", 438, 12], - ["array", 54, 0, 438, 12], - ["push", 54, 47, 438, 12], - ["frame", 55, 50, 2, 438, 12], - ["setarg", 55, 0, 52, 438, 12], - ["setarg", 55, 1, 53, 438, 12], - ["setarg", 55, 2, 54, 438, 12], - ["invoke", 55, 49, 438, 12], - ["jump", "call_done_593", 438, 12], - "record_path_592", - ["load_field", 56, 50, "create_host", 438, 12], - ["frame", 57, 56, 1, 438, 12], - ["setarg", 57, 0, 50, 438, 12], - ["setarg", 57, 1, 47, 438, 12], - ["invoke", 57, 49, 438, 12], - "call_done_593", - ["put", 49, 23, 1, 438, 12], - ["put", 1, 36, 1, 439, 15], - ["null", 58, 439, 15], - ["return", 58, 439, 15] + ["is_proxy", 51, 50, 444, 12], + ["jump_false", 51, "record_path_602", 444, 12], + ["null", 52, 444, 12], + ["access", 53, "create_host", 444, 12], + ["array", 54, 0, 444, 12], + ["push", 54, 47, 444, 12], + ["frame", 55, 50, 2, 444, 12], + ["setarg", 55, 0, 52, 444, 12], + ["setarg", 55, 1, 53, 444, 12], + ["setarg", 55, 2, 54, 444, 12], + ["invoke", 55, 49, 444, 12], + ["jump", "call_done_603", 444, 12], + "record_path_602", + ["load_field", 56, 50, "create_host", 444, 12], + ["frame", 57, 56, 1, 444, 12], + ["setarg", 57, 0, 50, 444, 12], + ["setarg", 57, 1, 47, 444, 12], + ["invoke", 57, 49, 444, 12], + "call_done_603", + ["put", 49, 23, 1, 444, 12], + ["put", 1, 36, 1, 445, 15], + ["null", 58, 445, 15], + ["return", 58, 445, 15] ], "name": "", "filename": "internal/engine.cm", @@ -5695,22 +5829,22 @@ "nr_slots": 12, "nr_close_slots": 0, "instructions": [ - ["get", 4, 72, 1, 486, 8], - ["frame", 5, 4, 1, 486, 8], - ["null", 6, 486, 8], - ["setarg", 5, 0, 6, 486, 8], - ["setarg", 5, 1, 2, 486, 8], - ["invoke", 5, 3, 486, 8], - ["get", 8, 71, 1, 486, 3], - ["frame", 9, 8, 3, 486, 3], - ["null", 10, 486, 3], - ["setarg", 9, 0, 10, 486, 3], - ["setarg", 9, 1, 3, 486, 3], - ["setarg", 9, 2, 2, 486, 3], - ["setarg", 9, 3, 1, 486, 3], - ["invoke", 9, 7, 486, 3], - ["null", 11, 486, 3], - ["return", 11, 486, 3] + ["get", 4, 72, 1, 492, 8], + ["frame", 5, 4, 1, 492, 8], + ["null", 6, 492, 8], + ["setarg", 5, 0, 6, 492, 8], + ["setarg", 5, 1, 2, 492, 8], + ["invoke", 5, 3, 492, 8], + ["get", 8, 71, 1, 492, 3], + ["frame", 9, 8, 3, 492, 3], + ["null", 10, 492, 3], + ["setarg", 9, 0, 10, 492, 3], + ["setarg", 9, 1, 3, 492, 3], + ["setarg", 9, 2, 2, 492, 3], + ["setarg", 9, 3, 1, 492, 3], + ["invoke", 9, 7, 492, 3], + ["null", 11, 492, 3], + ["return", 11, 492, 3] ], "name": "", "filename": "internal/engine.cm", @@ -5721,9 +5855,9 @@ "nr_slots": 3, "nr_close_slots": 0, "instructions": [ - ["put", 1, 14, 1, 491, 16], - ["null", 2, 491, 16], - ["return", 2, 491, 16] + ["put", 1, 14, 1, 497, 16], + ["null", 2, 497, 16], + ["return", 2, 497, 16] ], "name": "receiver", "filename": "internal/engine.cm", @@ -5735,29 +5869,29 @@ "nr_close_slots": 0, "instructions": [ "_nop_bl_1", - ["jump_true", 2, "if_else_594", 495, 10], - ["null", 6, 495, 19], - ["return", 6, 495, 19], - ["jump", "if_end_595", 495, 19], - "if_else_594", - "if_end_595", - ["get", 8, 6, 1, 497, 14], - ["frame", 9, 8, 0, 497, 14], - ["null", 10, 497, 14], - ["setarg", 9, 0, 10, 497, 14], - ["invoke", 9, 7, 497, 14], - ["move", 4, 7, 497, 14], + ["jump_true", 2, "if_else_604", 501, 10], + ["null", 6, 501, 19], + ["return", 6, 501, 19], + ["jump", "if_end_605", 501, 19], + "if_else_604", + "if_end_605", + ["get", 8, 6, 1, 503, 14], + ["frame", 9, 8, 0, 503, 14], + ["null", 10, 503, 14], + ["setarg", 9, 0, 10, 503, 14], + ["invoke", 9, 7, 503, 14], + ["move", 4, 7, 503, 14], ["record", 11, 0], - ["store_field", 11, 4, "id", 499, 7], - ["get", 12, 2, 1, 500, 17], - ["load_field", 13, 12, "self", 500, 17], - ["store_field", 11, 13, "overling", 500, 17], - ["get", 14, 57, 1, 501, 7], - ["store_field", 11, 14, "root", 501, 7], - ["store_field", 11, 2, "program", 502, 7], - ["move", 3, 11, 502, 7], - ["get", 15, 75, 1, 504, 5], - ["store_dynamic", 15, 1, 4, 504, 14], + ["store_field", 11, 4, "id", 505, 7], + ["get", 12, 2, 1, 506, 17], + ["load_field", 13, 12, "self", 506, 17], + ["store_field", 11, 13, "overling", 506, 17], + ["get", 14, 57, 1, 507, 7], + ["store_field", 11, 14, "root", 507, 7], + ["store_field", 11, 2, "program", 508, 7], + ["move", 3, 11, 508, 7], + ["get", 15, 75, 1, 510, 5], + ["store_dynamic", 15, 1, 4, 510, 14], [ "access", 16, @@ -5766,20 +5900,20 @@ "kind": "name", "make": "intrinsic" }, - 505, + 511, 10 ], ["record", 17, 0], - ["store_field", 17, 3, "startup", 505, 27], - ["is_array", 18, 16, 505, 27], - ["jump_false", 18, "push_err_596", 505, 27], - ["push", 16, 17, 505, 27], - ["jump", "push_done_597", 505, 27], - "push_err_596", - ["disrupt", 505, 27], - "push_done_597", - ["null", 19, 505, 27], - ["return", 19, 505, 27] + ["store_field", 17, 3, "startup", 511, 27], + ["is_array", 18, 16, 511, 27], + ["jump_false", 18, "push_err_606", 511, 27], + ["push", 16, 17, 511, 27], + ["jump", "push_done_607", 511, 27], + "push_err_606", + ["disrupt", 511, 27], + "push_done_607", + ["null", 19, 511, 27], + ["return", 19, 511, 27] ], "name": "start", "filename": "internal/engine.cm", @@ -5791,91 +5925,91 @@ "nr_close_slots": 0, "instructions": [ "_nop_bl_1", - ["jump_true", 1, "if_else_598", 510, 8], - ["true", 3, 511, 17], - ["put", 3, 51, 1, 511, 17], - ["null", 4, 512, 5], - ["return", 4, 512, 5], - ["jump", "if_end_599", 512, 5], - "if_else_598", - "if_end_599", - ["get", 6, 5, 1, 514, 8], - ["frame", 7, 6, 1, 514, 8], - ["null", 8, 514, 8], - ["setarg", 7, 0, 8, 514, 8], - ["setarg", 7, 1, 1, 514, 8], - ["invoke", 7, 5, 514, 8], + ["jump_true", 1, "if_else_608", 516, 8], + ["true", 3, 517, 17], + ["put", 3, 51, 1, 517, 17], + ["null", 4, 518, 5], + ["return", 4, 518, 5], + ["jump", "if_end_609", 518, 5], + "if_else_608", + "if_end_609", + ["get", 6, 5, 1, 520, 8], + ["frame", 7, 6, 1, 520, 8], + ["null", 8, 520, 8], + ["setarg", 7, 0, 8, 520, 8], + ["setarg", 7, 1, 1, 520, 8], + ["invoke", 7, 5, 520, 8], "_nop_bl_2", - ["jump_true", 5, "if_else_600", 514, 8], - ["access", 10, "Can only call stop on an actor.", 515, 15], - ["get", 12, 63, 1, 515, 5], - ["is_proxy", 13, 12, 515, 5], - ["jump_false", 13, "record_path_602", 515, 5], - ["null", 14, 515, 5], - ["access", 15, "error", 515, 5], - ["array", 16, 0, 515, 5], - ["push", 16, 10, 515, 5], - ["frame", 17, 12, 2, 515, 5], - ["setarg", 17, 0, 14, 515, 5], - ["setarg", 17, 1, 15, 515, 5], - ["setarg", 17, 2, 16, 515, 5], - ["invoke", 17, 11, 515, 5], - ["jump", "call_done_603", 515, 5], - "record_path_602", - ["load_field", 18, 12, "error", 515, 5], - ["frame", 19, 18, 1, 515, 5], - ["setarg", 19, 0, 12, 515, 5], - ["setarg", 19, 1, 10, 515, 5], - ["invoke", 19, 11, 515, 5], - "call_done_603", - ["disrupt", 516, 5], - ["jump", "if_end_601", 516, 5], - "if_else_600", - "if_end_601", - ["get", 20, 12, 1, 518, 15], - ["get", 21, 27, 1, 518, 32], - ["load_dynamic", 22, 1, 21, 518, 32], - ["load_field", 23, 22, "id", 518, 32], - ["load_dynamic", 24, 20, 23, 518, 32], - ["is_null", 25, 24, 518, 32], - ["jump_false", 25, "if_else_604", 518, 32], - ["access", 26, "Can only call stop on an underling or self.", 519, 15], - ["get", 28, 63, 1, 519, 5], - ["is_proxy", 29, 28, 519, 5], - ["jump_false", 29, "record_path_606", 519, 5], - ["null", 30, 519, 5], - ["access", 31, "error", 519, 5], - ["array", 32, 0, 519, 5], - ["push", 32, 26, 519, 5], - ["frame", 33, 28, 2, 519, 5], - ["setarg", 33, 0, 30, 519, 5], - ["setarg", 33, 1, 31, 519, 5], - ["setarg", 33, 2, 32, 519, 5], - ["invoke", 33, 27, 519, 5], - ["jump", "call_done_607", 519, 5], - "record_path_606", - ["load_field", 34, 28, "error", 519, 5], - ["frame", 35, 34, 1, 519, 5], - ["setarg", 35, 0, 28, 519, 5], - ["setarg", 35, 1, 26, 519, 5], - ["invoke", 35, 27, 519, 5], - "call_done_607", - ["disrupt", 520, 5], - ["jump", "if_end_605", 520, 5], - "if_else_604", - "if_end_605", + ["jump_true", 5, "if_else_610", 520, 8], + ["access", 10, "Can only call stop on an actor.", 521, 15], + ["get", 12, 63, 1, 521, 5], + ["is_proxy", 13, 12, 521, 5], + ["jump_false", 13, "record_path_612", 521, 5], + ["null", 14, 521, 5], + ["access", 15, "error", 521, 5], + ["array", 16, 0, 521, 5], + ["push", 16, 10, 521, 5], + ["frame", 17, 12, 2, 521, 5], + ["setarg", 17, 0, 14, 521, 5], + ["setarg", 17, 1, 15, 521, 5], + ["setarg", 17, 2, 16, 521, 5], + ["invoke", 17, 11, 521, 5], + ["jump", "call_done_613", 521, 5], + "record_path_612", + ["load_field", 18, 12, "error", 521, 5], + ["frame", 19, 18, 1, 521, 5], + ["setarg", 19, 0, 12, 521, 5], + ["setarg", 19, 1, 10, 521, 5], + ["invoke", 19, 11, 521, 5], + "call_done_613", + ["disrupt", 522, 5], + ["jump", "if_end_611", 522, 5], + "if_else_610", + "if_end_611", + ["get", 20, 12, 1, 524, 15], + ["get", 21, 27, 1, 524, 32], + ["load_dynamic", 22, 1, 21, 524, 32], + ["load_field", 23, 22, "id", 524, 32], + ["load_dynamic", 24, 20, 23, 524, 32], + ["is_null", 25, 24, 524, 32], + ["jump_false", 25, "if_else_614", 524, 32], + ["access", 26, "Can only call stop on an underling or self.", 525, 15], + ["get", 28, 63, 1, 525, 5], + ["is_proxy", 29, 28, 525, 5], + ["jump_false", 29, "record_path_616", 525, 5], + ["null", 30, 525, 5], + ["access", 31, "error", 525, 5], + ["array", 32, 0, 525, 5], + ["push", 32, 26, 525, 5], + ["frame", 33, 28, 2, 525, 5], + ["setarg", 33, 0, 30, 525, 5], + ["setarg", 33, 1, 31, 525, 5], + ["setarg", 33, 2, 32, 525, 5], + ["invoke", 33, 27, 525, 5], + ["jump", "call_done_617", 525, 5], + "record_path_616", + ["load_field", 34, 28, "error", 525, 5], + ["frame", 35, 34, 1, 525, 5], + ["setarg", 35, 0, 28, 525, 5], + ["setarg", 35, 1, 26, 525, 5], + ["invoke", 35, 27, 525, 5], + "call_done_617", + ["disrupt", 526, 5], + ["jump", "if_end_615", 526, 5], + "if_else_614", + "if_end_615", ["record", 36, 0], - ["access", 37, "stop", 523, 24], - ["store_field", 36, 37, "kind", 523, 24], - ["get", 39, 16, 1, 523, 3], - ["frame", 40, 39, 2, 523, 3], - ["null", 41, 523, 3], - ["setarg", 40, 0, 41, 523, 3], - ["setarg", 40, 1, 1, 523, 3], - ["setarg", 40, 2, 36, 523, 3], - ["invoke", 40, 38, 523, 3], - ["null", 42, 523, 3], - ["return", 42, 523, 3] + ["access", 37, "stop", 529, 24], + ["store_field", 36, 37, "kind", 529, 24], + ["get", 39, 16, 1, 529, 3], + ["frame", 40, 39, 2, 529, 3], + ["null", 41, 529, 3], + ["setarg", 40, 0, 41, 529, 3], + ["setarg", 40, 1, 1, 529, 3], + ["setarg", 40, 2, 36, 529, 3], + ["invoke", 40, 38, 529, 3], + ["null", 42, 529, 3], + ["return", 42, 529, 3] ], "name": "stop", "filename": "internal/engine.cm", @@ -5886,30 +6020,30 @@ "nr_slots": 13, "nr_close_slots": 0, "instructions": [ - ["get", 4, 30, 1, 528, 3], - ["is_proxy", 5, 4, 528, 3], - ["jump_false", 5, "record_path_608", 528, 3], - ["null", 6, 528, 3], - ["access", 7, "unneeded", 528, 3], - ["array", 8, 0, 528, 3], - ["push", 8, 1, 528, 3], - ["push", 8, 2, 528, 3], - ["frame", 9, 4, 2, 528, 3], - ["setarg", 9, 0, 6, 528, 3], - ["setarg", 9, 1, 7, 528, 3], - ["setarg", 9, 2, 8, 528, 3], - ["invoke", 9, 3, 528, 3], - ["jump", "call_done_609", 528, 3], - "record_path_608", - ["load_field", 10, 4, "unneeded", 528, 3], - ["frame", 11, 10, 2, 528, 3], - ["setarg", 11, 0, 4, 528, 3], - ["setarg", 11, 1, 1, 528, 3], - ["setarg", 11, 2, 2, 528, 3], - ["invoke", 11, 3, 528, 3], - "call_done_609", - ["null", 12, 528, 3], - ["return", 12, 528, 3] + ["get", 4, 30, 1, 534, 3], + ["is_proxy", 5, 4, 534, 3], + ["jump_false", 5, "record_path_618", 534, 3], + ["null", 6, 534, 3], + ["access", 7, "unneeded", 534, 3], + ["array", 8, 0, 534, 3], + ["push", 8, 1, 534, 3], + ["push", 8, 2, 534, 3], + ["frame", 9, 4, 2, 534, 3], + ["setarg", 9, 0, 6, 534, 3], + ["setarg", 9, 1, 7, 534, 3], + ["setarg", 9, 2, 8, 534, 3], + ["invoke", 9, 3, 534, 3], + ["jump", "call_done_619", 534, 3], + "record_path_618", + ["load_field", 10, 4, "unneeded", 534, 3], + ["frame", 11, 10, 2, 534, 3], + ["setarg", 11, 0, 4, 534, 3], + ["setarg", 11, 1, 1, 534, 3], + ["setarg", 11, 2, 2, 534, 3], + ["invoke", 11, 3, 534, 3], + "call_done_619", + ["null", 12, 534, 3], + ["return", 12, 534, 3] ], "name": "unneeded", "filename": "internal/engine.cm", @@ -5920,29 +6054,29 @@ "nr_slots": 12, "nr_close_slots": 0, "instructions": [ - ["get", 1, 4, 1, 539, 45], - ["get", 3, 30, 2, 539, 23], - ["is_proxy", 4, 3, 539, 23], - ["jump_false", 4, "record_path_620", 539, 23], - ["null", 5, 539, 23], - ["access", 6, "removetimer", 539, 23], - ["array", 7, 0, 539, 23], - ["push", 7, 1, 539, 23], - ["frame", 8, 3, 2, 539, 23], - ["setarg", 8, 0, 5, 539, 23], - ["setarg", 8, 1, 6, 539, 23], - ["setarg", 8, 2, 7, 539, 23], - ["invoke", 8, 2, 539, 23], - ["jump", "call_done_621", 539, 23], - "record_path_620", - ["load_field", 9, 3, "removetimer", 539, 23], - ["frame", 10, 9, 1, 539, 23], - ["setarg", 10, 0, 3, 539, 23], - ["setarg", 10, 1, 1, 539, 23], - ["invoke", 10, 2, 539, 23], - "call_done_621", - ["null", 11, 539, 23], - ["return", 11, 539, 23] + ["get", 1, 4, 1, 545, 45], + ["get", 3, 30, 2, 545, 23], + ["is_proxy", 4, 3, 545, 23], + ["jump_false", 4, "record_path_630", 545, 23], + ["null", 5, 545, 23], + ["access", 6, "removetimer", 545, 23], + ["array", 7, 0, 545, 23], + ["push", 7, 1, 545, 23], + ["frame", 8, 3, 2, 545, 23], + ["setarg", 8, 0, 5, 545, 23], + ["setarg", 8, 1, 6, 545, 23], + ["setarg", 8, 2, 7, 545, 23], + ["invoke", 8, 2, 545, 23], + ["jump", "call_done_631", 545, 23], + "record_path_630", + ["load_field", 9, 3, "removetimer", 545, 23], + ["frame", 10, 9, 1, 545, 23], + ["setarg", 10, 0, 3, 545, 23], + ["setarg", 10, 1, 1, 545, 23], + ["invoke", 10, 2, 545, 23], + "call_done_631", + ["null", 11, 545, 23], + ["return", 11, 545, 23] ], "name": "", "filename": "internal/engine.cm", @@ -5953,81 +6087,81 @@ "nr_slots": 23, "nr_close_slots": 0, "instructions": [ - ["null", 6, 533, 29], - ["is_identical", 7, 2, 6, 533, 29], - ["jump_true", 7, "eq_done_612", 533, 29], - ["is_int", 8, 2, 533, 29], - ["jump_false", 8, "eq_ni_613", 533, 29], + ["null", 6, 539, 29], + ["is_identical", 7, 2, 6, 539, 29], + ["jump_true", 7, "eq_done_622", 539, 29], + ["is_int", 8, 2, 539, 29], + ["jump_false", 8, "eq_ni_623", 539, 29], "_nop_tc_1", - ["jump", "eq_ni_613", 533, 29], - ["eq_int", 7, 2, 6, 533, 29], - ["jump", "eq_done_612", 533, 29], - "eq_ni_613", - ["is_num", 8, 2, 533, 29], - ["jump_false", 8, "eq_nn_614", 533, 29], - ["is_num", 9, 6, 533, 29], - ["jump_false", 9, "eq_nn_614", 533, 29], - ["eq_float", 7, 2, 6, 533, 29], - ["jump", "eq_done_612", 533, 29], - "eq_nn_614", - ["is_text", 8, 2, 533, 29], - ["jump_false", 8, "eq_nt_615", 533, 29], - ["is_text", 9, 6, 533, 29], - ["jump_false", 9, "eq_nt_615", 533, 29], - ["eq_text", 7, 2, 6, 533, 29], - ["jump", "eq_done_612", 533, 29], - "eq_nt_615", - ["is_null", 8, 2, 533, 29], - ["jump_false", 8, "eq_nnl_616", 533, 29], - ["is_null", 9, 6, 533, 29], - ["jump_false", 9, "eq_nnl_616", 533, 29], - ["true", 7, 533, 29], - ["jump", "eq_done_612", 533, 29], - "eq_nnl_616", - ["is_bool", 8, 2, 533, 29], - ["jump_false", 8, "eq_nb_617", 533, 29], - ["is_bool", 9, 6, 533, 29], - ["jump_false", 9, "eq_nb_617", 533, 29], - ["eq_bool", 7, 2, 6, 533, 29], - ["jump", "eq_done_612", 533, 29], - "eq_nb_617", - ["false", 7, 533, 29], - "eq_done_612", - ["jump_false", 7, "tern_else_610", 533, 29], - ["access", 11, 0, 533, 36], - ["move", 10, 11, 533, 36], - ["jump", "tern_end_611", 533, 36], - "tern_else_610", - ["move", 10, 2, 533, 40], - "tern_end_611", - ["move", 3, 10, 533, 40], - ["get", 13, 30, 1, 538, 12], - ["is_proxy", 14, 13, 538, 12], - ["jump_false", 14, "record_path_618", 538, 12], - ["null", 15, 538, 12], - ["access", 16, "delay", 538, 12], - ["array", 17, 0, 538, 12], - ["push", 17, 5, 538, 12], - ["push", 17, 3, 538, 12], - ["frame", 18, 13, 2, 538, 12], - ["setarg", 18, 0, 15, 538, 12], - ["setarg", 18, 1, 16, 538, 12], - ["setarg", 18, 2, 17, 538, 12], - ["invoke", 18, 12, 538, 12], - ["jump", "call_done_619", 538, 12], - "record_path_618", - ["load_field", 19, 13, "delay", 538, 12], - ["frame", 20, 19, 2, 538, 12], - ["setarg", 20, 0, 13, 538, 12], - ["setarg", 20, 1, 5, 538, 12], - ["setarg", 20, 2, 3, 538, 12], - ["invoke", 20, 12, 538, 12], - "call_done_619", - ["move", 4, 12, 538, 12], - ["function", 21, 52, 539, 10], - ["return", 21, 539, 10], - ["null", 22, 539, 10], - ["return", 22, 539, 10] + ["jump", "eq_ni_623", 539, 29], + ["eq_int", 7, 2, 6, 539, 29], + ["jump", "eq_done_622", 539, 29], + "eq_ni_623", + ["is_num", 8, 2, 539, 29], + ["jump_false", 8, "eq_nn_624", 539, 29], + ["is_num", 9, 6, 539, 29], + ["jump_false", 9, "eq_nn_624", 539, 29], + ["eq_float", 7, 2, 6, 539, 29], + ["jump", "eq_done_622", 539, 29], + "eq_nn_624", + ["is_text", 8, 2, 539, 29], + ["jump_false", 8, "eq_nt_625", 539, 29], + ["is_text", 9, 6, 539, 29], + ["jump_false", 9, "eq_nt_625", 539, 29], + ["eq_text", 7, 2, 6, 539, 29], + ["jump", "eq_done_622", 539, 29], + "eq_nt_625", + ["is_null", 8, 2, 539, 29], + ["jump_false", 8, "eq_nnl_626", 539, 29], + ["is_null", 9, 6, 539, 29], + ["jump_false", 9, "eq_nnl_626", 539, 29], + ["true", 7, 539, 29], + ["jump", "eq_done_622", 539, 29], + "eq_nnl_626", + ["is_bool", 8, 2, 539, 29], + ["jump_false", 8, "eq_nb_627", 539, 29], + ["is_bool", 9, 6, 539, 29], + ["jump_false", 9, "eq_nb_627", 539, 29], + ["eq_bool", 7, 2, 6, 539, 29], + ["jump", "eq_done_622", 539, 29], + "eq_nb_627", + ["false", 7, 539, 29], + "eq_done_622", + ["jump_false", 7, "tern_else_620", 539, 29], + ["access", 11, 0, 539, 36], + ["move", 10, 11, 539, 36], + ["jump", "tern_end_621", 539, 36], + "tern_else_620", + ["move", 10, 2, 539, 40], + "tern_end_621", + ["move", 3, 10, 539, 40], + ["get", 13, 30, 1, 544, 12], + ["is_proxy", 14, 13, 544, 12], + ["jump_false", 14, "record_path_628", 544, 12], + ["null", 15, 544, 12], + ["access", 16, "delay", 544, 12], + ["array", 17, 0, 544, 12], + ["push", 17, 5, 544, 12], + ["push", 17, 3, 544, 12], + ["frame", 18, 13, 2, 544, 12], + ["setarg", 18, 0, 15, 544, 12], + ["setarg", 18, 1, 16, 544, 12], + ["setarg", 18, 2, 17, 544, 12], + ["invoke", 18, 12, 544, 12], + ["jump", "call_done_629", 544, 12], + "record_path_628", + ["load_field", 19, 13, "delay", 544, 12], + ["frame", 20, 19, 2, 544, 12], + ["setarg", 20, 0, 13, 544, 12], + ["setarg", 20, 1, 5, 544, 12], + ["setarg", 20, 2, 3, 544, 12], + ["invoke", 20, 12, 544, 12], + "call_done_629", + ["move", 4, 12, 544, 12], + ["function", 21, 52, 545, 10], + ["return", 21, 545, 10], + ["null", 22, 545, 10], + ["return", 22, 545, 10] ], "name": "delay", "filename": "internal/engine.cm", @@ -6038,72 +6172,72 @@ "nr_slots": 37, "nr_close_slots": 0, "instructions": [ - ["get", 2, 2, 1, 547, 16], - ["load_field", 3, 2, "self", 547, 16], - ["is_identical", 4, 1, 3, 547, 16], - ["jump_true", 4, "eq_done_624", 547, 16], - ["is_int", 5, 1, 547, 16], - ["jump_false", 5, "eq_ni_625", 547, 16], - ["is_int", 6, 3, 547, 16], - ["jump_false", 6, "eq_ni_625", 547, 16], - ["eq_int", 4, 1, 3, 547, 16], - ["jump", "eq_done_624", 547, 16], - "eq_ni_625", - ["is_num", 5, 1, 547, 16], - ["jump_false", 5, "eq_nn_626", 547, 16], - ["is_num", 6, 3, 547, 16], - ["jump_false", 6, "eq_nn_626", 547, 16], - ["eq_float", 4, 1, 3, 547, 16], - ["jump", "eq_done_624", 547, 16], - "eq_nn_626", - ["is_text", 5, 1, 547, 16], - ["jump_false", 5, "eq_nt_627", 547, 16], - ["is_text", 6, 3, 547, 16], - ["jump_false", 6, "eq_nt_627", 547, 16], - ["eq_text", 4, 1, 3, 547, 16], - ["jump", "eq_done_624", 547, 16], - "eq_nt_627", - ["is_null", 5, 1, 547, 16], - ["jump_false", 5, "eq_nnl_628", 547, 16], - ["is_null", 6, 3, 547, 16], - ["jump_false", 6, "eq_nnl_628", 547, 16], - ["true", 4, 547, 16], - ["jump", "eq_done_624", 547, 16], - "eq_nnl_628", - ["is_bool", 5, 1, 547, 16], - ["jump_false", 5, "eq_nb_629", 547, 16], - ["is_bool", 6, 3, 547, 16], - ["jump_false", 6, "eq_nb_629", 547, 16], - ["eq_bool", 4, 1, 3, 547, 16], - ["jump", "eq_done_624", 547, 16], - "eq_nb_629", - ["false", 4, 547, 16], - "eq_done_624", - ["jump_false", 4, "if_else_622", 547, 16], - ["null", 7, 547, 25], - ["return", 7, 547, 25], - ["jump", "if_end_623", 547, 25], - "if_else_622", - "if_end_623", - ["true", 8, 548, 36], - ["get", 9, 26, 1, 548, 3], - ["get", 10, 27, 1, 548, 19], - ["load_dynamic", 11, 1, 10, 548, 19], - ["load_field", 12, 11, "id", 548, 19], - ["store_dynamic", 9, 8, 12, 548, 19], + ["get", 2, 2, 1, 553, 16], + ["load_field", 3, 2, "self", 553, 16], + ["is_identical", 4, 1, 3, 553, 16], + ["jump_true", 4, "eq_done_634", 553, 16], + ["is_int", 5, 1, 553, 16], + ["jump_false", 5, "eq_ni_635", 553, 16], + ["is_int", 6, 3, 553, 16], + ["jump_false", 6, "eq_ni_635", 553, 16], + ["eq_int", 4, 1, 3, 553, 16], + ["jump", "eq_done_634", 553, 16], + "eq_ni_635", + ["is_num", 5, 1, 553, 16], + ["jump_false", 5, "eq_nn_636", 553, 16], + ["is_num", 6, 3, 553, 16], + ["jump_false", 6, "eq_nn_636", 553, 16], + ["eq_float", 4, 1, 3, 553, 16], + ["jump", "eq_done_634", 553, 16], + "eq_nn_636", + ["is_text", 5, 1, 553, 16], + ["jump_false", 5, "eq_nt_637", 553, 16], + ["is_text", 6, 3, 553, 16], + ["jump_false", 6, "eq_nt_637", 553, 16], + ["eq_text", 4, 1, 3, 553, 16], + ["jump", "eq_done_634", 553, 16], + "eq_nt_637", + ["is_null", 5, 1, 553, 16], + ["jump_false", 5, "eq_nnl_638", 553, 16], + ["is_null", 6, 3, 553, 16], + ["jump_false", 6, "eq_nnl_638", 553, 16], + ["true", 4, 553, 16], + ["jump", "eq_done_634", 553, 16], + "eq_nnl_638", + ["is_bool", 5, 1, 553, 16], + ["jump_false", 5, "eq_nb_639", 553, 16], + ["is_bool", 6, 3, 553, 16], + ["jump_false", 6, "eq_nb_639", 553, 16], + ["eq_bool", 4, 1, 3, 553, 16], + ["jump", "eq_done_634", 553, 16], + "eq_nb_639", + ["false", 4, 553, 16], + "eq_done_634", + ["jump_false", 4, "if_else_632", 553, 16], + ["null", 7, 553, 25], + ["return", 7, 553, 25], + ["jump", "if_end_633", 553, 25], + "if_else_632", + "if_end_633", + ["true", 8, 554, 36], + ["get", 9, 26, 1, 554, 3], + ["get", 10, 27, 1, 554, 19], + ["load_dynamic", 11, 1, 10, 554, 19], + ["load_field", 12, 11, "id", 554, 19], + ["store_dynamic", 9, 8, 12, 554, 19], ["record", 13, 0], - ["access", 14, "couple", 549, 24], - ["store_field", 13, 14, "kind", 549, 24], - ["get", 15, 2, 1, 549, 40], - ["load_field", 16, 15, "self", 549, 40], - ["store_field", 13, 16, "from", 549, 40], - ["get", 18, 16, 1, 549, 3], - ["frame", 19, 18, 2, 549, 3], - ["null", 20, 549, 3], - ["setarg", 19, 0, 20, 549, 3], - ["setarg", 19, 1, 1, 549, 3], - ["setarg", 19, 2, 13, 549, 3], - ["invoke", 19, 17, 549, 3], + ["access", 14, "couple", 555, 24], + ["store_field", 13, 14, "kind", 555, 24], + ["get", 15, 2, 1, 555, 40], + ["load_field", 16, 15, "self", 555, 40], + ["store_field", 13, 16, "from", 555, 40], + ["get", 18, 16, 1, 555, 3], + ["frame", 19, 18, 2, 555, 3], + ["null", 20, 555, 3], + ["setarg", 19, 0, 20, 555, 3], + ["setarg", 19, 1, 1, 555, 3], + ["setarg", 19, 2, 13, 555, 3], + ["invoke", 19, 17, 555, 3], ["array", 21, 0, 1, 1], ["push", 21, 1, 1, 1], [ @@ -6124,28 +6258,28 @@ ["setarg", 25, 1, 23, 1, 1], ["setarg", 25, 2, 21, 1, 1], ["invoke", 25, 24, 1, 1], - ["get", 28, 63, 1, 550, 3], - ["is_proxy", 29, 28, 550, 3], - ["jump_false", 29, "record_path_630", 550, 3], - ["null", 30, 550, 3], - ["access", 31, "system", 550, 3], - ["array", 32, 0, 550, 3], - ["push", 32, 24, 550, 3], - ["frame", 33, 28, 2, 550, 3], - ["setarg", 33, 0, 30, 550, 3], - ["setarg", 33, 1, 31, 550, 3], - ["setarg", 33, 2, 32, 550, 3], - ["invoke", 33, 27, 550, 3], - ["jump", "call_done_631", 550, 3], - "record_path_630", - ["load_field", 34, 28, "system", 550, 3], - ["frame", 35, 34, 1, 550, 3], - ["setarg", 35, 0, 28, 550, 3], - ["setarg", 35, 1, 24, 550, 3], - ["invoke", 35, 27, 550, 3], - "call_done_631", - ["null", 36, 550, 3], - ["return", 36, 550, 3] + ["get", 28, 63, 1, 556, 3], + ["is_proxy", 29, 28, 556, 3], + ["jump_false", 29, "record_path_640", 556, 3], + ["null", 30, 556, 3], + ["access", 31, "system", 556, 3], + ["array", 32, 0, 556, 3], + ["push", 32, 24, 556, 3], + ["frame", 33, 28, 2, 556, 3], + ["setarg", 33, 0, 30, 556, 3], + ["setarg", 33, 1, 31, 556, 3], + ["setarg", 33, 2, 32, 556, 3], + ["invoke", 33, 27, 556, 3], + ["jump", "call_done_641", 556, 3], + "record_path_640", + ["load_field", 34, 28, "system", 556, 3], + ["frame", 35, 34, 1, 556, 3], + ["setarg", 35, 0, 28, 556, 3], + ["setarg", 35, 1, 24, 556, 3], + ["invoke", 35, 27, 556, 3], + "call_done_641", + ["null", 36, 556, 3], + ["return", 36, 556, 3] ], "name": "couple", "filename": "internal/engine.cm", @@ -6156,12 +6290,12 @@ "nr_slots": 6, "nr_close_slots": 0, "instructions": [ - ["get", 2, 42, 2, 863, 53], - ["load_dynamic", 3, 2, 1, 863, 65], - ["get", 4, 6, 1, 863, 44], - ["store_dynamic", 4, 3, 1, 863, 48], - ["null", 5, 863, 48], - ["return", 5, 863, 48] + ["get", 2, 42, 2, 869, 53], + ["load_dynamic", 3, 2, 1, 869, 65], + ["get", 4, 6, 1, 869, 44], + ["store_dynamic", 4, 3, 1, 869, 48], + ["null", 5, 869, 48], + ["return", 5, 869, 48] ], "name": "", "filename": "internal/engine.cm", @@ -6172,76 +6306,96 @@ "nr_slots": 27, "nr_close_slots": 0, "instructions": [ - ["access", 4, "core/", 878, 14], + ["access", 4, "core/", 884, 14], "_nop_tc_1", - ["jump", "add_ni_763", 878, 24], - ["is_int", 7, 1, 878, 24], - ["jump_false", 7, "add_ni_763", 878, 24], - ["add_int", 5, 4, 1, 878, 24], - ["jump", "add_done_765", 878, 24], - "add_ni_763", - ["is_text", 7, 1, 878, 24], - ["jump_false", 7, "add_nt_764", 878, 24], - ["concat", 5, 4, 1, 878, 24], - ["jump", "add_done_765", 878, 24], - "add_nt_764", - ["is_num", 6, 4, 878, 24], - ["jump_false", 6, "add_err_766", 878, 24], - ["is_num", 7, 1, 878, 24], - ["jump_false", 7, "add_err_766", 878, 24], - ["add_float", 5, 4, 1, 878, 24], - ["jump", "add_done_765", 878, 24], - "add_err_766", - ["disrupt", 878, 24], - "add_done_765", - ["move", 2, 5, 878, 24], - ["get", 8, 67, 2, 879, 9], - ["load_dynamic", 9, 8, 2, 879, 19], - ["jump_false", 9, "if_else_767", 879, 19], - ["get", 10, 67, 2, 879, 31], - ["load_dynamic", 11, 10, 2, 879, 41], - ["return", 11, 879, 41], - ["jump", "if_end_768", 879, 41], - "if_else_767", - "if_end_768", - ["get", 13, 32, 2, 880, 20], - ["frame", 14, 13, 1, 880, 20], - ["null", 15, 880, 20], - ["setarg", 14, 0, 15, 880, 20], - ["setarg", 14, 1, 1, 880, 20], - ["invoke", 14, 12, 880, 20], - ["move", 3, 12, 880, 20], - ["jump_false", 3, "if_else_769", 881, 9], - ["return", 3, 881, 26], - ["jump", "if_end_770", 881, 26], - "if_else_769", - "if_end_770", - ["get", 16, 8, 1, 882, 27], - ["get", 18, 50, 2, 882, 12], - ["is_proxy", 19, 18, 882, 12], - ["jump_false", 19, "record_path_771", 882, 12], - ["null", 20, 882, 12], - ["access", 21, "use", 882, 12], - ["array", 22, 0, 882, 12], - ["push", 22, 1, 882, 12], - ["push", 22, 16, 882, 12], - ["frame", 23, 18, 2, 882, 12], - ["setarg", 23, 0, 20, 882, 12], - ["setarg", 23, 1, 21, 882, 12], - ["setarg", 23, 2, 22, 882, 12], - ["invoke", 23, 17, 882, 12], - ["jump", "call_done_772", 882, 12], - "record_path_771", - ["load_field", 24, 18, "use", 882, 12], - ["frame", 25, 24, 2, 882, 12], - ["setarg", 25, 0, 18, 882, 12], - ["setarg", 25, 1, 1, 882, 12], - ["setarg", 25, 2, 16, 882, 12], - ["invoke", 25, 17, 882, 12], - "call_done_772", - ["return", 17, 882, 12], - ["null", 26, 882, 12], - ["return", 26, 882, 12] + ["jump", "add_ni_773", 884, 24], + ["is_int", 7, 1, 884, 24], + ["jump_false", 7, "add_ni_773", 884, 24], + ["add_int", 5, 4, 1, 884, 24], + ["jump", "add_done_775", 884, 24], + "add_ni_773", + ["is_text", 7, 1, 884, 24], + ["jump_false", 7, "add_nt_774", 884, 24], + ["concat", 5, 4, 1, 884, 24], + ["jump", "add_done_775", 884, 24], + "add_nt_774", + ["is_num", 6, 4, 884, 24], + ["jump_false", 6, "add_err_776", 884, 24], + ["is_num", 7, 1, 884, 24], + ["jump_false", 7, "add_err_776", 884, 24], + ["add_float", 5, 4, 1, 884, 24], + ["jump", "add_done_775", 884, 24], + "add_err_776", + ["disrupt", 884, 24], + "add_done_775", + ["move", 2, 5, 884, 24], + [ + "access", + 8, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 885, + 9 + ], + ["load_dynamic", 9, 8, 2, 885, 19], + ["jump_false", 9, "if_else_777", 885, 19], + [ + "access", + 10, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 885, + 31 + ], + ["load_dynamic", 11, 10, 2, 885, 41], + ["return", 11, 885, 41], + ["jump", "if_end_778", 885, 41], + "if_else_777", + "if_end_778", + ["get", 13, 32, 2, 886, 20], + ["frame", 14, 13, 1, 886, 20], + ["null", 15, 886, 20], + ["setarg", 14, 0, 15, 886, 20], + ["setarg", 14, 1, 1, 886, 20], + ["invoke", 14, 12, 886, 20], + ["move", 3, 12, 886, 20], + ["jump_false", 3, "if_else_779", 887, 9], + ["return", 3, 887, 26], + ["jump", "if_end_780", 887, 26], + "if_else_779", + "if_end_780", + ["get", 16, 8, 1, 888, 27], + ["get", 18, 50, 2, 888, 12], + ["is_proxy", 19, 18, 888, 12], + ["jump_false", 19, "record_path_781", 888, 12], + ["null", 20, 888, 12], + ["access", 21, "use", 888, 12], + ["array", 22, 0, 888, 12], + ["push", 22, 1, 888, 12], + ["push", 22, 16, 888, 12], + ["frame", 23, 18, 2, 888, 12], + ["setarg", 23, 0, 20, 888, 12], + ["setarg", 23, 1, 21, 888, 12], + ["setarg", 23, 2, 22, 888, 12], + ["invoke", 23, 17, 888, 12], + ["jump", "call_done_782", 888, 12], + "record_path_781", + ["load_field", 24, 18, "use", 888, 12], + ["frame", 25, 24, 2, 888, 12], + ["setarg", 25, 0, 18, 888, 12], + ["setarg", 25, 1, 1, 888, 12], + ["setarg", 25, 2, 16, 888, 12], + ["invoke", 25, 17, 888, 12], + "call_done_782", + ["return", 17, 888, 12], + ["null", 26, 888, 12], + ["return", 26, 888, 12] ], "name": "", "filename": "internal/engine.cm", @@ -6252,70 +6406,70 @@ "nr_slots": 131, "nr_close_slots": 0, "instructions": [ - ["get", 12, 50, 1, 858, 19], - ["load_field", 13, 12, "file_info", 858, 19], - ["jump_false", 13, "tern_else_720", 858, 19], - ["get", 15, 68, 1, 858, 51], - ["get", 17, 50, 1, 858, 36], - ["is_proxy", 18, 17, 858, 36], - ["jump_false", 18, "record_path_722", 858, 36], - ["null", 19, 858, 36], - ["access", 20, "file_info", 858, 36], - ["array", 21, 0, 858, 36], - ["push", 21, 15, 858, 36], - ["frame", 22, 17, 2, 858, 36], - ["setarg", 22, 0, 19, 858, 36], - ["setarg", 22, 1, 20, 858, 36], - ["setarg", 22, 2, 21, 858, 36], - ["invoke", 22, 16, 858, 36], - ["jump", "call_done_723", 858, 36], - "record_path_722", - ["load_field", 23, 17, "file_info", 858, 36], - ["frame", 24, 23, 1, 858, 36], - ["setarg", 24, 0, 17, 858, 36], - ["setarg", 24, 1, 15, 858, 36], - ["invoke", 24, 16, 858, 36], - "call_done_723", - ["move", 14, 16, 858, 36], - ["jump", "tern_end_721", 858, 36], - "tern_else_720", - ["null", 25, 858, 64], - ["move", 14, 25, 858, 64], - "tern_end_721", - ["move", 2, 14, 858, 64], - ["get", 26, 50, 1, 859, 16], - ["load_field", 27, 26, "script_inject_for", 859, 16], - ["jump_false", 27, "tern_else_724", 859, 16], - ["get", 30, 50, 1, 859, 41], - ["is_proxy", 31, 30, 859, 41], - ["jump_false", 31, "record_path_726", 859, 41], - ["null", 32, 859, 41], - ["access", 33, "script_inject_for", 859, 41], - ["array", 34, 0, 859, 41], - ["push", 34, 2, 859, 41], - ["frame", 35, 30, 2, 859, 41], - ["setarg", 35, 0, 32, 859, 41], - ["setarg", 35, 1, 33, 859, 41], - ["setarg", 35, 2, 34, 859, 41], - ["invoke", 35, 29, 859, 41], - ["jump", "call_done_727", 859, 41], - "record_path_726", - ["load_field", 36, 30, "script_inject_for", 859, 41], - ["frame", 37, 36, 1, 859, 41], - ["setarg", 37, 0, 30, 859, 41], - ["setarg", 37, 1, 2, 859, 41], - ["invoke", 37, 29, 859, 41], - "call_done_727", - ["move", 28, 29, 859, 41], - ["jump", "tern_end_725", 859, 41], - "tern_else_724", - ["array", 38, 0, 859, 77], - ["move", 28, 38, 859, 77], - "tern_end_725", - ["move", 3, 28, 859, 77], + ["get", 12, 50, 1, 864, 19], + ["load_field", 13, 12, "file_info", 864, 19], + ["jump_false", 13, "tern_else_730", 864, 19], + ["get", 15, 67, 1, 864, 51], + ["get", 17, 50, 1, 864, 36], + ["is_proxy", 18, 17, 864, 36], + ["jump_false", 18, "record_path_732", 864, 36], + ["null", 19, 864, 36], + ["access", 20, "file_info", 864, 36], + ["array", 21, 0, 864, 36], + ["push", 21, 15, 864, 36], + ["frame", 22, 17, 2, 864, 36], + ["setarg", 22, 0, 19, 864, 36], + ["setarg", 22, 1, 20, 864, 36], + ["setarg", 22, 2, 21, 864, 36], + ["invoke", 22, 16, 864, 36], + ["jump", "call_done_733", 864, 36], + "record_path_732", + ["load_field", 23, 17, "file_info", 864, 36], + ["frame", 24, 23, 1, 864, 36], + ["setarg", 24, 0, 17, 864, 36], + ["setarg", 24, 1, 15, 864, 36], + ["invoke", 24, 16, 864, 36], + "call_done_733", + ["move", 14, 16, 864, 36], + ["jump", "tern_end_731", 864, 36], + "tern_else_730", + ["null", 25, 864, 64], + ["move", 14, 25, 864, 64], + "tern_end_731", + ["move", 2, 14, 864, 64], + ["get", 26, 50, 1, 865, 16], + ["load_field", 27, 26, "script_inject_for", 865, 16], + ["jump_false", 27, "tern_else_734", 865, 16], + ["get", 30, 50, 1, 865, 41], + ["is_proxy", 31, 30, 865, 41], + ["jump_false", 31, "record_path_736", 865, 41], + ["null", 32, 865, 41], + ["access", 33, "script_inject_for", 865, 41], + ["array", 34, 0, 865, 41], + ["push", 34, 2, 865, 41], + ["frame", 35, 30, 2, 865, 41], + ["setarg", 35, 0, 32, 865, 41], + ["setarg", 35, 1, 33, 865, 41], + ["setarg", 35, 2, 34, 865, 41], + ["invoke", 35, 29, 865, 41], + ["jump", "call_done_737", 865, 41], + "record_path_736", + ["load_field", 36, 30, "script_inject_for", 865, 41], + ["frame", 37, 36, 1, 865, 41], + ["setarg", 37, 0, 30, 865, 41], + ["setarg", 37, 1, 2, 865, 41], + ["invoke", 37, 29, 865, 41], + "call_done_737", + ["move", 28, 29, 865, 41], + ["jump", "tern_end_735", 865, 41], + "tern_else_734", + ["array", 38, 0, 865, 77], + ["move", 28, 38, 865, 77], + "tern_end_735", + ["move", 3, 28, 865, 77], ["record", 39, 0], - ["move", 6, 39, 862, 13], - ["get", 40, 42, 1, 863, 16], + ["move", 6, 39, 868, 13], + ["get", 40, 42, 1, 869, 16], [ "access", 42, @@ -6324,112 +6478,112 @@ "kind": "name", "make": "intrinsic" }, - 863, + 869, 10 ], - ["frame", 43, 42, 1, 863, 10], - ["null", 44, 863, 10], - ["setarg", 43, 0, 44, 863, 10], - ["setarg", 43, 1, 40, 863, 10], - ["invoke", 43, 41, 863, 10], - ["function", 45, 55, 863, 30], - ["length", 47, 41, 863, 30], - ["int", 48, 0, 863, 30], - ["int", 52, 1, 863, 30], - ["null", 51, 863, 30], - "arrfor_loop_728", - ["lt_int", 49, 48, 47, 863, 30], - ["jump_false", 49, "arrfor_done_729", 863, 30], - ["load_index", 50, 41, 48, 863, 30], - ["frame", 53, 45, 2, 863, 30], - ["setarg", 53, 0, 51, 863, 30], - ["setarg", 53, 1, 50, 863, 30], - ["setarg", 53, 2, 48, 863, 30], - ["invoke", 53, 54, 863, 30], - ["add_int", 48, 48, 52, 863, 30], - ["jump", "arrfor_loop_728", 863, 30], - "arrfor_done_729", - ["null", 46, 863, 30], - ["access", 9, 0, 864, 13], - ["null", 7, 865, 13], - ["null", 5, 866, 13], - "while_start_730", - ["length", 55, 3, 867, 23], - ["is_int", 57, 9, 867, 23], - ["jump_false", 57, "rel_ni_732", 867, 23], + ["frame", 43, 42, 1, 869, 10], + ["null", 44, 869, 10], + ["setarg", 43, 0, 44, 869, 10], + ["setarg", 43, 1, 40, 869, 10], + ["invoke", 43, 41, 869, 10], + ["function", 45, 55, 869, 30], + ["length", 47, 41, 869, 30], + ["int", 48, 0, 869, 30], + ["int", 52, 1, 869, 30], + ["null", 51, 869, 30], + "arrfor_loop_738", + ["lt_int", 49, 48, 47, 869, 30], + ["jump_false", 49, "arrfor_done_739", 869, 30], + ["load_index", 50, 41, 48, 869, 30], + ["frame", 53, 45, 2, 869, 30], + ["setarg", 53, 0, 51, 869, 30], + ["setarg", 53, 1, 50, 869, 30], + ["setarg", 53, 2, 48, 869, 30], + ["invoke", 53, 54, 869, 30], + ["add_int", 48, 48, 52, 869, 30], + ["jump", "arrfor_loop_738", 869, 30], + "arrfor_done_739", + ["null", 46, 869, 30], + ["access", 9, 0, 870, 13], + ["null", 7, 871, 13], + ["null", 5, 872, 13], + "while_start_740", + ["length", 55, 3, 873, 23], + ["is_int", 57, 9, 873, 23], + ["jump_false", 57, "rel_ni_742", 873, 23], "_nop_tc_1", "_nop_tc_2", - ["lt_int", 56, 9, 55, 867, 23], - ["jump", "rel_done_734", 867, 23], - "rel_ni_732", - ["is_num", 57, 9, 867, 23], - ["jump_false", 57, "rel_nn_733", 867, 23], - ["is_num", 58, 55, 867, 23], - ["jump_false", 58, "rel_nn_733", 867, 23], - ["lt_float", 56, 9, 55, 867, 23], - ["jump", "rel_done_734", 867, 23], - "rel_nn_733", - ["is_text", 57, 9, 867, 23], - ["jump_false", 57, "rel_err_735", 867, 23], - ["is_text", 58, 55, 867, 23], - ["jump_false", 58, "rel_err_735", 867, 23], - ["lt_text", 56, 9, 55, 867, 23], - ["jump", "rel_done_734", 867, 23], - "rel_err_735", - ["disrupt", 867, 23], - "rel_done_734", - ["jump_false", 56, "while_end_731", 867, 23], - ["load_dynamic", 59, 3, 9, 868, 18], - ["move", 7, 59, 868, 18], - ["move", 5, 7, 869, 11], - ["move", 60, 5, 870, 9], - ["jump_false", 60, "and_end_738", 870, 9], - ["access", 61, 0, 870, 20], - ["load_index", 62, 5, 61, 870, 20], - ["access", 63, "$", 870, 26], - ["is_identical", 64, 62, 63, 870, 26], - ["jump_true", 64, "eq_done_739", 870, 26], - ["is_int", 65, 62, 870, 26], - ["jump_false", 65, "eq_ni_740", 870, 26], + ["lt_int", 56, 9, 55, 873, 23], + ["jump", "rel_done_744", 873, 23], + "rel_ni_742", + ["is_num", 57, 9, 873, 23], + ["jump_false", 57, "rel_nn_743", 873, 23], + ["is_num", 58, 55, 873, 23], + ["jump_false", 58, "rel_nn_743", 873, 23], + ["lt_float", 56, 9, 55, 873, 23], + ["jump", "rel_done_744", 873, 23], + "rel_nn_743", + ["is_text", 57, 9, 873, 23], + ["jump_false", 57, "rel_err_745", 873, 23], + ["is_text", 58, 55, 873, 23], + ["jump_false", 58, "rel_err_745", 873, 23], + ["lt_text", 56, 9, 55, 873, 23], + ["jump", "rel_done_744", 873, 23], + "rel_err_745", + ["disrupt", 873, 23], + "rel_done_744", + ["jump_false", 56, "while_end_741", 873, 23], + ["load_dynamic", 59, 3, 9, 874, 18], + ["move", 7, 59, 874, 18], + ["move", 5, 7, 875, 11], + ["move", 60, 5, 876, 9], + ["jump_false", 60, "and_end_748", 876, 9], + ["access", 61, 0, 876, 20], + ["load_index", 62, 5, 61, 876, 20], + ["access", 63, "$", 876, 26], + ["is_identical", 64, 62, 63, 876, 26], + ["jump_true", 64, "eq_done_749", 876, 26], + ["is_int", 65, 62, 876, 26], + ["jump_false", 65, "eq_ni_750", 876, 26], "_nop_tc_3", - ["jump", "eq_ni_740", 870, 26], - ["eq_int", 64, 62, 63, 870, 26], - ["jump", "eq_done_739", 870, 26], - "eq_ni_740", - ["is_num", 65, 62, 870, 26], - ["jump_false", 65, "eq_nn_741", 870, 26], - ["is_num", 66, 63, 870, 26], - ["jump_false", 66, "eq_nn_741", 870, 26], - ["eq_float", 64, 62, 63, 870, 26], - ["jump", "eq_done_739", 870, 26], - "eq_nn_741", - ["is_text", 65, 62, 870, 26], - ["jump_false", 65, "eq_nt_742", 870, 26], - ["is_text", 66, 63, 870, 26], - ["jump_false", 66, "eq_nt_742", 870, 26], - ["eq_text", 64, 62, 63, 870, 26], - ["jump", "eq_done_739", 870, 26], - "eq_nt_742", - ["is_null", 65, 62, 870, 26], - ["jump_false", 65, "eq_nnl_743", 870, 26], - ["is_null", 66, 63, 870, 26], - ["jump_false", 66, "eq_nnl_743", 870, 26], - ["true", 64, 870, 26], - ["jump", "eq_done_739", 870, 26], - "eq_nnl_743", - ["is_bool", 65, 62, 870, 26], - ["jump_false", 65, "eq_nb_744", 870, 26], - ["is_bool", 66, 63, 870, 26], - ["jump_false", 66, "eq_nb_744", 870, 26], - ["eq_bool", 64, 62, 63, 870, 26], - ["jump", "eq_done_739", 870, 26], - "eq_nb_744", - ["false", 64, 870, 26], - "eq_done_739", - ["move", 60, 64, 870, 26], - "and_end_738", - ["jump_false", 60, "if_else_736", 870, 26], - ["access", 67, 1, 870, 47], + ["jump", "eq_ni_750", 876, 26], + ["eq_int", 64, 62, 63, 876, 26], + ["jump", "eq_done_749", 876, 26], + "eq_ni_750", + ["is_num", 65, 62, 876, 26], + ["jump_false", 65, "eq_nn_751", 876, 26], + ["is_num", 66, 63, 876, 26], + ["jump_false", 66, "eq_nn_751", 876, 26], + ["eq_float", 64, 62, 63, 876, 26], + ["jump", "eq_done_749", 876, 26], + "eq_nn_751", + ["is_text", 65, 62, 876, 26], + ["jump_false", 65, "eq_nt_752", 876, 26], + ["is_text", 66, 63, 876, 26], + ["jump_false", 66, "eq_nt_752", 876, 26], + ["eq_text", 64, 62, 63, 876, 26], + ["jump", "eq_done_749", 876, 26], + "eq_nt_752", + ["is_null", 65, 62, 876, 26], + ["jump_false", 65, "eq_nnl_753", 876, 26], + ["is_null", 66, 63, 876, 26], + ["jump_false", 66, "eq_nnl_753", 876, 26], + ["true", 64, 876, 26], + ["jump", "eq_done_749", 876, 26], + "eq_nnl_753", + ["is_bool", 65, 62, 876, 26], + ["jump_false", 65, "eq_nb_754", 876, 26], + ["is_bool", 66, 63, 876, 26], + ["jump_false", 66, "eq_nb_754", 876, 26], + ["eq_bool", 64, 62, 63, 876, 26], + ["jump", "eq_done_749", 876, 26], + "eq_nb_754", + ["false", 64, 876, 26], + "eq_done_749", + ["move", 60, 64, 876, 26], + "and_end_748", + ["jump_false", 60, "if_else_746", 876, 26], + ["access", 67, 1, 876, 47], [ "access", 69, @@ -6438,152 +6592,152 @@ "kind": "name", "make": "intrinsic" }, - 870, + 876, 37 ], - ["frame", 70, 69, 2, 870, 37], - ["null", 71, 870, 37], - ["setarg", 70, 0, 71, 870, 37], - ["setarg", 70, 1, 5, 870, 37], - ["setarg", 70, 2, 67, 870, 37], - ["invoke", 70, 68, 870, 37], - ["move", 5, 68, 870, 37], - ["jump", "if_end_737", 870, 37], - "if_else_736", - "if_end_737", - ["access", 72, "fd", 871, 16], - ["is_identical", 73, 5, 72, 871, 16], - ["jump_true", 73, "eq_done_747", 871, 16], - ["is_int", 74, 5, 871, 16], - ["jump_false", 74, "eq_ni_748", 871, 16], + ["frame", 70, 69, 2, 876, 37], + ["null", 71, 876, 37], + ["setarg", 70, 0, 71, 876, 37], + ["setarg", 70, 1, 5, 876, 37], + ["setarg", 70, 2, 67, 876, 37], + ["invoke", 70, 68, 876, 37], + ["move", 5, 68, 876, 37], + ["jump", "if_end_747", 876, 37], + "if_else_746", + "if_end_747", + ["access", 72, "fd", 877, 16], + ["is_identical", 73, 5, 72, 877, 16], + ["jump_true", 73, "eq_done_757", 877, 16], + ["is_int", 74, 5, 877, 16], + ["jump_false", 74, "eq_ni_758", 877, 16], "_nop_tc_4", - ["jump", "eq_ni_748", 871, 16], - ["eq_int", 73, 5, 72, 871, 16], - ["jump", "eq_done_747", 871, 16], - "eq_ni_748", - ["is_num", 74, 5, 871, 16], - ["jump_false", 74, "eq_nn_749", 871, 16], - ["is_num", 75, 72, 871, 16], - ["jump_false", 75, "eq_nn_749", 871, 16], - ["eq_float", 73, 5, 72, 871, 16], - ["jump", "eq_done_747", 871, 16], - "eq_nn_749", - ["is_text", 74, 5, 871, 16], - ["jump_false", 74, "eq_nt_750", 871, 16], - ["is_text", 75, 72, 871, 16], - ["jump_false", 75, "eq_nt_750", 871, 16], - ["eq_text", 73, 5, 72, 871, 16], - ["jump", "eq_done_747", 871, 16], - "eq_nt_750", - ["is_null", 74, 5, 871, 16], - ["jump_false", 74, "eq_nnl_751", 871, 16], - ["is_null", 75, 72, 871, 16], - ["jump_false", 75, "eq_nnl_751", 871, 16], - ["true", 73, 871, 16], - ["jump", "eq_done_747", 871, 16], - "eq_nnl_751", - ["is_bool", 74, 5, 871, 16], - ["jump_false", 74, "eq_nb_752", 871, 16], - ["is_bool", 75, 72, 871, 16], - ["jump_false", 75, "eq_nb_752", 871, 16], - ["eq_bool", 73, 5, 72, 871, 16], - ["jump", "eq_done_747", 871, 16], - "eq_nb_752", - ["false", 73, 871, 16], - "eq_done_747", - ["jump_false", 73, "if_else_745", 871, 16], - ["get", 76, 20, 1, 871, 35], - ["access", 77, "$fd", 871, 26], - ["store_field", 6, 76, 77, 871, 26], - ["jump", "if_end_746", 871, 26], - "if_else_745", - ["get", 78, 2, 1, 872, 27], - ["load_dynamic", 79, 78, 5, 872, 30], - ["access", 80, "$", 872, 14], + ["jump", "eq_ni_758", 877, 16], + ["eq_int", 73, 5, 72, 877, 16], + ["jump", "eq_done_757", 877, 16], + "eq_ni_758", + ["is_num", 74, 5, 877, 16], + ["jump_false", 74, "eq_nn_759", 877, 16], + ["is_num", 75, 72, 877, 16], + ["jump_false", 75, "eq_nn_759", 877, 16], + ["eq_float", 73, 5, 72, 877, 16], + ["jump", "eq_done_757", 877, 16], + "eq_nn_759", + ["is_text", 74, 5, 877, 16], + ["jump_false", 74, "eq_nt_760", 877, 16], + ["is_text", 75, 72, 877, 16], + ["jump_false", 75, "eq_nt_760", 877, 16], + ["eq_text", 73, 5, 72, 877, 16], + ["jump", "eq_done_757", 877, 16], + "eq_nt_760", + ["is_null", 74, 5, 877, 16], + ["jump_false", 74, "eq_nnl_761", 877, 16], + ["is_null", 75, 72, 877, 16], + ["jump_false", 75, "eq_nnl_761", 877, 16], + ["true", 73, 877, 16], + ["jump", "eq_done_757", 877, 16], + "eq_nnl_761", + ["is_bool", 74, 5, 877, 16], + ["jump_false", 74, "eq_nb_762", 877, 16], + ["is_bool", 75, 72, 877, 16], + ["jump_false", 75, "eq_nb_762", 877, 16], + ["eq_bool", 73, 5, 72, 877, 16], + ["jump", "eq_done_757", 877, 16], + "eq_nb_762", + ["false", 73, 877, 16], + "eq_done_757", + ["jump_false", 73, "if_else_755", 877, 16], + ["get", 76, 20, 1, 877, 35], + ["access", 77, "$fd", 877, 26], + ["store_field", 6, 76, 77, 877, 26], + ["jump", "if_end_756", 877, 26], + "if_else_755", + ["get", 78, 2, 1, 878, 27], + ["load_dynamic", 79, 78, 5, 878, 30], + ["access", 80, "$", 878, 14], "_nop_tc_5", - ["jump", "add_ni_753", 872, 20], - ["is_int", 83, 5, 872, 20], - ["jump_false", 83, "add_ni_753", 872, 20], - ["add_int", 81, 80, 5, 872, 20], - ["jump", "add_done_755", 872, 20], - "add_ni_753", - ["is_text", 83, 5, 872, 20], - ["jump_false", 83, "add_nt_754", 872, 20], - ["concat", 81, 80, 5, 872, 20], - ["jump", "add_done_755", 872, 20], - "add_nt_754", - ["is_num", 82, 80, 872, 20], - ["jump_false", 82, "add_err_756", 872, 20], - ["is_num", 83, 5, 872, 20], - ["jump_false", 83, "add_err_756", 872, 20], - ["add_float", 81, 80, 5, 872, 20], - ["jump", "add_done_755", 872, 20], - "add_err_756", - ["disrupt", 872, 20], - "add_done_755", - ["store_dynamic", 6, 79, 81, 872, 20], - "if_end_746", - ["access", 84, 1, 873, 17], - ["is_int", 86, 9, 873, 17], - ["jump_false", 86, "add_ni_757", 873, 17], - ["add_int", 85, 9, 84, 873, 17], - ["jump", "add_done_759", 873, 17], - "add_ni_757", - ["is_text", 86, 9, 873, 17], - ["jump_false", 86, "add_nt_758", 873, 17], - ["is_text", 87, 84, 873, 17], - ["jump_false", 87, "add_nt_758", 873, 17], - ["concat", 85, 9, 84, 873, 17], - ["jump", "add_done_759", 873, 17], - "add_nt_758", - ["is_num", 86, 9, 873, 17], - ["jump_false", 86, "add_err_760", 873, 17], - ["add_float", 85, 9, 84, 873, 17], - ["jump", "add_done_759", 873, 17], - "add_err_760", - ["disrupt", 873, 17], - "add_done_759", - ["move", 9, 85, 873, 17], - ["jump", "while_start_730", 873, 17], - "while_end_731", - ["jump_false", 2, "tern_else_761", 876, 13], - ["load_field", 89, 2, "package", 876, 25], - ["move", 88, 89, 876, 25], - ["jump", "tern_end_762", 876, 25], - "tern_else_761", - ["null", 90, 876, 45], - ["move", 88, 90, 876, 45], - "tern_end_762", - ["move", 8, 88, 876, 45], - ["function", 91, 56, 877, 13], - ["store_field", 6, 91, "use", 877, 3], - ["get", 92, 11, 1, 884, 14], - ["load_field", 93, 92, "args", 884, 14], - ["load_field", 94, 93, "arg", 884, 14], - ["store_field", 6, 94, "args", 884, 3], - ["get", 95, 63, 1, 885, 14], - ["store_field", 6, 95, "log", 885, 3], - ["get", 96, 68, 1, 887, 30], - ["get", 98, 20, 1, 887, 21], - ["is_proxy", 99, 98, 887, 21], - ["jump_false", 99, "record_path_773", 887, 21], - ["null", 100, 887, 21], - ["access", 101, "slurp", 887, 21], - ["array", 102, 0, 887, 21], - ["push", 102, 96, 887, 21], - ["frame", 103, 98, 2, 887, 21], - ["setarg", 103, 0, 100, 887, 21], - ["setarg", 103, 1, 101, 887, 21], - ["setarg", 103, 2, 102, 887, 21], - ["invoke", 103, 97, 887, 21], - ["jump", "call_done_774", 887, 21], - "record_path_773", - ["load_field", 104, 98, "slurp", 887, 21], - ["frame", 105, 104, 1, 887, 21], - ["setarg", 105, 0, 98, 887, 21], - ["setarg", 105, 1, 96, 887, 21], - ["invoke", 105, 97, 887, 21], - "call_done_774", + ["jump", "add_ni_763", 878, 20], + ["is_int", 83, 5, 878, 20], + ["jump_false", 83, "add_ni_763", 878, 20], + ["add_int", 81, 80, 5, 878, 20], + ["jump", "add_done_765", 878, 20], + "add_ni_763", + ["is_text", 83, 5, 878, 20], + ["jump_false", 83, "add_nt_764", 878, 20], + ["concat", 81, 80, 5, 878, 20], + ["jump", "add_done_765", 878, 20], + "add_nt_764", + ["is_num", 82, 80, 878, 20], + ["jump_false", 82, "add_err_766", 878, 20], + ["is_num", 83, 5, 878, 20], + ["jump_false", 83, "add_err_766", 878, 20], + ["add_float", 81, 80, 5, 878, 20], + ["jump", "add_done_765", 878, 20], + "add_err_766", + ["disrupt", 878, 20], + "add_done_765", + ["store_dynamic", 6, 79, 81, 878, 20], + "if_end_756", + ["access", 84, 1, 879, 17], + ["is_int", 86, 9, 879, 17], + ["jump_false", 86, "add_ni_767", 879, 17], + ["add_int", 85, 9, 84, 879, 17], + ["jump", "add_done_769", 879, 17], + "add_ni_767", + ["is_text", 86, 9, 879, 17], + ["jump_false", 86, "add_nt_768", 879, 17], + ["is_text", 87, 84, 879, 17], + ["jump_false", 87, "add_nt_768", 879, 17], + ["concat", 85, 9, 84, 879, 17], + ["jump", "add_done_769", 879, 17], + "add_nt_768", + ["is_num", 86, 9, 879, 17], + ["jump_false", 86, "add_err_770", 879, 17], + ["add_float", 85, 9, 84, 879, 17], + ["jump", "add_done_769", 879, 17], + "add_err_770", + ["disrupt", 879, 17], + "add_done_769", + ["move", 9, 85, 879, 17], + ["jump", "while_start_740", 879, 17], + "while_end_741", + ["jump_false", 2, "tern_else_771", 882, 13], + ["load_field", 89, 2, "package", 882, 25], + ["move", 88, 89, 882, 25], + ["jump", "tern_end_772", 882, 25], + "tern_else_771", + ["null", 90, 882, 45], + ["move", 88, 90, 882, 45], + "tern_end_772", + ["move", 8, 88, 882, 45], + ["function", 91, 56, 883, 13], + ["store_field", 6, 91, "use", 883, 3], + ["get", 92, 11, 1, 890, 14], + ["load_field", 93, 92, "args", 890, 14], + ["load_field", 94, 93, "arg", 890, 14], + ["store_field", 6, 94, "args", 890, 3], + ["get", 95, 63, 1, 891, 14], + ["store_field", 6, 95, "log", 891, 3], + ["get", 96, 67, 1, 893, 30], + ["get", 98, 20, 1, 893, 21], + ["is_proxy", 99, 98, 893, 21], + ["jump_false", 99, "record_path_783", 893, 21], + ["null", 100, 893, 21], + ["access", 101, "slurp", 893, 21], + ["array", 102, 0, 893, 21], + ["push", 102, 96, 893, 21], + ["frame", 103, 98, 2, 893, 21], + ["setarg", 103, 0, 100, 893, 21], + ["setarg", 103, 1, 101, 893, 21], + ["setarg", 103, 2, 102, 893, 21], + ["invoke", 103, 97, 893, 21], + ["jump", "call_done_784", 893, 21], + "record_path_783", + ["load_field", 104, 98, "slurp", 893, 21], + ["frame", 105, 104, 1, 893, 21], + ["setarg", 105, 0, 98, 893, 21], + ["setarg", 105, 1, 96, 893, 21], + ["invoke", 105, 97, 893, 21], + "call_done_784", [ "access", 107, @@ -6592,16 +6746,16 @@ "kind": "name", "make": "intrinsic" }, - 887, + 893, 16 ], - ["frame", 108, 107, 1, 887, 16], - ["null", 109, 887, 16], - ["setarg", 108, 0, 109, 887, 16], - ["setarg", 108, 1, 97, 887, 16], - ["invoke", 108, 106, 887, 16], - ["move", 4, 106, 887, 16], - ["get", 110, 68, 1, 888, 29], + ["frame", 108, 107, 1, 893, 16], + ["null", 109, 893, 16], + ["setarg", 108, 0, 109, 893, 16], + ["setarg", 108, 1, 97, 893, 16], + ["invoke", 108, 106, 893, 16], + ["move", 4, 106, 893, 16], + ["get", 110, 67, 1, 894, 29], [ "access", 112, @@ -6610,17 +6764,17 @@ "kind": "name", "make": "intrinsic" }, - 888, + 894, 13 ], - ["frame", 113, 112, 2, 888, 13], - ["null", 114, 888, 13], - ["setarg", 113, 0, 114, 888, 13], - ["setarg", 113, 1, 4, 888, 13], - ["setarg", 113, 2, 110, 888, 13], - ["invoke", 113, 111, 888, 13], - ["move", 10, 111, 888, 13], - ["get", 115, 46, 1, 889, 24], + ["frame", 113, 112, 2, 894, 13], + ["null", 114, 894, 13], + ["setarg", 113, 0, 114, 894, 13], + ["setarg", 113, 1, 4, 894, 13], + ["setarg", 113, 2, 110, 894, 13], + ["invoke", 113, 111, 894, 13], + ["move", 10, 111, 894, 13], + ["get", 115, 46, 1, 895, 24], [ "access", 117, @@ -6629,45 +6783,45 @@ "kind": "name", "make": "intrinsic" }, - 889, + 895, 13 ], - ["frame", 118, 117, 3, 889, 13], - ["null", 119, 889, 13], - ["setarg", 118, 0, 119, 889, 13], - ["setarg", 118, 1, 115, 889, 13], - ["setarg", 118, 2, 10, 889, 13], - ["setarg", 118, 3, 6, 889, 13], - ["invoke", 118, 116, 889, 13], - ["move", 11, 116, 889, 13], - ["jump_false", 11, "if_else_775", 890, 7], - ["access", 120, "Program must not return anything", 891, 15], - ["get", 122, 63, 1, 891, 5], - ["is_proxy", 123, 122, 891, 5], - ["jump_false", 123, "record_path_777", 891, 5], - ["null", 124, 891, 5], - ["access", 125, "error", 891, 5], - ["array", 126, 0, 891, 5], - ["push", 126, 120, 891, 5], - ["frame", 127, 122, 2, 891, 5], - ["setarg", 127, 0, 124, 891, 5], - ["setarg", 127, 1, 125, 891, 5], - ["setarg", 127, 2, 126, 891, 5], - ["invoke", 127, 121, 891, 5], - ["jump", "call_done_778", 891, 5], - "record_path_777", - ["load_field", 128, 122, "error", 891, 5], - ["frame", 129, 128, 1, 891, 5], - ["setarg", 129, 0, 122, 891, 5], - ["setarg", 129, 1, 120, 891, 5], - ["invoke", 129, 121, 891, 5], - "call_done_778", - ["disrupt", 892, 5], - ["jump", "if_end_776", 892, 5], - "if_else_775", - "if_end_776", - ["null", 130, 892, 5], - ["return", 130, 892, 5] + ["frame", 118, 117, 3, 895, 13], + ["null", 119, 895, 13], + ["setarg", 118, 0, 119, 895, 13], + ["setarg", 118, 1, 115, 895, 13], + ["setarg", 118, 2, 10, 895, 13], + ["setarg", 118, 3, 6, 895, 13], + ["invoke", 118, 116, 895, 13], + ["move", 11, 116, 895, 13], + ["jump_false", 11, "if_else_785", 896, 7], + ["access", 120, "Program must not return anything", 897, 15], + ["get", 122, 63, 1, 897, 5], + ["is_proxy", 123, 122, 897, 5], + ["jump_false", 123, "record_path_787", 897, 5], + ["null", 124, 897, 5], + ["access", 125, "error", 897, 5], + ["array", 126, 0, 897, 5], + ["push", 126, 120, 897, 5], + ["frame", 127, 122, 2, 897, 5], + ["setarg", 127, 0, 124, 897, 5], + ["setarg", 127, 1, 125, 897, 5], + ["setarg", 127, 2, 126, 897, 5], + ["invoke", 127, 121, 897, 5], + ["jump", "call_done_788", 897, 5], + "record_path_787", + ["load_field", 128, 122, "error", 897, 5], + ["frame", 129, 128, 1, 897, 5], + ["setarg", 129, 0, 122, 897, 5], + ["setarg", 129, 1, 120, 897, 5], + ["invoke", 129, 121, 897, 5], + "call_done_788", + ["disrupt", 898, 5], + ["jump", "if_end_786", 898, 5], + "if_else_785", + "if_end_786", + ["null", 130, 898, 5], + ["return", 130, 898, 5] ], "name": "", "filename": "internal/engine.cm", @@ -6677,71 +6831,71 @@ "main": { "nr_args": 0, "nr_close_slots": 0, - "nr_slots": 503, + "nr_slots": 504, "instructions": [ - ["function", 78, 0, 0, 0], - ["move", 17, 78, 0, 0], - ["function", 79, 1, 0, 0], - ["move", 10, 79, 0, 0], - ["function", 80, 2, 0, 0], - ["move", 9, 80, 0, 0], - ["function", 81, 4, 0, 0], - ["move", 47, 81, 0, 0], - ["function", 82, 5, 0, 0], - ["move", 52, 82, 0, 0], - ["function", 83, 6, 0, 0], - ["move", 40, 83, 0, 0], - ["function", 84, 8, 0, 0], - ["move", 32, 84, 0, 0], - ["function", 85, 9, 0, 0], - ["move", 38, 85, 0, 0], - ["function", 86, 10, 0, 0], - ["move", 5, 86, 0, 0], - ["function", 87, 11, 0, 0], - ["move", 53, 87, 0, 0], - ["function", 88, 12, 0, 0], - ["move", 13, 88, 0, 0], - ["function", 89, 13, 0, 0], - ["move", 63, 89, 0, 0], - ["function", 90, 15, 0, 0], - ["move", 65, 90, 0, 0], - ["function", 91, 16, 0, 0], - ["move", 72, 91, 0, 0], - ["function", 92, 17, 0, 0], - ["move", 6, 92, 0, 0], - ["function", 93, 18, 0, 0], - ["move", 28, 93, 0, 0], - ["function", 94, 21, 0, 0], - ["move", 48, 94, 0, 0], - ["function", 95, 23, 0, 0], - ["move", 61, 95, 0, 0], - ["function", 96, 24, 0, 0], - ["move", 66, 96, 0, 0], - ["function", 97, 25, 0, 0], - ["move", 45, 97, 0, 0], - ["function", 98, 26, 0, 0], - ["move", 33, 98, 0, 0], - ["function", 99, 28, 0, 0], - ["move", 70, 99, 0, 0], - ["function", 100, 30, 0, 0], - ["move", 71, 100, 0, 0], - ["function", 101, 31, 0, 0], - ["move", 8, 101, 0, 0], - ["function", 102, 32, 0, 0], - ["move", 16, 102, 0, 0], - ["function", 103, 33, 0, 0], - ["move", 18, 103, 0, 0], - ["function", 104, 34, 0, 0], - ["move", 25, 104, 0, 0], - ["function", 105, 35, 0, 0], - ["move", 15, 105, 0, 0], - ["function", 106, 36, 0, 0], - ["move", 34, 106, 0, 0], - ["function", 107, 37, 0, 0], - ["move", 37, 107, 0, 0], + ["function", 77, 0, 0, 0], + ["move", 17, 77, 0, 0], + ["function", 78, 1, 0, 0], + ["move", 10, 78, 0, 0], + ["function", 79, 2, 0, 0], + ["move", 9, 79, 0, 0], + ["function", 80, 4, 0, 0], + ["move", 47, 80, 0, 0], + ["function", 81, 5, 0, 0], + ["move", 52, 81, 0, 0], + ["function", 82, 6, 0, 0], + ["move", 40, 82, 0, 0], + ["function", 83, 8, 0, 0], + ["move", 32, 83, 0, 0], + ["function", 84, 9, 0, 0], + ["move", 38, 84, 0, 0], + ["function", 85, 10, 0, 0], + ["move", 5, 85, 0, 0], + ["function", 86, 11, 0, 0], + ["move", 53, 86, 0, 0], + ["function", 87, 12, 0, 0], + ["move", 13, 87, 0, 0], + ["function", 88, 13, 0, 0], + ["move", 63, 88, 0, 0], + ["function", 89, 15, 0, 0], + ["move", 65, 89, 0, 0], + ["function", 90, 16, 0, 0], + ["move", 72, 90, 0, 0], + ["function", 91, 17, 0, 0], + ["move", 6, 91, 0, 0], + ["function", 92, 18, 0, 0], + ["move", 28, 92, 0, 0], + ["function", 93, 21, 0, 0], + ["move", 48, 93, 0, 0], + ["function", 94, 23, 0, 0], + ["move", 61, 94, 0, 0], + ["function", 95, 24, 0, 0], + ["move", 66, 95, 0, 0], + ["function", 96, 25, 0, 0], + ["move", 45, 96, 0, 0], + ["function", 97, 26, 0, 0], + ["move", 33, 97, 0, 0], + ["function", 98, 28, 0, 0], + ["move", 70, 98, 0, 0], + ["function", 99, 30, 0, 0], + ["move", 71, 99, 0, 0], + ["function", 100, 31, 0, 0], + ["move", 8, 100, 0, 0], + ["function", 101, 32, 0, 0], + ["move", 16, 101, 0, 0], + ["function", 102, 33, 0, 0], + ["move", 18, 102, 0, 0], + ["function", 103, 34, 0, 0], + ["move", 25, 103, 0, 0], + ["function", 104, 35, 0, 0], + ["move", 15, 104, 0, 0], + ["function", 105, 36, 0, 0], + ["move", 34, 105, 0, 0], + ["function", 106, 37, 0, 0], + ["move", 37, 106, 0, 0], [ "access", - 108, + 107, { "name": "actorsym", "kind": "name", @@ -6750,22 +6904,22 @@ 3, 17 ], - ["move", 27, 108, 3, 17], + ["move", 27, 107, 3, 17], ["access", 73, "__SYSTEM__", 4, 13], - ["record", 109, 0], - ["move", 11, 109, 6, 13], + ["record", 108, 0], + ["move", 11, 108, 6, 13], ["false", 51, 7, 17], - ["record", 110, 0], - ["access", 111, ".dll", 10, 12], - ["store_field", 110, 111, "Windows", 10, 12], - ["access", 112, ".dylib", 11, 10], - ["store_field", 110, 112, "macOS", 11, 10], - ["access", 113, ".so", 12, 10], - ["store_field", 110, 113, "Linux", 12, 10], - ["move", 4, 110, 12, 10], + ["record", 109, 0], + ["access", 110, ".dll", 10, 12], + ["store_field", 109, 110, "Windows", 10, 12], + ["access", 111, ".dylib", 11, 10], + ["store_field", 109, 111, "macOS", 11, 10], + ["access", 112, ".so", 12, 10], + ["store_field", 109, 112, "Linux", 12, 10], + ["move", 4, 109, 12, 10], [ "access", - 115, + 114, { "name": "os", "kind": "name", @@ -6774,28 +6928,28 @@ 15, 23 ], - ["is_proxy", 116, 115, 15, 23], - ["jump_false", 116, "record_path_531", 15, 23], - ["null", 117, 15, 23], - ["access", 118, "platform", 15, 23], - ["array", 119, 0, 15, 23], - ["frame", 120, 115, 2, 15, 23], - ["setarg", 120, 0, 117, 15, 23], - ["setarg", 120, 1, 118, 15, 23], - ["setarg", 120, 2, 119, 15, 23], - ["invoke", 120, 114, 15, 23], - ["jump", "call_done_532", 15, 23], - "record_path_531", - ["load_field", 121, 115, "platform", 15, 23], - ["frame", 122, 121, 0, 15, 23], - ["setarg", 122, 0, 115, 15, 23], - ["invoke", 122, 114, 15, 23], - "call_done_532", - ["load_dynamic", 123, 4, 114, 15, 23], + ["is_proxy", 115, 114, 15, 23], + ["jump_false", 115, "record_path_541", 15, 23], + ["null", 116, 15, 23], + ["access", 117, "platform", 15, 23], + ["array", 118, 0, 15, 23], + ["frame", 119, 114, 2, 15, 23], + ["setarg", 119, 0, 116, 15, 23], + ["setarg", 119, 1, 117, 15, 23], + ["setarg", 119, 2, 118, 15, 23], + ["invoke", 119, 113, 15, 23], + ["jump", "call_done_542", 15, 23], + "record_path_541", + ["load_field", 120, 114, "platform", 15, 23], + ["frame", 121, 120, 0, 15, 23], + ["setarg", 121, 0, 114, 15, 23], + ["invoke", 121, 113, 15, 23], + "call_done_542", + ["load_dynamic", 122, 4, 113, 15, 23], ["access", 44, ".cm", 17, 15], [ "access", - 124, + 123, { "name": "os", "kind": "name", @@ -6804,25 +6958,25 @@ 20, 21 ], - ["load_field", 125, 124, "load_internal", 20, 21], - ["move", 59, 125, 20, 21], - ["access", 126, "fd", 49, 20], - ["frame", 128, 17, 1, 49, 10], - ["null", 129, 49, 10], - ["setarg", 128, 0, 129, 49, 10], - ["setarg", 128, 1, 126, 49, 10], - ["invoke", 128, 127, 49, 10], - ["move", 20, 127, 49, 10], - ["access", 130, "js", 50, 20], - ["frame", 132, 17, 1, 50, 10], - ["null", 133, 50, 10], - ["setarg", 132, 0, 133, 50, 10], - ["setarg", 132, 1, 130, 50, 10], - ["invoke", 132, 131, 50, 10], - ["move", 74, 131, 50, 10], + ["load_field", 124, 123, "load_internal", 20, 21], + ["move", 59, 124, 20, 21], + ["access", 125, "fd", 49, 20], + ["frame", 127, 17, 1, 49, 10], + ["null", 128, 49, 10], + ["setarg", 127, 0, 128, 49, 10], + ["setarg", 127, 1, 125, 49, 10], + ["invoke", 127, 126, 49, 10], + ["move", 20, 126, 49, 10], + ["access", 129, "js", 50, 20], + ["frame", 131, 17, 1, 50, 10], + ["null", 132, 50, 10], + ["setarg", 131, 0, 132, 50, 10], + ["setarg", 131, 1, 129, 50, 10], + ["invoke", 131, 130, 50, 10], + ["move", 74, 130, 50, 10], [ "access", - 134, + 133, { "name": "shop_path", "kind": "name", @@ -6831,10 +6985,10 @@ 54, 21 ], - ["jump_false", 134, "tern_else_533", 54, 21], + ["jump_false", 133, "tern_else_543", 54, 21], [ "access", - 136, + 135, { "name": "shop_path", "kind": "name", @@ -6843,178 +6997,198 @@ 54, 33 ], - ["access", 137, "/packages", 54, 45], - ["is_int", 139, 136, 54, 45], - ["jump_false", 139, "add_ni_535", 54, 45], + ["access", 136, "/packages", 54, 45], + ["is_int", 138, 135, 54, 45], + ["jump_false", 138, "add_ni_545", 54, 45], "_nop_tc_1", - ["jump", "add_ni_535", 54, 45], - ["add_int", 138, 136, 137, 54, 45], - ["jump", "add_done_537", 54, 45], - "add_ni_535", - ["is_text", 139, 136, 54, 45], - ["jump_false", 139, "add_nt_536", 54, 45], - ["concat", 138, 136, 137, 54, 45], - ["jump", "add_done_537", 54, 45], - "add_nt_536", + ["jump", "add_ni_545", 54, 45], + ["add_int", 137, 135, 136, 54, 45], + ["jump", "add_done_547", 54, 45], + "add_ni_545", + ["is_text", 138, 135, 54, 45], + ["jump_false", 138, "add_nt_546", 54, 45], + ["concat", 137, 135, 136, 54, 45], + ["jump", "add_done_547", 54, 45], + "add_nt_546", + ["is_num", 138, 135, 54, 45], + ["jump_false", 138, "add_err_548", 54, 45], ["is_num", 139, 136, 54, 45], - ["jump_false", 139, "add_err_538", 54, 45], - ["is_num", 140, 137, 54, 45], - ["jump_false", 140, "add_err_538", 54, 45], - ["add_float", 138, 136, 137, 54, 45], - ["jump", "add_done_537", 54, 45], - "add_err_538", + ["jump_false", 139, "add_err_548", 54, 45], + ["add_float", 137, 135, 136, 54, 45], + ["jump", "add_done_547", 54, 45], + "add_err_548", ["disrupt", 54, 45], - "add_done_537", - ["move", 135, 138, 54, 45], - ["jump", "tern_end_534", 54, 45], - "tern_else_533", - ["null", 141, 54, 59], - ["move", 135, 141, 54, 59], - "tern_end_534", - ["record", 142, 0], - ["move", 67, 142, 56, 17], + "add_done_547", + ["move", 134, 137, 54, 45], + ["jump", "tern_end_544", 54, 45], + "tern_else_543", + ["null", 140, 54, 59], + ["move", 134, 140, 54, 59], + "tern_end_544", [ "access", - 143, + 141, { "name": "os", "kind": "name", "make": "intrinsic" }, - 57, + 56, 24 ], - ["access", 144, "core/os", 57, 11], - ["store_field", 67, 143, 144, 57, 11], - ["record", 145, 0], - ["move", 58, 145, 60, 19], - ["access", 146, "fd", 111, 15], - ["frame", 148, 32, 1, 111, 6], - ["null", 149, 111, 6], - ["setarg", 148, 0, 149, 111, 6], - ["setarg", 148, 1, 146, 111, 6], - ["invoke", 148, 147, 111, 6], - ["move", 20, 147, 111, 6], - ["access", 150, "js", 112, 10], - ["frame", 152, 32, 1, 112, 1], - ["null", 153, 112, 1], - ["setarg", 152, 0, 153, 112, 1], - ["setarg", 152, 1, 150, 112, 1], - ["invoke", 152, 151, 112, 1], - ["access", 154, "blob", 113, 21], - ["frame", 156, 32, 1, 113, 12], - ["null", 157, 113, 12], - ["setarg", 156, 0, 157, 113, 12], - ["setarg", 156, 1, 154, 113, 12], - ["invoke", 156, 155, 113, 12], - ["move", 62, 155, 113, 12], - ["access", 158, "actor", 119, 26], - ["frame", 160, 32, 1, 119, 17], - ["null", 161, 119, 17], - ["setarg", 160, 0, 161, 119, 17], - ["setarg", 160, 1, 158, 119, 17], - ["invoke", 160, 159, 119, 17], - ["move", 30, 159, 119, 17], - ["access", 162, "wota", 120, 21], - ["frame", 164, 32, 1, 120, 12], - ["null", 165, 120, 12], - ["setarg", 164, 0, 165, 120, 12], - ["setarg", 164, 1, 162, 120, 12], - ["invoke", 164, 163, 120, 12], - ["move", 7, 163, 120, 12], - ["access", 166, "nota", 121, 21], - ["frame", 168, 32, 1, 121, 12], - ["null", 169, 121, 12], - ["setarg", 168, 0, 169, 121, 12], - ["setarg", 168, 1, 166, 121, 12], - ["invoke", 168, 167, 121, 12], - ["move", 49, 167, 121, 12], - ["access", 60, 0.1, 127, 19], - ["access", 35, 60, 128, 20], [ "access", - 170, + 142, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 56, + 1 + ], + ["access", 143, "core/os", 56, 11], + ["store_field", 142, 141, 143, 56, 11], + ["record", 144, 0], + ["move", 58, 144, 59, 19], + ["access", 145, "fd", 117, 15], + ["frame", 147, 32, 1, 117, 6], + ["null", 148, 117, 6], + ["setarg", 147, 0, 148, 117, 6], + ["setarg", 147, 1, 145, 117, 6], + ["invoke", 147, 146, 117, 6], + ["move", 20, 146, 117, 6], + ["access", 149, "js", 118, 10], + ["frame", 151, 32, 1, 118, 1], + ["null", 152, 118, 1], + ["setarg", 151, 0, 152, 118, 1], + ["setarg", 151, 1, 149, 118, 1], + ["invoke", 151, 150, 118, 1], + ["access", 153, "blob", 119, 21], + ["frame", 155, 32, 1, 119, 12], + ["null", 156, 119, 12], + ["setarg", 155, 0, 156, 119, 12], + ["setarg", 155, 1, 153, 119, 12], + ["invoke", 155, 154, 119, 12], + ["move", 62, 154, 119, 12], + ["access", 157, "actor", 125, 26], + ["frame", 159, 32, 1, 125, 17], + ["null", 160, 125, 17], + ["setarg", 159, 0, 160, 125, 17], + ["setarg", 159, 1, 157, 125, 17], + ["invoke", 159, 158, 125, 17], + ["move", 30, 158, 125, 17], + ["access", 161, "wota", 126, 21], + ["frame", 163, 32, 1, 126, 12], + ["null", 164, 126, 12], + ["setarg", 163, 0, 164, 126, 12], + ["setarg", 163, 1, 161, 126, 12], + ["invoke", 163, 162, 126, 12], + ["move", 7, 162, 126, 12], + ["access", 165, "nota", 127, 21], + ["frame", 167, 32, 1, 127, 12], + ["null", 168, 127, 12], + ["setarg", 167, 0, 168, 127, 12], + ["setarg", 167, 1, 165, 127, 12], + ["invoke", 167, 166, 127, 12], + ["move", 49, 166, 127, 12], + ["access", 60, 0.1, 133, 19], + ["access", 35, 60, 134, 20], + [ + "access", + 169, { "name": "init", "kind": "name", "make": "intrinsic" }, - 199, + 205, 14 ], - ["null", 171, 199, 22], - ["is_identical", 172, 170, 171, 199, 22], - ["jump_true", 172, "ne_nid_542", 199, 22], - ["jump", "ne_ni_543", 199, 22], - "ne_nid_542", - ["false", 172, 199, 22], - ["jump", "ne_done_541", 199, 22], - "ne_ni_543", - ["is_int", 173, 170, 199, 22], - ["jump_false", 173, "ne_nn_544", 199, 22], - ["is_int", 174, 171, 199, 22], - ["jump_false", 174, "ne_nn_544", 199, 22], - ["ne_int", 172, 170, 171, 199, 22], - ["jump", "ne_done_541", 199, 22], - "ne_nn_544", - ["is_num", 173, 170, 199, 22], - ["jump_false", 173, "ne_nt_545", 199, 22], - ["is_num", 174, 171, 199, 22], - ["jump_false", 174, "ne_nt_545", 199, 22], - ["ne_float", 172, 170, 171, 199, 22], - ["jump", "ne_done_541", 199, 22], - "ne_nt_545", - ["is_text", 173, 170, 199, 22], - ["jump_false", 173, "ne_nnl_546", 199, 22], - ["is_text", 174, 171, 199, 22], - ["jump_false", 174, "ne_nnl_546", 199, 22], - ["ne_text", 172, 170, 171, 199, 22], - ["jump", "ne_done_541", 199, 22], - "ne_nnl_546", - ["is_null", 173, 170, 199, 22], - ["jump_false", 173, "ne_nb_547", 199, 22], - ["is_null", 174, 171, 199, 22], - ["jump_false", 174, "ne_nb_547", 199, 22], - ["false", 172, 199, 22], - ["jump", "ne_done_541", 199, 22], - "ne_nb_547", - ["is_bool", 173, 170, 199, 22], - ["jump_false", 173, "ne_mis_548", 199, 22], - ["is_bool", 174, 171, 199, 22], - ["jump_false", 174, "ne_mis_548", 199, 22], - ["ne_bool", 172, 170, 171, 199, 22], - ["jump", "ne_done_541", 199, 22], - "ne_mis_548", - ["true", 172, 199, 22], - "ne_done_541", - ["jump_false", 172, "tern_else_539", 199, 22], + ["null", 170, 205, 22], + ["is_identical", 171, 169, 170, 205, 22], + ["jump_true", 171, "ne_nid_552", 205, 22], + ["jump", "ne_ni_553", 205, 22], + "ne_nid_552", + ["false", 171, 205, 22], + ["jump", "ne_done_551", 205, 22], + "ne_ni_553", + ["is_int", 172, 169, 205, 22], + ["jump_false", 172, "ne_nn_554", 205, 22], + ["is_int", 173, 170, 205, 22], + ["jump_false", 173, "ne_nn_554", 205, 22], + ["ne_int", 171, 169, 170, 205, 22], + ["jump", "ne_done_551", 205, 22], + "ne_nn_554", + ["is_num", 172, 169, 205, 22], + ["jump_false", 172, "ne_nt_555", 205, 22], + ["is_num", 173, 170, 205, 22], + ["jump_false", 173, "ne_nt_555", 205, 22], + ["ne_float", 171, 169, 170, 205, 22], + ["jump", "ne_done_551", 205, 22], + "ne_nt_555", + ["is_text", 172, 169, 205, 22], + ["jump_false", 172, "ne_nnl_556", 205, 22], + ["is_text", 173, 170, 205, 22], + ["jump_false", 173, "ne_nnl_556", 205, 22], + ["ne_text", 171, 169, 170, 205, 22], + ["jump", "ne_done_551", 205, 22], + "ne_nnl_556", + ["is_null", 172, 169, 205, 22], + ["jump_false", 172, "ne_nb_557", 205, 22], + ["is_null", 173, 170, 205, 22], + ["jump_false", 173, "ne_nb_557", 205, 22], + ["false", 171, 205, 22], + ["jump", "ne_done_551", 205, 22], + "ne_nb_557", + ["is_bool", 172, 169, 205, 22], + ["jump_false", 172, "ne_mis_558", 205, 22], + ["is_bool", 173, 170, 205, 22], + ["jump_false", 173, "ne_mis_558", 205, 22], + ["ne_bool", 171, 169, 170, 205, 22], + ["jump", "ne_done_551", 205, 22], + "ne_mis_558", + ["true", 171, 205, 22], + "ne_done_551", + ["jump_false", 171, "tern_else_549", 205, 22], [ "access", - 176, + 175, { "name": "init", "kind": "name", "make": "intrinsic" }, - 199, + 205, 29 ], - ["move", 175, 176, 199, 29], - ["jump", "tern_end_540", 199, 29], - "tern_else_539", - ["record", 177, 0], - ["move", 175, 177, 199, 36], - "tern_end_540", - ["store_field", 11, 175, "args", 199, 1], - ["access", 178, "newguy", 200, 12], - ["store_field", 11, 178, "id", 200, 1], - ["record", 179, 0], - ["move", 2, 179, 209, 10], - ["frame", 181, 72, 0, 210, 11], - ["null", 182, 210, 11], - ["setarg", 181, 0, 182, 210, 11], - ["invoke", 181, 180, 210, 11], - ["store_field", 2, 180, "self", 210, 1], + ["move", 174, 175, 205, 29], + ["jump", "tern_end_550", 205, 29], + "tern_else_549", + ["record", 176, 0], + ["move", 174, 176, 205, 36], + "tern_end_550", + ["store_field", 11, 174, "args", 205, 1], + ["access", 177, "newguy", 206, 12], + ["store_field", 11, 177, "id", 206, 1], + ["record", 178, 0], + ["move", 2, 178, 215, 10], + ["frame", 180, 72, 0, 216, 11], + ["null", 181, 216, 11], + ["setarg", 180, 0, 181, 216, 11], + ["invoke", 180, 179, 216, 11], + ["store_field", 2, 179, "self", 216, 1], + [ + "access", + 182, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 218, + 16 + ], [ "access", 183, @@ -7023,10 +7197,10 @@ "kind": "name", "make": "intrinsic" }, - 212, + 218, 1 ], - ["store_field", 183, 67, "use_cache", 212, 1], + ["store_field", 183, 182, "use_cache", 218, 1], [ "access", 184, @@ -7035,7 +7209,7 @@ "kind": "name", "make": "intrinsic" }, - 213, + 219, 23 ], [ @@ -7046,10 +7220,10 @@ "kind": "name", "make": "intrinsic" }, - 213, + 219, 1 ], - ["store_field", 185, 184, "global_shop_path", 213, 1], + ["store_field", 185, 184, "global_shop_path", 219, 1], [ "access", 186, @@ -7058,10 +7232,10 @@ "kind": "name", "make": "intrinsic" }, - 214, + 220, 1 ], - ["store_field", 186, 2, "$_", 214, 1], + ["store_field", 186, 2, "$_", 220, 1], [ "access", 187, @@ -7070,7 +7244,7 @@ "kind": "name", "make": "intrinsic" }, - 215, + 221, 14 ], [ @@ -7081,10 +7255,10 @@ "kind": "name", "make": "intrinsic" }, - 215, + 221, 1 ], - ["store_field", 188, 187, "analyze", 215, 1], + ["store_field", 188, 187, "analyze", 221, 1], [ "access", 189, @@ -7093,7 +7267,7 @@ "kind": "name", "make": "intrinsic" }, - 216, + 222, 17 ], [ @@ -7104,10 +7278,10 @@ "kind": "name", "make": "intrinsic" }, - 216, + 222, 1 ], - ["store_field", 190, 189, "run_ast_fn", 216, 1], + ["store_field", 190, 189, "run_ast_fn", 222, 1], [ "access", 191, @@ -7116,7 +7290,7 @@ "kind": "name", "make": "intrinsic" }, - 217, + 223, 23 ], [ @@ -7127,10 +7301,10 @@ "kind": "name", "make": "intrinsic" }, - 217, + 223, 1 ], - ["store_field", 192, 191, "run_ast_noopt_fn", 217, 1], + ["store_field", 192, 191, "run_ast_noopt_fn", 223, 1], [ "access", 193, @@ -7139,7 +7313,7 @@ "kind": "name", "make": "intrinsic" }, - 218, + 224, 11 ], [ @@ -7150,10 +7324,10 @@ "kind": "name", "make": "intrinsic" }, - 218, + 224, 1 ], - ["store_field", 194, 193, "json", 218, 1], + ["store_field", 194, 193, "json", 224, 1], [ "access", 195, @@ -7162,464 +7336,475 @@ "kind": "name", "make": "intrinsic" }, - 219, + 225, 26 ], - ["access", 196, "core/json", 219, 11], - ["store_field", 67, 195, 196, 219, 11], - ["access", 197, "internal/shop", 221, 21], - ["frame", 199, 32, 1, 221, 12], - ["null", 200, 221, 12], - ["setarg", 199, 0, 200, 221, 12], - ["setarg", 199, 1, 197, 221, 12], - ["invoke", 199, 198, 221, 12], - ["move", 50, 198, 221, 12], - ["access", 201, "time", 222, 21], - ["frame", 203, 32, 1, 222, 12], - ["null", 204, 222, 12], - ["setarg", 203, 0, 204, 222, 12], - ["setarg", 203, 1, 201, 222, 12], - ["invoke", 203, 202, 222, 12], - ["move", 3, 202, 222, 12], - ["access", 205, "pronto", 224, 23], - ["frame", 207, 32, 1, 224, 14], - ["null", 208, 224, 14], - ["setarg", 207, 0, 208, 224, 14], - ["setarg", 207, 1, 205, 224, 14], - ["invoke", 207, 206, 224, 14], - ["move", 21, 206, 224, 14], - ["load_field", 209, 21, "fallback", 225, 16], - ["move", 54, 209, 225, 16], - ["load_field", 210, 21, "parallel", 226, 16], - ["move", 56, 210, 226, 16], - ["load_field", 211, 21, "race", 227, 12], - ["move", 1, 211, 227, 12], - ["load_field", 212, 21, "sequence", 228, 16], - ["move", 19, 212, 228, 16], - ["record", 213, 0], - ["store_field", 213, 10, "logical", 232, 12], - ["store_field", 213, 9, "some", 233, 9], - ["store_field", 213, 47, "every", 234, 10], - ["store_field", 213, 52, "starts_with", 235, 16], - ["store_field", 213, 40, "ends_with", 236, 14], - ["store_field", 213, 38, "actor", 237, 10], - ["store_field", 213, 5, "is_actor", 238, 13], - ["store_field", 213, 63, "log", 239, 8], - ["store_field", 213, 71, "send", 240, 9], - ["store_field", 213, 54, "fallback", 241, 13], - ["store_field", 213, 56, "parallel", 242, 13], - ["store_field", 213, 1, "race", 243, 9], - ["store_field", 213, 19, "sequence", 244, 13], - ["move", 42, 213, 244, 13], [ "access", - 215, + 196, + { + "name": "use_cache", + "kind": "name", + "make": "intrinsic" + }, + 225, + 1 + ], + ["access", 197, "core/json", 225, 11], + ["store_field", 196, 195, 197, 225, 11], + ["access", 198, "internal/shop", 227, 21], + ["frame", 200, 32, 1, 227, 12], + ["null", 201, 227, 12], + ["setarg", 200, 0, 201, 227, 12], + ["setarg", 200, 1, 198, 227, 12], + ["invoke", 200, 199, 227, 12], + ["move", 50, 199, 227, 12], + ["access", 202, "time", 228, 21], + ["frame", 204, 32, 1, 228, 12], + ["null", 205, 228, 12], + ["setarg", 204, 0, 205, 228, 12], + ["setarg", 204, 1, 202, 228, 12], + ["invoke", 204, 203, 228, 12], + ["move", 3, 203, 228, 12], + ["access", 206, "pronto", 230, 23], + ["frame", 208, 32, 1, 230, 14], + ["null", 209, 230, 14], + ["setarg", 208, 0, 209, 230, 14], + ["setarg", 208, 1, 206, 230, 14], + ["invoke", 208, 207, 230, 14], + ["move", 21, 207, 230, 14], + ["load_field", 210, 21, "fallback", 231, 16], + ["move", 54, 210, 231, 16], + ["load_field", 211, 21, "parallel", 232, 16], + ["move", 56, 211, 232, 16], + ["load_field", 212, 21, "race", 233, 12], + ["move", 1, 212, 233, 12], + ["load_field", 213, 21, "sequence", 234, 16], + ["move", 19, 213, 234, 16], + ["record", 214, 0], + ["store_field", 214, 10, "logical", 238, 12], + ["store_field", 214, 9, "some", 239, 9], + ["store_field", 214, 47, "every", 240, 10], + ["store_field", 214, 52, "starts_with", 241, 16], + ["store_field", 214, 40, "ends_with", 242, 14], + ["store_field", 214, 38, "actor", 243, 10], + ["store_field", 214, 5, "is_actor", 244, 13], + ["store_field", 214, 63, "log", 245, 8], + ["store_field", 214, 71, "send", 246, 9], + ["store_field", 214, 54, "fallback", 247, 13], + ["store_field", 214, 56, "parallel", 248, 13], + ["store_field", 214, 1, "race", 249, 9], + ["store_field", 214, 19, "sequence", 250, 13], + ["move", 42, 214, 250, 13], + [ + "access", + 216, { "name": "array", "kind": "name", "make": "intrinsic" }, - 248, + 254, 8 ], - ["frame", 216, 215, 1, 248, 8], - ["null", 217, 248, 8], - ["setarg", 216, 0, 217, 248, 8], - ["setarg", 216, 1, 42, 248, 8], - ["invoke", 216, 214, 248, 8], - ["function", 218, 38, 248, 28], - ["length", 220, 214, 248, 28], - ["int", 221, 0, 248, 28], - ["int", 225, 1, 248, 28], - ["null", 224, 248, 28], - "arrfor_loop_549", - ["lt_int", 222, 221, 220, 248, 28], - ["jump_false", 222, "arrfor_done_550", 248, 28], - ["load_index", 223, 214, 221, 248, 28], - ["frame", 226, 218, 2, 248, 28], - ["setarg", 226, 0, 224, 248, 28], - ["setarg", 226, 1, 223, 248, 28], - ["setarg", 226, 2, 221, 248, 28], - ["invoke", 226, 227, 248, 28], - ["add_int", 221, 221, 225, 248, 28], - ["jump", "arrfor_loop_549", 248, 28], - "arrfor_done_550", - ["null", 219, 248, 28], + ["frame", 217, 216, 1, 254, 8], + ["null", 218, 254, 8], + ["setarg", 217, 0, 218, 254, 8], + ["setarg", 217, 1, 42, 254, 8], + ["invoke", 217, 215, 254, 8], + ["function", 219, 38, 254, 28], + ["length", 221, 215, 254, 28], + ["int", 222, 0, 254, 28], + ["int", 226, 1, 254, 28], + ["null", 225, 254, 28], + "arrfor_loop_559", + ["lt_int", 223, 222, 221, 254, 28], + ["jump_false", 223, "arrfor_done_560", 254, 28], + ["load_index", 224, 215, 222, 254, 28], + ["frame", 227, 219, 2, 254, 28], + ["setarg", 227, 0, 225, 254, 28], + ["setarg", 227, 1, 224, 254, 28], + ["setarg", 227, 2, 222, 254, 28], + ["invoke", 227, 228, 254, 28], + ["add_int", 222, 222, 226, 254, 28], + ["jump", "arrfor_loop_559", 254, 28], + "arrfor_done_560", + ["null", 220, 254, 28], [ "access", - 228, + 229, { "name": "os", "kind": "name", "make": "intrinsic" }, - 251, + 257, 1 ], - ["store_field", 228, 42, "runtime_env", 251, 1], - ["function", 229, 42, 253, 17], - ["store_field", 2, 229, "time_limit", 253, 1], - ["record", 230, 0], - ["access", 231, 60, 321, 13], - ["store_field", 230, 231, "ar_timer", 321, 13], - ["access", 232, 0, 322, 16], - ["store_field", 230, 232, "actor_memory", 322, 16], - ["access", 233, 0.1, 323, 15], - ["store_field", 230, 233, "net_service", 323, 15], - ["access", 234, 60, 324, 17], - ["store_field", 230, 234, "reply_timeout", 324, 17], - ["true", 235, 325, 9], - ["store_field", 230, 235, "main", 325, 9], - ["move", 31, 230, 325, 9], - ["store_field", 11, 31, "config", 328, 1], - ["load_field", 236, 31, "net_service", 330, 15], - ["move", 60, 236, 330, 15], - ["load_field", 237, 31, "reply_timeout", 331, 16], - ["move", 35, 237, 331, 16], - ["record", 238, 0], - ["move", 41, 238, 366, 14], - ["function", 239, 44, 369, 12], - ["store_field", 2, 239, "clock", 369, 1], - ["record", 240, 0], - ["move", 12, 240, 376, 18], - ["null", 39, 377, 16], - ["null", 57, 378, 12], - ["null", 14, 380, 18], + ["store_field", 229, 42, "runtime_env", 257, 1], + ["function", 230, 42, 259, 17], + ["store_field", 2, 230, "time_limit", 259, 1], + ["record", 231, 0], + ["access", 232, 60, 327, 13], + ["store_field", 231, 232, "ar_timer", 327, 13], + ["access", 233, 0, 328, 16], + ["store_field", 231, 233, "actor_memory", 328, 16], + ["access", 234, 0.1, 329, 15], + ["store_field", 231, 234, "net_service", 329, 15], + ["access", 235, 60, 330, 17], + ["store_field", 231, 235, "reply_timeout", 330, 17], + ["true", 236, 331, 9], + ["store_field", 231, 236, "main", 331, 9], + ["move", 31, 231, 331, 9], + ["store_field", 11, 31, "config", 334, 1], + ["load_field", 237, 31, "net_service", 336, 15], + ["move", 60, 237, 336, 15], + ["load_field", 238, 31, "reply_timeout", 337, 16], + ["move", 35, 238, 337, 16], + ["record", 239, 0], + ["move", 41, 239, 372, 14], + ["function", 240, 44, 375, 12], + ["store_field", 2, 240, "clock", 375, 1], ["record", 241, 0], - ["move", 75, 241, 381, 16], - ["function", 242, 45, 407, 17], - ["store_field", 2, 242, "connection", 407, 1], - ["record", 243, 0], - ["move", 24, 243, 421, 13], + ["move", 12, 241, 382, 18], + ["null", 39, 383, 16], + ["null", 57, 384, 12], + ["null", 14, 386, 18], + ["record", 242, 0], + ["move", 75, 242, 387, 16], + ["function", 243, 45, 413, 17], + ["store_field", 2, 243, "connection", 413, 1], ["record", 244, 0], - ["move", 55, 244, 423, 18], - ["null", 23, 424, 14], - ["null", 36, 425, 17], - ["function", 245, 46, 428, 13], - ["store_field", 2, 245, "portal", 428, 1], - ["function", 246, 47, 485, 14], - ["store_field", 2, 246, "contact", 485, 1], - ["function", 247, 48, 490, 15], - ["store_field", 2, 247, "receiver", 490, 1], - ["function", 248, 49, 494, 12], - ["store_field", 2, 248, "start", 494, 1], - ["function", 249, 50, 509, 11], - ["store_field", 2, 249, "stop", 509, 1], - ["function", 250, 51, 527, 15], - ["store_field", 2, 250, "unneeded", 527, 1], - ["function", 251, 53, 532, 12], - ["store_field", 2, 251, "delay", 532, 1], - ["access", 252, "enet", 542, 21], - ["frame", 254, 32, 1, 542, 12], - ["null", 255, 542, 12], - ["setarg", 254, 0, 255, 542, 12], - ["setarg", 254, 1, 252, 542, 12], - ["invoke", 254, 253, 542, 12], - ["move", 22, 253, 542, 12], - ["record", 256, 0], - ["move", 26, 256, 545, 17], - ["function", 257, 54, 546, 13], - ["store_field", 2, 257, "couple", 546, 1], - ["array", 258, 0, 617, 21], - ["move", 43, 258, 617, 21], - ["record", 259, 0], - ["move", 64, 259, 639, 15], + ["move", 24, 244, 427, 13], + ["record", 245, 0], + ["move", 55, 245, 429, 18], + ["null", 23, 430, 14], + ["null", 36, 431, 17], + ["function", 246, 46, 434, 13], + ["store_field", 2, 246, "portal", 434, 1], + ["function", 247, 47, 491, 14], + ["store_field", 2, 247, "contact", 491, 1], + ["function", 248, 48, 496, 15], + ["store_field", 2, 248, "receiver", 496, 1], + ["function", 249, 49, 500, 12], + ["store_field", 2, 249, "start", 500, 1], + ["function", 250, 50, 515, 11], + ["store_field", 2, 250, "stop", 515, 1], + ["function", 251, 51, 533, 15], + ["store_field", 2, 251, "unneeded", 533, 1], + ["function", 252, 53, 538, 12], + ["store_field", 2, 252, "delay", 538, 1], + ["access", 253, "enet", 548, 21], + ["frame", 255, 32, 1, 548, 12], + ["null", 256, 548, 12], + ["setarg", 255, 0, 256, 548, 12], + ["setarg", 255, 1, 253, 548, 12], + ["invoke", 255, 254, 548, 12], + ["move", 22, 254, 548, 12], + ["record", 257, 0], + ["move", 26, 257, 551, 17], + ["function", 258, 54, 552, 13], + ["store_field", 2, 258, "couple", 552, 1], + ["array", 259, 0, 623, 21], + ["move", 43, 259, 623, 21], + ["record", 260, 0], + ["move", 64, 260, 645, 15], [ "access", - 261, + 262, { "name": "stone", "kind": "name", "make": "intrinsic" }, - 687, + 693, 1 ], - ["frame", 262, 261, 1, 687, 1], - ["null", 263, 687, 1], - ["setarg", 262, 0, 263, 687, 1], - ["setarg", 262, 1, 71, 687, 1], - ["invoke", 262, 260, 687, 1], - ["load_field", 264, 11, "args", 689, 6], - ["load_field", 265, 264, "id", 689, 6], + ["frame", 263, 262, 1, 693, 1], + ["null", 264, 693, 1], + ["setarg", 263, 0, 264, 693, 1], + ["setarg", 263, 1, 71, 693, 1], + ["invoke", 263, 261, 693, 1], + ["load_field", 265, 11, "args", 695, 6], + ["load_field", 266, 265, "id", 695, 6], "_nop_bl_1", - ["jump_true", 265, "if_else_632", 689, 6], - ["frame", 268, 6, 0, 689, 32], - ["null", 269, 689, 32], - ["setarg", 268, 0, 269, 689, 32], - ["invoke", 268, 267, 689, 32], - ["store_field", 11, 267, "id", 689, 21], - ["jump", "if_end_633", 689, 21], - "if_else_632", - ["load_field", 270, 11, "args", 690, 17], - ["load_field", 271, 270, "id", 690, 17], - ["store_field", 11, 271, "id", 690, 6], - "if_end_633", - ["load_field", 272, 11, "id", 692, 25], - ["load_field", 273, 2, "self", 692, 1], - ["load_dynamic", 274, 273, 27, 692, 9], - ["store_field", 274, 272, "id", 692, 9], - ["load_field", 275, 11, "id", 703, 26], - ["true", 276, 703, 42], - ["load_field", 277, 31, "ar_timer", 703, 48], - ["is_proxy", 279, 30, 703, 1], - ["jump_false", 279, "record_path_634", 703, 1], - ["null", 280, 703, 1], - ["access", 281, "register_actor", 703, 1], - ["array", 282, 0, 703, 1], - ["push", 282, 275, 703, 1], - ["push", 282, 8, 703, 1], - ["push", 282, 276, 703, 1], - ["push", 282, 277, 703, 1], - ["frame", 283, 30, 2, 703, 1], - ["setarg", 283, 0, 280, 703, 1], - ["setarg", 283, 1, 281, 703, 1], - ["setarg", 283, 2, 282, 703, 1], - ["invoke", 283, 278, 703, 1], - ["jump", "call_done_635", 703, 1], - "record_path_634", - ["load_field", 284, 30, "register_actor", 703, 1], - ["frame", 285, 284, 4, 703, 1], - ["setarg", 285, 0, 30, 703, 1], - ["setarg", 285, 1, 275, 703, 1], - ["setarg", 285, 2, 8, 703, 1], - ["setarg", 285, 3, 276, 703, 1], - ["setarg", 285, 4, 277, 703, 1], - ["invoke", 285, 278, 703, 1], - "call_done_635", - ["load_field", 286, 31, "actor_memory", 705, 5], - ["jump_false", 286, "if_else_636", 705, 5], - ["load_field", 287, 31, "actor_memory", 706, 16], - ["is_proxy", 289, 74, 706, 3], - ["jump_false", 289, "record_path_638", 706, 3], - ["null", 290, 706, 3], - ["access", 291, "mem_limit", 706, 3], - ["array", 292, 0, 706, 3], - ["push", 292, 287, 706, 3], - ["frame", 293, 74, 2, 706, 3], - ["setarg", 293, 0, 290, 706, 3], - ["setarg", 293, 1, 291, 706, 3], - ["setarg", 293, 2, 292, 706, 3], - ["invoke", 293, 288, 706, 3], - ["jump", "call_done_639", 706, 3], - "record_path_638", - ["load_field", 294, 74, "mem_limit", 706, 3], - ["frame", 295, 294, 1, 706, 3], - ["setarg", 295, 0, 74, 706, 3], - ["setarg", 295, 1, 287, 706, 3], - ["invoke", 295, 288, 706, 3], - "call_done_639", - ["jump", "if_end_637", 706, 3], - "if_else_636", - "if_end_637", - ["load_field", 296, 31, "stack_max", 708, 5], - ["jump_false", 296, "if_else_640", 708, 5], - ["load_field", 297, 31, "system", 709, 20], - ["load_field", 298, 297, "stack_max", 709, 20], - ["is_proxy", 300, 74, 709, 3], - ["jump_false", 300, "record_path_642", 709, 3], - ["null", 301, 709, 3], - ["access", 302, "max_stacksize", 709, 3], - ["array", 303, 0, 709, 3], - ["push", 303, 298, 709, 3], - ["frame", 304, 74, 2, 709, 3], - ["setarg", 304, 0, 301, 709, 3], - ["setarg", 304, 1, 302, 709, 3], - ["setarg", 304, 2, 303, 709, 3], - ["invoke", 304, 299, 709, 3], - ["jump", "call_done_643", 709, 3], - "record_path_642", - ["load_field", 305, 74, "max_stacksize", 709, 3], - ["frame", 306, 305, 1, 709, 3], - ["setarg", 306, 0, 74, 709, 3], - ["setarg", 306, 1, 298, 709, 3], - ["invoke", 306, 299, 709, 3], - "call_done_643", - ["jump", "if_end_641", 709, 3], - "if_else_640", - "if_end_641", - ["load_field", 307, 11, "args", 711, 12], - ["load_field", 308, 307, "overling", 711, 12], - ["move", 39, 308, 711, 12], - ["store_field", 2, 39, "overling", 712, 1], - ["load_field", 309, 11, "args", 714, 8], - ["load_field", 310, 309, "root", 714, 8], - ["move", 57, 310, 714, 8], - ["null", 311, 715, 13], - ["is_identical", 312, 57, 311, 715, 13], - ["jump_true", 312, "eq_done_646", 715, 13], - ["is_int", 313, 57, 715, 13], - ["jump_false", 313, "eq_ni_647", 715, 13], + ["jump_true", 266, "if_else_642", 695, 6], + ["frame", 269, 6, 0, 695, 32], + ["null", 270, 695, 32], + ["setarg", 269, 0, 270, 695, 32], + ["invoke", 269, 268, 695, 32], + ["store_field", 11, 268, "id", 695, 21], + ["jump", "if_end_643", 695, 21], + "if_else_642", + ["load_field", 271, 11, "args", 696, 17], + ["load_field", 272, 271, "id", 696, 17], + ["store_field", 11, 272, "id", 696, 6], + "if_end_643", + ["load_field", 273, 11, "id", 698, 25], + ["load_field", 274, 2, "self", 698, 1], + ["load_dynamic", 275, 274, 27, 698, 9], + ["store_field", 275, 273, "id", 698, 9], + ["load_field", 276, 11, "id", 709, 26], + ["true", 277, 709, 42], + ["load_field", 278, 31, "ar_timer", 709, 48], + ["is_proxy", 280, 30, 709, 1], + ["jump_false", 280, "record_path_644", 709, 1], + ["null", 281, 709, 1], + ["access", 282, "register_actor", 709, 1], + ["array", 283, 0, 709, 1], + ["push", 283, 276, 709, 1], + ["push", 283, 8, 709, 1], + ["push", 283, 277, 709, 1], + ["push", 283, 278, 709, 1], + ["frame", 284, 30, 2, 709, 1], + ["setarg", 284, 0, 281, 709, 1], + ["setarg", 284, 1, 282, 709, 1], + ["setarg", 284, 2, 283, 709, 1], + ["invoke", 284, 279, 709, 1], + ["jump", "call_done_645", 709, 1], + "record_path_644", + ["load_field", 285, 30, "register_actor", 709, 1], + ["frame", 286, 285, 4, 709, 1], + ["setarg", 286, 0, 30, 709, 1], + ["setarg", 286, 1, 276, 709, 1], + ["setarg", 286, 2, 8, 709, 1], + ["setarg", 286, 3, 277, 709, 1], + ["setarg", 286, 4, 278, 709, 1], + ["invoke", 286, 279, 709, 1], + "call_done_645", + ["load_field", 287, 31, "actor_memory", 711, 5], + ["jump_false", 287, "if_else_646", 711, 5], + ["load_field", 288, 31, "actor_memory", 712, 16], + ["is_proxy", 290, 74, 712, 3], + ["jump_false", 290, "record_path_648", 712, 3], + ["null", 291, 712, 3], + ["access", 292, "mem_limit", 712, 3], + ["array", 293, 0, 712, 3], + ["push", 293, 288, 712, 3], + ["frame", 294, 74, 2, 712, 3], + ["setarg", 294, 0, 291, 712, 3], + ["setarg", 294, 1, 292, 712, 3], + ["setarg", 294, 2, 293, 712, 3], + ["invoke", 294, 289, 712, 3], + ["jump", "call_done_649", 712, 3], + "record_path_648", + ["load_field", 295, 74, "mem_limit", 712, 3], + ["frame", 296, 295, 1, 712, 3], + ["setarg", 296, 0, 74, 712, 3], + ["setarg", 296, 1, 288, 712, 3], + ["invoke", 296, 289, 712, 3], + "call_done_649", + ["jump", "if_end_647", 712, 3], + "if_else_646", + "if_end_647", + ["load_field", 297, 31, "stack_max", 714, 5], + ["jump_false", 297, "if_else_650", 714, 5], + ["load_field", 298, 31, "system", 715, 20], + ["load_field", 299, 298, "stack_max", 715, 20], + ["is_proxy", 301, 74, 715, 3], + ["jump_false", 301, "record_path_652", 715, 3], + ["null", 302, 715, 3], + ["access", 303, "max_stacksize", 715, 3], + ["array", 304, 0, 715, 3], + ["push", 304, 299, 715, 3], + ["frame", 305, 74, 2, 715, 3], + ["setarg", 305, 0, 302, 715, 3], + ["setarg", 305, 1, 303, 715, 3], + ["setarg", 305, 2, 304, 715, 3], + ["invoke", 305, 300, 715, 3], + ["jump", "call_done_653", 715, 3], + "record_path_652", + ["load_field", 306, 74, "max_stacksize", 715, 3], + ["frame", 307, 306, 1, 715, 3], + ["setarg", 307, 0, 74, 715, 3], + ["setarg", 307, 1, 299, 715, 3], + ["invoke", 307, 300, 715, 3], + "call_done_653", + ["jump", "if_end_651", 715, 3], + "if_else_650", + "if_end_651", + ["load_field", 308, 11, "args", 717, 12], + ["load_field", 309, 308, "overling", 717, 12], + ["move", 39, 309, 717, 12], + ["store_field", 2, 39, "overling", 718, 1], + ["load_field", 310, 11, "args", 720, 8], + ["load_field", 311, 310, "root", 720, 8], + ["move", 57, 311, 720, 8], + ["null", 312, 721, 13], + ["is_identical", 313, 57, 312, 721, 13], + ["jump_true", 313, "eq_done_656", 721, 13], + ["is_int", 314, 57, 721, 13], + ["jump_false", 314, "eq_ni_657", 721, 13], "_nop_tc_2", - ["jump", "eq_ni_647", 715, 13], - ["eq_int", 312, 57, 311, 715, 13], - ["jump", "eq_done_646", 715, 13], - "eq_ni_647", - ["is_num", 313, 57, 715, 13], - ["jump_false", 313, "eq_nn_648", 715, 13], - ["is_num", 314, 311, 715, 13], - ["jump_false", 314, "eq_nn_648", 715, 13], - ["eq_float", 312, 57, 311, 715, 13], - ["jump", "eq_done_646", 715, 13], - "eq_nn_648", - ["is_text", 313, 57, 715, 13], - ["jump_false", 313, "eq_nt_649", 715, 13], - ["is_text", 314, 311, 715, 13], - ["jump_false", 314, "eq_nt_649", 715, 13], - ["eq_text", 312, 57, 311, 715, 13], - ["jump", "eq_done_646", 715, 13], - "eq_nt_649", - ["is_null", 313, 57, 715, 13], - ["jump_false", 313, "eq_nnl_650", 715, 13], - ["is_null", 314, 311, 715, 13], - ["jump_false", 314, "eq_nnl_650", 715, 13], - ["true", 312, 715, 13], - ["jump", "eq_done_646", 715, 13], - "eq_nnl_650", - ["is_bool", 313, 57, 715, 13], - ["jump_false", 313, "eq_nb_651", 715, 13], - ["is_bool", 314, 311, 715, 13], - ["jump_false", 314, "eq_nb_651", 715, 13], - ["eq_bool", 312, 57, 311, 715, 13], - ["jump", "eq_done_646", 715, 13], - "eq_nb_651", - ["false", 312, 715, 13], - "eq_done_646", - ["jump_false", 312, "if_else_644", 715, 13], - ["load_field", 315, 2, "self", 715, 26], - ["move", 57, 315, 715, 26], - ["jump", "if_end_645", 715, 26], - "if_else_644", - "if_end_645", - ["jump_false", 39, "if_else_652", 717, 5], - ["is_proxy", 317, 2, 718, 3], - ["jump_false", 317, "record_path_654", 718, 3], - ["null", 318, 718, 3], - ["access", 319, "couple", 718, 3], - ["array", 320, 0, 718, 3], - ["push", 320, 39, 718, 3], - ["frame", 321, 2, 2, 718, 3], - ["setarg", 321, 0, 318, 718, 3], - ["setarg", 321, 1, 319, 718, 3], - ["setarg", 321, 2, 320, 718, 3], - ["invoke", 321, 316, 718, 3], - ["jump", "call_done_655", 718, 3], - "record_path_654", - ["load_field", 322, 2, "couple", 718, 3], - ["frame", 323, 322, 1, 718, 3], - ["setarg", 323, 0, 2, 718, 3], - ["setarg", 323, 1, 39, 718, 3], - ["invoke", 323, 316, 718, 3], - "call_done_655", - ["record", 324, 0], - ["access", 325, "greet", 720, 28], - ["store_field", 324, 325, "type", 720, 28], - ["load_field", 326, 2, "self", 720, 44], - ["store_field", 324, 326, "actor", 720, 44], - ["frame", 328, 18, 1, 720, 3], - ["null", 329, 720, 3], - ["setarg", 328, 0, 329, 720, 3], - ["setarg", 328, 1, 324, 720, 3], - ["invoke", 328, 327, 720, 3], - ["jump", "if_end_653", 720, 3], - "if_else_652", - "if_end_653", - ["load_field", 330, 11, "args", 737, 15], - ["load_field", 331, 330, "program", 737, 15], - ["move", 69, 331, 737, 15], + ["jump", "eq_ni_657", 721, 13], + ["eq_int", 313, 57, 312, 721, 13], + ["jump", "eq_done_656", 721, 13], + "eq_ni_657", + ["is_num", 314, 57, 721, 13], + ["jump_false", 314, "eq_nn_658", 721, 13], + ["is_num", 315, 312, 721, 13], + ["jump_false", 315, "eq_nn_658", 721, 13], + ["eq_float", 313, 57, 312, 721, 13], + ["jump", "eq_done_656", 721, 13], + "eq_nn_658", + ["is_text", 314, 57, 721, 13], + ["jump_false", 314, "eq_nt_659", 721, 13], + ["is_text", 315, 312, 721, 13], + ["jump_false", 315, "eq_nt_659", 721, 13], + ["eq_text", 313, 57, 312, 721, 13], + ["jump", "eq_done_656", 721, 13], + "eq_nt_659", + ["is_null", 314, 57, 721, 13], + ["jump_false", 314, "eq_nnl_660", 721, 13], + ["is_null", 315, 312, 721, 13], + ["jump_false", 315, "eq_nnl_660", 721, 13], + ["true", 313, 721, 13], + ["jump", "eq_done_656", 721, 13], + "eq_nnl_660", + ["is_bool", 314, 57, 721, 13], + ["jump_false", 314, "eq_nb_661", 721, 13], + ["is_bool", 315, 312, 721, 13], + ["jump_false", 315, "eq_nb_661", 721, 13], + ["eq_bool", 313, 57, 312, 721, 13], + ["jump", "eq_done_656", 721, 13], + "eq_nb_661", + ["false", 313, 721, 13], + "eq_done_656", + ["jump_false", 313, "if_else_654", 721, 13], + ["load_field", 316, 2, "self", 721, 26], + ["move", 57, 316, 721, 26], + ["jump", "if_end_655", 721, 26], + "if_else_654", + "if_end_655", + ["jump_false", 39, "if_else_662", 723, 5], + ["is_proxy", 318, 2, 724, 3], + ["jump_false", 318, "record_path_664", 724, 3], + ["null", 319, 724, 3], + ["access", 320, "couple", 724, 3], + ["array", 321, 0, 724, 3], + ["push", 321, 39, 724, 3], + ["frame", 322, 2, 2, 724, 3], + ["setarg", 322, 0, 319, 724, 3], + ["setarg", 322, 1, 320, 724, 3], + ["setarg", 322, 2, 321, 724, 3], + ["invoke", 322, 317, 724, 3], + ["jump", "call_done_665", 724, 3], + "record_path_664", + ["load_field", 323, 2, "couple", 724, 3], + ["frame", 324, 323, 1, 724, 3], + ["setarg", 324, 0, 2, 724, 3], + ["setarg", 324, 1, 39, 724, 3], + ["invoke", 324, 317, 724, 3], + "call_done_665", + ["record", 325, 0], + ["access", 326, "greet", 726, 28], + ["store_field", 325, 326, "type", 726, 28], + ["load_field", 327, 2, "self", 726, 44], + ["store_field", 325, 327, "actor", 726, 44], + ["frame", 329, 18, 1, 726, 3], + ["null", 330, 726, 3], + ["setarg", 329, 0, 330, 726, 3], + ["setarg", 329, 1, 325, 726, 3], + ["invoke", 329, 328, 726, 3], + ["jump", "if_end_663", 726, 3], + "if_else_662", + "if_end_663", + ["load_field", 331, 11, "args", 743, 15], + ["load_field", 332, 331, "program", 743, 15], + ["move", 69, 332, 743, 15], "_nop_bl_2", - ["jump_true", 69, "if_else_656", 739, 6], - ["access", 333, "No program specified. Usage: cell [args...]", 740, 13], - ["is_proxy", 335, 63, 740, 3], - ["jump_false", 335, "record_path_658", 740, 3], - ["null", 336, 740, 3], - ["access", 337, "error", 740, 3], - ["array", 338, 0, 740, 3], - ["push", 338, 333, 740, 3], - ["frame", 339, 63, 2, 740, 3], - ["setarg", 339, 0, 336, 740, 3], - ["setarg", 339, 1, 337, 740, 3], - ["setarg", 339, 2, 338, 740, 3], - ["invoke", 339, 334, 740, 3], - ["jump", "call_done_659", 740, 3], - "record_path_658", - ["load_field", 340, 63, "error", 740, 3], - ["frame", 341, 340, 1, 740, 3], - ["setarg", 341, 0, 63, 740, 3], - ["setarg", 341, 1, 333, 740, 3], - ["invoke", 341, 334, 740, 3], - "call_done_659", - ["access", 342, 1, 741, 11], + ["jump_true", 69, "if_else_666", 745, 6], + ["access", 334, "No program specified. Usage: cell [args...]", 746, 13], + ["is_proxy", 336, 63, 746, 3], + ["jump_false", 336, "record_path_668", 746, 3], + ["null", 337, 746, 3], + ["access", 338, "error", 746, 3], + ["array", 339, 0, 746, 3], + ["push", 339, 334, 746, 3], + ["frame", 340, 63, 2, 746, 3], + ["setarg", 340, 0, 337, 746, 3], + ["setarg", 340, 1, 338, 746, 3], + ["setarg", 340, 2, 339, 746, 3], + ["invoke", 340, 335, 746, 3], + ["jump", "call_done_669", 746, 3], + "record_path_668", + ["load_field", 341, 63, "error", 746, 3], + ["frame", 342, 341, 1, 746, 3], + ["setarg", 342, 0, 63, 746, 3], + ["setarg", 342, 1, 334, 746, 3], + ["invoke", 342, 335, 746, 3], + "call_done_669", + ["access", 343, 1, 747, 11], [ "access", - 344, + 345, { "name": "os", "kind": "name", "make": "intrinsic" }, - 741, + 747, 3 ], - ["is_proxy", 345, 344, 741, 3], - ["jump_false", 345, "record_path_660", 741, 3], - ["null", 346, 741, 3], - ["access", 347, "exit", 741, 3], - ["array", 348, 0, 741, 3], - ["push", 348, 342, 741, 3], - ["frame", 349, 344, 2, 741, 3], - ["setarg", 349, 0, 346, 741, 3], - ["setarg", 349, 1, 347, 741, 3], - ["setarg", 349, 2, 348, 741, 3], - ["invoke", 349, 343, 741, 3], - ["jump", "call_done_661", 741, 3], - "record_path_660", - ["load_field", 350, 344, "exit", 741, 3], - ["frame", 351, 350, 1, 741, 3], - ["setarg", 351, 0, 344, 741, 3], - ["setarg", 351, 1, 342, 741, 3], - ["invoke", 351, 343, 741, 3], - "call_done_661", - ["jump", "if_end_657", 741, 3], - "if_else_656", - "if_end_657", - ["load_field", 352, 11, "args", 827, 19], - ["load_field", 353, 352, "program", 827, 19], - ["is_proxy", 355, 30, 827, 1], - ["jump_false", 355, "record_path_662", 827, 1], - ["null", 356, 827, 1], - ["access", 357, "setname", 827, 1], - ["array", 358, 0, 827, 1], - ["push", 358, 353, 827, 1], - ["frame", 359, 30, 2, 827, 1], - ["setarg", 359, 0, 356, 827, 1], - ["setarg", 359, 1, 357, 827, 1], - ["setarg", 359, 2, 358, 827, 1], - ["invoke", 359, 354, 827, 1], - ["jump", "call_done_663", 827, 1], - "record_path_662", - ["load_field", 360, 30, "setname", 827, 1], - ["frame", 361, 360, 1, 827, 1], - ["setarg", 361, 0, 30, 827, 1], - ["setarg", 361, 1, 353, 827, 1], - ["invoke", 361, 354, 827, 1], - "call_done_663", - ["load_field", 362, 11, "args", 829, 12], - ["load_field", 363, 362, "program", 829, 12], - ["move", 46, 363, 829, 12], - ["access", 364, ".cm", 830, 21], - ["frame", 366, 40, 2, 830, 5], - ["null", 367, 830, 5], - ["setarg", 366, 0, 367, 830, 5], - ["setarg", 366, 1, 46, 830, 5], - ["setarg", 366, 2, 364, 830, 5], - ["invoke", 366, 365, 830, 5], - ["jump_false", 365, "if_else_664", 830, 5], - ["array", 368, 0, 1, 1], - ["push", 368, 46, 1, 1], + ["is_proxy", 346, 345, 747, 3], + ["jump_false", 346, "record_path_670", 747, 3], + ["null", 347, 747, 3], + ["access", 348, "exit", 747, 3], + ["array", 349, 0, 747, 3], + ["push", 349, 343, 747, 3], + ["frame", 350, 345, 2, 747, 3], + ["setarg", 350, 0, 347, 747, 3], + ["setarg", 350, 1, 348, 747, 3], + ["setarg", 350, 2, 349, 747, 3], + ["invoke", 350, 344, 747, 3], + ["jump", "call_done_671", 747, 3], + "record_path_670", + ["load_field", 351, 345, "exit", 747, 3], + ["frame", 352, 351, 1, 747, 3], + ["setarg", 352, 0, 345, 747, 3], + ["setarg", 352, 1, 343, 747, 3], + ["invoke", 352, 344, 747, 3], + "call_done_671", + ["jump", "if_end_667", 747, 3], + "if_else_666", + "if_end_667", + ["load_field", 353, 11, "args", 833, 19], + ["load_field", 354, 353, "program", 833, 19], + ["is_proxy", 356, 30, 833, 1], + ["jump_false", 356, "record_path_672", 833, 1], + ["null", 357, 833, 1], + ["access", 358, "setname", 833, 1], + ["array", 359, 0, 833, 1], + ["push", 359, 354, 833, 1], + ["frame", 360, 30, 2, 833, 1], + ["setarg", 360, 0, 357, 833, 1], + ["setarg", 360, 1, 358, 833, 1], + ["setarg", 360, 2, 359, 833, 1], + ["invoke", 360, 355, 833, 1], + ["jump", "call_done_673", 833, 1], + "record_path_672", + ["load_field", 361, 30, "setname", 833, 1], + ["frame", 362, 361, 1, 833, 1], + ["setarg", 362, 0, 30, 833, 1], + ["setarg", 362, 1, 354, 833, 1], + ["invoke", 362, 355, 833, 1], + "call_done_673", + ["load_field", 363, 11, "args", 835, 12], + ["load_field", 364, 363, "program", 835, 12], + ["move", 46, 364, 835, 12], + ["access", 365, ".cm", 836, 21], + ["frame", 367, 40, 2, 836, 5], + ["null", 368, 836, 5], + ["setarg", 367, 0, 368, 836, 5], + ["setarg", 367, 1, 46, 836, 5], + ["setarg", 367, 2, 365, 836, 5], + ["invoke", 367, 366, 836, 5], + ["jump_false", 366, "if_else_674", 836, 5], + ["array", 369, 0, 1, 1], + ["push", 369, 46, 1, 1], [ "access", - 369, + 370, { "name": "format", "kind": "name", @@ -7628,387 +7813,387 @@ 1, 1 ], - ["access", 370, "error: {0} is a module (.cm), not a program (.ce)\n", 1, 1], - ["frame", 372, 369, 2, 1, 1], - ["null", 373, 1, 1], - ["setarg", 372, 0, 373, 1, 1], - ["setarg", 372, 1, 370, 1, 1], - ["setarg", 372, 2, 368, 1, 1], - ["invoke", 372, 371, 1, 1], + ["access", 371, "error: {0} is a module (.cm), not a program (.ce)\n", 1, 1], + ["frame", 373, 370, 2, 1, 1], + ["null", 374, 1, 1], + ["setarg", 373, 0, 374, 1, 1], + ["setarg", 373, 1, 371, 1, 1], + ["setarg", 373, 2, 369, 1, 1], + ["invoke", 373, 372, 1, 1], [ "access", - 375, + 376, { "name": "os", "kind": "name", "make": "intrinsic" }, - 831, + 837, 3 ], - ["is_proxy", 376, 375, 831, 3], - ["jump_false", 376, "record_path_666", 831, 3], - ["null", 377, 831, 3], - ["access", 378, "print", 831, 3], - ["array", 379, 0, 831, 3], - ["push", 379, 371, 831, 3], - ["frame", 380, 375, 2, 831, 3], - ["setarg", 380, 0, 377, 831, 3], - ["setarg", 380, 1, 378, 831, 3], - ["setarg", 380, 2, 379, 831, 3], - ["invoke", 380, 374, 831, 3], - ["jump", "call_done_667", 831, 3], - "record_path_666", - ["load_field", 381, 375, "print", 831, 3], - ["frame", 382, 381, 1, 831, 3], - ["setarg", 382, 0, 375, 831, 3], - ["setarg", 382, 1, 371, 831, 3], - ["invoke", 382, 374, 831, 3], - "call_done_667", - ["access", 383, 1, 832, 11], + ["is_proxy", 377, 376, 837, 3], + ["jump_false", 377, "record_path_676", 837, 3], + ["null", 378, 837, 3], + ["access", 379, "print", 837, 3], + ["array", 380, 0, 837, 3], + ["push", 380, 372, 837, 3], + ["frame", 381, 376, 2, 837, 3], + ["setarg", 381, 0, 378, 837, 3], + ["setarg", 381, 1, 379, 837, 3], + ["setarg", 381, 2, 380, 837, 3], + ["invoke", 381, 375, 837, 3], + ["jump", "call_done_677", 837, 3], + "record_path_676", + ["load_field", 382, 376, "print", 837, 3], + ["frame", 383, 382, 1, 837, 3], + ["setarg", 383, 0, 376, 837, 3], + ["setarg", 383, 1, 372, 837, 3], + ["invoke", 383, 375, 837, 3], + "call_done_677", + ["access", 384, 1, 838, 11], [ "access", - 385, + 386, { "name": "os", "kind": "name", "make": "intrinsic" }, - 832, + 838, 3 ], - ["is_proxy", 386, 385, 832, 3], - ["jump_false", 386, "record_path_668", 832, 3], - ["null", 387, 832, 3], - ["access", 388, "exit", 832, 3], - ["array", 389, 0, 832, 3], - ["push", 389, 383, 832, 3], - ["frame", 390, 385, 2, 832, 3], - ["setarg", 390, 0, 387, 832, 3], - ["setarg", 390, 1, 388, 832, 3], - ["setarg", 390, 2, 389, 832, 3], - ["invoke", 390, 384, 832, 3], - ["jump", "call_done_669", 832, 3], - "record_path_668", - ["load_field", 391, 385, "exit", 832, 3], - ["frame", 392, 391, 1, 832, 3], - ["setarg", 392, 0, 385, 832, 3], - ["setarg", 392, 1, 383, 832, 3], - ["invoke", 392, 384, 832, 3], - "call_done_669", - ["jump", "if_end_665", 832, 3], - "if_else_664", - "if_end_665", - ["access", 393, ".ce", 834, 21], - ["frame", 395, 40, 2, 834, 5], - ["null", 396, 834, 5], - ["setarg", 395, 0, 396, 834, 5], - ["setarg", 395, 1, 46, 834, 5], - ["setarg", 395, 2, 393, 834, 5], - ["invoke", 395, 394, 834, 5], - ["jump_false", 394, "if_else_670", 834, 5], - ["access", 397, 0, 834, 47], - ["access", 398, -3, 834, 50], + ["is_proxy", 387, 386, 838, 3], + ["jump_false", 387, "record_path_678", 838, 3], + ["null", 388, 838, 3], + ["access", 389, "exit", 838, 3], + ["array", 390, 0, 838, 3], + ["push", 390, 384, 838, 3], + ["frame", 391, 386, 2, 838, 3], + ["setarg", 391, 0, 388, 838, 3], + ["setarg", 391, 1, 389, 838, 3], + ["setarg", 391, 2, 390, 838, 3], + ["invoke", 391, 385, 838, 3], + ["jump", "call_done_679", 838, 3], + "record_path_678", + ["load_field", 392, 386, "exit", 838, 3], + ["frame", 393, 392, 1, 838, 3], + ["setarg", 393, 0, 386, 838, 3], + ["setarg", 393, 1, 384, 838, 3], + ["invoke", 393, 385, 838, 3], + "call_done_679", + ["jump", "if_end_675", 838, 3], + "if_else_674", + "if_end_675", + ["access", 394, ".ce", 840, 21], + ["frame", 396, 40, 2, 840, 5], + ["null", 397, 840, 5], + ["setarg", 396, 0, 397, 840, 5], + ["setarg", 396, 1, 46, 840, 5], + ["setarg", 396, 2, 394, 840, 5], + ["invoke", 396, 395, 840, 5], + ["jump_false", 395, "if_else_680", 840, 5], + ["access", 398, 0, 840, 47], + ["access", 399, -3, 840, 50], [ "access", - 400, + 401, { "name": "text", "kind": "name", "make": "intrinsic" }, - 834, + 840, 36 ], - ["frame", 401, 400, 3, 834, 36], - ["null", 402, 834, 36], - ["setarg", 401, 0, 402, 834, 36], - ["setarg", 401, 1, 46, 834, 36], - ["setarg", 401, 2, 397, 834, 36], - ["setarg", 401, 3, 398, 834, 36], - ["invoke", 401, 399, 834, 36], - ["move", 46, 399, 834, 36], - ["jump", "if_end_671", 834, 36], - "if_else_670", - "if_end_671", - ["access", 403, "package", 836, 24], - ["frame", 405, 32, 1, 836, 15], - ["null", 406, 836, 15], - ["setarg", 405, 0, 406, 836, 15], - ["setarg", 405, 1, 403, 836, 15], - ["invoke", 405, 404, 836, 15], - ["move", 29, 404, 836, 15], - ["access", 407, ".ce", 839, 24], - ["is_int", 409, 46, 839, 24], - ["jump_false", 409, "add_ni_672", 839, 24], + ["frame", 402, 401, 3, 840, 36], + ["null", 403, 840, 36], + ["setarg", 402, 0, 403, 840, 36], + ["setarg", 402, 1, 46, 840, 36], + ["setarg", 402, 2, 398, 840, 36], + ["setarg", 402, 3, 399, 840, 36], + ["invoke", 402, 400, 840, 36], + ["move", 46, 400, 840, 36], + ["jump", "if_end_681", 840, 36], + "if_else_680", + "if_end_681", + ["access", 404, "package", 842, 24], + ["frame", 406, 32, 1, 842, 15], + ["null", 407, 842, 15], + ["setarg", 406, 0, 407, 842, 15], + ["setarg", 406, 1, 404, 842, 15], + ["invoke", 406, 405, 842, 15], + ["move", 29, 405, 842, 15], + ["access", 408, ".ce", 845, 24], + ["is_int", 410, 46, 845, 24], + ["jump_false", 410, "add_ni_682", 845, 24], "_nop_tc_3", - ["jump", "add_ni_672", 839, 24], - ["add_int", 408, 46, 407, 839, 24], - ["jump", "add_done_674", 839, 24], - "add_ni_672", - ["is_text", 409, 46, 839, 24], - ["jump_false", 409, "add_nt_673", 839, 24], - ["concat", 408, 46, 407, 839, 24], - ["jump", "add_done_674", 839, 24], - "add_nt_673", - ["is_num", 409, 46, 839, 24], - ["jump_false", 409, "add_err_675", 839, 24], - ["is_num", 410, 407, 839, 24], - ["jump_false", 410, "add_err_675", 839, 24], - ["add_float", 408, 46, 407, 839, 24], - ["jump", "add_done_674", 839, 24], - "add_err_675", - ["disrupt", 839, 24], - "add_done_674", - ["move", 68, 408, 839, 24], - ["null", 76, 840, 15], - ["null", 77, 841, 16], - ["is_proxy", 412, 20, 842, 6], - ["jump_false", 412, "record_path_678", 842, 6], - ["null", 413, 842, 6], - ["access", 414, "is_file", 842, 6], - ["array", 415, 0, 842, 6], - ["push", 415, 68, 842, 6], - ["frame", 416, 20, 2, 842, 6], - ["setarg", 416, 0, 413, 842, 6], - ["setarg", 416, 1, 414, 842, 6], - ["setarg", 416, 2, 415, 842, 6], - ["invoke", 416, 411, 842, 6], - ["jump", "call_done_679", 842, 6], - "record_path_678", - ["load_field", 417, 20, "is_file", 842, 6], - ["frame", 418, 417, 1, 842, 6], - ["setarg", 418, 0, 20, 842, 6], - ["setarg", 418, 1, 68, 842, 6], - ["invoke", 418, 411, 842, 6], - "call_done_679", + ["jump", "add_ni_682", 845, 24], + ["add_int", 409, 46, 408, 845, 24], + ["jump", "add_done_684", 845, 24], + "add_ni_682", + ["is_text", 410, 46, 845, 24], + ["jump_false", 410, "add_nt_683", 845, 24], + ["concat", 409, 46, 408, 845, 24], + ["jump", "add_done_684", 845, 24], + "add_nt_683", + ["is_num", 410, 46, 845, 24], + ["jump_false", 410, "add_err_685", 845, 24], + ["is_num", 411, 408, 845, 24], + ["jump_false", 411, "add_err_685", 845, 24], + ["add_float", 409, 46, 408, 845, 24], + ["jump", "add_done_684", 845, 24], + "add_err_685", + ["disrupt", 845, 24], + "add_done_684", + ["move", 67, 409, 845, 24], + ["null", 68, 846, 15], + ["null", 76, 847, 16], + ["is_proxy", 413, 20, 848, 6], + ["jump_false", 413, "record_path_688", 848, 6], + ["null", 414, 848, 6], + ["access", 415, "is_file", 848, 6], + ["array", 416, 0, 848, 6], + ["push", 416, 67, 848, 6], + ["frame", 417, 20, 2, 848, 6], + ["setarg", 417, 0, 414, 848, 6], + ["setarg", 417, 1, 415, 848, 6], + ["setarg", 417, 2, 416, 848, 6], + ["invoke", 417, 412, 848, 6], + ["jump", "call_done_689", 848, 6], + "record_path_688", + ["load_field", 418, 20, "is_file", 848, 6], + ["frame", 419, 418, 1, 848, 6], + ["setarg", 419, 0, 20, 848, 6], + ["setarg", 419, 1, 67, 848, 6], + ["invoke", 419, 412, 848, 6], + "call_done_689", "_nop_bl_3", - ["jump_true", 411, "if_else_676", 842, 6], - ["is_proxy", 421, 29, 843, 13], - ["jump_false", 421, "record_path_680", 843, 13], - ["null", 422, 843, 13], - ["access", 423, "find_package_dir", 843, 13], - ["array", 424, 0, 843, 13], - ["push", 424, 68, 843, 13], - ["frame", 425, 29, 2, 843, 13], - ["setarg", 425, 0, 422, 843, 13], - ["setarg", 425, 1, 423, 843, 13], - ["setarg", 425, 2, 424, 843, 13], - ["invoke", 425, 420, 843, 13], - ["jump", "call_done_681", 843, 13], - "record_path_680", - ["load_field", 426, 29, "find_package_dir", 843, 13], - ["frame", 427, 426, 1, 843, 13], - ["setarg", 427, 0, 29, 843, 13], - ["setarg", 427, 1, 68, 843, 13], - ["invoke", 427, 420, 843, 13], - "call_done_681", - ["move", 76, 420, 843, 13], - ["jump_false", 76, "if_else_682", 844, 7], - ["access", 428, "/", 845, 27], - ["is_int", 430, 76, 845, 27], - ["jump_false", 430, "add_ni_684", 845, 27], + ["jump_true", 412, "if_else_686", 848, 6], + ["is_proxy", 422, 29, 849, 13], + ["jump_false", 422, "record_path_690", 849, 13], + ["null", 423, 849, 13], + ["access", 424, "find_package_dir", 849, 13], + ["array", 425, 0, 849, 13], + ["push", 425, 67, 849, 13], + ["frame", 426, 29, 2, 849, 13], + ["setarg", 426, 0, 423, 849, 13], + ["setarg", 426, 1, 424, 849, 13], + ["setarg", 426, 2, 425, 849, 13], + ["invoke", 426, 421, 849, 13], + ["jump", "call_done_691", 849, 13], + "record_path_690", + ["load_field", 427, 29, "find_package_dir", 849, 13], + ["frame", 428, 427, 1, 849, 13], + ["setarg", 428, 0, 29, 849, 13], + ["setarg", 428, 1, 67, 849, 13], + ["invoke", 428, 421, 849, 13], + "call_done_691", + ["move", 68, 421, 849, 13], + ["jump_false", 68, "if_else_692", 850, 7], + ["access", 429, "/", 851, 27], + ["is_int", 431, 68, 851, 27], + ["jump_false", 431, "add_ni_694", 851, 27], "_nop_tc_4", - ["jump", "add_ni_684", 845, 27], - ["add_int", 429, 76, 428, 845, 27], - ["jump", "add_done_686", 845, 27], - "add_ni_684", - ["is_text", 430, 76, 845, 27], - ["jump_false", 430, "add_nt_685", 845, 27], - ["concat", 429, 76, 428, 845, 27], - ["jump", "add_done_686", 845, 27], - "add_nt_685", - ["is_num", 430, 76, 845, 27], - ["jump_false", 430, "add_err_687", 845, 27], - ["is_num", 431, 428, 845, 27], - ["jump_false", 431, "add_err_687", 845, 27], - ["add_float", 429, 76, 428, 845, 27], - ["jump", "add_done_686", 845, 27], - "add_err_687", - ["disrupt", 845, 27], - "add_done_686", - ["is_int", 433, 429, 845, 33], - ["jump_false", 433, "add_ni_688", 845, 33], - ["is_int", 434, 46, 845, 33], - ["jump_false", 434, "add_ni_688", 845, 33], - ["add_int", 432, 429, 46, 845, 33], - ["jump", "add_done_690", 845, 33], - "add_ni_688", - ["is_text", 433, 429, 845, 33], - ["jump_false", 433, "add_nt_689", 845, 33], - ["is_text", 434, 46, 845, 33], - ["jump_false", 434, "add_nt_689", 845, 33], - ["concat", 432, 429, 46, 845, 33], - ["jump", "add_done_690", 845, 33], - "add_nt_689", - ["is_num", 433, 429, 845, 33], - ["jump_false", 433, "add_err_691", 845, 33], - ["is_num", 434, 46, 845, 33], - ["jump_false", 434, "add_err_691", 845, 33], - ["add_float", 432, 429, 46, 845, 33], - ["jump", "add_done_690", 845, 33], - "add_err_691", - ["disrupt", 845, 33], - "add_done_690", - ["access", 435, ".ce", 845, 40], - ["is_int", 437, 432, 845, 40], - ["jump_false", 437, "add_ni_692", 845, 40], + ["jump", "add_ni_694", 851, 27], + ["add_int", 430, 68, 429, 851, 27], + ["jump", "add_done_696", 851, 27], + "add_ni_694", + ["is_text", 431, 68, 851, 27], + ["jump_false", 431, "add_nt_695", 851, 27], + ["concat", 430, 68, 429, 851, 27], + ["jump", "add_done_696", 851, 27], + "add_nt_695", + ["is_num", 431, 68, 851, 27], + ["jump_false", 431, "add_err_697", 851, 27], + ["is_num", 432, 429, 851, 27], + ["jump_false", 432, "add_err_697", 851, 27], + ["add_float", 430, 68, 429, 851, 27], + ["jump", "add_done_696", 851, 27], + "add_err_697", + ["disrupt", 851, 27], + "add_done_696", + ["is_int", 434, 430, 851, 33], + ["jump_false", 434, "add_ni_698", 851, 33], + ["is_int", 435, 46, 851, 33], + ["jump_false", 435, "add_ni_698", 851, 33], + ["add_int", 433, 430, 46, 851, 33], + ["jump", "add_done_700", 851, 33], + "add_ni_698", + ["is_text", 434, 430, 851, 33], + ["jump_false", 434, "add_nt_699", 851, 33], + ["is_text", 435, 46, 851, 33], + ["jump_false", 435, "add_nt_699", 851, 33], + ["concat", 433, 430, 46, 851, 33], + ["jump", "add_done_700", 851, 33], + "add_nt_699", + ["is_num", 434, 430, 851, 33], + ["jump_false", 434, "add_err_701", 851, 33], + ["is_num", 435, 46, 851, 33], + ["jump_false", 435, "add_err_701", 851, 33], + ["add_float", 433, 430, 46, 851, 33], + ["jump", "add_done_700", 851, 33], + "add_err_701", + ["disrupt", 851, 33], + "add_done_700", + ["access", 436, ".ce", 851, 40], + ["is_int", 438, 433, 851, 40], + ["jump_false", 438, "add_ni_702", 851, 40], "_nop_tc_5", - ["jump", "add_ni_692", 845, 40], - ["add_int", 436, 432, 435, 845, 40], - ["jump", "add_done_694", 845, 40], - "add_ni_692", - ["is_text", 437, 432, 845, 40], - ["jump_false", 437, "add_nt_693", 845, 40], - ["concat", 436, 432, 435, 845, 40], - ["jump", "add_done_694", 845, 40], - "add_nt_693", - ["is_num", 437, 432, 845, 40], - ["jump_false", 437, "add_err_695", 845, 40], - ["is_num", 438, 435, 845, 40], - ["jump_false", 438, "add_err_695", 845, 40], - ["add_float", 436, 432, 435, 845, 40], - ["jump", "add_done_694", 845, 40], - "add_err_695", - ["disrupt", 845, 40], - "add_done_694", - ["move", 68, 436, 845, 40], - ["jump", "if_end_683", 845, 40], - "if_else_682", - "if_end_683", - ["jump", "if_end_677", 845, 40], - "if_else_676", - "if_end_677", - ["is_proxy", 440, 20, 847, 6], - ["jump_false", 440, "record_path_698", 847, 6], - ["null", 441, 847, 6], - ["access", 442, "is_file", 847, 6], - ["array", 443, 0, 847, 6], - ["push", 443, 68, 847, 6], - ["frame", 444, 20, 2, 847, 6], - ["setarg", 444, 0, 441, 847, 6], - ["setarg", 444, 1, 442, 847, 6], - ["setarg", 444, 2, 443, 847, 6], - ["invoke", 444, 439, 847, 6], - ["jump", "call_done_699", 847, 6], - "record_path_698", - ["load_field", 445, 20, "is_file", 847, 6], - ["frame", 446, 445, 1, 847, 6], - ["setarg", 446, 0, 20, 847, 6], - ["setarg", 446, 1, 68, 847, 6], - ["invoke", 446, 439, 847, 6], - "call_done_699", + ["jump", "add_ni_702", 851, 40], + ["add_int", 437, 433, 436, 851, 40], + ["jump", "add_done_704", 851, 40], + "add_ni_702", + ["is_text", 438, 433, 851, 40], + ["jump_false", 438, "add_nt_703", 851, 40], + ["concat", 437, 433, 436, 851, 40], + ["jump", "add_done_704", 851, 40], + "add_nt_703", + ["is_num", 438, 433, 851, 40], + ["jump_false", 438, "add_err_705", 851, 40], + ["is_num", 439, 436, 851, 40], + ["jump_false", 439, "add_err_705", 851, 40], + ["add_float", 437, 433, 436, 851, 40], + ["jump", "add_done_704", 851, 40], + "add_err_705", + ["disrupt", 851, 40], + "add_done_704", + ["move", 67, 437, 851, 40], + ["jump", "if_end_693", 851, 40], + "if_else_692", + "if_end_693", + ["jump", "if_end_687", 851, 40], + "if_else_686", + "if_end_687", + ["is_proxy", 441, 20, 853, 6], + ["jump_false", 441, "record_path_708", 853, 6], + ["null", 442, 853, 6], + ["access", 443, "is_file", 853, 6], + ["array", 444, 0, 853, 6], + ["push", 444, 67, 853, 6], + ["frame", 445, 20, 2, 853, 6], + ["setarg", 445, 0, 442, 853, 6], + ["setarg", 445, 1, 443, 853, 6], + ["setarg", 445, 2, 444, 853, 6], + ["invoke", 445, 440, 853, 6], + ["jump", "call_done_709", 853, 6], + "record_path_708", + ["load_field", 446, 20, "is_file", 853, 6], + ["frame", 447, 446, 1, 853, 6], + ["setarg", 447, 0, 20, 853, 6], + ["setarg", 447, 1, 67, 853, 6], + ["invoke", 447, 440, 853, 6], + "call_done_709", "_nop_bl_4", - ["jump_true", 439, "if_else_696", 847, 6], + ["jump_true", 440, "if_else_706", 853, 6], [ "access", - 448, + 449, { "name": "core_path", "kind": "name", "make": "intrinsic" }, - 849, + 855, 14 ], - ["move", 77, 448, 849, 14], - ["access", 449, "/", 850, 26], - ["is_int", 451, 77, 850, 26], - ["jump_false", 451, "add_ni_700", 850, 26], + ["move", 76, 449, 855, 14], + ["access", 450, "/", 856, 26], + ["is_int", 452, 76, 856, 26], + ["jump_false", 452, "add_ni_710", 856, 26], "_nop_tc_6", - ["jump", "add_ni_700", 850, 26], - ["add_int", 450, 77, 449, 850, 26], - ["jump", "add_done_702", 850, 26], - "add_ni_700", - ["is_text", 451, 77, 850, 26], - ["jump_false", 451, "add_nt_701", 850, 26], - ["concat", 450, 77, 449, 850, 26], - ["jump", "add_done_702", 850, 26], - "add_nt_701", - ["is_num", 451, 77, 850, 26], - ["jump_false", 451, "add_err_703", 850, 26], - ["is_num", 452, 449, 850, 26], - ["jump_false", 452, "add_err_703", 850, 26], - ["add_float", 450, 77, 449, 850, 26], - ["jump", "add_done_702", 850, 26], - "add_err_703", - ["disrupt", 850, 26], - "add_done_702", - ["is_int", 454, 450, 850, 32], - ["jump_false", 454, "add_ni_704", 850, 32], - ["is_int", 455, 46, 850, 32], - ["jump_false", 455, "add_ni_704", 850, 32], - ["add_int", 453, 450, 46, 850, 32], - ["jump", "add_done_706", 850, 32], - "add_ni_704", - ["is_text", 454, 450, 850, 32], - ["jump_false", 454, "add_nt_705", 850, 32], - ["is_text", 455, 46, 850, 32], - ["jump_false", 455, "add_nt_705", 850, 32], - ["concat", 453, 450, 46, 850, 32], - ["jump", "add_done_706", 850, 32], - "add_nt_705", - ["is_num", 454, 450, 850, 32], - ["jump_false", 454, "add_err_707", 850, 32], - ["is_num", 455, 46, 850, 32], - ["jump_false", 455, "add_err_707", 850, 32], - ["add_float", 453, 450, 46, 850, 32], - ["jump", "add_done_706", 850, 32], - "add_err_707", - ["disrupt", 850, 32], - "add_done_706", - ["access", 456, ".ce", 850, 39], - ["is_int", 458, 453, 850, 39], - ["jump_false", 458, "add_ni_708", 850, 39], + ["jump", "add_ni_710", 856, 26], + ["add_int", 451, 76, 450, 856, 26], + ["jump", "add_done_712", 856, 26], + "add_ni_710", + ["is_text", 452, 76, 856, 26], + ["jump_false", 452, "add_nt_711", 856, 26], + ["concat", 451, 76, 450, 856, 26], + ["jump", "add_done_712", 856, 26], + "add_nt_711", + ["is_num", 452, 76, 856, 26], + ["jump_false", 452, "add_err_713", 856, 26], + ["is_num", 453, 450, 856, 26], + ["jump_false", 453, "add_err_713", 856, 26], + ["add_float", 451, 76, 450, 856, 26], + ["jump", "add_done_712", 856, 26], + "add_err_713", + ["disrupt", 856, 26], + "add_done_712", + ["is_int", 455, 451, 856, 32], + ["jump_false", 455, "add_ni_714", 856, 32], + ["is_int", 456, 46, 856, 32], + ["jump_false", 456, "add_ni_714", 856, 32], + ["add_int", 454, 451, 46, 856, 32], + ["jump", "add_done_716", 856, 32], + "add_ni_714", + ["is_text", 455, 451, 856, 32], + ["jump_false", 455, "add_nt_715", 856, 32], + ["is_text", 456, 46, 856, 32], + ["jump_false", 456, "add_nt_715", 856, 32], + ["concat", 454, 451, 46, 856, 32], + ["jump", "add_done_716", 856, 32], + "add_nt_715", + ["is_num", 455, 451, 856, 32], + ["jump_false", 455, "add_err_717", 856, 32], + ["is_num", 456, 46, 856, 32], + ["jump_false", 456, "add_err_717", 856, 32], + ["add_float", 454, 451, 46, 856, 32], + ["jump", "add_done_716", 856, 32], + "add_err_717", + ["disrupt", 856, 32], + "add_done_716", + ["access", 457, ".ce", 856, 39], + ["is_int", 459, 454, 856, 39], + ["jump_false", 459, "add_ni_718", 856, 39], "_nop_tc_7", - ["jump", "add_ni_708", 850, 39], - ["add_int", 457, 453, 456, 850, 39], - ["jump", "add_done_710", 850, 39], - "add_ni_708", - ["is_text", 458, 453, 850, 39], - ["jump_false", 458, "add_nt_709", 850, 39], - ["concat", 457, 453, 456, 850, 39], - ["jump", "add_done_710", 850, 39], - "add_nt_709", - ["is_num", 458, 453, 850, 39], - ["jump_false", 458, "add_err_711", 850, 39], - ["is_num", 459, 456, 850, 39], - ["jump_false", 459, "add_err_711", 850, 39], - ["add_float", 457, 453, 456, 850, 39], - ["jump", "add_done_710", 850, 39], - "add_err_711", - ["disrupt", 850, 39], - "add_done_710", - ["move", 68, 457, 850, 39], - ["jump", "if_end_697", 850, 39], - "if_else_696", - "if_end_697", - ["is_proxy", 461, 20, 852, 6], - ["jump_false", 461, "record_path_714", 852, 6], - ["null", 462, 852, 6], - ["access", 463, "is_file", 852, 6], - ["array", 464, 0, 852, 6], - ["push", 464, 68, 852, 6], - ["frame", 465, 20, 2, 852, 6], - ["setarg", 465, 0, 462, 852, 6], - ["setarg", 465, 1, 463, 852, 6], - ["setarg", 465, 2, 464, 852, 6], - ["invoke", 465, 460, 852, 6], - ["jump", "call_done_715", 852, 6], - "record_path_714", - ["load_field", 466, 20, "is_file", 852, 6], - ["frame", 467, 466, 1, 852, 6], - ["setarg", 467, 0, 20, 852, 6], - ["setarg", 467, 1, 68, 852, 6], - ["invoke", 467, 460, 852, 6], - "call_done_715", + ["jump", "add_ni_718", 856, 39], + ["add_int", 458, 454, 457, 856, 39], + ["jump", "add_done_720", 856, 39], + "add_ni_718", + ["is_text", 459, 454, 856, 39], + ["jump_false", 459, "add_nt_719", 856, 39], + ["concat", 458, 454, 457, 856, 39], + ["jump", "add_done_720", 856, 39], + "add_nt_719", + ["is_num", 459, 454, 856, 39], + ["jump_false", 459, "add_err_721", 856, 39], + ["is_num", 460, 457, 856, 39], + ["jump_false", 460, "add_err_721", 856, 39], + ["add_float", 458, 454, 457, 856, 39], + ["jump", "add_done_720", 856, 39], + "add_err_721", + ["disrupt", 856, 39], + "add_done_720", + ["move", 67, 458, 856, 39], + ["jump", "if_end_707", 856, 39], + "if_else_706", + "if_end_707", + ["is_proxy", 462, 20, 858, 6], + ["jump_false", 462, "record_path_724", 858, 6], + ["null", 463, 858, 6], + ["access", 464, "is_file", 858, 6], + ["array", 465, 0, 858, 6], + ["push", 465, 67, 858, 6], + ["frame", 466, 20, 2, 858, 6], + ["setarg", 466, 0, 463, 858, 6], + ["setarg", 466, 1, 464, 858, 6], + ["setarg", 466, 2, 465, 858, 6], + ["invoke", 466, 461, 858, 6], + ["jump", "call_done_725", 858, 6], + "record_path_724", + ["load_field", 467, 20, "is_file", 858, 6], + ["frame", 468, 467, 1, 858, 6], + ["setarg", 468, 0, 20, 858, 6], + ["setarg", 468, 1, 67, 858, 6], + ["invoke", 468, 461, 858, 6], + "call_done_725", "_nop_bl_5", - ["jump_true", 460, "if_else_712", 852, 6], - ["array", 469, 0, 1, 1], - ["push", 469, 46, 1, 1], + ["jump_true", 461, "if_else_722", 858, 6], + ["array", 470, 0, 1, 1], + ["push", 470, 46, 1, 1], [ "access", - 470, + 471, { "name": "format", "kind": "name", @@ -8017,98 +8202,98 @@ 1, 1 ], - ["access", 471, "Main program {0} could not be found\n", 1, 1], - ["frame", 473, 470, 2, 1, 1], - ["null", 474, 1, 1], - ["setarg", 473, 0, 474, 1, 1], - ["setarg", 473, 1, 471, 1, 1], - ["setarg", 473, 2, 469, 1, 1], - ["invoke", 473, 472, 1, 1], + ["access", 472, "Main program {0} could not be found\n", 1, 1], + ["frame", 474, 471, 2, 1, 1], + ["null", 475, 1, 1], + ["setarg", 474, 0, 475, 1, 1], + ["setarg", 474, 1, 472, 1, 1], + ["setarg", 474, 2, 470, 1, 1], + ["invoke", 474, 473, 1, 1], [ "access", - 476, + 477, { "name": "os", "kind": "name", "make": "intrinsic" }, - 853, + 859, 3 ], - ["is_proxy", 477, 476, 853, 3], - ["jump_false", 477, "record_path_716", 853, 3], - ["null", 478, 853, 3], - ["access", 479, "print", 853, 3], - ["array", 480, 0, 853, 3], - ["push", 480, 472, 853, 3], - ["frame", 481, 476, 2, 853, 3], - ["setarg", 481, 0, 478, 853, 3], - ["setarg", 481, 1, 479, 853, 3], - ["setarg", 481, 2, 480, 853, 3], - ["invoke", 481, 475, 853, 3], - ["jump", "call_done_717", 853, 3], - "record_path_716", - ["load_field", 482, 476, "print", 853, 3], - ["frame", 483, 482, 1, 853, 3], - ["setarg", 483, 0, 476, 853, 3], - ["setarg", 483, 1, 472, 853, 3], - ["invoke", 483, 475, 853, 3], - "call_done_717", - ["access", 484, 1, 854, 11], + ["is_proxy", 478, 477, 859, 3], + ["jump_false", 478, "record_path_726", 859, 3], + ["null", 479, 859, 3], + ["access", 480, "print", 859, 3], + ["array", 481, 0, 859, 3], + ["push", 481, 473, 859, 3], + ["frame", 482, 477, 2, 859, 3], + ["setarg", 482, 0, 479, 859, 3], + ["setarg", 482, 1, 480, 859, 3], + ["setarg", 482, 2, 481, 859, 3], + ["invoke", 482, 476, 859, 3], + ["jump", "call_done_727", 859, 3], + "record_path_726", + ["load_field", 483, 477, "print", 859, 3], + ["frame", 484, 483, 1, 859, 3], + ["setarg", 484, 0, 477, 859, 3], + ["setarg", 484, 1, 473, 859, 3], + ["invoke", 484, 476, 859, 3], + "call_done_727", + ["access", 485, 1, 860, 11], [ "access", - 486, + 487, { "name": "os", "kind": "name", "make": "intrinsic" }, - 854, + 860, 3 ], - ["is_proxy", 487, 486, 854, 3], - ["jump_false", 487, "record_path_718", 854, 3], - ["null", 488, 854, 3], - ["access", 489, "exit", 854, 3], - ["array", 490, 0, 854, 3], - ["push", 490, 484, 854, 3], - ["frame", 491, 486, 2, 854, 3], - ["setarg", 491, 0, 488, 854, 3], - ["setarg", 491, 1, 489, 854, 3], - ["setarg", 491, 2, 490, 854, 3], - ["invoke", 491, 485, 854, 3], - ["jump", "call_done_719", 854, 3], - "record_path_718", - ["load_field", 492, 486, "exit", 854, 3], - ["frame", 493, 492, 1, 854, 3], - ["setarg", 493, 0, 486, 854, 3], - ["setarg", 493, 1, 484, 854, 3], - ["invoke", 493, 485, 854, 3], - "call_done_719", - ["jump", "if_end_713", 854, 3], - "if_else_712", - "if_end_713", - ["function", 494, 57, 857, 10], - ["is_proxy", 496, 2, 857, 1], - ["jump_false", 496, "record_path_779", 857, 1], - ["null", 497, 857, 1], - ["access", 498, "clock", 857, 1], - ["array", 499, 0, 857, 1], - ["push", 499, 494, 857, 1], - ["frame", 500, 2, 2, 857, 1], - ["setarg", 500, 0, 497, 857, 1], - ["setarg", 500, 1, 498, 857, 1], - ["setarg", 500, 2, 499, 857, 1], - ["invoke", 500, 495, 857, 1], - ["jump", "call_done_780", 857, 1], - "record_path_779", - ["load_field", 501, 2, "clock", 857, 1], - ["frame", 502, 501, 1, 857, 1], - ["setarg", 502, 0, 2, 857, 1], - ["setarg", 502, 1, 494, 857, 1], - ["invoke", 502, 495, 857, 1], - "call_done_780", - ["return", 495, 857, 1] + ["is_proxy", 488, 487, 860, 3], + ["jump_false", 488, "record_path_728", 860, 3], + ["null", 489, 860, 3], + ["access", 490, "exit", 860, 3], + ["array", 491, 0, 860, 3], + ["push", 491, 485, 860, 3], + ["frame", 492, 487, 2, 860, 3], + ["setarg", 492, 0, 489, 860, 3], + ["setarg", 492, 1, 490, 860, 3], + ["setarg", 492, 2, 491, 860, 3], + ["invoke", 492, 486, 860, 3], + ["jump", "call_done_729", 860, 3], + "record_path_728", + ["load_field", 493, 487, "exit", 860, 3], + ["frame", 494, 493, 1, 860, 3], + ["setarg", 494, 0, 487, 860, 3], + ["setarg", 494, 1, 485, 860, 3], + ["invoke", 494, 486, 860, 3], + "call_done_729", + ["jump", "if_end_723", 860, 3], + "if_else_722", + "if_end_723", + ["function", 495, 57, 863, 10], + ["is_proxy", 497, 2, 863, 1], + ["jump_false", 497, "record_path_789", 863, 1], + ["null", 498, 863, 1], + ["access", 499, "clock", 863, 1], + ["array", 500, 0, 863, 1], + ["push", 500, 495, 863, 1], + ["frame", 501, 2, 2, 863, 1], + ["setarg", 501, 0, 498, 863, 1], + ["setarg", 501, 1, 499, 863, 1], + ["setarg", 501, 2, 500, 863, 1], + ["invoke", 501, 496, 863, 1], + ["jump", "call_done_790", 863, 1], + "record_path_789", + ["load_field", 502, 2, "clock", 863, 1], + ["frame", 503, 502, 1, 863, 1], + ["setarg", 503, 0, 2, 863, 1], + ["setarg", 503, 1, 495, 863, 1], + ["invoke", 503, 496, 863, 1], + "call_done_790", + ["return", 496, 863, 1] ] }, "filename": "internal/engine.cm", diff --git a/internal/os.c b/internal/os.c index 267c01c5..fa07324c 100644 --- a/internal/os.c +++ b/internal/os.c @@ -425,6 +425,22 @@ static JSValue js_os_dylib_has_symbol(JSContext *js, JSValue self, int argc, JSV return JS_NewBool(js, symbol != NULL); } +/* Load a native .cm module from a dylib handle. + Uses cell_rt_native_module_load from qbe_helpers.c */ +extern JSValue cell_rt_native_module_load(JSContext *ctx, void *dl_handle); + +static JSValue js_os_native_module_load(JSContext *js, JSValue self, int argc, JSValue *argv) +{ + if (argc < 1) + return JS_ThrowTypeError(js, "native_module_load requires a dylib object"); + + void *handle = JS_GetOpaque(argv[0], js_dylib_class_id); + if (!handle) + return JS_ThrowTypeError(js, "First argument must be a dylib object"); + + return cell_rt_native_module_load(js, handle); +} + JSC_CCALL(os_print, size_t len; const char *str = JS_ToCStringLen(js, &len, argv[0]); @@ -552,6 +568,37 @@ JSC_CCALL(os_getenv, ret = JS_NULL; ) +/* --- Embedded module table (generated for static builds) --- + Uses dlsym to check if cell_embedded_module_lookup exists at runtime. + When linking a static build with a generated module_table.c, the symbol + will be found; in dynamic builds it returns NULL gracefully. */ + +struct cell_embedded_entry { + const char *name; + const unsigned char *data; + size_t size; +}; + +typedef const struct cell_embedded_entry *(*cell_embed_lookup_fn)(const char *); + +static JSValue js_os_embedded_module(JSContext *js, JSValue self, int argc, JSValue *argv) +{ + cell_embed_lookup_fn lookup = (cell_embed_lookup_fn)dlsym(RTLD_DEFAULT, "cell_embedded_module_lookup"); + if (!lookup) + return JS_NULL; + + const char *name = JS_ToCString(js, argv[0]); + if (!name) return JS_NULL; + + const struct cell_embedded_entry *entry = lookup(name); + JS_FreeCString(js, name); + + if (!entry) return JS_NULL; + + /* Return the mach blob as a stoned blob */ + return js_new_blob_stoned_copy(js, (void *)entry->data, entry->size); +} + static const JSCFunctionListEntry js_os_funcs[] = { MIST_FUNC_DEF(os, platform, 0), MIST_FUNC_DEF(os, arch, 0), @@ -568,6 +615,8 @@ static const JSCFunctionListEntry js_os_funcs[] = { MIST_FUNC_DEF(os, dylib_open, 1), MIST_FUNC_DEF(os, dylib_symbol, 2), MIST_FUNC_DEF(os, dylib_has_symbol, 2), + MIST_FUNC_DEF(os, native_module_load, 1), + MIST_FUNC_DEF(os, embedded_module, 1), MIST_FUNC_DEF(os, load_internal, 1), MIST_FUNC_DEF(os, internal_exists, 1), MIST_FUNC_DEF(os, print, 1), diff --git a/internal/shop.cm b/internal/shop.cm index 7ac18aae..91ab4d49 100644 --- a/internal/shop.cm +++ b/internal/shop.cm @@ -379,6 +379,32 @@ Shop.extract_commit_hash = function(pkg, response) { var dylib_visited = {} var open_dls = {} +var loaded_manifests = {} + +// Host target detection for native dylib resolution +function detect_host_target() { + var platform = os.platform() + var arch = os.arch ? os.arch() : 'arm64' + if (platform == 'macOS' || platform == 'darwin') + return arch == 'x86_64' ? 'macos_x86_64' : 'macos_arm64' + if (platform == 'Linux' || platform == 'linux') + return arch == 'x86_64' ? 'linux' : 'linux_arm64' + if (platform == 'Windows' || platform == 'windows') + return 'windows' + return null +} + +var host_target = detect_host_target() + +// Check for a native .cm dylib in the content-addressed cache +// Returns the loaded module value, or null if no native dylib exists +function try_native_dylib(content_key) { + var native_path = hash_path(content_key) + '.' + host_target + dylib_ext + if (!fd.is_file(native_path)) return null + var handle = os.dylib_open(native_path) + if (!handle) return null + return os.native_module_load(handle) +} // Default capabilities injected into scripts // These map to $_ properties in engine.cm @@ -433,7 +459,9 @@ function resolve_mod_fn(path, pkg) { if (!fd.is_file(path)) { print(`path ${path} is not a file`); disrupt } var content = text(fd.slurp(path)) - var cached = pull_from_cache(stone(blob(content))) + var content_key = stone(blob(content)) + var native_result = null + var cached = null var ast = null var compiled = null var mach_path = null @@ -441,24 +469,42 @@ function resolve_mod_fn(path, pkg) { var mcode_path = null var ir = null var optimized = null + var mcode_json = null + var cached_mcode_path = null + + // Check for native .cm dylib first (highest performance) + native_result = try_native_dylib(content_key) + if (native_result != null) { + return {_native: true, value: native_result} + } // Check cache for pre-compiled .mach blob + cached = pull_from_cache(content_key) if (cached) { return cached } + // Check for cached mcode in content-addressed store + cached_mcode_path = hash_path(content_key) + '.mcode' + if (fd.is_file(cached_mcode_path)) { + mcode_json = text(fd.slurp(cached_mcode_path)) + compiled = mach_compile_mcode_bin(path, mcode_json) + put_into_cache(content_key, compiled) + return compiled + } + // Check for pre-compiled .mach or .mcode file alongside .cm source if (ends_with(path, '.cm')) { mach_path = text(path, 0, length(path) - 3) + '.mach' if (fd.is_file(mach_path)) { mach_blob = fd.slurp(mach_path) - put_into_cache(stone(blob(content)), mach_blob) + put_into_cache(content_key, mach_blob) return mach_blob } mcode_path = path + '.mcode' if (fd.is_file(mcode_path)) { compiled = mach_compile_mcode_bin(path, text(fd.slurp(mcode_path))) - put_into_cache(stone(blob(content)), compiled) + put_into_cache(content_key, compiled) return compiled } } @@ -469,8 +515,15 @@ function resolve_mod_fn(path, pkg) { ast = analyze(content, path) ir = _mcode_mod(ast) optimized = _streamline_mod(ir) - compiled = mach_compile_mcode_bin(path, shop_json.encode(optimized)) - put_into_cache(stone(blob(content)), compiled) + mcode_json = shop_json.encode(optimized) + + // Cache mcode (architecture-independent) in content-addressed store + ensure_dir(global_shop_path + '/build') + fd.slurpwrite(cached_mcode_path, stone(blob(mcode_json))) + + // Cache mach blob + compiled = mach_compile_mcode_bin(path, mcode_json) + put_into_cache(content_key, compiled) return compiled } @@ -576,7 +629,45 @@ function get_lib_path(pkg) { return global_shop_path + '/lib/' + lib_name + dylib_ext } -// Open a package's dynamic library and all its dependencies +// Load the manifest for a package's per-module dylibs +// Returns a map of symbol_name -> dylib_path, or null if no manifest +function load_package_manifest(pkg) { + if (loaded_manifests[pkg] != null) return loaded_manifests[pkg] + + var lib_name = replace(replace(replace(pkg, '/', '_'), '.', '_'), '-', '_') + var manifest_path = global_shop_path + '/lib/' + lib_name + '.manifest.json' + if (!fd.is_file(manifest_path)) { + loaded_manifests[pkg] = false + return null + } + var content = text(fd.slurp(manifest_path)) + var manifest = json.decode(content) + loaded_manifests[pkg] = manifest + return manifest +} + +// Open a per-module dylib from a manifest and return the dlopen handle +function open_module_dylib(dylib_path) { + if (open_dls[dylib_path]) return open_dls[dylib_path] + if (!fd.is_file(dylib_path)) return null + open_dls[dylib_path] = os.dylib_open(dylib_path) + return open_dls[dylib_path] +} + +// Resolve a C symbol from per-module dylibs for a package +// Returns a loader function or null +function resolve_dylib_symbol(sym, pkg) { + var manifest = load_package_manifest(pkg) + if (!manifest) return null + var dylib_path = manifest[sym] + if (!dylib_path) return null + var handle = open_module_dylib(dylib_path) + if (!handle) return null + if (!os.dylib_has_symbol(handle, sym)) return null + return function() { return os.dylib_symbol(handle, sym) } +} + +// Open a package's dynamic libraries (loads manifest + dependency manifests) Shop.open_package_dylib = function(pkg) { if (pkg == 'core' || !pkg) return if (dylib_visited[pkg]) return @@ -606,22 +697,18 @@ Shop.open_package_dylib = function(pkg) { } } - var dl_path = get_lib_path(pkg) - if (fd.is_file(dl_path)) { - if (!open_dls[dl_path]) { - open_dls[dl_path] = os.dylib_open(dl_path) - } - } + // Pre-load the manifest + load_package_manifest(pkg) } // Resolve a C symbol by searching: // 1. If package_context is null, only check core internal symbols -// 2. Otherwise: own package (internal then dylib) -> other packages (internal then dylib) -> core (internal only) +// 2. Otherwise: own package (internal then per-module dylib) -> aliased packages -> core (internal only) // Core is never loaded as a dynamic library via dlopen function resolve_c_symbol(path, package_context) { var explicit = split_explicit_package_import(path) var sym = null - var dl_path = null + var loader = null var _path = null var core_sym = null var canon_pkg = null @@ -643,10 +730,10 @@ function resolve_c_symbol(path, package_context) { } Shop.open_package_dylib(explicit.package) - dl_path = get_lib_path(explicit.package) - if (open_dls[dl_path] && os.dylib_has_symbol(open_dls[dl_path], sym)) { + loader = resolve_dylib_symbol(sym, explicit.package) + if (loader) { return { - symbol: function() { return os.dylib_symbol(open_dls[dl_path], sym) }, + symbol: loader, scope: SCOPE_PACKAGE, package: explicit.package, path: sym @@ -668,7 +755,7 @@ function resolve_c_symbol(path, package_context) { return null } - // 1. Check own package first (internal, then dylib) + // 1. Check own package first (internal, then per-module dylib) sym = make_c_symbol(package_context, path) if (os.internal_exists(sym)) { return { @@ -679,11 +766,10 @@ function resolve_c_symbol(path, package_context) { } Shop.open_package_dylib(package_context) - dl_path = get_lib_path(package_context) - - if (open_dls[dl_path] && os.dylib_has_symbol(open_dls[dl_path], sym)) { + loader = resolve_dylib_symbol(sym, package_context) + if (loader) { return { - symbol: function() { return os.dylib_symbol(open_dls[dl_path], sym) }, + symbol: loader, scope: SCOPE_LOCAL, path: sym } @@ -700,7 +786,6 @@ function resolve_c_symbol(path, package_context) { mod_name = get_import_name(path) sym = make_c_symbol(canon_pkg, mod_name) - // Check internal first if (os.internal_exists(sym)) { return { symbol: function() { return os.load_internal(sym) }, @@ -710,12 +795,11 @@ function resolve_c_symbol(path, package_context) { } } - // Then check dylib Shop.open_package_dylib(canon_pkg) - dl_path = get_lib_path(canon_pkg) - if (open_dls[dl_path] && os.dylib_has_symbol(open_dls[dl_path], sym)) { + loader = resolve_dylib_symbol(sym, canon_pkg) + if (loader) { return { - symbol: function() { return os.dylib_symbol(open_dls[dl_path], sym) }, + symbol: loader, scope: SCOPE_PACKAGE, package: canon_pkg, path: sym @@ -841,20 +925,20 @@ function execute_module(info) var pkg = null if (mod_resolve.scope < 900) { - // Build env with runtime fns, capabilities, and use function - file_info = Shop.file_info(mod_resolve.path) - inject = Shop.script_inject_for(file_info) - env = inject_env(inject) - pkg = file_info.package - env.use = make_use_fn(pkg) + // Check if native dylib was resolved + if (is_object(mod_resolve.symbol) && mod_resolve.symbol._native) { + used = mod_resolve.symbol.value + } else { + // Build env with runtime fns, capabilities, and use function + file_info = Shop.file_info(mod_resolve.path) + inject = Shop.script_inject_for(file_info) + env = inject_env(inject) + pkg = file_info.package + env.use = make_use_fn(pkg) - // Add C module as native context if available - if (c_resolve.scope < 900) { - env.native = call_c_module(c_resolve) + // Load compiled bytecode with env + used = mach_load(mod_resolve.symbol, env) } - - // Load compiled bytecode with env - used = mach_load(mod_resolve.symbol, env) } else if (c_resolve.scope < 900) { // C only used = call_c_module(c_resolve) @@ -876,6 +960,21 @@ function get_module(path, package_context) { } Shop.use = function use(path, package_context) { + // Check for embedded module (static builds) + var embed_key = 'embedded:' + path + var embedded = null + var embed_env = null + if (use_cache[embed_key]) return use_cache[embed_key] + if (os.embedded_module) { + embedded = os.embedded_module(path) + if (embedded) { + embed_env = inject_env(SHOP_DEFAULT_INJECT) + embed_env.use = make_use_fn(package_context) + use_cache[embed_key] = mach_load(embedded, embed_env) + return use_cache[embed_key] + } + } + var info = resolve_module_info(path, package_context) if (!info) { print(`Module ${path} could not be found in ${package_context}`); disrupt } diff --git a/regen.ce b/regen.ce index c0034d08..da782280 100644 --- a/regen.ce +++ b/regen.ce @@ -17,6 +17,7 @@ var files = [ {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"} ] diff --git a/source/qbe_helpers.c b/source/qbe_helpers.c index a6d8e3ea..bc63d1df 100644 --- a/source/qbe_helpers.c +++ b/source/qbe_helpers.c @@ -277,19 +277,37 @@ void cell_rt_put_closure(JSContext *ctx, void *fp, JSValue val, int64_t depth, typedef JSValue (*cell_compiled_fn)(JSContext *ctx, void *fp); -/* Table mapping fn_idx → outer_fp at creation time. - Valid for single-threaded, non-recursive closure patterns. */ -#define MAX_QBE_FUNCTIONS 256 -static void *g_outer_fp[MAX_QBE_FUNCTIONS]; +/* Per-module function registry. + Each native .cm module gets its own dylib. When a module creates closures + via cell_rt_make_function, we record the dylib handle so the trampoline + can look up the correct cell_fn_N in the right dylib. */ +#define MAX_NATIVE_FN 4096 + +static struct { + void *dl_handle; + int fn_idx; + void *outer_fp; +} g_native_fn_registry[MAX_NATIVE_FN]; + +static int g_native_fn_count = 0; + +/* Set before executing a native module's cell_main */ +static void *g_current_dl_handle = NULL; static JSValue cell_fn_trampoline(JSContext *ctx, JSValue this_val, int argc, JSValue *argv, int magic) { - char name[64]; - snprintf(name, sizeof(name), "cell_fn_%d", magic); + if (magic < 0 || magic >= g_native_fn_count) + return JS_ThrowTypeError(ctx, "invalid native function id %d", magic); - cell_compiled_fn fn = (cell_compiled_fn)dlsym(RTLD_DEFAULT, name); + void *handle = g_native_fn_registry[magic].dl_handle; + int fn_idx = g_native_fn_registry[magic].fn_idx; + + char name[64]; + snprintf(name, sizeof(name), "cell_fn_%d", fn_idx); + + cell_compiled_fn fn = (cell_compiled_fn)dlsym(handle, name); if (!fn) - return JS_ThrowTypeError(ctx, "native function %s not found", name); + return JS_ThrowTypeError(ctx, "native function %s not found in dylib", name); /* Allocate frame: slot 0 = this, slots 1..argc = args */ JSValue frame[512]; @@ -299,17 +317,22 @@ static JSValue cell_fn_trampoline(JSContext *ctx, JSValue this_val, frame[1 + i] = argv[i]; /* Link to outer frame for closure access */ - if (magic >= 0 && magic < MAX_QBE_FUNCTIONS) - frame[QBE_FRAME_OUTER_SLOT] = (JSValue)(uintptr_t)g_outer_fp[magic]; + frame[QBE_FRAME_OUTER_SLOT] = (JSValue)(uintptr_t)g_native_fn_registry[magic].outer_fp; return fn(ctx, frame); } JSValue cell_rt_make_function(JSContext *ctx, int64_t fn_idx, void *outer_fp) { - if (fn_idx >= 0 && fn_idx < MAX_QBE_FUNCTIONS) - g_outer_fp[fn_idx] = outer_fp; + if (g_native_fn_count >= MAX_NATIVE_FN) + return JS_ThrowTypeError(ctx, "too many native functions (max %d)", MAX_NATIVE_FN); + + int global_id = g_native_fn_count++; + g_native_fn_registry[global_id].dl_handle = g_current_dl_handle; + g_native_fn_registry[global_id].fn_idx = (int)fn_idx; + g_native_fn_registry[global_id].outer_fp = outer_fp; + return JS_NewCFunction2(ctx, (JSCFunction *)cell_fn_trampoline, "native_fn", - 255, JS_CFUNC_generic_magic, (int)fn_idx); + 255, JS_CFUNC_generic_magic, global_id); } /* --- Frame-based function calling --- */ @@ -430,20 +453,35 @@ void cell_rt_disrupt(JSContext *ctx) { } /* --- Module entry point --- - Called as symbol(ctx) by os.dylib_symbol. Looks up cell_main - in the loaded dylib, builds a heap-allocated frame (so closures - can reference it after the module returns), and runs the module body. */ + Loads a native .cm module from a dylib handle. + Looks up cell_main, builds a heap-allocated frame, sets + g_current_dl_handle so closures register in the right module. */ -JSValue cell_rt_module_entry(JSContext *ctx) { - cell_compiled_fn fn = (cell_compiled_fn)dlsym(RTLD_DEFAULT, "cell_main"); +JSValue cell_rt_native_module_load(JSContext *ctx, void *dl_handle) { + cell_compiled_fn fn = (cell_compiled_fn)dlsym(dl_handle, "cell_main"); if (!fn) - return JS_ThrowTypeError(ctx, "cell_main not found in loaded dylib"); + return JS_ThrowTypeError(ctx, "cell_main not found in native module dylib"); + + /* Set current handle so cell_rt_make_function registers closures + against this module's dylib */ + void *prev_handle = g_current_dl_handle; + g_current_dl_handle = dl_handle; /* Heap-allocate so closures created in cell_main can reference this frame after the module entry returns. */ JSValue *frame = calloc(512, sizeof(JSValue)); - if (!frame) + if (!frame) { + g_current_dl_handle = prev_handle; return JS_ThrowTypeError(ctx, "frame allocation failed"); + } - return fn(ctx, frame); + JSValue result = fn(ctx, frame); + g_current_dl_handle = prev_handle; + return result; +} + +/* Backward-compat: uses RTLD_DEFAULT (works when dylib opened with RTLD_GLOBAL) */ +JSValue cell_rt_module_entry(JSContext *ctx) { + void *handle = dlopen(NULL, RTLD_LAZY); + return cell_rt_native_module_load(ctx, handle); } diff --git a/time.cm b/time.cm index 50b49081..8951927a 100644 --- a/time.cm +++ b/time.cm @@ -1,5 +1,5 @@ // epoch = 0000-01-01 00:00:00 +0000 -var time = native +var time = use('internal/time_c') var now = time.now var computer_zone = time.computer_zone