Merge branch 'fix_heap_closure'
This commit is contained in:
20
CLAUDE.md
20
CLAUDE.md
@@ -179,6 +179,26 @@ When running locally with `./cell --dev`, these commands manage packages:
|
||||
|
||||
Local paths are symlinked into `.cell/packages/`. The build step compiles C files to `.cell/lib/<pkg>/<stem>.dylib`. C files in `src/` are support files linked into module dylibs, not standalone modules.
|
||||
|
||||
## Debugging Compiler Issues
|
||||
|
||||
When investigating bugs in compiled output (wrong values, missing operations, incorrect comparisons), **start from the optimizer down, not the VM up**. The compiler inspection tools will usually identify the problem faster than adding C-level tracing:
|
||||
|
||||
```
|
||||
./cell --dev streamline --types <file> # show inferred slot types — look for wrong types
|
||||
./cell --dev ir_report --events <file> # show every optimization applied and why
|
||||
./cell --dev ir_report --types <file> # show type inference results per function
|
||||
./cell --dev mcode --pretty <file> # show raw IR before optimization
|
||||
./cell --dev streamline --ir <file> # show human-readable optimized IR
|
||||
```
|
||||
|
||||
**Triage order:**
|
||||
1. `streamline --types` — are slot types correct? Wrong type inference causes wrong optimizations.
|
||||
2. `ir_report --events` — are type checks being incorrectly eliminated? Look for `known_type_eliminates_guard` on slots that shouldn't have known types.
|
||||
3. `mcode --pretty` — is the raw IR correct before optimization? If so, the bug is in streamline.
|
||||
4. Only dig into `source/mach.c` if the IR looks correct at all levels.
|
||||
|
||||
See `docs/compiler-tools.md` for the full tool reference and `docs/spec/streamline.md` for pass details.
|
||||
|
||||
## Testing
|
||||
|
||||
After any C runtime changes, run all three test suites before considering the work done:
|
||||
|
||||
@@ -1,328 +1,7 @@
|
||||
{"name":"internal/bootstrap.cm","main":{
|
||||
"nr_slots": 25,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 0, 0, 0],
|
||||
["move", 2, 1, 0, 0],
|
||||
["function", 1, 1, 0, 0],
|
||||
["move", 3, 1, 0, 0],
|
||||
["function", 1, 2, 0, 0],
|
||||
["move", 4, 1, 0, 0],
|
||||
["function", 1, 3, 0, 0],
|
||||
["move", 5, 1, 0, 0],
|
||||
["function", 1, 4, 0, 0],
|
||||
["move", 6, 1, 0, 0],
|
||||
["function", 1, 5, 0, 0],
|
||||
["move", 7, 1, 0, 0],
|
||||
["function", 1, 6, 0, 0],
|
||||
["move", 8, 1, 0, 0],
|
||||
[
|
||||
"access",
|
||||
1,
|
||||
{
|
||||
"name": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"functions": [
|
||||
{
|
||||
"name": "os",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
4,
|
||||
21
|
||||
],
|
||||
["load_field", 9, 1, "load_internal", 4, 21],
|
||||
["move", 1, 9, 4, 21],
|
||||
["access", 9, "internal_fd", 9, 20],
|
||||
["frame", 10, 2, 1, 9, 10],
|
||||
["null", 11, 9, 10],
|
||||
["setarg", 10, 0, 11, 9, 10],
|
||||
["setarg", 10, 1, 9, 9, 10],
|
||||
["invoke", 10, 9, 9, 10],
|
||||
["move", 10, 9, 9, 10],
|
||||
["access", 9, "json", 10, 26],
|
||||
["frame", 11, 2, 1, 10, 16],
|
||||
["null", 12, 10, 16],
|
||||
["setarg", 11, 0, 12, 10, 16],
|
||||
["setarg", 11, 1, 9, 10, 16],
|
||||
["invoke", 11, 9, 10, 16],
|
||||
["move", 11, 9, 10, 16],
|
||||
["access", 9, "crypto", 11, 24],
|
||||
["frame", 12, 2, 1, 11, 14],
|
||||
["null", 13, 11, 14],
|
||||
["setarg", 12, 0, 13, 11, 14],
|
||||
["setarg", 12, 1, 9, 11, 14],
|
||||
["invoke", 12, 9, 11, 14],
|
||||
["move", 12, 9, 11, 14],
|
||||
["access", 9, "tokenize", 43, 30],
|
||||
["frame", 13, 6, 1, 43, 20],
|
||||
["null", 14, 43, 20],
|
||||
["setarg", 13, 0, 14, 43, 20],
|
||||
["setarg", 13, 1, 9, 43, 20],
|
||||
["invoke", 13, 9, 43, 20],
|
||||
["move", 13, 9, 43, 20],
|
||||
["access", 9, "parse", 44, 27],
|
||||
["frame", 14, 6, 1, 44, 17],
|
||||
["null", 15, 44, 17],
|
||||
["setarg", 14, 0, 15, 44, 17],
|
||||
["setarg", 14, 1, 9, 44, 17],
|
||||
["invoke", 14, 9, 44, 17],
|
||||
["move", 14, 9, 44, 17],
|
||||
["access", 9, "fold", 45, 26],
|
||||
["frame", 15, 6, 1, 45, 16],
|
||||
["null", 16, 45, 16],
|
||||
["setarg", 15, 0, 16, 45, 16],
|
||||
["setarg", 15, 1, 9, 45, 16],
|
||||
["invoke", 15, 9, 45, 16],
|
||||
["move", 15, 9, 45, 16],
|
||||
["access", 9, "mcode", 46, 27],
|
||||
["frame", 16, 6, 1, 46, 17],
|
||||
["null", 17, 46, 17],
|
||||
["setarg", 16, 0, 17, 46, 17],
|
||||
["setarg", 16, 1, 9, 46, 17],
|
||||
["invoke", 16, 9, 46, 17],
|
||||
["move", 16, 9, 46, 17],
|
||||
["access", 9, "streamline", 47, 32],
|
||||
["frame", 17, 6, 1, 47, 22],
|
||||
["null", 6, 47, 22],
|
||||
["setarg", 17, 0, 6, 47, 22],
|
||||
["setarg", 17, 1, 9, 47, 22],
|
||||
["invoke", 17, 6, 47, 22],
|
||||
["move", 9, 6, 47, 22],
|
||||
["record", 6, 2],
|
||||
["access", 17, "tokenize", 92, 10],
|
||||
["store_field", 6, 17, "name", 92, 10],
|
||||
["access", 17, "tokenize.cm", 92, 28],
|
||||
["store_field", 6, 17, "path", 92, 28],
|
||||
["record", 17, 2],
|
||||
["access", 18, "parse", 93, 10],
|
||||
["store_field", 17, 18, "name", 93, 10],
|
||||
["access", 18, "parse.cm", 93, 25],
|
||||
["store_field", 17, 18, "path", 93, 25],
|
||||
["record", 18, 2],
|
||||
["access", 19, "fold", 94, 10],
|
||||
["store_field", 18, 19, "name", 94, 10],
|
||||
["access", 19, "fold.cm", 94, 24],
|
||||
["store_field", 18, 19, "path", 94, 24],
|
||||
["record", 19, 2],
|
||||
["access", 20, "mcode", 95, 10],
|
||||
["store_field", 19, 20, "name", 95, 10],
|
||||
["access", 20, "mcode.cm", 95, 25],
|
||||
["store_field", 19, 20, "path", 95, 25],
|
||||
["record", 20, 2],
|
||||
["access", 21, "streamline", 96, 10],
|
||||
["store_field", 20, 21, "name", 96, 10],
|
||||
["access", 21, "streamline.cm", 96, 30],
|
||||
["store_field", 20, 21, "path", 96, 30],
|
||||
["record", 21, 2],
|
||||
["access", 22, "engine", 97, 10],
|
||||
["store_field", 21, 22, "name", 97, 10],
|
||||
["access", 22, "internal/engine.cm", 97, 26],
|
||||
["store_field", 21, 22, "path", 97, 26],
|
||||
["array", 22, 6, 97, 26],
|
||||
["push", 22, 6, 97, 26],
|
||||
["push", 22, 17, 97, 26],
|
||||
["push", 22, 18, 97, 26],
|
||||
["push", 22, 19, 97, 26],
|
||||
["push", 22, 20, 97, 26],
|
||||
["push", 22, 21, 97, 26],
|
||||
["move", 6, 22, 97, 26],
|
||||
["access", 17, 0, 99, 10],
|
||||
["null", 18, 100, 13],
|
||||
"while_start_103",
|
||||
["length", 19, 6, 101, 20],
|
||||
["is_int", 20, 17, 101, 20],
|
||||
["jump_false", 20, "rel_ni_105", 101, 20],
|
||||
"_nop_tc_1",
|
||||
"_nop_tc_2",
|
||||
["lt_int", 21, 17, 19, 101, 20],
|
||||
["jump", "rel_done_107", 101, 20],
|
||||
"rel_ni_105",
|
||||
["is_num", 20, 17, 101, 20],
|
||||
["jump_false", 20, "rel_nn_106", 101, 20],
|
||||
"_nop_tc_3",
|
||||
"_nop_tc_4",
|
||||
["lt_float", 21, 17, 19, 101, 20],
|
||||
["jump", "rel_done_107", 101, 20],
|
||||
"rel_nn_106",
|
||||
["is_text", 20, 17, 101, 20],
|
||||
["jump_false", 20, "rel_err_108", 101, 20],
|
||||
"_nop_tc_5",
|
||||
["jump", "rel_err_108", 101, 20],
|
||||
["lt_text", 21, 17, 19, 101, 20],
|
||||
["jump", "rel_done_107", 101, 20],
|
||||
"rel_err_108",
|
||||
[
|
||||
"access",
|
||||
19,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
101,
|
||||
20
|
||||
],
|
||||
["access", 20, "error", 101, 20],
|
||||
["access", 22, "cannot compare with '<': operands must be same type", 101, 20],
|
||||
["array", 23, 0, 101, 20],
|
||||
["push", 23, 22, 101, 20],
|
||||
["frame", 22, 19, 2, 101, 20],
|
||||
["null", 19, 101, 20],
|
||||
["setarg", 22, 0, 19, 101, 20],
|
||||
["setarg", 22, 1, 20, 101, 20],
|
||||
["setarg", 22, 2, 23, 101, 20],
|
||||
["invoke", 22, 19, 101, 20],
|
||||
["disrupt", 101, 20],
|
||||
"rel_done_107",
|
||||
["jump_false", 21, "while_end_104", 101, 20],
|
||||
["load_dynamic", 19, 6, 17, 102, 22],
|
||||
["move", 18, 19, 102, 22],
|
||||
["load_field", 19, 18, "name", 103, 21],
|
||||
[
|
||||
"access",
|
||||
20,
|
||||
{
|
||||
"name": "core_path",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
103,
|
||||
33
|
||||
],
|
||||
["access", 21, "/", 103, 45],
|
||||
["is_text", 22, 20, 103, 45],
|
||||
["jump_false", 22, "add_cn_110", 103, 45],
|
||||
"_nop_tc_6",
|
||||
"_nop_tc_7",
|
||||
["concat", 23, 20, 21, 103, 45],
|
||||
["jump", "add_done_109", 103, 45],
|
||||
"add_cn_110",
|
||||
["is_num", 22, 20, 103, 45],
|
||||
["jump_false", 22, "add_err_111", 103, 45],
|
||||
"_nop_tc_8",
|
||||
["jump", "add_err_111", 103, 45],
|
||||
["add", 23, 20, 21, 103, 45],
|
||||
["jump", "add_done_109", 103, 45],
|
||||
"add_err_111",
|
||||
[
|
||||
"access",
|
||||
20,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
103,
|
||||
45
|
||||
],
|
||||
["access", 21, "error", 103, 45],
|
||||
["access", 22, "cannot apply '+': operands must both be text or both be numbers", 103, 45],
|
||||
["array", 24, 0, 103, 45],
|
||||
["push", 24, 22, 103, 45],
|
||||
["frame", 22, 20, 2, 103, 45],
|
||||
["null", 20, 103, 45],
|
||||
["setarg", 22, 0, 20, 103, 45],
|
||||
["setarg", 22, 1, 21, 103, 45],
|
||||
["setarg", 22, 2, 24, 103, 45],
|
||||
["invoke", 22, 20, 103, 45],
|
||||
["disrupt", 103, 45],
|
||||
"add_done_109",
|
||||
["load_field", 20, 18, "path", 103, 51],
|
||||
["is_text", 21, 23, 103, 51],
|
||||
["jump_false", 21, "add_cn_113", 103, 51],
|
||||
["is_text", 22, 20, 103, 51],
|
||||
["jump_false", 22, "add_cn_113", 103, 51],
|
||||
["concat", 24, 23, 20, 103, 51],
|
||||
["jump", "add_done_112", 103, 51],
|
||||
"add_cn_113",
|
||||
["is_num", 21, 23, 103, 51],
|
||||
["jump_false", 21, "add_err_114", 103, 51],
|
||||
["is_num", 22, 20, 103, 51],
|
||||
["jump_false", 22, "add_err_114", 103, 51],
|
||||
["add", 24, 23, 20, 103, 51],
|
||||
["jump", "add_done_112", 103, 51],
|
||||
"add_err_114",
|
||||
[
|
||||
"access",
|
||||
20,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
103,
|
||||
51
|
||||
],
|
||||
["access", 21, "error", 103, 51],
|
||||
["access", 22, "cannot apply '+': operands must both be text or both be numbers", 103, 51],
|
||||
["array", 23, 0, 103, 51],
|
||||
["push", 23, 22, 103, 51],
|
||||
["frame", 22, 20, 2, 103, 51],
|
||||
["null", 20, 103, 51],
|
||||
["setarg", 22, 0, 20, 103, 51],
|
||||
["setarg", 22, 1, 21, 103, 51],
|
||||
["setarg", 22, 2, 23, 103, 51],
|
||||
["invoke", 22, 20, 103, 51],
|
||||
["disrupt", 103, 51],
|
||||
"add_done_112",
|
||||
["frame", 20, 8, 2, 103, 3],
|
||||
["null", 21, 103, 3],
|
||||
["setarg", 20, 0, 21, 103, 3],
|
||||
["setarg", 20, 1, 19, 103, 3],
|
||||
["setarg", 20, 2, 24, 103, 3],
|
||||
["invoke", 20, 19, 103, 3],
|
||||
["access", 19, 1, 104, 13],
|
||||
["is_num", 20, 17, 104, 13],
|
||||
["jump_false", 20, "num_err_115", 104, 13],
|
||||
"_nop_tc_9",
|
||||
"_nop_tc_10",
|
||||
["add", 20, 17, 19, 104, 13],
|
||||
["jump", "num_done_116", 104, 13],
|
||||
"num_err_115",
|
||||
[
|
||||
"access",
|
||||
19,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
104,
|
||||
13
|
||||
],
|
||||
["access", 21, "error", 104, 13],
|
||||
["access", 22, "cannot apply '+': operands must be numbers", 104, 13],
|
||||
["array", 23, 0, 104, 13],
|
||||
["push", 23, 22, 104, 13],
|
||||
["frame", 22, 19, 2, 104, 13],
|
||||
["null", 19, 104, 13],
|
||||
["setarg", 22, 0, 19, 104, 13],
|
||||
["setarg", 22, 1, 21, 104, 13],
|
||||
["setarg", 22, 2, 23, 104, 13],
|
||||
["invoke", 22, 19, 104, 13],
|
||||
["disrupt", 104, 13],
|
||||
"num_done_116",
|
||||
["move", 17, 20, 104, 13],
|
||||
["jump", "while_start_103", 104, 13],
|
||||
"while_end_104",
|
||||
["access", 6, "bootstrap: cache seeded\n", 106, 7],
|
||||
[
|
||||
"access",
|
||||
8,
|
||||
{
|
||||
"name": "print",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
106,
|
||||
1
|
||||
],
|
||||
["frame", 17, 8, 1, 106, 1],
|
||||
["null", 8, 106, 1],
|
||||
["setarg", 17, 0, 8, 106, 1],
|
||||
["setarg", 17, 1, 6, 106, 1],
|
||||
["invoke", 17, 6, 106, 1],
|
||||
["return", 6, 106, 1]
|
||||
],
|
||||
"nr_args": 0
|
||||
},"functions":[{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -414,9 +93,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "use_embed",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -464,9 +144,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "content_hash",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -580,9 +261,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "cache_path",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -705,9 +387,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "ensure_build_dir",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1053,9 +736,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "boot_load",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 13,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1494,9 +1178,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "analyze",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 15,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1681,6 +1366,335 @@
|
||||
["return", 3, 86, 5]
|
||||
],
|
||||
"name": "compile_and_cache",
|
||||
"filename": "internal/bootstrap.cm",
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"nr_args": 2
|
||||
}]}
|
||||
}
|
||||
],
|
||||
"main": {
|
||||
"nr_slots": 25,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 0, 0, 0],
|
||||
["move", 2, 1, 0, 0],
|
||||
["function", 1, 1, 0, 0],
|
||||
["move", 3, 1, 0, 0],
|
||||
["function", 1, 2, 0, 0],
|
||||
["move", 4, 1, 0, 0],
|
||||
["function", 1, 3, 0, 0],
|
||||
["move", 5, 1, 0, 0],
|
||||
["function", 1, 4, 0, 0],
|
||||
["move", 6, 1, 0, 0],
|
||||
["function", 1, 5, 0, 0],
|
||||
["move", 7, 1, 0, 0],
|
||||
["function", 1, 6, 0, 0],
|
||||
["move", 8, 1, 0, 0],
|
||||
[
|
||||
"access",
|
||||
1,
|
||||
{
|
||||
"name": "os",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
4,
|
||||
21
|
||||
],
|
||||
["load_field", 9, 1, "load_internal", 4, 21],
|
||||
["move", 1, 9, 4, 21],
|
||||
["access", 9, "internal_fd", 9, 20],
|
||||
["frame", 10, 2, 1, 9, 10],
|
||||
["null", 11, 9, 10],
|
||||
["setarg", 10, 0, 11, 9, 10],
|
||||
["setarg", 10, 1, 9, 9, 10],
|
||||
["invoke", 10, 9, 9, 10],
|
||||
["move", 10, 9, 9, 10],
|
||||
["access", 9, "json", 10, 26],
|
||||
["frame", 11, 2, 1, 10, 16],
|
||||
["null", 12, 10, 16],
|
||||
["setarg", 11, 0, 12, 10, 16],
|
||||
["setarg", 11, 1, 9, 10, 16],
|
||||
["invoke", 11, 9, 10, 16],
|
||||
["move", 11, 9, 10, 16],
|
||||
["access", 9, "crypto", 11, 24],
|
||||
["frame", 12, 2, 1, 11, 14],
|
||||
["null", 13, 11, 14],
|
||||
["setarg", 12, 0, 13, 11, 14],
|
||||
["setarg", 12, 1, 9, 11, 14],
|
||||
["invoke", 12, 9, 11, 14],
|
||||
["move", 12, 9, 11, 14],
|
||||
["access", 9, "tokenize", 43, 30],
|
||||
["frame", 13, 6, 1, 43, 20],
|
||||
["null", 14, 43, 20],
|
||||
["setarg", 13, 0, 14, 43, 20],
|
||||
["setarg", 13, 1, 9, 43, 20],
|
||||
["invoke", 13, 9, 43, 20],
|
||||
["move", 13, 9, 43, 20],
|
||||
["access", 9, "parse", 44, 27],
|
||||
["frame", 14, 6, 1, 44, 17],
|
||||
["null", 15, 44, 17],
|
||||
["setarg", 14, 0, 15, 44, 17],
|
||||
["setarg", 14, 1, 9, 44, 17],
|
||||
["invoke", 14, 9, 44, 17],
|
||||
["move", 14, 9, 44, 17],
|
||||
["access", 9, "fold", 45, 26],
|
||||
["frame", 15, 6, 1, 45, 16],
|
||||
["null", 16, 45, 16],
|
||||
["setarg", 15, 0, 16, 45, 16],
|
||||
["setarg", 15, 1, 9, 45, 16],
|
||||
["invoke", 15, 9, 45, 16],
|
||||
["move", 15, 9, 45, 16],
|
||||
["access", 9, "mcode", 46, 27],
|
||||
["frame", 16, 6, 1, 46, 17],
|
||||
["null", 17, 46, 17],
|
||||
["setarg", 16, 0, 17, 46, 17],
|
||||
["setarg", 16, 1, 9, 46, 17],
|
||||
["invoke", 16, 9, 46, 17],
|
||||
["move", 16, 9, 46, 17],
|
||||
["access", 9, "streamline", 47, 32],
|
||||
["frame", 17, 6, 1, 47, 22],
|
||||
["null", 6, 47, 22],
|
||||
["setarg", 17, 0, 6, 47, 22],
|
||||
["setarg", 17, 1, 9, 47, 22],
|
||||
["invoke", 17, 6, 47, 22],
|
||||
["move", 9, 6, 47, 22],
|
||||
["record", 6, 2],
|
||||
["access", 17, "tokenize", 92, 10],
|
||||
["store_field", 6, 17, "name", 92, 10],
|
||||
["access", 17, "tokenize.cm", 92, 28],
|
||||
["store_field", 6, 17, "path", 92, 28],
|
||||
["record", 17, 2],
|
||||
["access", 18, "parse", 93, 10],
|
||||
["store_field", 17, 18, "name", 93, 10],
|
||||
["access", 18, "parse.cm", 93, 25],
|
||||
["store_field", 17, 18, "path", 93, 25],
|
||||
["record", 18, 2],
|
||||
["access", 19, "fold", 94, 10],
|
||||
["store_field", 18, 19, "name", 94, 10],
|
||||
["access", 19, "fold.cm", 94, 24],
|
||||
["store_field", 18, 19, "path", 94, 24],
|
||||
["record", 19, 2],
|
||||
["access", 20, "mcode", 95, 10],
|
||||
["store_field", 19, 20, "name", 95, 10],
|
||||
["access", 20, "mcode.cm", 95, 25],
|
||||
["store_field", 19, 20, "path", 95, 25],
|
||||
["record", 20, 2],
|
||||
["access", 21, "streamline", 96, 10],
|
||||
["store_field", 20, 21, "name", 96, 10],
|
||||
["access", 21, "streamline.cm", 96, 30],
|
||||
["store_field", 20, 21, "path", 96, 30],
|
||||
["record", 21, 2],
|
||||
["access", 22, "engine", 97, 10],
|
||||
["store_field", 21, 22, "name", 97, 10],
|
||||
["access", 22, "internal/engine.cm", 97, 26],
|
||||
["store_field", 21, 22, "path", 97, 26],
|
||||
["array", 22, 6, 97, 26],
|
||||
["push", 22, 6, 97, 26],
|
||||
["push", 22, 17, 97, 26],
|
||||
["push", 22, 18, 97, 26],
|
||||
["push", 22, 19, 97, 26],
|
||||
["push", 22, 20, 97, 26],
|
||||
["push", 22, 21, 97, 26],
|
||||
["move", 6, 22, 97, 26],
|
||||
["access", 17, 0, 99, 10],
|
||||
["null", 18, 100, 13],
|
||||
"while_start_103",
|
||||
["length", 19, 6, 101, 20],
|
||||
["is_int", 20, 17, 101, 20],
|
||||
["jump_false", 20, "rel_ni_105", 101, 20],
|
||||
"_nop_tc_1",
|
||||
"_nop_tc_2",
|
||||
["lt_int", 21, 17, 19, 101, 20],
|
||||
["jump", "rel_done_107", 101, 20],
|
||||
"rel_ni_105",
|
||||
["is_num", 20, 17, 101, 20],
|
||||
["jump_false", 20, "rel_nn_106", 101, 20],
|
||||
"_nop_tc_3",
|
||||
"_nop_tc_4",
|
||||
["lt_float", 21, 17, 19, 101, 20],
|
||||
["jump", "rel_done_107", 101, 20],
|
||||
"rel_nn_106",
|
||||
["is_text", 20, 17, 101, 20],
|
||||
["jump_false", 20, "rel_err_108", 101, 20],
|
||||
"_nop_tc_5",
|
||||
["jump", "rel_err_108", 101, 20],
|
||||
["lt_text", 21, 17, 19, 101, 20],
|
||||
["jump", "rel_done_107", 101, 20],
|
||||
"rel_err_108",
|
||||
[
|
||||
"access",
|
||||
19,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
101,
|
||||
20
|
||||
],
|
||||
["access", 20, "error", 101, 20],
|
||||
["access", 22, "cannot compare with '<': operands must be same type", 101, 20],
|
||||
["array", 23, 0, 101, 20],
|
||||
["push", 23, 22, 101, 20],
|
||||
["frame", 22, 19, 2, 101, 20],
|
||||
["null", 19, 101, 20],
|
||||
["setarg", 22, 0, 19, 101, 20],
|
||||
["setarg", 22, 1, 20, 101, 20],
|
||||
["setarg", 22, 2, 23, 101, 20],
|
||||
["invoke", 22, 19, 101, 20],
|
||||
["disrupt", 101, 20],
|
||||
"rel_done_107",
|
||||
["jump_false", 21, "while_end_104", 101, 20],
|
||||
["load_dynamic", 19, 6, 17, 102, 22],
|
||||
["move", 18, 19, 102, 22],
|
||||
["load_field", 19, 18, "name", 103, 21],
|
||||
[
|
||||
"access",
|
||||
20,
|
||||
{
|
||||
"name": "core_path",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
103,
|
||||
33
|
||||
],
|
||||
["access", 21, "/", 103, 45],
|
||||
["is_text", 22, 20, 103, 45],
|
||||
["jump_false", 22, "add_cn_110", 103, 45],
|
||||
"_nop_tc_6",
|
||||
"_nop_tc_7",
|
||||
["concat", 23, 20, 21, 103, 45],
|
||||
["jump", "add_done_109", 103, 45],
|
||||
"add_cn_110",
|
||||
["is_num", 22, 20, 103, 45],
|
||||
["jump_false", 22, "add_err_111", 103, 45],
|
||||
"_nop_tc_8",
|
||||
["jump", "add_err_111", 103, 45],
|
||||
["add", 23, 20, 21, 103, 45],
|
||||
["jump", "add_done_109", 103, 45],
|
||||
"add_err_111",
|
||||
[
|
||||
"access",
|
||||
20,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
103,
|
||||
45
|
||||
],
|
||||
["access", 21, "error", 103, 45],
|
||||
["access", 22, "cannot apply '+': operands must both be text or both be numbers", 103, 45],
|
||||
["array", 24, 0, 103, 45],
|
||||
["push", 24, 22, 103, 45],
|
||||
["frame", 22, 20, 2, 103, 45],
|
||||
["null", 20, 103, 45],
|
||||
["setarg", 22, 0, 20, 103, 45],
|
||||
["setarg", 22, 1, 21, 103, 45],
|
||||
["setarg", 22, 2, 24, 103, 45],
|
||||
["invoke", 22, 20, 103, 45],
|
||||
["disrupt", 103, 45],
|
||||
"add_done_109",
|
||||
["load_field", 20, 18, "path", 103, 51],
|
||||
["is_text", 21, 23, 103, 51],
|
||||
["jump_false", 21, "add_cn_113", 103, 51],
|
||||
["is_text", 22, 20, 103, 51],
|
||||
["jump_false", 22, "add_cn_113", 103, 51],
|
||||
["concat", 24, 23, 20, 103, 51],
|
||||
["jump", "add_done_112", 103, 51],
|
||||
"add_cn_113",
|
||||
["is_num", 21, 23, 103, 51],
|
||||
["jump_false", 21, "add_err_114", 103, 51],
|
||||
["is_num", 22, 20, 103, 51],
|
||||
["jump_false", 22, "add_err_114", 103, 51],
|
||||
["add", 24, 23, 20, 103, 51],
|
||||
["jump", "add_done_112", 103, 51],
|
||||
"add_err_114",
|
||||
[
|
||||
"access",
|
||||
20,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
103,
|
||||
51
|
||||
],
|
||||
["access", 21, "error", 103, 51],
|
||||
["access", 22, "cannot apply '+': operands must both be text or both be numbers", 103, 51],
|
||||
["array", 23, 0, 103, 51],
|
||||
["push", 23, 22, 103, 51],
|
||||
["frame", 22, 20, 2, 103, 51],
|
||||
["null", 20, 103, 51],
|
||||
["setarg", 22, 0, 20, 103, 51],
|
||||
["setarg", 22, 1, 21, 103, 51],
|
||||
["setarg", 22, 2, 23, 103, 51],
|
||||
["invoke", 22, 20, 103, 51],
|
||||
["disrupt", 103, 51],
|
||||
"add_done_112",
|
||||
["frame", 20, 8, 2, 103, 3],
|
||||
["null", 21, 103, 3],
|
||||
["setarg", 20, 0, 21, 103, 3],
|
||||
["setarg", 20, 1, 19, 103, 3],
|
||||
["setarg", 20, 2, 24, 103, 3],
|
||||
["invoke", 20, 19, 103, 3],
|
||||
["access", 19, 1, 104, 13],
|
||||
["is_num", 20, 17, 104, 13],
|
||||
["jump_false", 20, "num_err_115", 104, 13],
|
||||
"_nop_tc_9",
|
||||
"_nop_tc_10",
|
||||
["add", 20, 17, 19, 104, 13],
|
||||
["jump", "num_done_116", 104, 13],
|
||||
"num_err_115",
|
||||
[
|
||||
"access",
|
||||
19,
|
||||
{
|
||||
"name": "log",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
104,
|
||||
13
|
||||
],
|
||||
["access", 21, "error", 104, 13],
|
||||
["access", 22, "cannot apply '+': operands must be numbers", 104, 13],
|
||||
["array", 23, 0, 104, 13],
|
||||
["push", 23, 22, 104, 13],
|
||||
["frame", 22, 19, 2, 104, 13],
|
||||
["null", 19, 104, 13],
|
||||
["setarg", 22, 0, 19, 104, 13],
|
||||
["setarg", 22, 1, 21, 104, 13],
|
||||
["setarg", 22, 2, 23, 104, 13],
|
||||
["invoke", 22, 19, 104, 13],
|
||||
["disrupt", 104, 13],
|
||||
"num_done_116",
|
||||
["move", 17, 20, 104, 13],
|
||||
["jump", "while_start_103", 104, 13],
|
||||
"while_end_104",
|
||||
["access", 6, "bootstrap: cache seeded\n", 106, 7],
|
||||
[
|
||||
"access",
|
||||
8,
|
||||
{
|
||||
"name": "print",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
106,
|
||||
1
|
||||
],
|
||||
["frame", 17, 8, 1, 106, 1],
|
||||
["null", 8, 106, 1],
|
||||
["setarg", 17, 0, 8, 106, 1],
|
||||
["setarg", 17, 1, 6, 106, 1],
|
||||
["invoke", 17, 6, 106, 1],
|
||||
["return", 6, 106, 1]
|
||||
],
|
||||
"nr_args": 0
|
||||
},
|
||||
"filename": ".cell/packages/core/internal/bootstrap.cm",
|
||||
"data": {}
|
||||
}
|
||||
@@ -1,15 +1,7 @@
|
||||
{"name":"fold.cm","main":{
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 28, 4, 12],
|
||||
["move", 2, 1, 4, 12],
|
||||
["return", 2, 1047, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},"functions":[{
|
||||
{
|
||||
"name": ".cell/packages/core/fold.cm",
|
||||
"functions": [
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -283,9 +275,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1731,9 +1724,10 @@
|
||||
"_nop_ur_14"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 4,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1753,9 +1747,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1793,9 +1788,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1816,9 +1812,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1853,9 +1850,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1875,9 +1873,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2319,9 +2318,10 @@
|
||||
"_nop_ur_7"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2463,9 +2463,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2529,9 +2530,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2609,9 +2611,10 @@
|
||||
["return", 4, 176, 21]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2689,9 +2692,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2769,9 +2773,10 @@
|
||||
["return", 4, 188, 21]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2944,9 +2949,10 @@
|
||||
["return", 2, 197, 34]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 16,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4628,9 +4634,10 @@
|
||||
["return", 3, 261, 15]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -5338,9 +5345,10 @@
|
||||
["return", 2, 289, 17]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6466,9 +6474,10 @@
|
||||
["return", 3, 344, 15]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6517,9 +6526,10 @@
|
||||
["return", 1, 352, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 24,
|
||||
"nr_close_slots": 0,
|
||||
@@ -13799,9 +13809,10 @@
|
||||
"_nop_ur_48"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -15466,9 +15477,10 @@
|
||||
"_nop_ur_19"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 13,
|
||||
"nr_close_slots": 0,
|
||||
@@ -16244,9 +16256,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -16615,9 +16628,10 @@
|
||||
["return", 2, 739, 34]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 13,
|
||||
"nr_close_slots": 0,
|
||||
@@ -17048,9 +17062,10 @@
|
||||
["return", 2, 803, 7]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -17818,9 +17833,10 @@
|
||||
["return", 2, 835, 19]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -19005,9 +19021,10 @@
|
||||
["return", 2, 889, 17]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -20104,9 +20121,10 @@
|
||||
["return", 2, 935, 19]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21430,9 +21448,10 @@
|
||||
["return", 2, 996, 17]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 14,
|
||||
"nr_close_slots": 0,
|
||||
@@ -22212,9 +22231,10 @@
|
||||
["return", 1, 1011, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 43,
|
||||
"nr_close_slots": 0,
|
||||
@@ -22711,6 +22731,22 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "fold.cm",
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"nr_args": 1
|
||||
}]}
|
||||
}
|
||||
],
|
||||
"main": {
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 28, 4, 12],
|
||||
["move", 2, 1, 4, 12],
|
||||
["return", 2, 1047, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},
|
||||
"filename": ".cell/packages/core/fold.cm",
|
||||
"data": {}
|
||||
}
|
||||
@@ -1,32 +1,7 @@
|
||||
{"name":"mcode.cm","main":{
|
||||
"nr_slots": 4,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["access", 1, "json", 1, 16],
|
||||
[
|
||||
"access",
|
||||
2,
|
||||
{
|
||||
"name": ".cell/packages/core/mcode.cm",
|
||||
"functions": [
|
||||
{
|
||||
"name": "use",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
1,
|
||||
12
|
||||
],
|
||||
["frame", 3, 2, 1, 1, 12],
|
||||
["null", 2, 1, 12],
|
||||
["setarg", 3, 0, 2, 1, 12],
|
||||
["setarg", 3, 1, 1, 1, 12],
|
||||
["invoke", 3, 1, 1, 12],
|
||||
["function", 1, 59, 3, 13],
|
||||
["move", 2, 1, 3, 13],
|
||||
["return", 2, 2842, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},"functions":[{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
@@ -71,9 +46,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
@@ -116,9 +92,10 @@
|
||||
["return", 2, 118, 24]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -213,9 +190,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -259,9 +237,10 @@
|
||||
["return", 4, 133, 75]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -405,9 +384,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -551,9 +531,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -743,9 +724,10 @@
|
||||
"_nop_ur_4"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -881,9 +863,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1058,9 +1041,10 @@
|
||||
["return", 2, 189, 38]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1156,9 +1140,10 @@
|
||||
["return", 2, 197, 26]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1196,9 +1181,10 @@
|
||||
["return", 2, 201, 26]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1215,9 +1201,10 @@
|
||||
["return", 2, 205, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1235,9 +1222,10 @@
|
||||
["return", 3, 209, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1256,9 +1244,10 @@
|
||||
["return", 4, 213, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1278,9 +1267,10 @@
|
||||
["return", 5, 217, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 4
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1310,9 +1300,10 @@
|
||||
["return", 3, 227, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1332,9 +1323,10 @@
|
||||
["return", 3, 231, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1354,9 +1346,10 @@
|
||||
["return", 3, 235, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1385,9 +1378,10 @@
|
||||
["return", 3, 242, 7]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1404,9 +1398,10 @@
|
||||
["return", 2, 247, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1572,9 +1567,10 @@
|
||||
["return", 2, 268, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1593,9 +1589,10 @@
|
||||
["return", 2, 272, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1614,9 +1611,10 @@
|
||||
["return", 4, 276, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1719,9 +1717,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1863,9 +1862,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1962,9 +1962,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2262,9 +2263,10 @@
|
||||
"_nop_ur_5"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2497,9 +2499,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 15,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2899,9 +2902,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 16,
|
||||
"nr_close_slots": 0,
|
||||
@@ -3349,9 +3353,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 20,
|
||||
"nr_close_slots": 0,
|
||||
@@ -3790,9 +3795,10 @@
|
||||
"_nop_ur_5"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -3905,9 +3911,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4377,9 +4384,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 4
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4400,9 +4408,10 @@
|
||||
["return", 4, 665, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4423,9 +4432,10 @@
|
||||
["return", 4, 669, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4552,9 +4562,10 @@
|
||||
["return", 5, 678, 7]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 4
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4681,9 +4692,10 @@
|
||||
["return", 5, 688, 7]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 4
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 13,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4869,9 +4881,10 @@
|
||||
["return", 4, 706, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 18,
|
||||
"nr_close_slots": 0,
|
||||
@@ -5314,9 +5327,10 @@
|
||||
["return", 5, 757, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 4
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 18,
|
||||
"nr_close_slots": 0,
|
||||
@@ -5802,9 +5816,10 @@
|
||||
["return", 5, 816, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 4
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -5989,9 +6004,10 @@
|
||||
["return", 3, 833, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 13,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6176,9 +6192,10 @@
|
||||
["return", 4, 850, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6592,9 +6609,10 @@
|
||||
["return", 2, 876, 17]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 16,
|
||||
"nr_close_slots": 0,
|
||||
@@ -7359,9 +7377,10 @@
|
||||
["return", 1, 914, 17]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -7505,9 +7524,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 20,
|
||||
"nr_close_slots": 0,
|
||||
@@ -7730,9 +7750,10 @@
|
||||
["return", 4, 974, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 18,
|
||||
"nr_close_slots": 0,
|
||||
@@ -7961,9 +7982,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 20,
|
||||
"nr_close_slots": 0,
|
||||
@@ -8232,9 +8254,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 20,
|
||||
"nr_close_slots": 0,
|
||||
@@ -8503,9 +8526,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 20,
|
||||
"nr_close_slots": 0,
|
||||
@@ -8785,9 +8809,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 28,
|
||||
"nr_close_slots": 0,
|
||||
@@ -9643,9 +9668,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -9672,9 +9698,10 @@
|
||||
["return", 3, 1255, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 15,
|
||||
"nr_close_slots": 0,
|
||||
@@ -10269,9 +10296,10 @@
|
||||
"_nop_ur_6"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 27,
|
||||
"nr_close_slots": 0,
|
||||
@@ -11299,9 +11327,10 @@
|
||||
"_nop_ur_5"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 26,
|
||||
"nr_close_slots": 0,
|
||||
@@ -12180,9 +12209,10 @@
|
||||
"_nop_ur_6"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 82,
|
||||
"nr_close_slots": 0,
|
||||
@@ -20029,9 +20059,10 @@
|
||||
"_nop_ur_45"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 65,
|
||||
"nr_close_slots": 0,
|
||||
@@ -24607,9 +24638,10 @@
|
||||
"_nop_ur_22"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 38,
|
||||
"nr_close_slots": 0,
|
||||
@@ -26691,9 +26723,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 22,
|
||||
"nr_close_slots": 0,
|
||||
@@ -28290,9 +28323,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 104,
|
||||
"nr_close_slots": 0,
|
||||
@@ -28658,6 +28692,71 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "mcode.cm",
|
||||
"nr_args": 1
|
||||
}]}
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"nr_args": 1,
|
||||
"closure_written": {
|
||||
"4": true,
|
||||
"89": true,
|
||||
"85": true,
|
||||
"75": true,
|
||||
"94": true,
|
||||
"88": true,
|
||||
"79": true,
|
||||
"92": true,
|
||||
"83": true,
|
||||
"93": true,
|
||||
"82": true,
|
||||
"5": true,
|
||||
"81": true,
|
||||
"91": true,
|
||||
"3": true,
|
||||
"77": true,
|
||||
"7": true,
|
||||
"80": true,
|
||||
"98": true,
|
||||
"84": true,
|
||||
"76": true,
|
||||
"86": true,
|
||||
"97": true,
|
||||
"6": true,
|
||||
"95": true,
|
||||
"78": true,
|
||||
"96": true,
|
||||
"87": true,
|
||||
"90": true,
|
||||
"2": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"main": {
|
||||
"nr_slots": 4,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["access", 1, "json", 1, 16],
|
||||
[
|
||||
"access",
|
||||
2,
|
||||
{
|
||||
"name": "use",
|
||||
"kind": "name",
|
||||
"make": "intrinsic"
|
||||
},
|
||||
1,
|
||||
12
|
||||
],
|
||||
["frame", 3, 2, 1, 1, 12],
|
||||
["null", 2, 1, 12],
|
||||
["setarg", 3, 0, 2, 1, 12],
|
||||
["setarg", 3, 1, 1, 1, 12],
|
||||
["invoke", 3, 1, 1, 12],
|
||||
["function", 1, 59, 3, 13],
|
||||
["move", 2, 1, 3, 13],
|
||||
["return", 2, 2842, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},
|
||||
"filename": ".cell/packages/core/mcode.cm",
|
||||
"data": {}
|
||||
}
|
||||
@@ -1,15 +1,7 @@
|
||||
{"name":"parse.cm","main":{
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 40, 1, 13],
|
||||
["move", 2, 1, 1, 13],
|
||||
["return", 2, 2178, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},"functions":[{
|
||||
{
|
||||
"name": ".cell/packages/core/parse.cm",
|
||||
"functions": [
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -355,9 +347,10 @@
|
||||
["return", 1, 42, 35]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -748,9 +741,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
@@ -766,9 +760,10 @@
|
||||
["return", 1, 64, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -786,9 +781,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 4,
|
||||
"nr_close_slots": 0,
|
||||
@@ -804,9 +800,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -999,9 +996,10 @@
|
||||
["return", 3, 97, 15]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1053,9 +1051,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1856,9 +1855,10 @@
|
||||
"_nop_ur_4"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 48,
|
||||
"nr_close_slots": 0,
|
||||
@@ -8594,9 +8594,10 @@
|
||||
"_nop_ur_17"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -9557,9 +9558,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -10137,9 +10139,10 @@
|
||||
"_nop_ur_8"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 15,
|
||||
"nr_close_slots": 0,
|
||||
@@ -10419,9 +10422,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -10633,9 +10637,10 @@
|
||||
"_nop_ur_4"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 14,
|
||||
"nr_close_slots": 0,
|
||||
@@ -11252,9 +11257,10 @@
|
||||
"_nop_ur_4"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 4,
|
||||
"nr_close_slots": 0,
|
||||
@@ -11269,9 +11275,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -11413,9 +11420,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -11631,9 +11639,10 @@
|
||||
["return", 1, 808, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -12285,9 +12294,10 @@
|
||||
["return", 1, 820, 7]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -12537,9 +12547,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 18,
|
||||
"nr_close_slots": 0,
|
||||
@@ -13873,9 +13884,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 19,
|
||||
"nr_close_slots": 0,
|
||||
@@ -15014,9 +15026,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 34,
|
||||
"nr_close_slots": 0,
|
||||
@@ -20648,9 +20661,10 @@
|
||||
"_nop_ur_27"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -20932,9 +20946,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21141,9 +21156,10 @@
|
||||
["return", 3, 1427, 22]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21246,9 +21262,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21338,9 +21355,10 @@
|
||||
["return", 4, 1449, 16]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 3
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21686,9 +21704,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21707,9 +21726,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21779,9 +21799,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21850,9 +21871,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -21952,9 +21974,10 @@
|
||||
["return", 2, 1501, 58]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -22006,9 +22029,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -22485,9 +22509,10 @@
|
||||
"_nop_ur_11"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -22516,9 +22541,10 @@
|
||||
["return", 3, 1539, 5]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -22749,9 +22775,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 15,
|
||||
"nr_close_slots": 0,
|
||||
@@ -23463,9 +23490,10 @@
|
||||
["return", 3, 1604, 15]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 13,
|
||||
"nr_close_slots": 0,
|
||||
@@ -25529,9 +25557,10 @@
|
||||
["return", 3, 1673, 15]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 22,
|
||||
"nr_close_slots": 0,
|
||||
@@ -29382,9 +29411,10 @@
|
||||
["return", 3, 1865, 14]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 25,
|
||||
"nr_close_slots": 0,
|
||||
@@ -33313,9 +33343,10 @@
|
||||
["return", 3, 2103, 14]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -33857,9 +33888,10 @@
|
||||
["return", 2, 2146, 7]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 71,
|
||||
"nr_close_slots": 0,
|
||||
@@ -34254,30 +34286,30 @@
|
||||
["eq_int", 64, 14, 45, 2157, 22],
|
||||
["jump", "eq_done_4361", 2157, 22],
|
||||
"eq_ni_4362",
|
||||
["is_num", 68, 14, 2157, 22],
|
||||
["jump_false", 68, "eq_nn_4363", 2157, 22],
|
||||
"_nop_tc_5",
|
||||
"_nop_tc_6",
|
||||
"_nop_tc_7",
|
||||
"_nop_tc_8",
|
||||
["eq_float", 64, 14, 45, 2157, 22],
|
||||
["jump", "eq_done_4361", 2157, 22],
|
||||
"eq_nn_4363",
|
||||
"_nop_tc_9",
|
||||
["jump", "eq_nt_4364", 2157, 22],
|
||||
"_nop_tc_10",
|
||||
["is_text", 68, 14, 2157, 22],
|
||||
["jump_false", 68, "eq_nt_4364", 2157, 22],
|
||||
"_nop_tc_7",
|
||||
["jump", "eq_nt_4364", 2157, 22],
|
||||
["eq_text", 64, 14, 45, 2157, 22],
|
||||
["jump", "eq_done_4361", 2157, 22],
|
||||
"eq_nt_4364",
|
||||
"_nop_tc_11",
|
||||
["jump", "eq_nnl_4365", 2157, 22],
|
||||
"_nop_tc_12",
|
||||
["is_null", 68, 14, 2157, 22],
|
||||
["jump_false", 68, "eq_nnl_4365", 2157, 22],
|
||||
"_nop_tc_8",
|
||||
["jump", "eq_nnl_4365", 2157, 22],
|
||||
["true", 64, 2157, 22],
|
||||
["jump", "eq_done_4361", 2157, 22],
|
||||
"eq_nnl_4365",
|
||||
"_nop_tc_13",
|
||||
["jump", "eq_nb_4366", 2157, 22],
|
||||
"_nop_tc_14",
|
||||
["is_bool", 68, 14, 2157, 22],
|
||||
["jump_false", 68, "eq_nb_4366", 2157, 22],
|
||||
"_nop_tc_9",
|
||||
["jump", "eq_nb_4366", 2157, 22],
|
||||
["eq_bool", 64, 14, 45, 2157, 22],
|
||||
["jump", "eq_done_4361", 2157, 22],
|
||||
@@ -34296,23 +34328,23 @@
|
||||
["access", 45, 0, 2162, 13],
|
||||
["length", 64, 18, 2163, 14],
|
||||
["access", 67, 0, 2163, 24],
|
||||
"_nop_tc_15",
|
||||
"_nop_tc_16",
|
||||
"_nop_tc_17",
|
||||
"_nop_tc_18",
|
||||
"_nop_tc_10",
|
||||
"_nop_tc_11",
|
||||
"_nop_tc_12",
|
||||
"_nop_tc_13",
|
||||
["gt_int", 68, 64, 67, 2163, 24],
|
||||
["jump", "rel_done_4371", 2163, 24],
|
||||
"rel_ni_4369",
|
||||
"_nop_tc_19",
|
||||
"_nop_tc_20",
|
||||
"_nop_tc_21",
|
||||
"_nop_tc_22",
|
||||
"_nop_tc_14",
|
||||
"_nop_tc_15",
|
||||
"_nop_tc_16",
|
||||
"_nop_tc_17",
|
||||
["gt_float", 68, 64, 67, 2163, 24],
|
||||
["jump", "rel_done_4371", 2163, 24],
|
||||
"rel_nn_4370",
|
||||
"_nop_tc_23",
|
||||
"_nop_tc_18",
|
||||
["jump", "rel_err_4372", 2163, 24],
|
||||
"_nop_tc_24",
|
||||
"_nop_tc_19",
|
||||
["jump", "rel_err_4372", 2163, 24],
|
||||
["gt_text", 68, 64, 67, 2163, 24],
|
||||
["jump", "rel_done_4371", 2163, 24],
|
||||
@@ -34352,35 +34384,35 @@
|
||||
"ne_ni_4377",
|
||||
["is_int", 69, 64, 2164, 23],
|
||||
["jump_false", 69, "ne_nn_4378", 2164, 23],
|
||||
"_nop_tc_25",
|
||||
"_nop_tc_20",
|
||||
["jump", "ne_nn_4378", 2164, 23],
|
||||
["ne_int", 68, 64, 67, 2164, 23],
|
||||
["jump", "ne_done_4375", 2164, 23],
|
||||
"ne_nn_4378",
|
||||
["is_num", 69, 64, 2164, 23],
|
||||
["jump_false", 69, "ne_nt_4379", 2164, 23],
|
||||
"_nop_tc_26",
|
||||
"_nop_tc_21",
|
||||
["jump", "ne_nt_4379", 2164, 23],
|
||||
["ne_float", 68, 64, 67, 2164, 23],
|
||||
["jump", "ne_done_4375", 2164, 23],
|
||||
"ne_nt_4379",
|
||||
["is_text", 69, 64, 2164, 23],
|
||||
["jump_false", 69, "ne_nnl_4380", 2164, 23],
|
||||
"_nop_tc_27",
|
||||
"_nop_tc_22",
|
||||
["jump", "ne_nnl_4380", 2164, 23],
|
||||
["ne_text", 68, 64, 67, 2164, 23],
|
||||
["jump", "ne_done_4375", 2164, 23],
|
||||
"ne_nnl_4380",
|
||||
["is_null", 69, 64, 2164, 23],
|
||||
["jump_false", 69, "ne_nb_4381", 2164, 23],
|
||||
"_nop_tc_28",
|
||||
"_nop_tc_29",
|
||||
"_nop_tc_23",
|
||||
"_nop_tc_24",
|
||||
["false", 68, 2164, 23],
|
||||
["jump", "ne_done_4375", 2164, 23],
|
||||
"ne_nb_4381",
|
||||
["is_bool", 69, 64, 2164, 23],
|
||||
["jump_false", 69, "ne_mis_4382", 2164, 23],
|
||||
"_nop_tc_30",
|
||||
"_nop_tc_25",
|
||||
["jump", "ne_mis_4382", 2164, 23],
|
||||
["ne_bool", 68, 64, 67, 2164, 23],
|
||||
["jump", "ne_done_4375", 2164, 23],
|
||||
@@ -34393,21 +34425,21 @@
|
||||
["length", 64, 18, 2166, 27],
|
||||
["is_int", 67, 45, 2166, 27],
|
||||
["jump_false", 67, "rel_ni_4385", 2166, 27],
|
||||
"_nop_tc_31",
|
||||
"_nop_tc_32",
|
||||
"_nop_tc_26",
|
||||
"_nop_tc_27",
|
||||
["lt_int", 68, 45, 64, 2166, 27],
|
||||
["jump", "rel_done_4387", 2166, 27],
|
||||
"rel_ni_4385",
|
||||
["is_num", 67, 45, 2166, 27],
|
||||
["jump_false", 67, "rel_nn_4386", 2166, 27],
|
||||
"_nop_tc_33",
|
||||
"_nop_tc_34",
|
||||
"_nop_tc_28",
|
||||
"_nop_tc_29",
|
||||
["lt_float", 68, 45, 64, 2166, 27],
|
||||
["jump", "rel_done_4387", 2166, 27],
|
||||
"rel_nn_4386",
|
||||
["is_text", 67, 45, 2166, 27],
|
||||
["jump_false", 67, "rel_err_4388", 2166, 27],
|
||||
"_nop_tc_35",
|
||||
"_nop_tc_30",
|
||||
["jump", "rel_err_4388", 2166, 27],
|
||||
["lt_text", 68, 45, 64, 2166, 27],
|
||||
["jump", "rel_done_4387", 2166, 27],
|
||||
@@ -34469,8 +34501,8 @@
|
||||
["access", 64, 1, 2168, 21],
|
||||
["is_num", 67, 45, 2168, 21],
|
||||
["jump_false", 67, "num_err_4391", 2168, 21],
|
||||
"_nop_tc_36",
|
||||
"_nop_tc_37",
|
||||
"_nop_tc_31",
|
||||
"_nop_tc_32",
|
||||
["add", 67, 45, 64, 2168, 21],
|
||||
["jump", "num_done_4392", 2168, 21],
|
||||
"num_err_4391",
|
||||
@@ -34512,6 +34544,35 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "parse.cm",
|
||||
"nr_args": 4
|
||||
}]}
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"nr_args": 4,
|
||||
"closure_written": {
|
||||
"49": true,
|
||||
"21": true,
|
||||
"24": true,
|
||||
"6": true,
|
||||
"50": true,
|
||||
"7": true,
|
||||
"26": true,
|
||||
"68": true,
|
||||
"27": true,
|
||||
"19": true,
|
||||
"8": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"main": {
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 40, 1, 13],
|
||||
["move", 2, 1, 1, 13],
|
||||
["return", 2, 2178, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},
|
||||
"filename": ".cell/packages/core/parse.cm",
|
||||
"data": {}
|
||||
}
|
||||
33304
boot/streamline.cm.mcode
33304
boot/streamline.cm.mcode
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,7 @@
|
||||
{"name":"tokenize.cm","main":{
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 20, 1, 16],
|
||||
["move", 2, 1, 1, 16],
|
||||
["return", 2, 454, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},"functions":[{
|
||||
{
|
||||
"name": ".cell/packages/core/tokenize.cm",
|
||||
"functions": [
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -74,9 +66,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -178,9 +171,10 @@
|
||||
"_nop_ur_3"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 7,
|
||||
"nr_close_slots": 0,
|
||||
@@ -339,9 +333,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -445,9 +440,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -747,9 +743,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 8,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1308,9 +1305,10 @@
|
||||
"_nop_ur_5"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1564,9 +1562,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 9,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1768,9 +1767,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 5,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1796,9 +1796,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -1902,9 +1903,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2096,9 +2098,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 6,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2127,9 +2130,10 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 14,
|
||||
"nr_close_slots": 0,
|
||||
@@ -2816,9 +2820,10 @@
|
||||
["return", 2, 124, 14]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 17,
|
||||
"nr_close_slots": 0,
|
||||
@@ -4531,9 +4536,10 @@
|
||||
["return", 1, 179, 14]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6300,9 +6306,10 @@
|
||||
["return", 1, 214, 27]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6528,9 +6535,10 @@
|
||||
["return", 1, 238, 16]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 10,
|
||||
"nr_close_slots": 0,
|
||||
@@ -6985,9 +6993,10 @@
|
||||
["return", 1, 265, 14]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -7126,9 +7135,10 @@
|
||||
["return", 3, 278, 31]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 2
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 11,
|
||||
"nr_close_slots": 0,
|
||||
@@ -7289,9 +7299,10 @@
|
||||
["return", 2, 292, 14]
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 1
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 12,
|
||||
"nr_close_slots": 0,
|
||||
@@ -12363,9 +12374,10 @@
|
||||
"_nop_ur_77"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 0
|
||||
},{
|
||||
},
|
||||
{
|
||||
"disruption_pc": 0,
|
||||
"nr_slots": 35,
|
||||
"nr_close_slots": 0,
|
||||
@@ -12494,25 +12506,25 @@
|
||||
["function", 7, 19, 296, 22],
|
||||
["move", 30, 7, 296, 22],
|
||||
"while_start_1420",
|
||||
"_nop_tc_1",
|
||||
"_nop_tc_2",
|
||||
["is_int", 7, 4, 444, 16],
|
||||
["is_int", 7, 3, 444, 16],
|
||||
["jump_false", 7, "rel_ni_1422", 444, 16],
|
||||
["lt_int", 31, 3, 4, 444, 16],
|
||||
["is_int", 31, 4, 444, 16],
|
||||
["jump_false", 31, "rel_ni_1422", 444, 16],
|
||||
["lt_int", 32, 3, 4, 444, 16],
|
||||
["jump", "rel_done_1424", 444, 16],
|
||||
"rel_ni_1422",
|
||||
"_nop_tc_3",
|
||||
"_nop_tc_4",
|
||||
["is_num", 7, 4, 444, 16],
|
||||
["is_num", 7, 3, 444, 16],
|
||||
["jump_false", 7, "rel_nn_1423", 444, 16],
|
||||
["lt_float", 31, 3, 4, 444, 16],
|
||||
["is_num", 31, 4, 444, 16],
|
||||
["jump_false", 31, "rel_nn_1423", 444, 16],
|
||||
["lt_float", 32, 3, 4, 444, 16],
|
||||
["jump", "rel_done_1424", 444, 16],
|
||||
"rel_nn_1423",
|
||||
"_nop_tc_5",
|
||||
["jump", "rel_err_1425", 444, 16],
|
||||
["is_text", 7, 4, 444, 16],
|
||||
["is_text", 7, 3, 444, 16],
|
||||
["jump_false", 7, "rel_err_1425", 444, 16],
|
||||
["lt_text", 31, 3, 4, 444, 16],
|
||||
["is_text", 31, 4, 444, 16],
|
||||
["jump_false", 31, "rel_err_1425", 444, 16],
|
||||
["lt_text", 32, 3, 4, 444, 16],
|
||||
["jump", "rel_done_1424", 444, 16],
|
||||
"rel_err_1425",
|
||||
[
|
||||
@@ -12526,19 +12538,19 @@
|
||||
444,
|
||||
16
|
||||
],
|
||||
["access", 32, "error", 444, 16],
|
||||
["access", 31, "error", 444, 16],
|
||||
["access", 33, "cannot compare with '<': operands must be same type", 444, 16],
|
||||
["array", 34, 0, 444, 16],
|
||||
["push", 34, 33, 444, 16],
|
||||
["frame", 33, 7, 2, 444, 16],
|
||||
["null", 7, 444, 16],
|
||||
["setarg", 33, 0, 7, 444, 16],
|
||||
["setarg", 33, 1, 32, 444, 16],
|
||||
["setarg", 33, 1, 31, 444, 16],
|
||||
["setarg", 33, 2, 34, 444, 16],
|
||||
["invoke", 33, 7, 444, 16],
|
||||
["disrupt", 444, 16],
|
||||
"rel_done_1424",
|
||||
["jump_false", 31, "while_end_1421", 444, 16],
|
||||
["jump_false", 32, "while_end_1421", 444, 16],
|
||||
["frame", 7, 30, 0, 445, 5],
|
||||
["null", 31, 445, 5],
|
||||
["setarg", 7, 0, 31, 445, 5],
|
||||
@@ -12589,6 +12601,27 @@
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"name": "<anonymous>",
|
||||
"filename": "tokenize.cm",
|
||||
"nr_args": 2
|
||||
}]}
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"nr_args": 2,
|
||||
"closure_written": {
|
||||
"4": true,
|
||||
"26": true,
|
||||
"19": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"main": {
|
||||
"nr_slots": 3,
|
||||
"nr_close_slots": 0,
|
||||
"instructions": [
|
||||
["function", 1, 20, 1, 16],
|
||||
["move", 2, 1, 1, 16],
|
||||
["return", 2, 454, 8],
|
||||
"_nop_ur_1",
|
||||
"_nop_ur_2"
|
||||
],
|
||||
"nr_args": 0
|
||||
},
|
||||
"filename": ".cell/packages/core/tokenize.cm",
|
||||
"data": {}
|
||||
}
|
||||
@@ -62,12 +62,13 @@ See [Mcode IR](mcode.md) for the instruction format and complete instruction ref
|
||||
Optimizes the Mcode IR through a series of independent passes. Operates per-function:
|
||||
|
||||
1. **Backward type inference**: Infers parameter types from how they are used in typed operators (`add_int`, `store_index`, `load_field`, `push`, `pop`, etc.). Immutable `def` parameters keep their inferred type across label join points.
|
||||
2. **Type-check elimination**: When a slot's type is known, eliminates `is_<type>` + conditional jump pairs. Narrows `load_dynamic`/`store_dynamic` to typed variants.
|
||||
3. **Algebraic simplification**: Rewrites identity operations (add 0, multiply 1, divide 1) and folds same-slot comparisons.
|
||||
4. **Boolean simplification**: Fuses `not` + conditional jump into a single jump with inverted condition.
|
||||
5. **Move elimination**: Removes self-moves (`move a, a`).
|
||||
6. **Unreachable elimination**: Nops dead code after `return` until the next label.
|
||||
7. **Dead jump elimination**: Removes jumps to the immediately following label.
|
||||
2. **Write-type invariance**: Determines which local slots have a consistent write type across all instructions. Slots written by child closures (via `put`) are excluded (forced to unknown).
|
||||
3. **Type-check elimination**: When a slot's type is known, eliminates `is_<type>` + conditional jump pairs. Narrows `load_dynamic`/`store_dynamic` to typed variants.
|
||||
4. **Algebraic simplification**: Rewrites identity operations (add 0, multiply 1, divide 1) and folds same-slot comparisons.
|
||||
5. **Boolean simplification**: Fuses `not` + conditional jump into a single jump with inverted condition.
|
||||
6. **Move elimination**: Removes self-moves (`move a, a`).
|
||||
7. **Unreachable elimination**: Nops dead code after `return` until the next label.
|
||||
8. **Dead jump elimination**: Removes jumps to the immediately following label.
|
||||
|
||||
See [Streamline Optimizer](streamline.md) for detailed pass descriptions.
|
||||
|
||||
|
||||
@@ -95,7 +95,9 @@ Write type mapping:
|
||||
| `move`, `load_field`, `load_index`, `load_dynamic`, `pop`, `get` | T_UNKNOWN |
|
||||
| `invoke`, `tail_invoke` | T_UNKNOWN |
|
||||
|
||||
The result is a map of slot→type for slots where all writes agree on a single known type. Parameter slots (1..nr_args) and slot 0 are excluded.
|
||||
Before filtering, a pre-pass (`mark_closure_writes`) scans all inner functions for `put` instructions (closure variable writes). For each `put`, the pass traverses the parent chain to find the target ancestor function and marks the written slot as `closure_written`. Slots marked as closure-written are forced to T_UNKNOWN regardless of what the local write analysis infers, because the actual runtime write happens in a child function and can produce any type.
|
||||
|
||||
The result is a map of slot→type for slots where all writes agree on a single known type. Parameter slots (1..nr_args) and slot 0 are excluded. Closure-written slots are excluded (forced to unknown).
|
||||
|
||||
Common patterns this enables:
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@ function load_pipeline_module(name, env) {
|
||||
var boot_par = null
|
||||
var boot_fld = null
|
||||
var boot_mc = null
|
||||
var boot_sl = null
|
||||
var tok_result = null
|
||||
var ast = null
|
||||
var compiled = null
|
||||
@@ -105,6 +106,8 @@ function load_pipeline_module(name, env) {
|
||||
}
|
||||
ast = boot_fld(ast)
|
||||
compiled = boot_mc(ast)
|
||||
boot_sl = boot_load("streamline")
|
||||
compiled = boot_sl(compiled)
|
||||
mcode_json = json.encode(compiled)
|
||||
mach_blob = mach_compile_mcode_bin(name, mcode_json)
|
||||
if (cached) {
|
||||
|
||||
3
seed.ce
3
seed.ce
@@ -54,6 +54,7 @@ var compiled = null
|
||||
var optimized = null
|
||||
var mcode_json = null
|
||||
var out_path = null
|
||||
var build_dir = null
|
||||
|
||||
// Regenerate pipeline module seeds
|
||||
for (i = 0; i < length(pipeline_modules); i++) {
|
||||
@@ -103,7 +104,7 @@ if (fd.is_file(bootstrap_path)) {
|
||||
print('\nRegenerated ' + text(generated) + ' seed(s)')
|
||||
|
||||
if (clean) {
|
||||
var build_dir = shop.get_build_dir()
|
||||
build_dir = shop.get_build_dir()
|
||||
if (fd.is_dir(build_dir)) {
|
||||
print('Clearing build cache: ' + build_dir)
|
||||
os.system('rm -rf "' + build_dir + '"')
|
||||
|
||||
114
streamline.cm
114
streamline.cm
@@ -336,6 +336,7 @@ var streamline = function(ir, log) {
|
||||
var slot = 0
|
||||
var typ = null
|
||||
var rule = null
|
||||
var cw_keys = null
|
||||
|
||||
if (instructions == null) {
|
||||
return array(func.nr_slots)
|
||||
@@ -362,6 +363,19 @@ var streamline = function(ir, log) {
|
||||
i = i + 1
|
||||
}
|
||||
|
||||
// Closure-written slots can have any type at runtime — mark unknown
|
||||
if (func.closure_written != null) {
|
||||
cw_keys = array(func.closure_written)
|
||||
k = 0
|
||||
while (k < length(cw_keys)) {
|
||||
slot = number(cw_keys[k])
|
||||
if (slot >= 0 && slot < length(write_types)) {
|
||||
write_types[slot] = T_UNKNOWN
|
||||
}
|
||||
k = k + 1
|
||||
}
|
||||
}
|
||||
|
||||
// Filter to only slots with known (non-unknown) types
|
||||
k = 0
|
||||
while (k < length(write_types)) {
|
||||
@@ -1475,6 +1489,100 @@ var streamline = function(ir, log) {
|
||||
return null
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// Pre-pass: mark closure-written slots
|
||||
// Scans child functions for 'put' instructions and annotates
|
||||
// the target ancestor func with closure_written[slot] = true.
|
||||
// =========================================================
|
||||
var mark_closure_writes = function(ir) {
|
||||
var functions = ir.functions != null ? ir.functions : []
|
||||
var fc = length(functions)
|
||||
var parent_of = array(fc, -1)
|
||||
var instrs = null
|
||||
var instr = null
|
||||
var fi = 0
|
||||
var i = 0
|
||||
var j = 0
|
||||
var level = 0
|
||||
var anc = 0
|
||||
var slot = 0
|
||||
var target = null
|
||||
|
||||
if (fc == 0) {
|
||||
return null
|
||||
}
|
||||
|
||||
// Build parent_of map
|
||||
if (ir.main != null && ir.main.instructions != null) {
|
||||
instrs = ir.main.instructions
|
||||
i = 0
|
||||
while (i < length(instrs)) {
|
||||
instr = instrs[i]
|
||||
if (is_array(instr) && instr[0] == "function") {
|
||||
if (instr[2] >= 0 && instr[2] < fc) {
|
||||
parent_of[instr[2]] = fc
|
||||
}
|
||||
}
|
||||
i = i + 1
|
||||
}
|
||||
}
|
||||
fi = 0
|
||||
while (fi < fc) {
|
||||
instrs = functions[fi].instructions
|
||||
if (instrs != null) {
|
||||
i = 0
|
||||
while (i < length(instrs)) {
|
||||
instr = instrs[i]
|
||||
if (is_array(instr) && instr[0] == "function") {
|
||||
if (instr[2] >= 0 && instr[2] < fc) {
|
||||
parent_of[instr[2]] = fi
|
||||
}
|
||||
}
|
||||
i = i + 1
|
||||
}
|
||||
}
|
||||
fi = fi + 1
|
||||
}
|
||||
|
||||
// Scan for 'put' instructions and mark ancestor slots
|
||||
fi = 0
|
||||
while (fi < fc) {
|
||||
instrs = functions[fi].instructions
|
||||
if (instrs != null) {
|
||||
i = 0
|
||||
while (i < length(instrs)) {
|
||||
instr = instrs[i]
|
||||
if (is_array(instr) && instr[0] == "put") {
|
||||
slot = instr[2]
|
||||
level = instr[3]
|
||||
anc = fi
|
||||
j = 0
|
||||
while (j < level && anc >= 0) {
|
||||
anc = parent_of[anc]
|
||||
j = j + 1
|
||||
}
|
||||
if (anc >= 0) {
|
||||
if (anc == fc) {
|
||||
target = ir.main
|
||||
} else {
|
||||
target = functions[anc]
|
||||
}
|
||||
if (target != null) {
|
||||
if (target.closure_written == null) {
|
||||
target.closure_written = {}
|
||||
}
|
||||
target.closure_written[text(slot)] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
i = i + 1
|
||||
}
|
||||
}
|
||||
fi = fi + 1
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// Compose all passes
|
||||
// =========================================================
|
||||
@@ -1530,6 +1638,12 @@ var streamline = function(ir, log) {
|
||||
return null
|
||||
}
|
||||
|
||||
// Pre-pass: mark slots written by child closures via 'put' instructions.
|
||||
// Without this, infer_slot_write_types would assume those slots keep their
|
||||
// initial type (e.g. T_NULL from 'var x = null'), causing the type-check
|
||||
// eliminator to mis-optimize comparisons on closure-written variables.
|
||||
mark_closure_writes(ir)
|
||||
|
||||
// Process main function
|
||||
if (ir.main != null) {
|
||||
optimize_function(ir.main, log)
|
||||
|
||||
26
vm_suite.ce
26
vm_suite.ce
@@ -4284,6 +4284,32 @@ run("closure set and get", function() {
|
||||
assert_eq(o.get(), 42, "overwrite")
|
||||
})
|
||||
|
||||
run("closure write heap values visible to outer scope", function() {
|
||||
var a = null
|
||||
var b = null
|
||||
var c = null
|
||||
var d = null
|
||||
var e = null
|
||||
var f1 = function() { a = 42 }
|
||||
var f2 = function() { b = true }
|
||||
var f3 = function() { c = "hello" }
|
||||
var f4 = function() { d = {x: 1} }
|
||||
var f5 = function() { e = [1, 2] }
|
||||
f1()
|
||||
f2()
|
||||
f3()
|
||||
f4()
|
||||
f5()
|
||||
assert_eq(a, 42, "closure write number")
|
||||
assert_eq(b, true, "closure write boolean")
|
||||
assert_eq(c != null, true, "closure write text not null")
|
||||
assert_eq(c, "hello", "closure write text value")
|
||||
assert_eq(d != null, true, "closure write object not null")
|
||||
assert_eq(d.x, 1, "closure write object property")
|
||||
assert_eq(e != null, true, "closure write array not null")
|
||||
assert_eq(e[0], 1, "closure write array element")
|
||||
})
|
||||
|
||||
// ============================================================================
|
||||
// STRING COMPARISON OPERATORS
|
||||
// ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user