@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.
Files changed (154) hide show
  1. package/README.md +0 -1
  2. package/dist/src/builtins.d.ts +1 -1
  3. package/dist/src/builtins.d.ts.map +1 -1
  4. package/dist/src/builtins.js +14 -0
  5. package/dist/src/builtins.js.map +1 -1
  6. package/dist/src/codegen/spellings.d.ts.map +1 -1
  7. package/dist/src/codegen/spellings.js +2 -0
  8. package/dist/src/codegen/spellings.js.map +1 -1
  9. package/dist/src/comparison.d.ts +6 -5
  10. package/dist/src/comparison.d.ts.map +1 -1
  11. package/dist/src/comparison.js +6 -5
  12. package/dist/src/comparison.js.map +1 -1
  13. package/dist/src/compile/builtins/array.d.ts +4 -0
  14. package/dist/src/compile/builtins/array.d.ts.map +1 -1
  15. package/dist/src/compile/builtins/array.js +15 -1
  16. package/dist/src/compile/builtins/array.js.map +1 -1
  17. package/dist/src/compile/builtins/dict.d.ts +4 -0
  18. package/dist/src/compile/builtins/dict.d.ts.map +1 -1
  19. package/dist/src/compile/builtins/dict.js +14 -1
  20. package/dist/src/compile/builtins/dict.js.map +1 -1
  21. package/dist/src/compile/builtins/tree.d.ts +13 -0
  22. package/dist/src/compile/builtins/tree.d.ts.map +1 -1
  23. package/dist/src/compile/builtins/tree.js +27 -1
  24. package/dist/src/compile/builtins/tree.js.map +1 -1
  25. package/dist/src/compile/builtins/vector.d.ts +2 -2
  26. package/dist/src/compile/constructors.d.ts +6 -1
  27. package/dist/src/compile/constructors.d.ts.map +1 -1
  28. package/dist/src/compile/constructors.js +21 -11
  29. package/dist/src/compile/constructors.js.map +1 -1
  30. package/dist/src/compile/control.d.ts +7 -1
  31. package/dist/src/compile/control.d.ts.map +1 -1
  32. package/dist/src/compile/control.js +228 -146
  33. package/dist/src/compile/control.js.map +1 -1
  34. package/dist/src/compile/flow.d.ts +138 -0
  35. package/dist/src/compile/flow.d.ts.map +1 -0
  36. package/dist/src/compile/flow.js +358 -0
  37. package/dist/src/compile/flow.js.map +1 -0
  38. package/dist/src/compile/functions.d.ts +9 -1
  39. package/dist/src/compile/functions.d.ts.map +1 -1
  40. package/dist/src/compile/functions.js +62 -69
  41. package/dist/src/compile/functions.js.map +1 -1
  42. package/dist/src/compile/ir.d.ts +12 -0
  43. package/dist/src/compile/ir.d.ts.map +1 -1
  44. package/dist/src/compile/ir.js +164 -40
  45. package/dist/src/compile/ir.js.map +1 -1
  46. package/dist/src/compile/runtime.d.ts +2 -16
  47. package/dist/src/compile/runtime.d.ts.map +1 -1
  48. package/dist/src/compile/runtime.js +5 -40
  49. package/dist/src/compile/runtime.js.map +1 -1
  50. package/dist/src/compile.control_flow.spec.d.ts +6 -0
  51. package/dist/src/compile.control_flow.spec.d.ts.map +1 -0
  52. package/dist/src/compile.control_flow.spec.js +219 -0
  53. package/dist/src/compile.control_flow.spec.js.map +1 -0
  54. package/dist/src/compile.d.ts +1 -1
  55. package/dist/src/compile.d.ts.map +1 -1
  56. package/dist/src/compile.js +1 -1
  57. package/dist/src/compile.js.map +1 -1
  58. package/dist/src/eastir.d.ts.map +1 -1
  59. package/dist/src/eastir.js +8 -30
  60. package/dist/src/eastir.js.map +1 -1
  61. package/dist/src/expr/array.d.ts +39 -0
  62. package/dist/src/expr/array.d.ts.map +1 -1
  63. package/dist/src/expr/array.js +47 -0
  64. package/dist/src/expr/array.js.map +1 -1
  65. package/dist/src/expr/dict.d.ts +44 -1
  66. package/dist/src/expr/dict.d.ts.map +1 -1
  67. package/dist/src/expr/dict.js +54 -2
  68. package/dist/src/expr/dict.js.map +1 -1
  69. package/dist/src/expr/index.d.ts +130 -0
  70. package/dist/src/expr/index.d.ts.map +1 -1
  71. package/dist/src/expr/index.js +133 -0
  72. package/dist/src/expr/index.js.map +1 -1
  73. package/dist/src/expr/named.d.ts +100 -0
  74. package/dist/src/expr/named.d.ts.map +1 -0
  75. package/dist/src/expr/named.js +182 -0
  76. package/dist/src/expr/named.js.map +1 -0
  77. package/dist/src/functions.d.ts +21 -0
  78. package/dist/src/functions.d.ts.map +1 -1
  79. package/dist/src/functions.js +22 -41
  80. package/dist/src/functions.js.map +1 -1
  81. package/dist/src/internal.d.ts +1 -0
  82. package/dist/src/internal.d.ts.map +1 -1
  83. package/dist/src/internal.js +4 -0
  84. package/dist/src/internal.js.map +1 -1
  85. package/dist/src/ir_locations.d.ts +24 -0
  86. package/dist/src/ir_locations.d.ts.map +1 -0
  87. package/dist/src/ir_locations.js +58 -0
  88. package/dist/src/ir_locations.js.map +1 -0
  89. package/dist/src/location.d.ts +10 -0
  90. package/dist/src/location.d.ts.map +1 -1
  91. package/dist/src/location.js +19 -1
  92. package/dist/src/location.js.map +1 -1
  93. package/dist/src/query/jq/catalog.js +1 -1
  94. package/dist/src/query/jq/catalog.js.map +1 -1
  95. package/dist/src/query/jq/translate-builtins.d.ts.map +1 -1
  96. package/dist/src/query/jq/translate-builtins.js +11 -2
  97. package/dist/src/query/jq/translate-builtins.js.map +1 -1
  98. package/dist/src/query/jq/translate.d.ts +12 -0
  99. package/dist/src/query/jq/translate.d.ts.map +1 -1
  100. package/dist/src/query/jq/translate.js +40 -0
  101. package/dist/src/query/jq/translate.js.map +1 -1
  102. package/dist/src/runner_exec.d.ts +4 -1
  103. package/dist/src/runner_exec.d.ts.map +1 -1
  104. package/dist/src/runner_exec.js +24 -12
  105. package/dist/src/runner_exec.js.map +1 -1
  106. package/dist/src/runner_merge.d.ts +18 -0
  107. package/dist/src/runner_merge.d.ts.map +1 -1
  108. package/dist/src/runner_merge.js +36 -2
  109. package/dist/src/runner_merge.js.map +1 -1
  110. package/dist/src/serialization/beast2/decoded-function.spec.js +7 -4
  111. package/dist/src/serialization/beast2/decoded-function.spec.js.map +1 -1
  112. package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
  113. package/dist/src/serialization/beast2/shared.js +6 -21
  114. package/dist/src/serialization/beast2/shared.js.map +1 -1
  115. package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
  116. package/dist/src/serialization/beast2/v4/container.js +3 -4
  117. package/dist/src/serialization/beast2/v4/container.js.map +1 -1
  118. package/dist/src/serialization/beast2/v4/type-table.d.ts +42 -14
  119. package/dist/src/serialization/beast2/v4/type-table.d.ts.map +1 -1
  120. package/dist/src/serialization/beast2/v4/type-table.js +139 -53
  121. package/dist/src/serialization/beast2/v4/type-table.js.map +1 -1
  122. package/dist/src/serialization/beast2/v5/codec.d.ts +29 -2
  123. package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
  124. package/dist/src/serialization/beast2/v5/codec.js +153 -27
  125. package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
  126. package/dist/src/serialization/beast2/v5/manifest.d.ts +3 -3
  127. package/dist/src/serialization/beast2/v5/manifest.js +3 -3
  128. package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -1
  129. package/dist/src/serialization/beast2/v5/runs.js +16 -4
  130. package/dist/src/serialization/beast2/v5/runs.js.map +1 -1
  131. package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts +6 -0
  132. package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts.map +1 -0
  133. package/dist/src/serialization/beast2/v5/source-maps.spec.js +81 -0
  134. package/dist/src/serialization/beast2/v5/source-maps.spec.js.map +1 -0
  135. package/dist/src/serialization/beast2/v5/type-section.js +1 -1
  136. package/dist/src/serialization/beast2/v5/type-section.js.map +1 -1
  137. package/dist/src/type_of_type.d.ts +12 -33
  138. package/dist/src/type_of_type.d.ts.map +1 -1
  139. package/dist/src/type_of_type.js +46 -174
  140. package/dist/src/type_of_type.js.map +1 -1
  141. package/dist/src/type_of_type.recursive_id.spec.d.ts +6 -0
  142. package/dist/src/type_of_type.recursive_id.spec.d.ts.map +1 -0
  143. package/dist/src/type_of_type.recursive_id.spec.js +86 -0
  144. package/dist/src/type_of_type.recursive_id.spec.js.map +1 -0
  145. package/dist/src/type_of_type.to_etv.spec.js +9 -9
  146. package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
  147. package/dist/src/type_value_equal.d.ts +31 -0
  148. package/dist/src/type_value_equal.d.ts.map +1 -0
  149. package/dist/src/type_value_equal.js +170 -0
  150. package/dist/src/type_value_equal.js.map +1 -0
  151. package/dist/src/types.d.ts.map +1 -1
  152. package/dist/src/types.js +3 -1
  153. package/dist/src/types.js.map +1 -1
  154. 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
- /** Compiles the function definitions, calls, and builtin and platform calls. */
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;AAGhD,OAAO,EAAwK,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAGzN,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;AAExD,gFAAgF;AAChF,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,CA2d1W"}
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"}