@elaraai/east 1.0.97 → 1.0.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/src/builtins.d.ts +1 -1
- package/dist/src/builtins.d.ts.map +1 -1
- package/dist/src/builtins.js +14 -0
- package/dist/src/builtins.js.map +1 -1
- package/dist/src/codegen/spellings.d.ts.map +1 -1
- package/dist/src/codegen/spellings.js +2 -0
- package/dist/src/codegen/spellings.js.map +1 -1
- package/dist/src/comparison.d.ts +6 -5
- package/dist/src/comparison.d.ts.map +1 -1
- package/dist/src/comparison.js +6 -5
- package/dist/src/comparison.js.map +1 -1
- package/dist/src/compile/builtins/array.d.ts +4 -0
- package/dist/src/compile/builtins/array.d.ts.map +1 -1
- package/dist/src/compile/builtins/array.js +15 -1
- package/dist/src/compile/builtins/array.js.map +1 -1
- package/dist/src/compile/builtins/dict.d.ts +4 -0
- package/dist/src/compile/builtins/dict.d.ts.map +1 -1
- package/dist/src/compile/builtins/dict.js +14 -1
- package/dist/src/compile/builtins/dict.js.map +1 -1
- package/dist/src/compile/builtins/tree.d.ts +13 -0
- package/dist/src/compile/builtins/tree.d.ts.map +1 -1
- package/dist/src/compile/builtins/tree.js +27 -1
- package/dist/src/compile/builtins/tree.js.map +1 -1
- package/dist/src/compile/builtins/vector.d.ts +2 -2
- package/dist/src/compile/constructors.d.ts +6 -1
- package/dist/src/compile/constructors.d.ts.map +1 -1
- package/dist/src/compile/constructors.js +21 -11
- package/dist/src/compile/constructors.js.map +1 -1
- package/dist/src/compile/control.d.ts +7 -1
- package/dist/src/compile/control.d.ts.map +1 -1
- package/dist/src/compile/control.js +228 -146
- package/dist/src/compile/control.js.map +1 -1
- package/dist/src/compile/flow.d.ts +138 -0
- package/dist/src/compile/flow.d.ts.map +1 -0
- package/dist/src/compile/flow.js +358 -0
- package/dist/src/compile/flow.js.map +1 -0
- package/dist/src/compile/functions.d.ts +9 -1
- package/dist/src/compile/functions.d.ts.map +1 -1
- package/dist/src/compile/functions.js +62 -69
- package/dist/src/compile/functions.js.map +1 -1
- package/dist/src/compile/ir.d.ts +12 -0
- package/dist/src/compile/ir.d.ts.map +1 -1
- package/dist/src/compile/ir.js +164 -40
- package/dist/src/compile/ir.js.map +1 -1
- package/dist/src/compile/runtime.d.ts +2 -16
- package/dist/src/compile/runtime.d.ts.map +1 -1
- package/dist/src/compile/runtime.js +5 -40
- package/dist/src/compile/runtime.js.map +1 -1
- package/dist/src/compile.control_flow.spec.d.ts +6 -0
- package/dist/src/compile.control_flow.spec.d.ts.map +1 -0
- package/dist/src/compile.control_flow.spec.js +219 -0
- package/dist/src/compile.control_flow.spec.js.map +1 -0
- package/dist/src/compile.d.ts +1 -1
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +1 -1
- package/dist/src/compile.js.map +1 -1
- package/dist/src/eastir.d.ts.map +1 -1
- package/dist/src/eastir.js +8 -30
- package/dist/src/eastir.js.map +1 -1
- package/dist/src/expr/array.d.ts +39 -0
- package/dist/src/expr/array.d.ts.map +1 -1
- package/dist/src/expr/array.js +47 -0
- package/dist/src/expr/array.js.map +1 -1
- package/dist/src/expr/dict.d.ts +44 -1
- package/dist/src/expr/dict.d.ts.map +1 -1
- package/dist/src/expr/dict.js +54 -2
- package/dist/src/expr/dict.js.map +1 -1
- package/dist/src/expr/index.d.ts +130 -0
- package/dist/src/expr/index.d.ts.map +1 -1
- package/dist/src/expr/index.js +133 -0
- package/dist/src/expr/index.js.map +1 -1
- package/dist/src/expr/named.d.ts +100 -0
- package/dist/src/expr/named.d.ts.map +1 -0
- package/dist/src/expr/named.js +182 -0
- package/dist/src/expr/named.js.map +1 -0
- package/dist/src/functions.d.ts +21 -0
- package/dist/src/functions.d.ts.map +1 -1
- package/dist/src/functions.js +22 -41
- package/dist/src/functions.js.map +1 -1
- package/dist/src/internal.d.ts +1 -0
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +4 -0
- package/dist/src/internal.js.map +1 -1
- package/dist/src/ir_locations.d.ts +24 -0
- package/dist/src/ir_locations.d.ts.map +1 -0
- package/dist/src/ir_locations.js +58 -0
- package/dist/src/ir_locations.js.map +1 -0
- package/dist/src/location.d.ts +10 -0
- package/dist/src/location.d.ts.map +1 -1
- package/dist/src/location.js +19 -1
- package/dist/src/location.js.map +1 -1
- package/dist/src/query/jq/catalog.js +1 -1
- package/dist/src/query/jq/catalog.js.map +1 -1
- package/dist/src/query/jq/translate-builtins.d.ts.map +1 -1
- package/dist/src/query/jq/translate-builtins.js +11 -2
- package/dist/src/query/jq/translate-builtins.js.map +1 -1
- package/dist/src/query/jq/translate.d.ts +12 -0
- package/dist/src/query/jq/translate.d.ts.map +1 -1
- package/dist/src/query/jq/translate.js +40 -0
- package/dist/src/query/jq/translate.js.map +1 -1
- package/dist/src/runner_exec.d.ts +4 -1
- package/dist/src/runner_exec.d.ts.map +1 -1
- package/dist/src/runner_exec.js +24 -12
- package/dist/src/runner_exec.js.map +1 -1
- package/dist/src/runner_merge.d.ts +18 -0
- package/dist/src/runner_merge.d.ts.map +1 -1
- package/dist/src/runner_merge.js +36 -2
- package/dist/src/runner_merge.js.map +1 -1
- package/dist/src/serialization/beast2/decoded-function.spec.js +7 -4
- package/dist/src/serialization/beast2/decoded-function.spec.js.map +1 -1
- package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
- package/dist/src/serialization/beast2/shared.js +6 -21
- package/dist/src/serialization/beast2/shared.js.map +1 -1
- package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v4/container.js +3 -4
- package/dist/src/serialization/beast2/v4/container.js.map +1 -1
- package/dist/src/serialization/beast2/v4/type-table.d.ts +42 -14
- package/dist/src/serialization/beast2/v4/type-table.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v4/type-table.js +139 -53
- package/dist/src/serialization/beast2/v4/type-table.js.map +1 -1
- package/dist/src/serialization/beast2/v5/codec.d.ts +29 -2
- package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/codec.js +153 -27
- package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/manifest.d.ts +3 -3
- package/dist/src/serialization/beast2/v5/manifest.js +3 -3
- package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/runs.js +16 -4
- package/dist/src/serialization/beast2/v5/runs.js.map +1 -1
- package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/source-maps.spec.js +81 -0
- package/dist/src/serialization/beast2/v5/source-maps.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/type-section.js +1 -1
- package/dist/src/serialization/beast2/v5/type-section.js.map +1 -1
- package/dist/src/type_of_type.d.ts +12 -33
- package/dist/src/type_of_type.d.ts.map +1 -1
- package/dist/src/type_of_type.js +46 -174
- package/dist/src/type_of_type.js.map +1 -1
- package/dist/src/type_of_type.recursive_id.spec.d.ts +6 -0
- package/dist/src/type_of_type.recursive_id.spec.d.ts.map +1 -0
- package/dist/src/type_of_type.recursive_id.spec.js +86 -0
- package/dist/src/type_of_type.recursive_id.spec.js.map +1 -0
- package/dist/src/type_of_type.to_etv.spec.js +9 -9
- package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
- package/dist/src/type_value_equal.d.ts +31 -0
- package/dist/src/type_value_equal.d.ts.map +1 -0
- package/dist/src/type_value_equal.js +170 -0
- package/dist/src/type_value_equal.js.map +1 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +3 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/compile/control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/compile/control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { AnalyzedIR } from "../analyze.js";
|
|
6
|
+
import type { IR } from "../ir.js";
|
|
7
|
+
import type { RuntimeContext } from "./runtime.js";
|
|
8
|
+
/** @internal Which control statement a {@link ControlSignal} is of. */
|
|
9
|
+
export type ControlKind = "return" | "continue" | "break";
|
|
10
|
+
/**
|
|
11
|
+
* @internal What a compiled closure gives in place of a value when a
|
|
12
|
+
* `return`, a `continue` or a `break` leaves it.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* A `continue` or a `break` gives the signal its node made as it compiled,
|
|
16
|
+
* the same each time; a `return` gives a new one, holding its value. No East
|
|
17
|
+
* value is a ControlSignal, so a node tells one from a value by `instanceof`.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ControlSignal {
|
|
20
|
+
readonly kind: ControlKind;
|
|
21
|
+
readonly label: string;
|
|
22
|
+
readonly value: unknown;
|
|
23
|
+
/**
|
|
24
|
+
* @param kind - Which control statement gave it
|
|
25
|
+
* @param label - The label of the loop a `continue` or `break` names; empty for a `return`
|
|
26
|
+
* @param value - The value a `return` gives; `null` for a `continue` or `break`
|
|
27
|
+
*/
|
|
28
|
+
constructor(kind: ControlKind, label: string, value: unknown);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @internal The signals evaluating a node can let out of it.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* A loop keeps the `continue`s and `break`s that name it, and a function every
|
|
35
|
+
* `return`; a `continue` or `break` names a loop of the function it is in.
|
|
36
|
+
*/
|
|
37
|
+
export interface Escapes {
|
|
38
|
+
/** Whether a `return` can leave the node. */
|
|
39
|
+
readonly returns: boolean;
|
|
40
|
+
/** The labels of the loops a `continue` leaving the node can name. */
|
|
41
|
+
readonly continues: readonly string[];
|
|
42
|
+
/** The labels of the loops a `break` leaving the node can name. */
|
|
43
|
+
readonly breaks: readonly string[];
|
|
44
|
+
}
|
|
45
|
+
/** @internal What a node no signal can leave lets out: one object, so such a node is told by `===`. */
|
|
46
|
+
export declare const NO_ESCAPES: Escapes;
|
|
47
|
+
/**
|
|
48
|
+
* @internal Runs `compile`, the compile of `root`, knowing what can leave each
|
|
49
|
+
* of its nodes.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* One walk of the IR, the bodies of the functions in it included, keeps what
|
|
53
|
+
* can leave each node something can leave; the compile reads it
|
|
54
|
+
* ({@link escapesOf}), so the walk is all control flow costs a compile where
|
|
55
|
+
* the IR has none. An IR may share a node: what can leave one is its own,
|
|
56
|
+
* wherever it is. A compile may run inside another's — a platform function's
|
|
57
|
+
* factory may compile a function it decodes — so the one around it is put
|
|
58
|
+
* back after it.
|
|
59
|
+
*
|
|
60
|
+
* @typeParam T - What `compile` gives
|
|
61
|
+
* @param root - The IR compiled
|
|
62
|
+
* @param compile - Its compile
|
|
63
|
+
* @returns What `compile` gives
|
|
64
|
+
*/
|
|
65
|
+
export declare function withControlFlow<T>(root: IR, compile: () => T): T;
|
|
66
|
+
/**
|
|
67
|
+
* @internal The signals evaluating `ir`, a node of the IR being compiled, can
|
|
68
|
+
* let out of it.
|
|
69
|
+
*
|
|
70
|
+
* @param ir - The node
|
|
71
|
+
* @returns What can leave it: {@link NO_ESCAPES} when nothing can
|
|
72
|
+
* @throws {Error} When no compile is running ({@link withControlFlow})
|
|
73
|
+
*/
|
|
74
|
+
export declare function escapesOf(ir: IR): Escapes;
|
|
75
|
+
/**
|
|
76
|
+
* @internal Whether a loop of `label` must read what its body gives: whether
|
|
77
|
+
* a signal other than its own `continue` can leave the body — its own `break`,
|
|
78
|
+
* a `return`, or a `continue` or `break` of a loop outside it.
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* A body its own `continue` leaves needs nothing done: the loop goes on to its
|
|
82
|
+
* next iteration, as it would have.
|
|
83
|
+
*
|
|
84
|
+
* @param body - The loop's body
|
|
85
|
+
* @param label - The loop's label
|
|
86
|
+
* @returns Whether the loop must look at what each run of its body gives
|
|
87
|
+
*/
|
|
88
|
+
export declare function loopReads(body: IR, label: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* @internal Whether a node gives back a signal that leaves it, rather than
|
|
91
|
+
* throwing it: whether it runs statements, or gives no value of its own.
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* A cast, an unwrap and a wrap compile to their value's closure, so each is as
|
|
95
|
+
* its value is.
|
|
96
|
+
*
|
|
97
|
+
* @param ir - The node
|
|
98
|
+
* @returns Whether its closure gives a signal back
|
|
99
|
+
*/
|
|
100
|
+
export declare function givesSignals(ir: IR): boolean;
|
|
101
|
+
/** A compiled closure: the code a node runs, given its variables. */
|
|
102
|
+
type Compiled = (ctx: RuntimeContext) => any;
|
|
103
|
+
/**
|
|
104
|
+
* @internal A child, compiled where its parent uses its value: a signal it
|
|
105
|
+
* gives back is thrown, as a parent that computes a value from the child's
|
|
106
|
+
* has no way to give one back.
|
|
107
|
+
*
|
|
108
|
+
* @param ir - The child
|
|
109
|
+
* @param compiled - Its closure
|
|
110
|
+
* @returns The closure, throwing a signal it gives; `compiled` itself when it can give none
|
|
111
|
+
*/
|
|
112
|
+
export declare function asValue(ir: AnalyzedIR, compiled: Compiled): Compiled;
|
|
113
|
+
/**
|
|
114
|
+
* @internal A child, compiled where its parent gives signals back: a signal
|
|
115
|
+
* it throws — one a node under it that computes a value threw — is given
|
|
116
|
+
* back.
|
|
117
|
+
*
|
|
118
|
+
* @param ir - The child
|
|
119
|
+
* @param compiled - Its closure
|
|
120
|
+
* @returns The closure, giving back a signal it throws; `compiled` itself when it can throw none
|
|
121
|
+
*/
|
|
122
|
+
export declare function asStatement(ir: AnalyzedIR, compiled: Compiled): Compiled;
|
|
123
|
+
/**
|
|
124
|
+
* @internal What a function gives for what its body gave: a `return`'s value
|
|
125
|
+
* for its signal.
|
|
126
|
+
*
|
|
127
|
+
* @remarks
|
|
128
|
+
* A `continue` or a `break` names a loop of the function it is in, so one that
|
|
129
|
+
* leaves the body names none — IR the builders never write. It is raised at
|
|
130
|
+
* the function, as it was raised at the call when control flow was thrown.
|
|
131
|
+
*
|
|
132
|
+
* @param body - The function's body
|
|
133
|
+
* @param loc_id - The function's location, which a raised `continue` or `break` names
|
|
134
|
+
* @returns The exit; undefined when no signal can leave the body, whose value is then the function's
|
|
135
|
+
*/
|
|
136
|
+
export declare function functionExit(body: IR, loc_id: bigint): ((given: unknown) => unknown) | undefined;
|
|
137
|
+
export {};
|
|
138
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/compile/flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAoBnD,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1D;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAMZ,QAAQ,CAAC,IAAI,EAAE,WAAW;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;IALvF;;;;OAIG;gBACkB,IAAI,EAAE,WAAW,EAAW,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,OAAO;CACxF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,uGAAuG;AACvG,eAAO,MAAM,UAAU,EAAE,OAAoG,CAAC;AAY9H;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAahE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAGzC;AAqID;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAsB5C;AAED,qEAAqE;AACrE,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAKpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAiBxE;AAcD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAWhG"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal What a compiled closure gives in place of a value when a
|
|
3
|
+
* `return`, a `continue` or a `break` leaves it.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A `continue` or a `break` gives the signal its node made as it compiled,
|
|
7
|
+
* the same each time; a `return` gives a new one, holding its value. No East
|
|
8
|
+
* value is a ControlSignal, so a node tells one from a value by `instanceof`.
|
|
9
|
+
*/
|
|
10
|
+
export class ControlSignal {
|
|
11
|
+
kind;
|
|
12
|
+
label;
|
|
13
|
+
value;
|
|
14
|
+
/**
|
|
15
|
+
* @param kind - Which control statement gave it
|
|
16
|
+
* @param label - The label of the loop a `continue` or `break` names; empty for a `return`
|
|
17
|
+
* @param value - The value a `return` gives; `null` for a `continue` or `break`
|
|
18
|
+
*/
|
|
19
|
+
constructor(kind, label, value) {
|
|
20
|
+
this.kind = kind;
|
|
21
|
+
this.label = label;
|
|
22
|
+
this.value = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** @internal What a node no signal can leave lets out: one object, so such a node is told by `===`. */
|
|
26
|
+
export const NO_ESCAPES = Object.freeze({ returns: false, continues: Object.freeze([]), breaks: Object.freeze([]) });
|
|
27
|
+
/**
|
|
28
|
+
* What can leave each node something can leave, of the IR being compiled —
|
|
29
|
+
* every node not in it, nothing — from one walk of the IR
|
|
30
|
+
* ({@link withControlFlow}); undefined while nothing compiles.
|
|
31
|
+
*/
|
|
32
|
+
let leaving;
|
|
33
|
+
/** Whether nothing can leave any node of the IR being compiled: {@link leaving} is empty, as it is for most IR. */
|
|
34
|
+
let quiet = true;
|
|
35
|
+
/**
|
|
36
|
+
* @internal Runs `compile`, the compile of `root`, knowing what can leave each
|
|
37
|
+
* of its nodes.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* One walk of the IR, the bodies of the functions in it included, keeps what
|
|
41
|
+
* can leave each node something can leave; the compile reads it
|
|
42
|
+
* ({@link escapesOf}), so the walk is all control flow costs a compile where
|
|
43
|
+
* the IR has none. An IR may share a node: what can leave one is its own,
|
|
44
|
+
* wherever it is. A compile may run inside another's — a platform function's
|
|
45
|
+
* factory may compile a function it decodes — so the one around it is put
|
|
46
|
+
* back after it.
|
|
47
|
+
*
|
|
48
|
+
* @typeParam T - What `compile` gives
|
|
49
|
+
* @param root - The IR compiled
|
|
50
|
+
* @param compile - Its compile
|
|
51
|
+
* @returns What `compile` gives
|
|
52
|
+
*/
|
|
53
|
+
export function withControlFlow(root, compile) {
|
|
54
|
+
const around = leaving;
|
|
55
|
+
const aroundQuiet = quiet;
|
|
56
|
+
const known = new Map();
|
|
57
|
+
walk(root, known);
|
|
58
|
+
leaving = known;
|
|
59
|
+
quiet = known.size === 0;
|
|
60
|
+
try {
|
|
61
|
+
return compile();
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
leaving = around;
|
|
65
|
+
quiet = aroundQuiet;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @internal The signals evaluating `ir`, a node of the IR being compiled, can
|
|
70
|
+
* let out of it.
|
|
71
|
+
*
|
|
72
|
+
* @param ir - The node
|
|
73
|
+
* @returns What can leave it: {@link NO_ESCAPES} when nothing can
|
|
74
|
+
* @throws {Error} When no compile is running ({@link withControlFlow})
|
|
75
|
+
*/
|
|
76
|
+
export function escapesOf(ir) {
|
|
77
|
+
if (leaving === undefined)
|
|
78
|
+
throw new Error(`What can leave an IR node is known only while its compile runs, at loc_id ${ir.value.loc_id}`);
|
|
79
|
+
return quiet ? NO_ESCAPES : leaving.get(ir) ?? NO_ESCAPES;
|
|
80
|
+
}
|
|
81
|
+
/** What can leave `ir`, from what can leave its children: each node something can leave is kept in `into`. */
|
|
82
|
+
function walk(ir, into) {
|
|
83
|
+
const escapes = walkNode(ir, into);
|
|
84
|
+
if (escapes !== NO_ESCAPES)
|
|
85
|
+
into.set(ir, escapes);
|
|
86
|
+
return escapes;
|
|
87
|
+
}
|
|
88
|
+
/** What can leave a node, from what can leave its children, each walked. The commonest nodes come first. */
|
|
89
|
+
function walkNode(ir, into) {
|
|
90
|
+
switch (ir.type) {
|
|
91
|
+
case "Variable":
|
|
92
|
+
case "Value":
|
|
93
|
+
return NO_ESCAPES;
|
|
94
|
+
case "Builtin":
|
|
95
|
+
case "Platform":
|
|
96
|
+
return walkAll(ir.value.arguments, into);
|
|
97
|
+
case "Let":
|
|
98
|
+
case "Assign":
|
|
99
|
+
case "As":
|
|
100
|
+
case "Variant":
|
|
101
|
+
case "NewRef":
|
|
102
|
+
case "UnwrapRecursive":
|
|
103
|
+
case "WrapRecursive":
|
|
104
|
+
return walk(ir.value.value, into);
|
|
105
|
+
case "Block":
|
|
106
|
+
return walkAll(ir.value.statements, into);
|
|
107
|
+
case "GetField":
|
|
108
|
+
return walk(ir.value.struct, into);
|
|
109
|
+
case "Call":
|
|
110
|
+
case "CallAsync":
|
|
111
|
+
return union(walk(ir.value.function, into), walkAll(ir.value.arguments, into));
|
|
112
|
+
case "Struct": {
|
|
113
|
+
let escapes = NO_ESCAPES;
|
|
114
|
+
for (const field of ir.value.fields)
|
|
115
|
+
escapes = union(escapes, walk(field.value, into));
|
|
116
|
+
return escapes;
|
|
117
|
+
}
|
|
118
|
+
case "IfElse": {
|
|
119
|
+
let escapes = NO_ESCAPES;
|
|
120
|
+
for (const { predicate, body } of ir.value.ifs)
|
|
121
|
+
escapes = union(union(escapes, walk(predicate, into)), walk(body, into));
|
|
122
|
+
return union(escapes, walk(ir.value.else_body, into));
|
|
123
|
+
}
|
|
124
|
+
case "Match": {
|
|
125
|
+
let escapes = walk(ir.value.variant, into);
|
|
126
|
+
for (const c of ir.value.cases)
|
|
127
|
+
escapes = union(escapes, walk(c.body, into));
|
|
128
|
+
return escapes;
|
|
129
|
+
}
|
|
130
|
+
// A function keeps every signal its body gives: its value, or (for a
|
|
131
|
+
// `continue` or `break`, which names a loop of the function it is in) its
|
|
132
|
+
// error.
|
|
133
|
+
case "Function":
|
|
134
|
+
case "AsyncFunction":
|
|
135
|
+
walk(ir.value.body, into);
|
|
136
|
+
return NO_ESCAPES;
|
|
137
|
+
case "NewArray":
|
|
138
|
+
case "NewSet":
|
|
139
|
+
case "NewVector":
|
|
140
|
+
case "NewMatrix":
|
|
141
|
+
return walkAll(ir.value.values, into);
|
|
142
|
+
case "NewDict": {
|
|
143
|
+
let escapes = NO_ESCAPES;
|
|
144
|
+
for (const { key, value } of ir.value.values)
|
|
145
|
+
escapes = union(union(escapes, walk(key, into)), walk(value, into));
|
|
146
|
+
return escapes;
|
|
147
|
+
}
|
|
148
|
+
// A loop's predicate or collection is evaluated outside its body: what leaves one leaves the loop.
|
|
149
|
+
case "ForArray":
|
|
150
|
+
return union(walk(ir.value.array, into), leavingLoop(walk(ir.value.body, into), ir.value.label.name));
|
|
151
|
+
case "ForDict":
|
|
152
|
+
return union(walk(ir.value.dict, into), leavingLoop(walk(ir.value.body, into), ir.value.label.name));
|
|
153
|
+
case "ForSet":
|
|
154
|
+
return union(walk(ir.value.set, into), leavingLoop(walk(ir.value.body, into), ir.value.label.name));
|
|
155
|
+
case "While":
|
|
156
|
+
return union(walk(ir.value.predicate, into), leavingLoop(walk(ir.value.body, into), ir.value.label.name));
|
|
157
|
+
case "TryCatch":
|
|
158
|
+
return union(union(walk(ir.value.try_body, into), walk(ir.value.catch_body, into)), walk(ir.value.finally_body, into));
|
|
159
|
+
case "Return":
|
|
160
|
+
return withReturn(walk(ir.value.value, into));
|
|
161
|
+
case "Continue":
|
|
162
|
+
return { returns: false, continues: [ir.value.label.name], breaks: [] };
|
|
163
|
+
case "Break":
|
|
164
|
+
return { returns: false, continues: [], breaks: [ir.value.label.name] };
|
|
165
|
+
case "Error":
|
|
166
|
+
return walk(ir.value.message, into);
|
|
167
|
+
default:
|
|
168
|
+
throw new Error(`Unhandled IR type ${ir.type}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/** What can leave any of some nodes, each walked. */
|
|
172
|
+
function walkAll(nodes, into) {
|
|
173
|
+
let escapes = NO_ESCAPES;
|
|
174
|
+
for (const node of nodes)
|
|
175
|
+
escapes = union(escapes, walk(node, into));
|
|
176
|
+
return escapes;
|
|
177
|
+
}
|
|
178
|
+
/** What can leave either of two nodes: one of them itself, when it holds all the other does. */
|
|
179
|
+
function union(a, b) {
|
|
180
|
+
if (a === NO_ESCAPES || a === b)
|
|
181
|
+
return b;
|
|
182
|
+
if (b === NO_ESCAPES)
|
|
183
|
+
return a;
|
|
184
|
+
const returns = a.returns || b.returns;
|
|
185
|
+
const continues = labels(a.continues, b.continues);
|
|
186
|
+
const breaks = labels(a.breaks, b.breaks);
|
|
187
|
+
if (returns === a.returns && continues === a.continues && breaks === a.breaks)
|
|
188
|
+
return a;
|
|
189
|
+
if (returns === b.returns && continues === b.continues && breaks === b.breaks)
|
|
190
|
+
return b;
|
|
191
|
+
return { returns, continues, breaks };
|
|
192
|
+
}
|
|
193
|
+
/** The labels in either list, each once: `a` itself when it holds all `b`'s. */
|
|
194
|
+
function labels(a, b) {
|
|
195
|
+
if (a.length === 0)
|
|
196
|
+
return b;
|
|
197
|
+
let both;
|
|
198
|
+
for (const label of b) {
|
|
199
|
+
if (!a.includes(label))
|
|
200
|
+
(both ??= [...a]).push(label);
|
|
201
|
+
}
|
|
202
|
+
return both ?? a;
|
|
203
|
+
}
|
|
204
|
+
/** What can leave a `return`: itself, and what can leave its value. */
|
|
205
|
+
function withReturn(escapes) {
|
|
206
|
+
return escapes.returns ? escapes : { returns: true, continues: escapes.continues, breaks: escapes.breaks };
|
|
207
|
+
}
|
|
208
|
+
/** What can leave a loop of `label` from what can leave its body: all but the `continue`s and `break`s that name the loop. */
|
|
209
|
+
function leavingLoop(escapes, label) {
|
|
210
|
+
if (escapes === NO_ESCAPES)
|
|
211
|
+
return escapes;
|
|
212
|
+
const continues = escapes.continues.filter(l => l !== label);
|
|
213
|
+
const breaks = escapes.breaks.filter(l => l !== label);
|
|
214
|
+
if (!escapes.returns && continues.length === 0 && breaks.length === 0)
|
|
215
|
+
return NO_ESCAPES;
|
|
216
|
+
if (continues.length === escapes.continues.length && breaks.length === escapes.breaks.length)
|
|
217
|
+
return escapes;
|
|
218
|
+
return { returns: escapes.returns, continues, breaks };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* @internal Whether a loop of `label` must read what its body gives: whether
|
|
222
|
+
* a signal other than its own `continue` can leave the body — its own `break`,
|
|
223
|
+
* a `return`, or a `continue` or `break` of a loop outside it.
|
|
224
|
+
*
|
|
225
|
+
* @remarks
|
|
226
|
+
* A body its own `continue` leaves needs nothing done: the loop goes on to its
|
|
227
|
+
* next iteration, as it would have.
|
|
228
|
+
*
|
|
229
|
+
* @param body - The loop's body
|
|
230
|
+
* @param label - The loop's label
|
|
231
|
+
* @returns Whether the loop must look at what each run of its body gives
|
|
232
|
+
*/
|
|
233
|
+
export function loopReads(body, label) {
|
|
234
|
+
const escapes = escapesOf(body);
|
|
235
|
+
return escapes.returns || escapes.breaks.length > 0 || escapes.continues.some(l => l !== label);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* @internal Whether a node gives back a signal that leaves it, rather than
|
|
239
|
+
* throwing it: whether it runs statements, or gives no value of its own.
|
|
240
|
+
*
|
|
241
|
+
* @remarks
|
|
242
|
+
* A cast, an unwrap and a wrap compile to their value's closure, so each is as
|
|
243
|
+
* its value is.
|
|
244
|
+
*
|
|
245
|
+
* @param ir - The node
|
|
246
|
+
* @returns Whether its closure gives a signal back
|
|
247
|
+
*/
|
|
248
|
+
export function givesSignals(ir) {
|
|
249
|
+
let node = ir;
|
|
250
|
+
while (node.type === "As" || node.type === "UnwrapRecursive" || node.type === "WrapRecursive")
|
|
251
|
+
node = node.value.value;
|
|
252
|
+
switch (node.type) {
|
|
253
|
+
case "Block":
|
|
254
|
+
case "IfElse":
|
|
255
|
+
case "Match":
|
|
256
|
+
case "TryCatch":
|
|
257
|
+
case "While":
|
|
258
|
+
case "ForArray":
|
|
259
|
+
case "ForSet":
|
|
260
|
+
case "ForDict":
|
|
261
|
+
case "Let":
|
|
262
|
+
case "Assign":
|
|
263
|
+
case "Return":
|
|
264
|
+
case "Continue":
|
|
265
|
+
case "Break":
|
|
266
|
+
case "Error":
|
|
267
|
+
return true;
|
|
268
|
+
default:
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* @internal A child, compiled where its parent uses its value: a signal it
|
|
274
|
+
* gives back is thrown, as a parent that computes a value from the child's
|
|
275
|
+
* has no way to give one back.
|
|
276
|
+
*
|
|
277
|
+
* @param ir - The child
|
|
278
|
+
* @param compiled - Its closure
|
|
279
|
+
* @returns The closure, throwing a signal it gives; `compiled` itself when it can give none
|
|
280
|
+
*/
|
|
281
|
+
export function asValue(ir, compiled) {
|
|
282
|
+
if (escapesOf(ir) === NO_ESCAPES || !givesSignals(ir))
|
|
283
|
+
return compiled;
|
|
284
|
+
return ir.value.isAsync
|
|
285
|
+
? async (ctx) => thrownIfSignal(await compiled(ctx))
|
|
286
|
+
: (ctx) => thrownIfSignal(compiled(ctx));
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* @internal A child, compiled where its parent gives signals back: a signal
|
|
290
|
+
* it throws — one a node under it that computes a value threw — is given
|
|
291
|
+
* back.
|
|
292
|
+
*
|
|
293
|
+
* @param ir - The child
|
|
294
|
+
* @param compiled - Its closure
|
|
295
|
+
* @returns The closure, giving back a signal it throws; `compiled` itself when it can throw none
|
|
296
|
+
*/
|
|
297
|
+
export function asStatement(ir, compiled) {
|
|
298
|
+
if (escapesOf(ir) === NO_ESCAPES || givesSignals(ir))
|
|
299
|
+
return compiled;
|
|
300
|
+
return ir.value.isAsync
|
|
301
|
+
? async (ctx) => {
|
|
302
|
+
try {
|
|
303
|
+
return await compiled(ctx);
|
|
304
|
+
}
|
|
305
|
+
catch (e) {
|
|
306
|
+
return signalOf(e);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
: (ctx) => {
|
|
310
|
+
try {
|
|
311
|
+
return compiled(ctx);
|
|
312
|
+
}
|
|
313
|
+
catch (e) {
|
|
314
|
+
return signalOf(e);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/** A value, or its signal thrown. */
|
|
319
|
+
function thrownIfSignal(value) {
|
|
320
|
+
if (value instanceof ControlSignal)
|
|
321
|
+
throw value;
|
|
322
|
+
return value;
|
|
323
|
+
}
|
|
324
|
+
/** A thrown signal, given back; anything else, thrown on. */
|
|
325
|
+
function signalOf(e) {
|
|
326
|
+
if (e instanceof ControlSignal)
|
|
327
|
+
return e;
|
|
328
|
+
throw e;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* @internal What a function gives for what its body gave: a `return`'s value
|
|
332
|
+
* for its signal.
|
|
333
|
+
*
|
|
334
|
+
* @remarks
|
|
335
|
+
* A `continue` or a `break` names a loop of the function it is in, so one that
|
|
336
|
+
* leaves the body names none — IR the builders never write. It is raised at
|
|
337
|
+
* the function, as it was raised at the call when control flow was thrown.
|
|
338
|
+
*
|
|
339
|
+
* @param body - The function's body
|
|
340
|
+
* @param loc_id - The function's location, which a raised `continue` or `break` names
|
|
341
|
+
* @returns The exit; undefined when no signal can leave the body, whose value is then the function's
|
|
342
|
+
*/
|
|
343
|
+
export function functionExit(body, loc_id) {
|
|
344
|
+
const escapes = escapesOf(body);
|
|
345
|
+
if (escapes === NO_ESCAPES)
|
|
346
|
+
return undefined;
|
|
347
|
+
if (escapes.continues.length === 0 && escapes.breaks.length === 0) {
|
|
348
|
+
return (given) => given instanceof ControlSignal ? given.value : given;
|
|
349
|
+
}
|
|
350
|
+
return (given) => {
|
|
351
|
+
if (!(given instanceof ControlSignal))
|
|
352
|
+
return given;
|
|
353
|
+
if (given.kind === "return")
|
|
354
|
+
return given.value;
|
|
355
|
+
throw new Error(`${given.kind} failed to find label ${given.label} at loc_id ${loc_id}`);
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/compile/flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,14 @@ import type { AsyncFunctionIR, BuiltinIR, CallAsyncIR, CallIR, FunctionIR, IR, P
|
|
|
8
8
|
import type { SourceMap } from "../location.js";
|
|
9
9
|
import type { PlatformFunction } from "../platform.js";
|
|
10
10
|
import type { EastTypeValue } from "../type_of_type.js";
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Compiles the function definitions, calls, and builtin and platform calls.
|
|
13
|
+
*
|
|
14
|
+
* A function gives its value, never a control signal: what its body gives
|
|
15
|
+
* for a `return` is the function's value (`functionExit`), so a call, East's
|
|
16
|
+
* or a builtin's or a platform's, gets the value alone. A call, a builtin or
|
|
17
|
+
* a platform function computes a value from its arguments, so a control
|
|
18
|
+
* statement an argument leaves is thrown (`asValue`, `flow.ts`).
|
|
19
|
+
*/
|
|
12
20
|
export declare function compile_functions(ir: AnalyzedIR<FunctionIR | AsyncFunctionIR | CallIR | CallAsyncIR | BuiltinIR | PlatformIR>, ctx: Record<string, EastTypeValue>, platform: Record<string, (...args: any[]) => any>, asyncPlatformFns: Set<string>, platformDef: PlatformFunction[], compilingNodes: Set<IR>, source_map: SourceMap | null): (ctx: RuntimeContext) => any;
|
|
13
21
|
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/compile/functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/compile/functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAoH,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAGrK,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5G,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,GAAG,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,CAmd1W"}
|