Files
cell/boot/fd.cm.mcode

2244 lines
22 KiB
Plaintext

{
"name": "fd.cm",
"functions": [
{
"disruption_pc": 0,
"nr_slots": 4,
"nr_close_slots": 0,
"instructions": [
[
"put",
2,
3,
1,
7,
12
],
[
"return",
1,
8,
12
],
"_nop_ur_1",
"_nop_ur_2"
],
"name": "<anonymous>",
"filename": "fd.cm",
"nr_args": 2
},
{
"disruption_pc": 0,
"nr_slots": 10,
"nr_close_slots": 0,
"instructions": [
[
"null",
3,
5,
14
],
[
"function",
4,
0,
6,
21
],
[
"access",
6,
{
"name": "replace",
"kind": "name",
"make": "intrinsic"
},
6,
3
],
[
"frame",
7,
6,
3,
6,
3
],
[
"null",
8,
6,
3
],
[
"setarg",
7,
0,
8,
6,
3
],
[
"setarg",
7,
1,
1,
6,
3
],
[
"setarg",
7,
2,
2,
6,
3
],
[
"setarg",
7,
3,
4,
6,
3
],
[
"invoke",
7,
5,
6,
3
],
[
"return",
3,
10,
10
],
"_nop_ur_1",
"_nop_ur_2"
],
"name": "last_pos",
"filename": "fd.cm",
"nr_args": 2
},
{
"disruption_pc": 0,
"nr_slots": 23,
"nr_close_slots": 0,
"instructions": [
[
"regexp",
5,
"\\/+$",
"",
15,
25
],
[
"access",
6,
"",
15,
33
],
[
"access",
8,
{
"name": "replace",
"kind": "name",
"make": "intrinsic"
},
15,
11
],
[
"frame",
9,
8,
3,
15,
11
],
[
"null",
10,
15,
11
],
[
"setarg",
9,
0,
10,
15,
11
],
[
"setarg",
9,
1,
1,
15,
11
],
[
"setarg",
9,
2,
5,
15,
11
],
[
"setarg",
9,
3,
6,
15,
11
],
[
"invoke",
9,
7,
15,
11
],
[
"move",
3,
7,
15,
11
],
[
"regexp",
11,
"^\\/+",
"",
16,
24
],
[
"access",
12,
"",
16,
32
],
[
"access",
14,
{
"name": "replace",
"kind": "name",
"make": "intrinsic"
},
16,
11
],
[
"frame",
15,
14,
3,
16,
11
],
[
"null",
16,
16,
11
],
[
"setarg",
15,
0,
16,
16,
11
],
[
"setarg",
15,
1,
2,
16,
11
],
[
"setarg",
15,
2,
11,
16,
11
],
[
"setarg",
15,
3,
12,
16,
11
],
[
"invoke",
15,
13,
16,
11
],
[
"move",
4,
13,
16,
11
],
"_nop_bl_1",
[
"jump_true",
3,
"if_else_0",
17,
8
],
[
"return",
4,
17,
18
],
"_nop_ur_1",
"if_else_0",
"if_end_1",
"_nop_bl_2",
[
"jump_true",
4,
"if_else_2",
18,
8
],
[
"return",
3,
18,
18
],
"_nop_ur_2",
"if_else_2",
"if_end_3",
[
"access",
19,
"/",
19,
14
],
[
"add",
20,
3,
19,
19,
14
],
[
"add",
21,
20,
4,
19,
20
],
[
"return",
21,
19,
20
],
"_nop_ur_3",
"_nop_ur_4"
],
"name": "join_paths",
"filename": "fd.cm",
"nr_args": 2
},
{
"disruption_pc": 0,
"nr_slots": 19,
"nr_close_slots": 0,
"instructions": [
[
"access",
3,
"/",
24,
29
],
[
"get",
5,
4,
1,
24,
14
],
[
"frame",
6,
5,
2,
24,
14
],
[
"null",
7,
24,
14
],
[
"setarg",
6,
0,
7,
24,
14
],
[
"setarg",
6,
1,
1,
24,
14
],
[
"setarg",
6,
2,
3,
24,
14
],
[
"invoke",
6,
4,
24,
14
],
[
"move",
2,
4,
24,
14
],
[
"null",
8,
25,
15
],
[
"is_identical",
9,
2,
8,
25,
15
],
[
"jump_true",
9,
"eq_done_6",
25,
15
],
[
"is_int",
10,
2,
25,
15
],
[
"jump_false",
10,
"eq_ni_7",
25,
15
],
"_nop_tc_1",
[
"jump",
"eq_ni_7",
25,
15
],
[
"eq_int",
9,
2,
8,
25,
15
],
[
"jump",
"eq_done_6",
25,
15
],
"eq_ni_7",
[
"is_num",
10,
2,
25,
15
],
[
"jump_false",
10,
"eq_nn_8",
25,
15
],
"_nop_tc_2",
[
"jump",
"eq_nn_8",
25,
15
],
[
"eq_float",
9,
2,
8,
25,
15
],
[
"jump",
"eq_done_6",
25,
15
],
"eq_nn_8",
[
"is_text",
10,
2,
25,
15
],
[
"jump_false",
10,
"eq_nt_9",
25,
15
],
"_nop_tc_3",
[
"jump",
"eq_nt_9",
25,
15
],
[
"eq_text",
9,
2,
8,
25,
15
],
[
"jump",
"eq_done_6",
25,
15
],
"eq_nt_9",
[
"is_null",
10,
2,
25,
15
],
[
"jump_false",
10,
"eq_nnl_10",
25,
15
],
"_nop_tc_4",
"_nop_tc_5",
[
"true",
9,
25,
15
],
[
"jump",
"eq_done_6",
25,
15
],
"eq_nnl_10",
[
"is_bool",
10,
2,
25,
15
],
[
"jump_false",
10,
"eq_nb_11",
25,
15
],
"_nop_tc_6",
[
"jump",
"eq_nb_11",
25,
15
],
[
"eq_bool",
9,
2,
8,
25,
15
],
[
"jump",
"eq_done_6",
25,
15
],
"eq_nb_11",
[
"false",
9,
25,
15
],
"eq_done_6",
[
"jump_false",
9,
"if_else_4",
25,
15
],
[
"return",
1,
25,
28
],
"_nop_ur_1",
"if_else_4",
"if_end_5",
[
"access",
12,
1,
26,
26
],
[
"add",
13,
2,
12,
26,
26
],
[
"access",
15,
{
"name": "text",
"kind": "name",
"make": "intrinsic"
},
26,
10
],
[
"frame",
16,
15,
2,
26,
10
],
[
"null",
17,
26,
10
],
[
"setarg",
16,
0,
17,
26,
10
],
[
"setarg",
16,
1,
1,
26,
10
],
[
"setarg",
16,
2,
13,
26,
10
],
[
"tail_invoke",
16,
14,
26,
10
],
[
"return",
14,
26,
10
],
"_nop_ur_2",
"_nop_ur_3"
],
"name": "basename",
"filename": "fd.cm",
"nr_args": 1
},
{
"disruption_pc": 0,
"nr_slots": 19,
"nr_close_slots": 0,
"instructions": [
[
"access",
3,
"/",
30,
29
],
[
"get",
5,
4,
1,
30,
14
],
[
"frame",
6,
5,
2,
30,
14
],
[
"null",
7,
30,
14
],
[
"setarg",
6,
0,
7,
30,
14
],
[
"setarg",
6,
1,
1,
30,
14
],
[
"setarg",
6,
2,
3,
30,
14
],
[
"invoke",
6,
4,
30,
14
],
[
"move",
2,
4,
30,
14
],
[
"null",
8,
31,
15
],
[
"is_identical",
9,
2,
8,
31,
15
],
[
"jump_true",
9,
"eq_done_14",
31,
15
],
[
"is_int",
10,
2,
31,
15
],
[
"jump_false",
10,
"eq_ni_15",
31,
15
],
"_nop_tc_1",
[
"jump",
"eq_ni_15",
31,
15
],
[
"eq_int",
9,
2,
8,
31,
15
],
[
"jump",
"eq_done_14",
31,
15
],
"eq_ni_15",
[
"is_num",
10,
2,
31,
15
],
[
"jump_false",
10,
"eq_nn_16",
31,
15
],
"_nop_tc_2",
[
"jump",
"eq_nn_16",
31,
15
],
[
"eq_float",
9,
2,
8,
31,
15
],
[
"jump",
"eq_done_14",
31,
15
],
"eq_nn_16",
[
"is_text",
10,
2,
31,
15
],
[
"jump_false",
10,
"eq_nt_17",
31,
15
],
"_nop_tc_3",
[
"jump",
"eq_nt_17",
31,
15
],
[
"eq_text",
9,
2,
8,
31,
15
],
[
"jump",
"eq_done_14",
31,
15
],
"eq_nt_17",
[
"is_null",
10,
2,
31,
15
],
[
"jump_false",
10,
"eq_nnl_18",
31,
15
],
"_nop_tc_4",
"_nop_tc_5",
[
"true",
9,
31,
15
],
[
"jump",
"eq_done_14",
31,
15
],
"eq_nnl_18",
[
"is_bool",
10,
2,
31,
15
],
[
"jump_false",
10,
"eq_nb_19",
31,
15
],
"_nop_tc_6",
[
"jump",
"eq_nb_19",
31,
15
],
[
"eq_bool",
9,
2,
8,
31,
15
],
[
"jump",
"eq_done_14",
31,
15
],
"eq_nb_19",
[
"false",
9,
31,
15
],
"eq_done_14",
[
"jump_false",
9,
"if_else_12",
31,
15
],
[
"access",
12,
"",
31,
28
],
[
"return",
12,
31,
28
],
"_nop_ur_1",
"if_else_12",
"if_end_13",
[
"access",
13,
0,
32,
20
],
[
"access",
15,
{
"name": "text",
"kind": "name",
"make": "intrinsic"
},
32,
10
],
[
"frame",
16,
15,
3,
32,
10
],
[
"null",
17,
32,
10
],
[
"setarg",
16,
0,
17,
32,
10
],
[
"setarg",
16,
1,
1,
32,
10
],
[
"setarg",
16,
2,
13,
32,
10
],
[
"setarg",
16,
3,
2,
32,
10
],
[
"tail_invoke",
16,
14,
32,
10
],
[
"return",
14,
32,
10
],
"_nop_ur_2",
"_nop_ur_3"
],
"name": "dirname",
"filename": "fd.cm",
"nr_args": 1
},
{
"disruption_pc": 0,
"nr_slots": 18,
"nr_close_slots": 0,
"instructions": [
[
"access",
3,
".",
36,
29
],
[
"get",
5,
4,
1,
36,
14
],
[
"frame",
6,
5,
2,
36,
14
],
[
"null",
7,
36,
14
],
[
"setarg",
6,
0,
7,
36,
14
],
[
"setarg",
6,
1,
1,
36,
14
],
[
"setarg",
6,
2,
3,
36,
14
],
[
"invoke",
6,
4,
36,
14
],
[
"move",
2,
4,
36,
14
],
[
"null",
8,
37,
15
],
[
"is_identical",
9,
2,
8,
37,
15
],
[
"jump_true",
9,
"eq_done_22",
37,
15
],
[
"is_int",
10,
2,
37,
15
],
[
"jump_false",
10,
"eq_ni_23",
37,
15
],
"_nop_tc_1",
[
"jump",
"eq_ni_23",
37,
15
],
[
"eq_int",
9,
2,
8,
37,
15
],
[
"jump",
"eq_done_22",
37,
15
],
"eq_ni_23",
[
"is_num",
10,
2,
37,
15
],
[
"jump_false",
10,
"eq_nn_24",
37,
15
],
"_nop_tc_2",
[
"jump",
"eq_nn_24",
37,
15
],
[
"eq_float",
9,
2,
8,
37,
15
],
[
"jump",
"eq_done_22",
37,
15
],
"eq_nn_24",
[
"is_text",
10,
2,
37,
15
],
[
"jump_false",
10,
"eq_nt_25",
37,
15
],
"_nop_tc_3",
[
"jump",
"eq_nt_25",
37,
15
],
[
"eq_text",
9,
2,
8,
37,
15
],
[
"jump",
"eq_done_22",
37,
15
],
"eq_nt_25",
[
"is_null",
10,
2,
37,
15
],
[
"jump_false",
10,
"eq_nnl_26",
37,
15
],
"_nop_tc_4",
"_nop_tc_5",
[
"true",
9,
37,
15
],
[
"jump",
"eq_done_22",
37,
15
],
"eq_nnl_26",
[
"is_bool",
10,
2,
37,
15
],
[
"jump_false",
10,
"eq_nb_27",
37,
15
],
"_nop_tc_6",
[
"jump",
"eq_nb_27",
37,
15
],
[
"eq_bool",
9,
2,
8,
37,
15
],
[
"jump",
"eq_done_22",
37,
15
],
"eq_nb_27",
[
"false",
9,
37,
15
],
"eq_done_22",
[
"jump_false",
9,
"if_else_20",
37,
15
],
[
"return",
1,
37,
28
],
"_nop_ur_1",
"if_else_20",
"if_end_21",
[
"access",
12,
0,
38,
20
],
[
"access",
14,
{
"name": "text",
"kind": "name",
"make": "intrinsic"
},
38,
10
],
[
"frame",
15,
14,
3,
38,
10
],
[
"null",
16,
38,
10
],
[
"setarg",
15,
0,
16,
38,
10
],
[
"setarg",
15,
1,
1,
38,
10
],
[
"setarg",
15,
2,
12,
38,
10
],
[
"setarg",
15,
3,
2,
38,
10
],
[
"tail_invoke",
15,
13,
38,
10
],
[
"return",
13,
38,
10
],
"_nop_ur_2",
"_nop_ur_3"
],
"name": "stem",
"filename": "fd.cm",
"nr_args": 1
},
{
"disruption_pc": 0,
"nr_slots": 31,
"nr_close_slots": 0,
"instructions": [
[
"move",
4,
2,
42,
14
],
[
"null",
9,
43,
15
],
[
"is_identical",
10,
4,
9,
43,
15
],
[
"jump_true",
10,
"eq_done_30",
43,
15
],
[
"is_int",
11,
4,
43,
15
],
[
"jump_false",
11,
"eq_ni_31",
43,
15
],
"_nop_tc_1",
[
"jump",
"eq_ni_31",
43,
15
],
[
"eq_int",
10,
4,
9,
43,
15
],
[
"jump",
"eq_done_30",
43,
15
],
"eq_ni_31",
[
"is_num",
11,
4,
43,
15
],
[
"jump_false",
11,
"eq_nn_32",
43,
15
],
"_nop_tc_2",
[
"jump",
"eq_nn_32",
43,
15
],
[
"eq_float",
10,
4,
9,
43,
15
],
[
"jump",
"eq_done_30",
43,
15
],
"eq_nn_32",
[
"is_text",
11,
4,
43,
15
],
[
"jump_false",
11,
"eq_nt_33",
43,
15
],
"_nop_tc_3",
[
"jump",
"eq_nt_33",
43,
15
],
[
"eq_text",
10,
4,
9,
43,
15
],
[
"jump",
"eq_done_30",
43,
15
],
"eq_nt_33",
[
"is_null",
11,
4,
43,
15
],
[
"jump_false",
11,
"eq_nnl_34",
43,
15
],
"_nop_tc_4",
"_nop_tc_5",
[
"true",
10,
43,
15
],
[
"jump",
"eq_done_30",
43,
15
],
"eq_nnl_34",
[
"is_bool",
11,
4,
43,
15
],
[
"jump_false",
11,
"eq_nb_35",
43,
15
],
"_nop_tc_6",
[
"jump",
"eq_nb_35",
43,
15
],
[
"eq_bool",
10,
4,
9,
43,
15
],
[
"jump",
"eq_done_30",
43,
15
],
"eq_nb_35",
[
"false",
10,
43,
15
],
"eq_done_30",
[
"jump_false",
10,
"if_else_28",
43,
15
],
[
"access",
13,
".",
43,
28
],
[
"move",
4,
13,
43,
28
],
[
"jump",
"if_end_29",
43,
28
],
"if_else_28",
"if_end_29",
[
"array",
14,
0,
44,
17
],
[
"move",
6,
14,
44,
17
],
[
"get",
16,
2,
1,
92,
12
],
[
"is_proxy",
17,
16,
92,
12
],
[
"jump_false",
17,
"record_path_36",
92,
12
],
[
"null",
18,
92,
12
],
[
"access",
19,
"stat",
92,
12
],
[
"array",
20,
0,
92,
12
],
[
"push",
20,
4,
92,
12
],
[
"frame",
21,
16,
2,
92,
12
],
[
"setarg",
21,
0,
18,
92,
12
],
[
"setarg",
21,
1,
19,
92,
12
],
[
"setarg",
21,
2,
20,
92,
12
],
[
"invoke",
21,
15,
92,
12
],
[
"jump",
"call_done_37",
92,
12
],
"record_path_36",
[
"load_field",
22,
16,
"stat",
92,
12
],
[
"frame",
23,
22,
1,
92,
12
],
[
"setarg",
23,
0,
16,
92,
12
],
[
"setarg",
23,
1,
4,
92,
12
],
[
"invoke",
23,
15,
92,
12
],
"call_done_37",
[
"move",
8,
15,
92,
12
],
[
"move",
24,
8,
93,
7
],
[
"jump_false",
24,
"and_end_40",
93,
7
],
[
"load_field",
25,
8,
"isDirectory",
93,
13
],
[
"move",
24,
25,
93,
13
],
"and_end_40",
[
"jump_false",
24,
"if_else_38",
93,
13
],
[
"access",
26,
"",
94,
17
],
[
"frame",
28,
3,
2,
94,
5
],
[
"null",
29,
94,
5
],
[
"setarg",
28,
0,
29,
94,
5
],
[
"setarg",
28,
1,
4,
94,
5
],
[
"setarg",
28,
2,
26,
94,
5
],
[
"invoke",
28,
27,
94,
5
],
[
"jump",
"if_end_39",
94,
5
],
"if_else_38",
"if_end_39",
[
"return",
6,
97,
10
],
"_nop_ur_1",
"_nop_ur_2"
],
"name": "<anonymous>",
"filename": "fd.cm",
"nr_args": 2
}
],
"main": {
"nr_args": 0,
"nr_close_slots": 0,
"nr_slots": 22,
"instructions": [
[
"function",
5,
1,
0,
0
],
[
"move",
4,
5,
0,
0
],
[
"function",
6,
2,
0,
0
],
[
"move",
1,
6,
0,
0
],
[
"access",
7,
"internal/fd",
1,
14
],
[
"access",
9,
{
"name": "use",
"kind": "name",
"make": "intrinsic"
},
1,
10
],
[
"frame",
10,
9,
1,
1,
10
],
[
"null",
11,
1,
10
],
[
"setarg",
10,
0,
11,
1,
10
],
[
"setarg",
10,
1,
7,
1,
10
],
[
"invoke",
10,
8,
1,
10
],
[
"move",
2,
8,
1,
10
],
[
"access",
12,
"wildstar",
2,
20
],
[
"access",
14,
{
"name": "use",
"kind": "name",
"make": "intrinsic"
},
2,
16
],
[
"frame",
15,
14,
1,
2,
16
],
[
"null",
16,
2,
16
],
[
"setarg",
15,
0,
16,
2,
16
],
[
"setarg",
15,
1,
12,
2,
16
],
[
"invoke",
15,
13,
2,
16
],
[
"move",
3,
13,
2,
16
],
[
"store_field",
2,
1,
"join_paths",
22,
1
],
[
"function",
17,
3,
23,
15
],
[
"store_field",
2,
17,
"basename",
23,
1
],
[
"function",
18,
4,
29,
14
],
[
"store_field",
2,
18,
"dirname",
29,
1
],
[
"function",
19,
5,
35,
11
],
[
"store_field",
2,
19,
"stem",
35,
1
],
[
"function",
20,
6,
41,
13
],
[
"store_field",
2,
20,
"globfs",
41,
1
],
[
"return",
2,
100,
8
],
"_nop_ur_1",
"_nop_ur_2"
]
},
"filename": "fd.cm",
"data": {}
}