@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":"ir.js","sourceRoot":"","sources":["../../../src/compile/ir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../../src/compile/ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,22 +48,8 @@ export declare const iterationLocks: WeakMap<any, number>;
|
|
|
48
48
|
export declare const lockForIteration: (obj: any) => void;
|
|
49
49
|
/** @internal Unlock a collection after iteration */
|
|
50
50
|
export declare const unlockForIteration: (obj: any) => void;
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
value: any;
|
|
54
|
-
constructor(value: any);
|
|
55
|
-
}
|
|
56
|
-
/** @internal An exception throw for the purpose of early loop continue */
|
|
57
|
-
export declare class ContinueException {
|
|
58
|
-
label: string;
|
|
59
|
-
constructor(label: string);
|
|
60
|
-
}
|
|
61
|
-
/** @internal An exception throw for the purpose of early loop break */
|
|
62
|
-
export declare class BreakException {
|
|
63
|
-
label: string;
|
|
64
|
-
constructor(label: string);
|
|
65
|
-
}
|
|
66
|
-
/** Used to call a compiled function with the given arguments and handle errors within builtin functions */
|
|
51
|
+
/** Used to call a compiled function with the given arguments within builtin functions: the function gives
|
|
52
|
+
* its value, and a call nested too deeply is an East error at the builtin's location. */
|
|
67
53
|
export declare function call_function(loc_id: bigint, source_map: SourceMap | null, compiled_f: (...args: any[]) => any, ...args: any[]): any;
|
|
68
54
|
/** @internal The error a node that reads collections throws for `e`: a read a
|
|
69
55
|
* lazy input served that failed becomes an East error at this node's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAM3E,eAAO,MAAM,cAAc,EAAkC,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;AAI7F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAMtG;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAChC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAExB,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEzF;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAM/E;AAID;;+CAE+C;AAC/C,eAAO,MAAM,cAAc,+EAA0E,CAAC;AAEtG;;2EAE2E;AAC3E,eAAO,MAAM,kBAAkB,uDAAuD,CAAC;AAEvF;;;;;;;;mDAQmD;AACnD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIlG;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAEzD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,SAExC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,SAO1C,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAM3E,eAAO,MAAM,cAAc,EAAkC,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;AAI7F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAMtG;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAChC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAExB,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEzF;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAM/E;AAID;;+CAE+C;AAC/C,eAAO,MAAM,cAAc,+EAA0E,CAAC;AAEtG;;2EAE2E;AAC3E,eAAO,MAAM,kBAAkB,uDAAuD,CAAC;AAEvF;;;;;;;;mDAQmD;AACnD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIlG;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAEzD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,SAExC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,SAO1C,CAAC;AAEF;0FAC0F;AAC1F,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAMpI;AAED;;;yBAGyB;AACzB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIjG;AAED;yDACyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAE/J,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { EastError, InternalError, LazyReadError } from "../error.js";
|
|
|
3
3
|
import { printFor } from "../serialization/east.js";
|
|
4
4
|
import { EastTypeValueType } from "../type_of_type.js";
|
|
5
5
|
/* The pieces every compiled closure and builtin shares: the context values
|
|
6
|
-
* variables live in, the
|
|
7
|
-
*
|
|
6
|
+
* variables live in, the iteration locks, and the call into a compiled East
|
|
7
|
+
* function a builtin makes. Control flow is compiled as values (`flow.ts`). */
|
|
8
8
|
export const printTypeValue = printFor(EastTypeValueType);
|
|
9
9
|
// The symbols a compiled function value carries live in their own module, so
|
|
10
10
|
// the comparators that read function values need not import the compiler.
|
|
@@ -60,49 +60,14 @@ export const unlockForIteration = (obj) => {
|
|
|
60
60
|
iterationLocks.delete(obj);
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
-
/**
|
|
64
|
-
|
|
65
|
-
value;
|
|
66
|
-
constructor(value) {
|
|
67
|
-
this.value = value;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/** @internal An exception throw for the purpose of early loop continue */
|
|
71
|
-
export class ContinueException {
|
|
72
|
-
label;
|
|
73
|
-
constructor(label) {
|
|
74
|
-
this.label = label;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/** @internal An exception throw for the purpose of early loop break */
|
|
78
|
-
export class BreakException {
|
|
79
|
-
label;
|
|
80
|
-
constructor(label) {
|
|
81
|
-
this.label = label;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/** Used to call a compiled function with the given arguments and handle errors within builtin functions */
|
|
63
|
+
/** Used to call a compiled function with the given arguments within builtin functions: the function gives
|
|
64
|
+
* its value, and a call nested too deeply is an East error at the builtin's location. */
|
|
85
65
|
export function call_function(loc_id, source_map, compiled_f, ...args) {
|
|
86
66
|
try {
|
|
87
67
|
return compiled_f(...args);
|
|
88
68
|
}
|
|
89
69
|
catch (e) {
|
|
90
|
-
|
|
91
|
-
return e.value;
|
|
92
|
-
}
|
|
93
|
-
else if (e instanceof EastError) {
|
|
94
|
-
// TODO: push loc_id to EastError once SourceMap resolution is wired up
|
|
95
|
-
throw (e);
|
|
96
|
-
}
|
|
97
|
-
else if (e instanceof ContinueException) {
|
|
98
|
-
throw new Error(`continue failed to find label ${e.label} at loc_id ${loc_id}`);
|
|
99
|
-
}
|
|
100
|
-
else if (e instanceof BreakException) {
|
|
101
|
-
throw new Error(`break failed to find label ${e.label} at loc_id ${loc_id}`);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
throw callDepthErrorAt(e, loc_id, source_map);
|
|
105
|
-
}
|
|
70
|
+
throw callDepthErrorAt(e, loc_id, source_map);
|
|
106
71
|
}
|
|
107
72
|
}
|
|
108
73
|
/** @internal The error a node that reads collections throws for `e`: a read a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAsB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.control_flow.spec.d.ts","sourceRoot":"","sources":["../../src/compile.control_flow.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,219 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* The compiled `return`, `continue` and `break` (`compile/flow.ts`): signals a
|
|
7
|
+
* closure gives where a value would be, never thrown, but where the IR puts
|
|
8
|
+
* one under a node that computes a value. The cross-runtime cases are the
|
|
9
|
+
* exported "Block" suite's; this file pins what only the TypeScript runtime
|
|
10
|
+
* can get wrong — the positions that keep an exception, which the builders
|
|
11
|
+
* never write, built here as IR; a `continue` or `break` naming no loop; a
|
|
12
|
+
* control statement in a `finally`, as this runtime has always run one; a
|
|
13
|
+
* function value given to TypeScript, decoded, or compiled while another
|
|
14
|
+
* compiles; and errors' messages and locations.
|
|
15
|
+
*/
|
|
16
|
+
import { describe, test } from "node:test";
|
|
17
|
+
import assert from "node:assert/strict";
|
|
18
|
+
import { East, ArrayType, AsyncFunctionType, EastError, EastIR, AsyncEastIR, FunctionType, IntegerType, OptionType, decodeBeast2For, encodeBeast2For, toEastTypeValue, variant, some, none, } from "./index.js";
|
|
19
|
+
const Int = toEastTypeValue(IntegerType);
|
|
20
|
+
const Never = variant("Never", null);
|
|
21
|
+
/** An Integer literal. */
|
|
22
|
+
function int(n) {
|
|
23
|
+
return variant("Value", { type: Int, loc_id: 0n, value: variant("Integer", n) });
|
|
24
|
+
}
|
|
25
|
+
/** A `return` of `value`. */
|
|
26
|
+
function ret(value) {
|
|
27
|
+
return variant("Return", { type: Never, loc_id: 0n, value });
|
|
28
|
+
}
|
|
29
|
+
/** A function of no inputs giving an Integer, its body `body`. */
|
|
30
|
+
function fn(body) {
|
|
31
|
+
return variant("Function", { type: toEastTypeValue(FunctionType([], IntegerType)), loc_id: 0n, captures: [], parameters: [], body });
|
|
32
|
+
}
|
|
33
|
+
describe("a control statement under a node that computes a value", () => {
|
|
34
|
+
// The builders never write these: a `return` there has the type the
|
|
35
|
+
// function gives, and they take none but where a statement goes. The IR
|
|
36
|
+
// allows them, so the compiler throws the signal there and the statement
|
|
37
|
+
// around it gives it back.
|
|
38
|
+
test("a return in a builtin's argument leaves the function", () => {
|
|
39
|
+
const body = variant("Builtin", { type: Int, loc_id: 0n, builtin: "IntegerAdd", type_parameters: [], arguments: [ret(int(5n)), int(1n)] });
|
|
40
|
+
assert.equal(new EastIR(fn(body)).compile([])(), 5n);
|
|
41
|
+
});
|
|
42
|
+
test("a return in a call's argument leaves the function", () => {
|
|
43
|
+
const x = variant("Variable", { type: Int, name: "x", loc_id: 0n, mutable: false, captured: false });
|
|
44
|
+
const same = variant("Function", { type: toEastTypeValue(FunctionType([IntegerType], IntegerType)), loc_id: 0n, captures: [], parameters: [x], body: x });
|
|
45
|
+
const body = variant("Call", { type: Int, loc_id: 0n, function: same, arguments: [ret(int(7n))] });
|
|
46
|
+
assert.equal(new EastIR(fn(body)).compile([])(), 7n);
|
|
47
|
+
});
|
|
48
|
+
test("a return in an array's element leaves the function, past the let it was bound by", () => {
|
|
49
|
+
const xs = variant("Variable", { type: toEastTypeValue(ArrayType(IntegerType)), name: "xs", loc_id: 0n, mutable: false, captured: false });
|
|
50
|
+
const body = variant("Block", {
|
|
51
|
+
type: Int, loc_id: 0n, statements: [
|
|
52
|
+
variant("Let", { type: toEastTypeValue(ArrayType(IntegerType)), loc_id: 0n, variable: xs, value: variant("NewArray", { type: toEastTypeValue(ArrayType(IntegerType)), loc_id: 0n, values: [int(1n), ret(int(9n))] }) }),
|
|
53
|
+
int(0n),
|
|
54
|
+
],
|
|
55
|
+
});
|
|
56
|
+
assert.equal(new EastIR(fn(body)).compile([])(), 9n);
|
|
57
|
+
});
|
|
58
|
+
test("a return in an awaited call's argument leaves the async function", async () => {
|
|
59
|
+
const x = variant("Variable", { type: Int, name: "x", loc_id: 0n, mutable: false, captured: false });
|
|
60
|
+
const same = variant("AsyncFunction", { type: toEastTypeValue(AsyncFunctionType([IntegerType], IntegerType)), loc_id: 0n, captures: [], parameters: [x], body: x });
|
|
61
|
+
const body = variant("CallAsync", { type: Int, loc_id: 0n, function: same, arguments: [ret(int(11n))] });
|
|
62
|
+
const ir = variant("AsyncFunction", { type: toEastTypeValue(AsyncFunctionType([], IntegerType)), loc_id: 0n, captures: [], parameters: [], body });
|
|
63
|
+
assert.equal(await new AsyncEastIR(ir).compile([])(), 11n);
|
|
64
|
+
});
|
|
65
|
+
test("a continue in an awaited call's argument, in a loop, goes on to the loop's next row", async () => {
|
|
66
|
+
const same = East.asyncFunction([IntegerType], IntegerType, (_$, x) => x);
|
|
67
|
+
const sumPresent = East.asyncFunction([ArrayType(OptionType(IntegerType))], IntegerType, ($, xs) => {
|
|
68
|
+
const call = $.const(same);
|
|
69
|
+
const sum = $.let(0n);
|
|
70
|
+
$.for(xs, ($, x, _i, label) => {
|
|
71
|
+
// A continue arm is typed as giving nothing, though it gives Never: the match is an Integer
|
|
72
|
+
$.assign(sum, sum.add(call(x.match({ none: ($) => $.continue(label), some: (_$, v) => v }))));
|
|
73
|
+
});
|
|
74
|
+
return sum;
|
|
75
|
+
});
|
|
76
|
+
assert.equal(await East.compileAsync(sumPresent, [])([some(1n), none, some(2n), none, some(4n)]), 7n);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe("a continue or break naming no loop of its function", () => {
|
|
80
|
+
test("raises an error at the function, naming the label, as it did at the call", () => {
|
|
81
|
+
const body = variant("Block", { type: Never, loc_id: 0n, statements: [variant("Continue", { type: Never, loc_id: 3n, label: { name: "nowhere", loc_id: 3n } })] });
|
|
82
|
+
const ir = variant("Function", { type: toEastTypeValue(FunctionType([], IntegerType)), loc_id: 4n, captures: [], parameters: [], body });
|
|
83
|
+
assert.throws(() => new EastIR(ir).compile([])(), { message: "continue failed to find label nowhere at loc_id 4" });
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe("a control statement in a finally", () => {
|
|
87
|
+
// As when control flow was thrown, a control statement in a finally takes
|
|
88
|
+
// the place of what the try or the catch gave, or threw.
|
|
89
|
+
test("a return in a finally gives the function's value in place of the try's return", () => {
|
|
90
|
+
const f = East.function([], IntegerType, ($) => {
|
|
91
|
+
$.try(($) => { $.return(1n); }).finally(($) => { $.return(2n); });
|
|
92
|
+
return 3n;
|
|
93
|
+
});
|
|
94
|
+
assert.equal(East.compile(f, [])(), 2n);
|
|
95
|
+
});
|
|
96
|
+
test("a return in a finally gives the function's value in place of an error its catch raised", () => {
|
|
97
|
+
const f = East.function([], IntegerType, ($) => {
|
|
98
|
+
$.try(($) => { $.error("first"); }).catch(($) => { $.error("again"); }).finally(($) => { $.return(5n); });
|
|
99
|
+
return 3n;
|
|
100
|
+
});
|
|
101
|
+
assert.equal(East.compile(f, [])(), 5n);
|
|
102
|
+
});
|
|
103
|
+
test("a continue in a finally goes on to the loop's next row, past what follows the try", () => {
|
|
104
|
+
const f = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
|
|
105
|
+
const sum = $.let(0n);
|
|
106
|
+
const after = $.let(0n);
|
|
107
|
+
$.for(xs, ($, x, _i, label) => {
|
|
108
|
+
$.try(($) => { $.assign(sum, sum.add(x)); }).finally(($) => { $.continue(label); });
|
|
109
|
+
$.assign(after, after.add(1n));
|
|
110
|
+
});
|
|
111
|
+
return sum.multiply(10n).add(after);
|
|
112
|
+
});
|
|
113
|
+
// Every row is summed; none reaches the statement after its try
|
|
114
|
+
assert.equal(East.compile(f, [])([1n, 2n, 3n]), 60n);
|
|
115
|
+
});
|
|
116
|
+
test("in an async function whose try and finally await, a return in the finally gives its value", async () => {
|
|
117
|
+
const same = East.asyncFunction([IntegerType], IntegerType, (_$, x) => x);
|
|
118
|
+
const f = East.asyncFunction([], IntegerType, ($) => {
|
|
119
|
+
const call = $.const(same);
|
|
120
|
+
$.try(($) => { $.return(call(1n)); }).finally(($) => { $.return(call(2n)); });
|
|
121
|
+
return 3n;
|
|
122
|
+
});
|
|
123
|
+
assert.equal(await East.compileAsync(f, [])(), 2n);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
describe("a function value gives its value, never a signal", () => {
|
|
127
|
+
test("called by TypeScript, after an early return", () => {
|
|
128
|
+
const make = East.function([], FunctionType([IntegerType], IntegerType), (_$) => East.function([IntegerType], IntegerType, ($, x) => {
|
|
129
|
+
$.if(East.less(x, 0n), ($) => { $.return(0n); });
|
|
130
|
+
return x;
|
|
131
|
+
}));
|
|
132
|
+
const clamp = East.compile(make, [])();
|
|
133
|
+
assert.equal(clamp(-5n), 0n);
|
|
134
|
+
assert.equal(clamp(5n), 5n);
|
|
135
|
+
});
|
|
136
|
+
test("an async one called by TypeScript, after an early return from a loop that awaits", async () => {
|
|
137
|
+
const same = East.asyncFunction([IntegerType], IntegerType, (_$, x) => x);
|
|
138
|
+
const make = East.function([], AsyncFunctionType([ArrayType(IntegerType)], IntegerType), (_$) => East.asyncFunction([ArrayType(IntegerType)], IntegerType, ($, xs) => {
|
|
139
|
+
const call = $.const(same);
|
|
140
|
+
$.for(xs, ($, x) => {
|
|
141
|
+
$.if(East.greater(call(x), 2n), ($) => { $.return(x); });
|
|
142
|
+
});
|
|
143
|
+
return -1n;
|
|
144
|
+
}));
|
|
145
|
+
const firstOver2 = East.compile(make, [])();
|
|
146
|
+
assert.equal(await firstOver2([1n, 3n, 5n]), 3n);
|
|
147
|
+
assert.equal(await firstOver2([1n, 2n]), -1n);
|
|
148
|
+
});
|
|
149
|
+
test("decoded from beast2", () => {
|
|
150
|
+
const Fn = FunctionType([ArrayType(IntegerType)], IntegerType);
|
|
151
|
+
// The sum of the rows before the first negative one, the even ones skipped; a zero returns at once
|
|
152
|
+
const f = East.compile(East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
|
|
153
|
+
const sum = $.let(0n);
|
|
154
|
+
$.for(xs, ($, x, _i, label) => {
|
|
155
|
+
$.if(East.equal(x, 0n), ($) => { $.return(-100n); });
|
|
156
|
+
$.if(East.less(x, 0n), ($) => { $.break(label); });
|
|
157
|
+
$.if(East.equal(x.remainder(2n), 0n), ($) => { $.continue(label); });
|
|
158
|
+
$.assign(sum, sum.add(x));
|
|
159
|
+
});
|
|
160
|
+
return sum;
|
|
161
|
+
}), []);
|
|
162
|
+
const decoded = decodeBeast2For(Fn)(encodeBeast2For(Fn)(f));
|
|
163
|
+
assert.equal(decoded([1n, 2n, 3n, -1n, 5n]), 4n);
|
|
164
|
+
assert.equal(decoded([1n, 0n, 3n]), -100n);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe("a compile inside another's", () => {
|
|
168
|
+
test("compiles its own control flow, and the one around it goes on with its own", () => {
|
|
169
|
+
// A platform function's factory runs as the function calling it compiles: this one compiles a function whose loop breaks
|
|
170
|
+
const firstOver = East.genericPlatform("control_flow_first_over", ["T"], [ArrayType(IntegerType), IntegerType], IntegerType);
|
|
171
|
+
const implementation = firstOver.implement((_T) => {
|
|
172
|
+
const scan = East.compile(East.function([ArrayType(IntegerType), IntegerType], IntegerType, ($, xs, limit) => {
|
|
173
|
+
const found = $.let(-1n);
|
|
174
|
+
$.for(xs, ($, x, _i, label) => {
|
|
175
|
+
$.if(East.greater(x, limit), ($) => {
|
|
176
|
+
$.assign(found, x);
|
|
177
|
+
$.break(label);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
return found;
|
|
181
|
+
}), []);
|
|
182
|
+
return (xs, limit) => scan(xs, limit);
|
|
183
|
+
});
|
|
184
|
+
// The loop compiles after the platform call: its continue is known only by its own compile's walk
|
|
185
|
+
const outer = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
|
|
186
|
+
const first = $.const(firstOver([IntegerType], xs, 2n));
|
|
187
|
+
const total = $.let(0n);
|
|
188
|
+
$.for(xs, ($, x, _i, label) => {
|
|
189
|
+
$.if(East.equal(x, first), ($) => { $.continue(label); });
|
|
190
|
+
$.assign(total, total.add(x));
|
|
191
|
+
});
|
|
192
|
+
return total;
|
|
193
|
+
});
|
|
194
|
+
assert.equal(East.compile(outer, [implementation])([1n, 2n, 3n, 4n]), 7n);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
describe("an error raised past control flow", () => {
|
|
198
|
+
test("keeps its message and its location", () => {
|
|
199
|
+
const f = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
|
|
200
|
+
const sum = $.let(0n);
|
|
201
|
+
$.for(xs, ($, x, _i, label) => {
|
|
202
|
+
$.if(East.equal(x, 1n), ($) => { $.continue(label); });
|
|
203
|
+
$.if(East.equal(x, 3n), ($) => { $.error("three"); });
|
|
204
|
+
$.assign(sum, sum.add(x));
|
|
205
|
+
});
|
|
206
|
+
return sum;
|
|
207
|
+
});
|
|
208
|
+
try {
|
|
209
|
+
East.compile(f, [])([1n, 2n, 3n]);
|
|
210
|
+
assert.fail("expected the error");
|
|
211
|
+
}
|
|
212
|
+
catch (e) {
|
|
213
|
+
assert.ok(e instanceof EastError);
|
|
214
|
+
assert.equal(e.eastMessage, "three");
|
|
215
|
+
assert.ok(e.location.some(l => l.filename.includes("compile.control_flow.spec")), `expected a frame in this spec file, got: ${e.location.map(l => l.filename).join(", ")}`);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
//# sourceMappingURL=compile.control_flow.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.control_flow.spec.js","sourceRoot":"","sources":["../../src/compile.control_flow.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/src/compile.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
export { isTypeValueEqual } from "./type_of_type.js";
|
|
6
|
-
export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing,
|
|
6
|
+
export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing, type ContextValue, type RuntimeContext, } from "./compile/runtime.js";
|
|
7
7
|
export { compile_internal } from "./compile/ir.js";
|
|
8
8
|
export { applyTypeParameters } from "./compile/type_parameters.js";
|
|
9
9
|
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,GACvD,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/src/compile.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* module per node family, and the builtins with a module per domain. This
|
|
8
8
|
* module names what the package exports from it. */
|
|
9
9
|
export { isTypeValueEqual } from "./type_of_type.js";
|
|
10
|
-
export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing,
|
|
10
|
+
export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing, } from "./compile/runtime.js";
|
|
11
11
|
export { compile_internal } from "./compile/ir.js";
|
|
12
12
|
export { applyTypeParameters } from "./compile/type_parameters.js";
|
|
13
13
|
//# sourceMappingURL=compile.js.map
|
package/dist/src/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;oDAGoD;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;oDAGoD;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/src/eastir.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eastir.d.ts","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,qBAAa,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAEvC,EAAE,EAAE,UAAU;IAD1B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,UAAU;IASjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,WAAW,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"eastir.d.ts","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,qBAAa,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAEvC,EAAE,EAAE,UAAU;IAD1B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,UAAU;IASjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,WAAW,CAAC,MAAM,CAAC;CA8C3H;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAE5C,EAAE,EAAE,eAAe;IAD/B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,eAAe;IAStC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CA6CpI"}
|
package/dist/src/eastir.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
import {} from "./types.js";
|
|
6
|
-
import { compile_internal,
|
|
6
|
+
import { compile_internal, EAST_IR_SYMBOL, EAST_SOURCE_MAP_SYMBOL } from "./compile.js";
|
|
7
7
|
import { analyzeIR } from "./analyze.js";
|
|
8
8
|
import { with_source_map } from "./location.js";
|
|
9
9
|
/** A helper class wrapping East's "intermediate representation" (IR) for a free function.
|
|
@@ -44,22 +44,11 @@ export class EastIR {
|
|
|
44
44
|
const compiled_expr = this.source_map
|
|
45
45
|
? with_source_map(this.source_map, compile_fn)
|
|
46
46
|
: compile_fn();
|
|
47
|
-
// instantiate the function (with no environment)
|
|
47
|
+
// instantiate the function (with no environment), which gives its value:
|
|
48
|
+
// a `return` is a signal its body gives back to it, never thrown
|
|
48
49
|
const instantiated_function = compiled_expr({});
|
|
49
50
|
// Return sync wrapper
|
|
50
|
-
const wrapper = (...inputs) =>
|
|
51
|
-
try {
|
|
52
|
-
return instantiated_function(...inputs);
|
|
53
|
-
}
|
|
54
|
-
catch (e) {
|
|
55
|
-
if (e instanceof ReturnException) {
|
|
56
|
-
return e.value;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
throw e;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
51
|
+
const wrapper = (...inputs) => instantiated_function(...inputs);
|
|
63
52
|
// Attach IR and source map to wrapper for serialization support
|
|
64
53
|
Object.defineProperty(wrapper, EAST_IR_SYMBOL, {
|
|
65
54
|
value: this.ir,
|
|
@@ -114,22 +103,11 @@ export class AsyncEastIR {
|
|
|
114
103
|
const compiled_expr = this.source_map
|
|
115
104
|
? with_source_map(this.source_map, compile_fn)
|
|
116
105
|
: compile_fn();
|
|
117
|
-
// instantiate the function (with no environment)
|
|
106
|
+
// instantiate the function (with no environment), which gives its value:
|
|
107
|
+
// a `return` is a signal its body gives back to it, never thrown
|
|
118
108
|
const instantiated_function = compiled_expr({});
|
|
119
|
-
// Return async wrapper
|
|
120
|
-
const wrapper = async (...inputs) =>
|
|
121
|
-
try {
|
|
122
|
-
return await instantiated_function(...inputs);
|
|
123
|
-
}
|
|
124
|
-
catch (e) {
|
|
125
|
-
if (e instanceof ReturnException) {
|
|
126
|
-
return e.value;
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
throw e;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
};
|
|
109
|
+
// Return async wrapper: a promise, whether or not the body awaits
|
|
110
|
+
const wrapper = async (...inputs) => await instantiated_function(...inputs);
|
|
133
111
|
// Attach IR and source map to wrapper for serialization support
|
|
134
112
|
Object.defineProperty(wrapper, EAST_IR_SYMBOL, {
|
|
135
113
|
value: this.ir,
|
package/dist/src/eastir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eastir.js","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAoB,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"eastir.js","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAoB,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAkB,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,MAAM;IAEE;IADZ,UAAU,GAAqB,IAAI,CAAC;IAC3C,YAAmB,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;QAC/B,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAA4B;QAClC,yEAAyE;QACzE,yEAAyE;QACzE,yBAAyB;QACzB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU;YACjC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC9C,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjB,0DAA0D;QAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,0EAA0E;QAC1E,wEAAwE;QACxE,4DAA4D;QAC5D,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC9C,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjB,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,qBAAqB,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAEhD,sBAAsB;QACtB,MAAM,OAAO,GAAG,CAAC,GAAG,MAAa,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;QAEvE,gEAAgE;QAChE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE;YAC7C,KAAK,EAAE,IAAI,CAAC,EAAE;YACd,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE;gBACrD,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IAEH;IADZ,UAAU,GAAqB,IAAI,CAAC;IAC3C,YAAmB,EAAmB;QAAnB,OAAE,GAAF,EAAE,CAAiB;QACpC,IAAI,EAAE,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,6CAA6C,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAA4B;QAClC,yEAAyE;QACzE,yEAAyE;QACzE,yBAAyB;QACzB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU;YACjC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC9C,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjB,0DAA0D;QAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAC9D,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YAC9C,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjB,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,qBAAqB,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAEhD,kEAAkE;QAClE,MAAM,OAAO,GAAG,KAAK,EAAE,GAAG,MAAa,EAAE,EAAE,CAAC,MAAM,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;QAEnF,gEAAgE;QAChE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE;YAC7C,KAAK,EAAE,IAAI,CAAC,EAAE;YACd,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE;gBACrD,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
package/dist/src/expr/array.d.ts
CHANGED
|
@@ -1510,6 +1510,45 @@ export declare class ArrayExpr<T extends any> extends Expr<ArrayType<T>> {
|
|
|
1510
1510
|
*/
|
|
1511
1511
|
toTree<N extends EastType, K>(node: N, keyFn: Expr<FunctionType<[T, IntegerType], K>>, parentFn: SubtypeExprOrValue<FunctionType<[T, IntegerType], OptionType<NoInfer<K>>>>, buildFn: SubtypeExprOrValue<FunctionType<[T, IntegerType, ArrayType<NoInfer<N>>], NoInfer<N>>>): ArrayExpr<N>;
|
|
1512
1512
|
toTree<N extends EastType, KeyFn extends (($: BlockBuilder<NeverType>, x: ExprType<T>, i: IntegerExpr) => any)>(node: N, keyFn: KeyFn, parentFn: SubtypeExprOrValue<FunctionType<[T, IntegerType], OptionType<TypeOf<ReturnType<NoInfer<KeyFn>>>>>>, buildFn: SubtypeExprOrValue<FunctionType<[T, IntegerType, ArrayType<NoInfer<N>>], NoInfer<N>>>): ArrayExpr<N>;
|
|
1513
|
+
/**
|
|
1514
|
+
* Every node of a tree of any depth whose roots are the array's elements, each with its path of indices from
|
|
1515
|
+
* its root, depth first: the inverse of {@link toTree}.
|
|
1516
|
+
*
|
|
1517
|
+
* `childrenFn` names each node's children, an array of the same element type — empty for a leaf. A root's
|
|
1518
|
+
* path is `[i]`, its child's `[i, j]`, and so on down. The nodes come each before its descendants, siblings
|
|
1519
|
+
* in array order, so a node's parent is the nearest node before it whose path its own extends.
|
|
1520
|
+
*
|
|
1521
|
+
* @param childrenFn - Function taking (element, index) and returning the node's children
|
|
1522
|
+
* @returns An ArrayExpr of every node, `{ path, node }`, depth first
|
|
1523
|
+
*
|
|
1524
|
+
* @remarks
|
|
1525
|
+
* - `childrenFn` runs once per node, in the result's order. A node's children are read as it is walked.
|
|
1526
|
+
* - The walk is iterative, so a deep tree costs no stack. Each node's path is an array of its own, so a
|
|
1527
|
+
* chain n deep holds n(n+1)/2 path elements.
|
|
1528
|
+
* - {@link toTree} takes the result back, its key the path and a node's parent its path less its last index.
|
|
1529
|
+
*
|
|
1530
|
+
* @example
|
|
1531
|
+
* ```ts
|
|
1532
|
+
* const TaskType = RecursiveType(self => StructType({ name: StringType, subtasks: ArrayType(self) }));
|
|
1533
|
+
*
|
|
1534
|
+
* const names = East.function([ArrayType(TaskType)], ArrayType(StringType), ($, tasks) => {
|
|
1535
|
+
* $.return(tasks.flattenTree(($, task, i) => task.unwrap().subtasks)
|
|
1536
|
+
* .map(($, entry) => Expr.str`${entry.path.size()} ${entry.node.unwrap().name}`));
|
|
1537
|
+
* });
|
|
1538
|
+
* const compiled = East.compile(names, []);
|
|
1539
|
+
* compiled([
|
|
1540
|
+
* { name: "Build", subtasks: [{ name: "Compile", subtasks: [] }, { name: "Link", subtasks: [] }] },
|
|
1541
|
+
* { name: "Test", subtasks: [] },
|
|
1542
|
+
* ]);
|
|
1543
|
+
* // ["1 Build", "2 Compile", "2 Link", "1 Test"]
|
|
1544
|
+
* ```
|
|
1545
|
+
*
|
|
1546
|
+
* @see {@link DictExpr.flattenTree} for a tree whose children are a dictionary.
|
|
1547
|
+
*/
|
|
1548
|
+
flattenTree(childrenFn: SubtypeExprOrValue<FunctionType<[T, IntegerType], ArrayType<T>>>): ArrayExpr<StructType<{
|
|
1549
|
+
path: ArrayType<IntegerType>;
|
|
1550
|
+
node: T;
|
|
1551
|
+
}>>;
|
|
1513
1552
|
/**
|
|
1514
1553
|
* Group array elements by a key function, initialize each group, and reduce within each group.
|
|
1515
1554
|
*
|