@elaraai/east-node-cli 1.0.58 → 1.0.60
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 +19 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +38 -2
- package/dist/cli.js.map +1 -1
- package/dist/loader.d.ts +22 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +36 -1
- package/dist/loader.js.map +1 -1
- package/dist/runner.d.ts +28 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +334 -12
- package/dist/runner.js.map +1 -1
- package/dist/runner.spec.js +209 -3
- package/dist/runner.spec.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -96,6 +96,25 @@ Options:
|
|
|
96
96
|
| `.east` | Text East format |
|
|
97
97
|
| `.json` | JSON format |
|
|
98
98
|
|
|
99
|
+
## Large Inputs
|
|
100
|
+
|
|
101
|
+
Indexed `.beast2` collection inputs (Array/Set/Dict) at or above 64 MiB open
|
|
102
|
+
**lazily by default**: size, single-pass iteration, and keyed reads are served
|
|
103
|
+
from the blob's segment index with O(segment) decoded memory, and any other
|
|
104
|
+
operation transparently decodes the whole value once. Semantics are identical
|
|
105
|
+
to an eager decode, so the threshold is a memory knob, not a behavior toggle.
|
|
106
|
+
|
|
107
|
+
Control it with the `EAST_LAZY_INPUT_BYTES` environment variable: a byte
|
|
108
|
+
threshold, or `0` to disable lazy opening entirely. The `--stream` input of a
|
|
109
|
+
streaming task always opens lazily regardless of size.
|
|
110
|
+
|
|
111
|
+
Lazy opening applies only to **value-semantic element shapes** (scalars,
|
|
112
|
+
structs, variants). An element type that transitively contains an Array, Set,
|
|
113
|
+
Dict or Ref — which East mutates in place through read-out elements — or a
|
|
114
|
+
Vector/Matrix/function (identity-compared) always decodes whole, keeping
|
|
115
|
+
writes and identity semantics exactly eager. The same rule applies in the
|
|
116
|
+
east-c and east-py runners.
|
|
117
|
+
|
|
99
118
|
## Platform Packages
|
|
100
119
|
|
|
101
120
|
Platform packages provide the runtime implementations for East platform functions:
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0KH,wBAAgB,IAAI,IAAI,IAAI,CAkC3B"}
|
package/dist/cli.js
CHANGED
|
@@ -10,6 +10,31 @@ import { runProgram } from './runner.js';
|
|
|
10
10
|
import { writeSnapshot, readSnapshot } from './snapshot.js';
|
|
11
11
|
const require = createRequire(import.meta.url);
|
|
12
12
|
const pkg = require('../package.json');
|
|
13
|
+
/** Parses the streaming-execution flags into runner options. */
|
|
14
|
+
function streamingOptions(options) {
|
|
15
|
+
const out = {};
|
|
16
|
+
if (options.emit !== undefined) {
|
|
17
|
+
if (options.emit !== 'array' && options.emit !== 'set' && options.emit !== 'dict') {
|
|
18
|
+
throw new Error(`--emit must be one of array, set or dict, got '${options.emit}'`);
|
|
19
|
+
}
|
|
20
|
+
out.emit = options.emit;
|
|
21
|
+
}
|
|
22
|
+
if (options.stream !== undefined) {
|
|
23
|
+
const index = Number(options.stream);
|
|
24
|
+
if (!Number.isInteger(index) || index < 0) {
|
|
25
|
+
throw new Error(`--stream must be a non-negative input index, got '${options.stream}'`);
|
|
26
|
+
}
|
|
27
|
+
out.streamInput = index;
|
|
28
|
+
}
|
|
29
|
+
if (options.lazyInputs !== undefined) {
|
|
30
|
+
const bytes = Number(options.lazyInputs);
|
|
31
|
+
if (!Number.isFinite(bytes) || bytes < 0) {
|
|
32
|
+
throw new Error(`--lazy-inputs must be a byte threshold (0 disables), got '${options.lazyInputs}'`);
|
|
33
|
+
}
|
|
34
|
+
out.lazyInputBytes = bytes;
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
13
38
|
async function cmdRun(irFile, options) {
|
|
14
39
|
try {
|
|
15
40
|
// --from-snapshot is exclusive with <ir_file>, -i, -p
|
|
@@ -22,7 +47,7 @@ async function cmdRun(irFile, options) {
|
|
|
22
47
|
const ex = await readSnapshot(options.fromSnapshot);
|
|
23
48
|
try {
|
|
24
49
|
const platformFns = await loadPlatforms(ex.packages);
|
|
25
|
-
await runProgram(ex.irPath, platformFns, ex.packages, ex.inputPaths, options.output, options.verbose ?? false);
|
|
50
|
+
await runProgram(ex.irPath, platformFns, ex.packages, ex.inputPaths, options.output, { verbose: options.verbose ?? false, ...streamingOptions(options) });
|
|
26
51
|
}
|
|
27
52
|
finally {
|
|
28
53
|
ex.cleanup();
|
|
@@ -39,6 +64,14 @@ async function cmdRun(irFile, options) {
|
|
|
39
64
|
console.error('Example: east-node run program.beast2 -p @elaraai/east-node-std');
|
|
40
65
|
process.exit(1);
|
|
41
66
|
}
|
|
67
|
+
// The manifest carries no streaming flags (format v1), so a captured
|
|
68
|
+
// emit/stream invocation would replay with the wrong arity — refuse
|
|
69
|
+
// at capture with the fix instead of failing confusingly at replay.
|
|
70
|
+
if (options.snapshot && (options.emit !== undefined || options.stream !== undefined)) {
|
|
71
|
+
console.error('Error: --snapshot does not capture --emit/--stream (snapshot format v1 has no ' +
|
|
72
|
+
'streaming flags); replay with --from-snapshot passing --emit/--stream explicitly');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
42
75
|
// Write the snapshot BEFORE execution so crashes still leave the bundle behind.
|
|
43
76
|
if (options.snapshot) {
|
|
44
77
|
await writeSnapshot({
|
|
@@ -52,7 +85,7 @@ async function cmdRun(irFile, options) {
|
|
|
52
85
|
console.error(`Snapshot: ${options.snapshot}`);
|
|
53
86
|
}
|
|
54
87
|
const platformFns = await loadPlatforms(packages);
|
|
55
|
-
await runProgram(irFile, platformFns, packages, options.input ?? [], options.output, options.verbose ?? false);
|
|
88
|
+
await runProgram(irFile, platformFns, packages, options.input ?? [], options.output, { verbose: options.verbose ?? false, ...streamingOptions(options) });
|
|
56
89
|
}
|
|
57
90
|
catch (err) {
|
|
58
91
|
if (err instanceof EastError) {
|
|
@@ -111,6 +144,9 @@ export function main() {
|
|
|
111
144
|
.option('-v, --verbose', 'Enable verbose output')
|
|
112
145
|
.option('--snapshot <path>', 'Write a .east-snapshot bundle (IR + inputs + manifest)')
|
|
113
146
|
.option('--from-snapshot <path>', 'Replay from a .east-snapshot bundle (exclusive with <ir_file>, -i, -p)')
|
|
147
|
+
.option('--emit <kind>', "Write the output incrementally from the function's trailing emit parameter (array|set|dict)")
|
|
148
|
+
.option('--stream <index>', 'Feed the given -i input (0-based) lazily, segment-by-segment')
|
|
149
|
+
.option('--lazy-inputs <bytes>', 'Open indexed collection inputs at or above this size lazily (0 disables; default 64 MiB)')
|
|
114
150
|
.action(cmdRun);
|
|
115
151
|
program
|
|
116
152
|
.command('version')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -75,4 +75,26 @@ export declare function loadEastIR(filePath: string): EastIR<any, any> | AsyncEa
|
|
|
75
75
|
* @returns Decoded value
|
|
76
76
|
*/
|
|
77
77
|
export declare function loadInput(filePath: string, type: EastTypeValue): unknown;
|
|
78
|
+
/**
|
|
79
|
+
* Opens an input file as a lazy pager-backed collection value, when it can
|
|
80
|
+
* be: a beast2 v5 collection blob carrying a segment index. Size, iteration
|
|
81
|
+
* and keyed reads are then served from the index with O(segment) decoded
|
|
82
|
+
* memory; any other operation hydrates transparently to the eager value's
|
|
83
|
+
* exact semantics.
|
|
84
|
+
*
|
|
85
|
+
* Returns `undefined` when the file cannot be served lazily (a non-beast2
|
|
86
|
+
* format, a v4 or index-less blob, a non-collection root, or an element
|
|
87
|
+
* shape the lazy contract excludes — see below) — the caller falls back to
|
|
88
|
+
* {@link loadInput}.
|
|
89
|
+
*
|
|
90
|
+
* Element shapes that transitively contain a mutable container
|
|
91
|
+
* (Array/Set/Dict/Ref) or an identity-compared kind (Vector/Matrix,
|
|
92
|
+
* functions) always decode eagerly: East's runtime is reference-semantic for
|
|
93
|
+
* nested containers, so a write through a lazily-served (freshly decoded)
|
|
94
|
+
* element would be silently dropped. {@link isBeast2LazySafe} is the gate.
|
|
95
|
+
*
|
|
96
|
+
* @param filePath - Path to the input file
|
|
97
|
+
* @returns The lazy collection value, or `undefined` to fall back
|
|
98
|
+
*/
|
|
99
|
+
export declare function loadInputLazy(filePath: string): unknown | undefined;
|
|
78
100
|
//# sourceMappingURL=loader.d.ts.map
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAWH,MAAM,EACN,WAAW,EACX,KAAK,aAAa,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAWhF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,GAAG,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAsDD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyCnF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB7F;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CASvF;AAmDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAgCxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAuBrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAoBxE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAUnE"}
|
package/dist/loader.js
CHANGED
|
@@ -7,7 +7,7 @@ import { createRequire } from 'module';
|
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import { extname } from 'path';
|
|
9
9
|
import { fileURLToPath, pathToFileURL } from 'url';
|
|
10
|
-
import { IRType, decodeBeast2For, decodeBeast2, decodeEastFor, decodeJSONFor, decodeEastIR, decodeAsyncEastIR, EastIR, AsyncEastIR, } from '@elaraai/east';
|
|
10
|
+
import { IRType, decodeBeast2For, decodeBeast2, decodeEastFor, decodeJSONFor, decodeEastIR, decodeAsyncEastIR, readBeast2Extents, openBeast2LazyFor, isBeast2LazySafe, EastIR, AsyncEastIR, } from '@elaraai/east';
|
|
11
11
|
// Decoder for IR from beast2 format (self-describing)
|
|
12
12
|
const decodeIRFromBeast2 = decodeBeast2For(IRType);
|
|
13
13
|
// Decoder for IR from east text format
|
|
@@ -295,4 +295,39 @@ export function loadInput(filePath, type) {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* Opens an input file as a lazy pager-backed collection value, when it can
|
|
300
|
+
* be: a beast2 v5 collection blob carrying a segment index. Size, iteration
|
|
301
|
+
* and keyed reads are then served from the index with O(segment) decoded
|
|
302
|
+
* memory; any other operation hydrates transparently to the eager value's
|
|
303
|
+
* exact semantics.
|
|
304
|
+
*
|
|
305
|
+
* Returns `undefined` when the file cannot be served lazily (a non-beast2
|
|
306
|
+
* format, a v4 or index-less blob, a non-collection root, or an element
|
|
307
|
+
* shape the lazy contract excludes — see below) — the caller falls back to
|
|
308
|
+
* {@link loadInput}.
|
|
309
|
+
*
|
|
310
|
+
* Element shapes that transitively contain a mutable container
|
|
311
|
+
* (Array/Set/Dict/Ref) or an identity-compared kind (Vector/Matrix,
|
|
312
|
+
* functions) always decode eagerly: East's runtime is reference-semantic for
|
|
313
|
+
* nested containers, so a write through a lazily-served (freshly decoded)
|
|
314
|
+
* element would be silently dropped. {@link isBeast2LazySafe} is the gate.
|
|
315
|
+
*
|
|
316
|
+
* @param filePath - Path to the input file
|
|
317
|
+
* @returns The lazy collection value, or `undefined` to fall back
|
|
318
|
+
*/
|
|
319
|
+
export function loadInputLazy(filePath) {
|
|
320
|
+
if (getFileFormat(filePath) !== 'beast2')
|
|
321
|
+
return undefined;
|
|
322
|
+
const data = readFileSync(filePath);
|
|
323
|
+
try {
|
|
324
|
+
const extents = readBeast2Extents(data);
|
|
325
|
+
if (!isBeast2LazySafe(extents.typeValue))
|
|
326
|
+
return undefined;
|
|
327
|
+
return openBeast2LazyFor(extents.typeValue)(data);
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
return undefined;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
298
333
|
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EACH,MAAM,EACN,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,WAAW,GAEd,MAAM,eAAe,CAAC;AAGvB,sDAAsD;AACtD,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAEnD,uCAAuC;AACvC,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAE/C,kCAAkC;AAClC,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAc/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,oBAAoB;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACjD,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,qEAAqE;IACrE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,WAAmB,EAAE,OAAe;IAChE,MAAM,IAAI,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;IACzC,IAAI,OAAgB,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,GAAG,GAAG,CAAC;QAClB,CAAC;IACL,CAAC;IACD,MAAM,OAAO,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IAClD,IAAI,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,MAAM,YAAY,GAAG,sBAAsB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC;QAEnC,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,YAAY,WAAW,sCAAsC;gBAC7D,sDAAsD,OAAO,GAAG,GAAG,CACtE,CAAC;QACN,CAAC;QAED,+CAA+C;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACX,YAAY,WAAW,gDAAgD,CAAC,IAAI;oBAC5E,kHAAkH,CACrH,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAK,GAA6B,CAAC,IAAI,KAAK,sBAAsB;YAC7D,GAA6B,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACX,oCAAoC,WAAW,KAAK;gBACpD,0CAA0C,WAAW,EAAE,CAC1D,CAAC;QACN,CAAC;QACD,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IAC9D,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAE5C,sEAAsE;IACtE,kEAAkE;IAClE,oCAAoC;IACpC,IAAI,IAAI,GAAG,WAAW,CAAC;IACvB,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,WAAW,eAAe,CAAwC,CAAC;YAC1F,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;YACvC,MAAM;QACV,CAAC;QAAC,MAAM,CAAC;YACL,qEAAqE;QACzE,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,YAAsB;IACtD,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,GAAG,KAAgC,CAAC;IAE5C,+BAA+B;IAC/B,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAE5D,yBAAyB;IACzB,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9C,2BAA2B;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,oDAAoD;IACpD,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE1C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACT,OAAO,QAAQ,CAAC;QACpB,KAAK,OAAO;YACR,OAAO,MAAM,CAAC;QAClB,KAAK,OAAO;YACR,OAAO,MAAM,CAAC;QAClB;YACI,MAAM,IAAI,KAAK,CACX,+BAA+B,GAAG,KAAK;gBACvC,qDAAqD,CACxD,CAAC;IACV,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,MAAM,CAAC,QAAgB;IACnC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,EAAmB,CAAC;IAExB,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,4DAA4D;YAC5D,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM;QACV,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,yCAAyC;YACzC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACV,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,oCAAoC;YACpC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACV,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACX,2DAA2D,EAAE,CAAC,IAAI,GAAG,CACxE,CAAC;IACN,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACvC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtB,uDAAuD;QACvD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACjC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2DAA2D,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,MAAM,CAAW,EAAS,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,WAAW,CAAW,EAAS,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAmB;IAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEpC,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,2DAA2D;YAC3D,0DAA0D;YAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -3,8 +3,35 @@
|
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
import type { PlatformFunction } from '@elaraai/east/internal';
|
|
6
|
+
/** Streaming-execution options accepted by {@link runProgram}. */
|
|
7
|
+
export interface RunProgramOptions {
|
|
8
|
+
/** Enable verbose timing/memory output on stderr. */
|
|
9
|
+
verbose?: boolean;
|
|
10
|
+
/** Write the output incrementally from the function's trailing `emit`
|
|
11
|
+
* parameter instead of its return value. The value names the output
|
|
12
|
+
* collection kind; element/key/value types come from the emit
|
|
13
|
+
* parameter's function type. */
|
|
14
|
+
emit?: 'array' | 'set' | 'dict';
|
|
15
|
+
/** Feed the given `-i` input (0-based) lazily — segment-by-segment
|
|
16
|
+
* iteration with O(segment) decoded memory — regardless of size.
|
|
17
|
+
* Element shapes the lazy contract excludes (nested mutable
|
|
18
|
+
* containers, vectors/matrices, functions) decode whole instead. */
|
|
19
|
+
streamInput?: number;
|
|
20
|
+
/** Open indexed beast2 collection inputs at or above this many bytes as
|
|
21
|
+
* lazy pager-backed values (0 disables). Defaults to 64 MiB, or the
|
|
22
|
+
* `EAST_LAZY_INPUT_BYTES` environment variable. Applies only to
|
|
23
|
+
* shape-gate-safe element types (see `loadInputLazy`) — others always
|
|
24
|
+
* decode whole. */
|
|
25
|
+
lazyInputBytes?: number;
|
|
26
|
+
}
|
|
27
|
+
/** Resolves the lazy-open threshold: explicit option, else environment, else
|
|
28
|
+
* the default. An unset or empty `EAST_LAZY_INPUT_BYTES` falls through to
|
|
29
|
+
* the 64 MiB default (`Number('')` is `0`, which would silently DISABLE
|
|
30
|
+
* lazy opening); invalid or negative values fall through too, matching
|
|
31
|
+
* east-c and east-py. Exported for the spec only. @internal */
|
|
32
|
+
export declare function lazyThreshold(options: RunProgramOptions): number;
|
|
6
33
|
/**
|
|
7
34
|
* Runs an East IR program.
|
|
8
35
|
*/
|
|
9
|
-
export declare function runProgram(irPath: string, platformFns: PlatformFunction[], packages: string[], inputPaths: string[], outputPath?: string,
|
|
36
|
+
export declare function runProgram(irPath: string, platformFns: PlatformFunction[], packages: string[], inputPaths: string[], outputPath?: string, options?: RunProgramOptions | boolean): Promise<unknown>;
|
|
10
37
|
//# sourceMappingURL=runner.d.ts.map
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,wBAAwB,CAAC;AAiB9E,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAC9B,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;qCAGiC;IACjC,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC;;;yEAGqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;wBAIoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD;;;;gEAIgE;AAChE,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAQhE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,gBAAgB,EAAE,EAC/B,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAiB,GAAG,OAAY,GAC1C,OAAO,CAAC,OAAO,CAAC,CA6GlB"}
|
package/dist/runner.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { closeSync, openSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync, writeSync } from 'fs';
|
|
6
6
|
import { extname } from 'path';
|
|
7
|
-
import { EastIR, encodeBeast2For, encodeBeast2PagedFor, encodeEastFor, encodeJSONFor, printFor, } from '@elaraai/east';
|
|
7
|
+
import { EastIR, Beast2Writer, BEAST2_PAGED_BATCH_DEFAULT, BEAST2_PAGED_TARGET_BYTES_DEFAULT, compareFor, encodeBeast2For, encodeBeast2PagedFor, encodeEastFor, encodeJSONFor, iterBeast2SegmentsFor, printFor, variant, } from '@elaraai/east';
|
|
8
8
|
import { printTypeValue } from '@elaraai/east/internal';
|
|
9
|
-
import { loadEastIR, loadInput } from './loader.js';
|
|
9
|
+
import { loadEastIR, loadInput, loadInputLazy } from './loader.js';
|
|
10
10
|
function now() { return process.hrtime.bigint(); }
|
|
11
11
|
function elapsed(start, end) { return Number(end - start) / 1e6; }
|
|
12
12
|
function formatSize(bytes) {
|
|
@@ -24,10 +24,31 @@ function formatFileSize(path) {
|
|
|
24
24
|
return '?';
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
/** Default size threshold above which collection inputs open lazily. */
|
|
28
|
+
const LAZY_INPUT_BYTES_DEFAULT = 64 * 1024 * 1024;
|
|
29
|
+
/** Resolves the lazy-open threshold: explicit option, else environment, else
|
|
30
|
+
* the default. An unset or empty `EAST_LAZY_INPUT_BYTES` falls through to
|
|
31
|
+
* the 64 MiB default (`Number('')` is `0`, which would silently DISABLE
|
|
32
|
+
* lazy opening); invalid or negative values fall through too, matching
|
|
33
|
+
* east-c and east-py. Exported for the spec only. @internal */
|
|
34
|
+
export function lazyThreshold(options) {
|
|
35
|
+
if (options.lazyInputBytes !== undefined)
|
|
36
|
+
return options.lazyInputBytes;
|
|
37
|
+
const raw = process.env.EAST_LAZY_INPUT_BYTES;
|
|
38
|
+
if (raw !== undefined && raw !== '') {
|
|
39
|
+
const env = Number(raw);
|
|
40
|
+
if (Number.isFinite(env) && env >= 0)
|
|
41
|
+
return env;
|
|
42
|
+
}
|
|
43
|
+
return LAZY_INPUT_BYTES_DEFAULT;
|
|
44
|
+
}
|
|
27
45
|
/**
|
|
28
46
|
* Runs an East IR program.
|
|
29
47
|
*/
|
|
30
|
-
export async function runProgram(irPath, platformFns, packages, inputPaths, outputPath,
|
|
48
|
+
export async function runProgram(irPath, platformFns, packages, inputPaths, outputPath, options = {}) {
|
|
49
|
+
// Callers predating streaming execution pass `verbose` as a boolean.
|
|
50
|
+
const opts = typeof options === 'boolean' ? { verbose: options } : options;
|
|
51
|
+
const verbose = opts.verbose ?? false;
|
|
31
52
|
const t0 = now();
|
|
32
53
|
// Load as an EastIR bundle so source_map travels with the IR and error
|
|
33
54
|
// frames resolve end-to-end.
|
|
@@ -37,10 +58,28 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
37
58
|
// Get the function's input/output types from the IR.
|
|
38
59
|
const inputTypes = ir?.value?.type?.value?.inputs ?? [];
|
|
39
60
|
const outputType = (ir?.value?.type?.value?.output ?? null);
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
61
|
+
// With emit, the function takes one trailing runner-provided parameter
|
|
62
|
+
// beyond the input files: the emit capability. A zero-parameter function
|
|
63
|
+
// has no trailing parameter to be it — the shaped emit error, not a
|
|
64
|
+
// negative arity count.
|
|
65
|
+
if (opts.emit !== undefined && inputTypes.length === 0) {
|
|
66
|
+
throw new Error(`--emit requires the function's trailing parameter to be the emit capability (a function type), but the function takes no parameters`);
|
|
67
|
+
}
|
|
68
|
+
const fileParamCount = opts.emit !== undefined ? inputTypes.length - 1 : inputTypes.length;
|
|
69
|
+
if (inputPaths.length !== fileParamCount) {
|
|
70
|
+
throw new Error(`Function expects ${fileParamCount} input(s), but ${inputPaths.length} input file(s) provided`);
|
|
71
|
+
}
|
|
72
|
+
if (opts.emit !== undefined && (outputPath === undefined || extname(outputPath).toLowerCase() !== '.beast2')) {
|
|
73
|
+
// east-c / east-py parity: the emitted blob is a beast2 stream, so
|
|
74
|
+
// any other output extension is refused up front.
|
|
75
|
+
throw new Error(`--emit requires a .beast2 output file (-o)`);
|
|
43
76
|
}
|
|
77
|
+
if (opts.streamInput !== undefined && (opts.streamInput < 0 || opts.streamInput >= inputPaths.length)) {
|
|
78
|
+
throw new Error(`--stream index ${opts.streamInput} out of range (${inputPaths.length} inputs)`);
|
|
79
|
+
}
|
|
80
|
+
const emitSink = opts.emit !== undefined
|
|
81
|
+
? createEmitSink(opts.emit, inputTypes[inputTypes.length - 1], outputPath, verbose)
|
|
82
|
+
: null;
|
|
44
83
|
// Verbose header
|
|
45
84
|
if (verbose) {
|
|
46
85
|
console.error(`Running: ${irPath} (${formatFileSize(irPath)})`);
|
|
@@ -50,21 +89,31 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
50
89
|
console.error(` - ${p}`);
|
|
51
90
|
}
|
|
52
91
|
console.error(`Function: ${inputTypes.length} inputs, ${isAsync ? 'async' : 'sync'}`);
|
|
53
|
-
for (let i = 0; i <
|
|
92
|
+
for (let i = 0; i < fileParamCount; i++) {
|
|
54
93
|
const t = printTypeValue(inputTypes[i]);
|
|
55
94
|
console.error(` input ${i}: ${inputPaths[i]} (${formatFileSize(inputPaths[i])})`);
|
|
56
95
|
console.error(` ${t}`);
|
|
57
96
|
}
|
|
97
|
+
if (emitSink)
|
|
98
|
+
console.error(` emit: ${opts.emit} sink -> ${outputPath}`);
|
|
58
99
|
if (outputType) {
|
|
59
100
|
console.error(` return:`);
|
|
60
101
|
console.error(` ${printTypeValue(outputType)}`);
|
|
61
102
|
}
|
|
62
103
|
}
|
|
63
|
-
// Load inputs
|
|
104
|
+
// Load inputs. The streamed input always opens lazily; other beast2
|
|
105
|
+
// collection inputs open lazily at or above the size threshold, so a
|
|
106
|
+
// sparse read into a huge indexed input stops paying a whole decode.
|
|
107
|
+
const threshold = lazyThreshold(opts);
|
|
64
108
|
const inputs = [];
|
|
65
109
|
for (let i = 0; i < inputPaths.length; i++) {
|
|
66
|
-
|
|
110
|
+
const wantLazy = i === opts.streamInput ||
|
|
111
|
+
(threshold > 0 && statSync(inputPaths[i]).size >= threshold);
|
|
112
|
+
const lazy = wantLazy ? loadInputLazy(inputPaths[i]) : undefined;
|
|
113
|
+
inputs.push(lazy !== undefined ? lazy : loadInput(inputPaths[i], inputTypes[i]));
|
|
67
114
|
}
|
|
115
|
+
if (emitSink)
|
|
116
|
+
inputs.push(emitSink.emit);
|
|
68
117
|
const t1 = now();
|
|
69
118
|
let result;
|
|
70
119
|
if (!isAsync) {
|
|
@@ -72,7 +121,9 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
72
121
|
const t2 = now();
|
|
73
122
|
result = compiled(...inputs);
|
|
74
123
|
const t3 = now();
|
|
75
|
-
const t4 =
|
|
124
|
+
const t4 = emitSink
|
|
125
|
+
? finishEmit(emitSink, outputPath, verbose)
|
|
126
|
+
: maybeWriteOutput(outputPath, result, outputType, verbose);
|
|
76
127
|
const t5 = now();
|
|
77
128
|
if (verbose)
|
|
78
129
|
printTimingAndMemory(t0, t1, t2, t3, t4, t5);
|
|
@@ -82,13 +133,284 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
82
133
|
const t2 = now();
|
|
83
134
|
result = await compiled(...inputs);
|
|
84
135
|
const t3 = now();
|
|
85
|
-
const t4 =
|
|
136
|
+
const t4 = emitSink
|
|
137
|
+
? finishEmit(emitSink, outputPath, verbose)
|
|
138
|
+
: maybeWriteOutput(outputPath, result, outputType, verbose);
|
|
86
139
|
const t5 = now();
|
|
87
140
|
if (verbose)
|
|
88
141
|
printTimingAndMemory(t0, t1, t2, t3, t4, t5);
|
|
89
142
|
}
|
|
90
143
|
return outputPath ? undefined : result;
|
|
91
144
|
}
|
|
145
|
+
/** Out-of-order Set/Dict emission buffers and spills sorted runs of at most
|
|
146
|
+
* this many elements (`EAST_EMIT_RUN_ELEMENTS` overrides; minimum 1) — the
|
|
147
|
+
* in-memory bound of the sink's spill/merge path (issue #518). */
|
|
148
|
+
const EMIT_RUN_ELEMENTS_DEFAULT = 100_000;
|
|
149
|
+
/** Resolves the spill-run element cap: environment override, else the
|
|
150
|
+
* default. Invalid or sub-1 values fall back, matching east-py / east-c. */
|
|
151
|
+
function emitRunElements() {
|
|
152
|
+
const raw = process.env.EAST_EMIT_RUN_ELEMENTS;
|
|
153
|
+
if (raw !== undefined && raw !== '') {
|
|
154
|
+
const env = Number(raw);
|
|
155
|
+
if (Number.isInteger(env) && env >= 1)
|
|
156
|
+
return env;
|
|
157
|
+
}
|
|
158
|
+
return EMIT_RUN_ELEMENTS_DEFAULT;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Builds the emit capability: a host function value that re-batches elements
|
|
162
|
+
* byte-adaptively and appends segments to the output file through a
|
|
163
|
+
* streaming writer.
|
|
164
|
+
*
|
|
165
|
+
* Emission order is unconstrained (issue #518). While Set/Dict emissions
|
|
166
|
+
* stay strictly ascending in East (key) order, segments stream straight to
|
|
167
|
+
* the output file — O(batch) memory, byte-identical to an always-ascending
|
|
168
|
+
* producer. On the first out-of-order key the file written so far is
|
|
169
|
+
* finalized (a complete canonical beast2 file of the prefix) and demoted to
|
|
170
|
+
* spill run #0; emissions then buffer to a bounded element cap
|
|
171
|
+
* (`EAST_EMIT_RUN_ELEMENTS`) and spill as sorted runs beside the output, and
|
|
172
|
+
* `finish` k-way merges runs + tail into the canonical output. Duplicate
|
|
173
|
+
* Set/Dict keys are a hard error in every path: immediately when adjacent in
|
|
174
|
+
* the stream, at spill/merge time otherwise.
|
|
175
|
+
*/
|
|
176
|
+
function createEmitSink(kind, emitParamType, outputPath, verbose) {
|
|
177
|
+
if (emitParamType.type !== 'Function') {
|
|
178
|
+
throw new Error(`--emit requires the function's trailing parameter to be the emit capability (a function type), got ${emitParamType.type}`);
|
|
179
|
+
}
|
|
180
|
+
const emitInputs = emitParamType.value.inputs;
|
|
181
|
+
const expectedArity = kind === 'dict' ? 2 : 1;
|
|
182
|
+
if (emitInputs.length !== expectedArity) {
|
|
183
|
+
throw new Error(`--emit ${kind} expects an emit parameter taking ${expectedArity} argument(s), got ${emitInputs.length}`);
|
|
184
|
+
}
|
|
185
|
+
// The output collection's wire type is reconstructed from the emit
|
|
186
|
+
// parameter's argument types.
|
|
187
|
+
const outTypeValue = kind === 'dict' ? variant('Dict', { key: emitInputs[0], value: emitInputs[1] }) :
|
|
188
|
+
kind === 'set' ? variant('Set', emitInputs[0]) :
|
|
189
|
+
variant('Array', emitInputs[0]);
|
|
190
|
+
/** Opens a streaming file writer: header at open, terminator + index at
|
|
191
|
+
* `finishClose` — every finished file is a complete canonical blob. */
|
|
192
|
+
function openFileWriter(path) {
|
|
193
|
+
const fd = openSync(path, 'w');
|
|
194
|
+
let bytesWritten = 0;
|
|
195
|
+
let headerBytes = -1;
|
|
196
|
+
const writer = new Beast2Writer(outTypeValue, (bytes) => {
|
|
197
|
+
// writeSync may return a short count; loop until the chunk is
|
|
198
|
+
// fully on disk — a silently truncated write would corrupt the
|
|
199
|
+
// blob while the process still exits 0.
|
|
200
|
+
let written = 0;
|
|
201
|
+
while (written < bytes.length) {
|
|
202
|
+
written += writeSync(fd, bytes, written, bytes.length - written);
|
|
203
|
+
}
|
|
204
|
+
if (headerBytes < 0)
|
|
205
|
+
headerBytes = bytes.length;
|
|
206
|
+
bytesWritten += bytes.length;
|
|
207
|
+
});
|
|
208
|
+
return {
|
|
209
|
+
writer,
|
|
210
|
+
bodyBytes: () => Math.max(1, bytesWritten - Math.max(0, headerBytes)),
|
|
211
|
+
finishClose: () => { writer.finish(); closeSync(fd); },
|
|
212
|
+
closeAbandoned: () => { closeSync(fd); },
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// Canonical-order tracking per element, ahead of the writer's own
|
|
216
|
+
// batch-level check, so an adjacent duplicate names the offending emit
|
|
217
|
+
// call and can never collapse silently inside a batch container.
|
|
218
|
+
const orderCmp = kind === 'array' ? null : compareFor(emitInputs[0]);
|
|
219
|
+
const printKey = kind === 'array' ? null : printFor(emitInputs[0]);
|
|
220
|
+
const duplicateMessage = (key) => {
|
|
221
|
+
const noun = kind === 'dict' ? 'Dict' : 'Set';
|
|
222
|
+
const part = kind === 'dict' ? 'key' : 'element';
|
|
223
|
+
return `beast2 v5: duplicate ${noun} ${part} emitted: ${printKey(key)} — ${noun} ${part}s must be unique`;
|
|
224
|
+
};
|
|
225
|
+
const itemKey = (item) => kind === 'dict' ? item[0] : item;
|
|
226
|
+
const toValue = (items) => kind === 'dict' ? new Map(items) : kind === 'set' ? new Set(items) : items;
|
|
227
|
+
let out = openFileWriter(outputPath);
|
|
228
|
+
let hasLast = false;
|
|
229
|
+
let lastKey;
|
|
230
|
+
let emitted = 0;
|
|
231
|
+
// Byte-adaptive re-batching toward the paged-encode segment target,
|
|
232
|
+
// refined from the writer's actual output as segments flush.
|
|
233
|
+
let batch = [];
|
|
234
|
+
let written = 0;
|
|
235
|
+
let nextBatch = BEAST2_PAGED_BATCH_DEFAULT;
|
|
236
|
+
const flush = () => {
|
|
237
|
+
if (batch.length === 0)
|
|
238
|
+
return;
|
|
239
|
+
out.writer.write(toValue(batch));
|
|
240
|
+
written += batch.length;
|
|
241
|
+
batch = [];
|
|
242
|
+
const avg = Math.max(1, out.bodyBytes() / written);
|
|
243
|
+
nextBatch = Math.max(1, Math.min(BEAST2_PAGED_BATCH_DEFAULT, Math.floor(BEAST2_PAGED_TARGET_BYTES_DEFAULT / avg)));
|
|
244
|
+
};
|
|
245
|
+
// Out-of-order (spill/merge) state; `buffer === null` means the
|
|
246
|
+
// ascending fast path is still live.
|
|
247
|
+
let buffer = null;
|
|
248
|
+
const runs = [];
|
|
249
|
+
const runCap = emitRunElements();
|
|
250
|
+
let spilledBytes = 0;
|
|
251
|
+
/** East-order sort of buffered items with the adjacent-duplicate check —
|
|
252
|
+
* equality is East equality (`compareFor`) throughout. */
|
|
253
|
+
const sortRun = (items) => {
|
|
254
|
+
const sorted = items.slice().sort((a, b) => orderCmp(itemKey(a), itemKey(b)));
|
|
255
|
+
for (let i = 1; i < sorted.length; i++) {
|
|
256
|
+
if (orderCmp(itemKey(sorted[i - 1]), itemKey(sorted[i])) === 0) {
|
|
257
|
+
throw new Error(duplicateMessage(itemKey(sorted[i])));
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return sorted;
|
|
261
|
+
};
|
|
262
|
+
const spill = () => {
|
|
263
|
+
if (buffer.length === 0)
|
|
264
|
+
return;
|
|
265
|
+
const sorted = sortRun(buffer);
|
|
266
|
+
const path = `${outputPath}.run${runs.length}`;
|
|
267
|
+
const run = openFileWriter(path);
|
|
268
|
+
for (let i = 0; i < sorted.length; i += BEAST2_PAGED_BATCH_DEFAULT) {
|
|
269
|
+
run.writer.write(toValue(sorted.slice(i, i + BEAST2_PAGED_BATCH_DEFAULT)));
|
|
270
|
+
}
|
|
271
|
+
run.finishClose();
|
|
272
|
+
runs.push(path);
|
|
273
|
+
spilledBytes += statSync(path).size;
|
|
274
|
+
buffer = [];
|
|
275
|
+
};
|
|
276
|
+
const demote = () => {
|
|
277
|
+
// The prefix written so far is ascending, so finishing the writer
|
|
278
|
+
// yields a complete canonical beast2 file — demote it to run #0 and
|
|
279
|
+
// switch to buffered (sort-in-the-sink) emission.
|
|
280
|
+
flush();
|
|
281
|
+
out.finishClose();
|
|
282
|
+
const run0 = `${outputPath}.run0`;
|
|
283
|
+
renameSync(outputPath, run0);
|
|
284
|
+
if (written > 0) {
|
|
285
|
+
runs.push(run0);
|
|
286
|
+
spilledBytes += statSync(run0).size;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
unlinkSync(run0);
|
|
290
|
+
}
|
|
291
|
+
buffer = [];
|
|
292
|
+
console.error(`east emit: ${kind === 'dict' ? 'Dict keys' : 'Set elements'} left ascending order at ` +
|
|
293
|
+
`element ${emitted}; establishing canonical order in the sink (spill/merge)`);
|
|
294
|
+
};
|
|
295
|
+
const mergeRuns = () => {
|
|
296
|
+
// K-way merge the spilled runs and the in-memory tail into the
|
|
297
|
+
// canonical output — O(run cap + one decoded segment per run)
|
|
298
|
+
// memory, with the cross-run duplicate check on the merged stream.
|
|
299
|
+
const tail = buffer.length > 0 ? sortRun(buffer) : [];
|
|
300
|
+
buffer = [];
|
|
301
|
+
const iters = runs.map((path) => {
|
|
302
|
+
const bytes = new Uint8Array(readFileSync(path));
|
|
303
|
+
return (function* () {
|
|
304
|
+
for (const segment of iterBeast2SegmentsFor(outTypeValue)(bytes)) {
|
|
305
|
+
if (kind === 'dict')
|
|
306
|
+
yield* segment.entries();
|
|
307
|
+
else
|
|
308
|
+
yield* segment;
|
|
309
|
+
}
|
|
310
|
+
})();
|
|
311
|
+
});
|
|
312
|
+
iters.push(tail[Symbol.iterator]());
|
|
313
|
+
const heads = iters.map((it) => it.next());
|
|
314
|
+
out = openFileWriter(outputPath);
|
|
315
|
+
let finished = false;
|
|
316
|
+
try {
|
|
317
|
+
let prevKey;
|
|
318
|
+
let hasPrev = false;
|
|
319
|
+
let mergedBatch = [];
|
|
320
|
+
let merged = 0;
|
|
321
|
+
let next = BEAST2_PAGED_BATCH_DEFAULT;
|
|
322
|
+
for (;;) {
|
|
323
|
+
let min = -1;
|
|
324
|
+
for (let i = 0; i < heads.length; i++) {
|
|
325
|
+
if (!heads[i].done && (min < 0 || orderCmp(itemKey(heads[i].value), itemKey(heads[min].value)) < 0)) {
|
|
326
|
+
min = i;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
if (min < 0)
|
|
330
|
+
break;
|
|
331
|
+
const item = heads[min].value;
|
|
332
|
+
heads[min] = iters[min].next();
|
|
333
|
+
const key = itemKey(item);
|
|
334
|
+
if (hasPrev && orderCmp(prevKey, key) === 0)
|
|
335
|
+
throw new Error(duplicateMessage(key));
|
|
336
|
+
prevKey = key;
|
|
337
|
+
hasPrev = true;
|
|
338
|
+
mergedBatch.push(item);
|
|
339
|
+
if (mergedBatch.length >= next) {
|
|
340
|
+
out.writer.write(toValue(mergedBatch));
|
|
341
|
+
merged += mergedBatch.length;
|
|
342
|
+
mergedBatch = [];
|
|
343
|
+
const avg = Math.max(1, out.bodyBytes() / merged);
|
|
344
|
+
next = Math.max(1, Math.min(BEAST2_PAGED_BATCH_DEFAULT, Math.floor(BEAST2_PAGED_TARGET_BYTES_DEFAULT / avg)));
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
if (mergedBatch.length > 0)
|
|
348
|
+
out.writer.write(toValue(mergedBatch));
|
|
349
|
+
out.finishClose();
|
|
350
|
+
finished = true;
|
|
351
|
+
}
|
|
352
|
+
finally {
|
|
353
|
+
// An error (a cross-run duplicate) leaves the partial output
|
|
354
|
+
// unfinalized — no terminator or index — exactly like an error
|
|
355
|
+
// on the straight-through path.
|
|
356
|
+
if (!finished)
|
|
357
|
+
out.closeAbandoned();
|
|
358
|
+
}
|
|
359
|
+
for (const path of runs)
|
|
360
|
+
unlinkSync(path);
|
|
361
|
+
if (verbose) {
|
|
362
|
+
console.error(` emit: merged ${runs.length} spilled run(s) + in-memory tail (${formatSize(spilledBytes)} temp)`);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
const emit = (...args) => {
|
|
366
|
+
if (buffer !== null) {
|
|
367
|
+
buffer.push(kind === 'dict' ? [args[0], args[1]] : args[0]);
|
|
368
|
+
emitted++;
|
|
369
|
+
if (buffer.length >= runCap)
|
|
370
|
+
spill();
|
|
371
|
+
return null;
|
|
372
|
+
}
|
|
373
|
+
const key = args[0];
|
|
374
|
+
if (orderCmp !== null && hasLast) {
|
|
375
|
+
const order = orderCmp(lastKey, key);
|
|
376
|
+
if (order === 0)
|
|
377
|
+
throw new Error(duplicateMessage(key));
|
|
378
|
+
if (order > 0) {
|
|
379
|
+
demote();
|
|
380
|
+
return emit(...args);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
if (orderCmp !== null) {
|
|
384
|
+
lastKey = key;
|
|
385
|
+
hasLast = true;
|
|
386
|
+
}
|
|
387
|
+
batch.push(kind === 'dict' ? [args[0], args[1]] : args[0]);
|
|
388
|
+
emitted++;
|
|
389
|
+
if (batch.length >= nextBatch)
|
|
390
|
+
flush();
|
|
391
|
+
return null;
|
|
392
|
+
};
|
|
393
|
+
return {
|
|
394
|
+
emit,
|
|
395
|
+
finish: () => {
|
|
396
|
+
if (buffer === null) {
|
|
397
|
+
flush();
|
|
398
|
+
out.finishClose();
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
mergeRuns();
|
|
402
|
+
},
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
/** Finalizes the emit sink and reports the output like the return-value path. */
|
|
406
|
+
function finishEmit(sink, outputPath, verbose) {
|
|
407
|
+
sink.finish();
|
|
408
|
+
const t = now();
|
|
409
|
+
if (verbose) {
|
|
410
|
+
console.error(`Output: ${outputPath} (${formatFileSize(outputPath)})`);
|
|
411
|
+
}
|
|
412
|
+
return t;
|
|
413
|
+
}
|
|
92
414
|
function maybeWriteOutput(outputPath, result, outputType, verbose) {
|
|
93
415
|
if (!outputPath) {
|
|
94
416
|
// Print to stdout as .east format (matches east-c / east-py)
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EACH,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,QAAQ,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpD,SAAS,GAAG,KAAa,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,SAAS,OAAO,CAAC,KAAa,EAAE,GAAW,IAAY,OAAO,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAE1F,SAAS,UAAU,CAAC,KAAa;IAC7B,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAChC,IAAI,CAAC;QAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,GAAG,CAAC;IAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAc,EACd,WAA+B,EAC/B,QAAkB,EAClB,UAAoB,EACpB,UAAmB,EACnB,UAAmB,KAAK;IAExB,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;IAEjB,uEAAuE;IACvE,6BAA6B;IAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAExD,qDAAqD;IACrD,MAAM,UAAU,GAAI,EAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,CAAE,EAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,CAAyB,CAAC;IAE7F,uBAAuB;IACvB,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACX,oBAAoB,UAAU,CAAC,MAAM,kBAAkB,UAAU,CAAC,MAAM,yBAAyB,CACpG,CAAC;IACN,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,MAAM,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,gBAAgB,WAAW,CAAC,MAAM,cAAc,CAAC,CAAC;YAC5F,KAAK,MAAM,CAAC,IAAI,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,aAAa,UAAU,CAAC,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC;YACrF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,cAAc;IACd,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;IAEjB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,QAAQ,GAAI,MAA2B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAEjB,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAEjB,MAAM,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAEjB,IAAI,OAAO;YAAE,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,GAAI,MAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAEjB,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAEjB,MAAM,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QAEjB,IAAI,OAAO;YAAE,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,UAA8B,EAAE,MAAe,EAAE,UAAgC,EAAE,OAAgB;IACzH,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,6DAA6D;QAC7D,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAiB,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO,GAAG,EAAE,CAAC;IAC9B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,WAAW,UAAU,MAAM,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;IAChG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;IAC3C,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,IAAmB;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAChF,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,KAAc,EAAE,IAAa;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,2DAA2D;YAC3D,kEAAkE;YAClE,yDAAyD;YACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAqB,CAAC;gBACnD,CAAC,CAAC,oBAAoB,CAAC,IAAW,CAAC;gBACnC,CAAC,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;YACnC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,MAAM;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,aAAa,CAAC,IAAW,CAAC,CAAC;YAC3C,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,MAAM;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,aAAa,CAAC,IAAW,CAAC,CAAC;YAC3C,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,MAAM;QACV,CAAC;QACD;YACI,MAAM,IAAI,KAAK,CACX,sCAAsC,GAAG,KAAK;gBAC9C,qDAAqD,CACxD,CAAC;IACV,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.spec.js
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
11
11
|
import assert from 'node:assert/strict';
|
|
12
|
-
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
12
|
+
import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
13
13
|
import { tmpdir } from 'node:os';
|
|
14
14
|
import { join } from 'node:path';
|
|
15
|
-
import { ArrayType, IntegerType, East, decodeBeast2For, encodeEastIR, openBeast2PagesFor, } from '@elaraai/east';
|
|
16
|
-
import { runProgram } from './runner.js';
|
|
15
|
+
import { ArrayType, DictType, FunctionType, IntegerType, NullType, SetType, StringType, StructType, East, SortedMap, compareFor, decodeBeast2For, encodeBeast2PagedFor, encodeEastIR, openBeast2PagesFor, } from '@elaraai/east';
|
|
16
|
+
import { runProgram, lazyThreshold } from './runner.js';
|
|
17
17
|
describe('runner output encoding', () => {
|
|
18
18
|
let tempDir;
|
|
19
19
|
beforeEach(() => {
|
|
@@ -52,4 +52,210 @@ describe('runner output encoding', () => {
|
|
|
52
52
|
assert.deepEqual(decodeBeast2For(AT)(output), expected, 'whole decode equals the result');
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
|
+
describe('runner streaming execution', () => {
|
|
56
|
+
let tempDir;
|
|
57
|
+
beforeEach(() => {
|
|
58
|
+
tempDir = mkdtempSync(join(tmpdir(), 'east-node-stream-'));
|
|
59
|
+
});
|
|
60
|
+
afterEach(() => {
|
|
61
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
62
|
+
});
|
|
63
|
+
function writeIr(fn) {
|
|
64
|
+
const irPath = join(tempDir, 'program.beast2');
|
|
65
|
+
writeFileSync(irPath, encodeEastIR(fn.toIR()));
|
|
66
|
+
return irPath;
|
|
67
|
+
}
|
|
68
|
+
it('a producer body emits an indexed Array output incrementally', async () => {
|
|
69
|
+
const fn = East.function([FunctionType([IntegerType], NullType)], NullType, ($, emit) => {
|
|
70
|
+
$.for(East.Array.range(0n, 2500n), ($, i) => {
|
|
71
|
+
$(emit(i.multiply(2n)));
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
const outputPath = join(tempDir, 'output.beast2');
|
|
75
|
+
await runProgram(writeIr(fn), [], [], [], outputPath, { emit: 'array' });
|
|
76
|
+
const output = new Uint8Array(readFileSync(outputPath));
|
|
77
|
+
const pages = openBeast2PagesFor(ArrayType(IntegerType))(output);
|
|
78
|
+
assert.equal(pages.elementCount, 2500);
|
|
79
|
+
assert.ok(pages.selfContained);
|
|
80
|
+
assert.equal(pages.element(1234), 2468n);
|
|
81
|
+
const expected = Array.from({ length: 2500 }, (_, i) => BigInt(i * 2));
|
|
82
|
+
assert.deepEqual(decodeBeast2For(ArrayType(IntegerType))(output), expected);
|
|
83
|
+
});
|
|
84
|
+
it('a stream input folds through emit with the input opened lazily', async () => {
|
|
85
|
+
const AT = ArrayType(IntegerType);
|
|
86
|
+
const events = Array.from({ length: 2500 }, (_, i) => BigInt(i));
|
|
87
|
+
const inputPath = join(tempDir, 'events.beast2');
|
|
88
|
+
writeFileSync(inputPath, encodeBeast2PagedFor(AT, { batchSize: 500 })(events));
|
|
89
|
+
const fn = East.function([AT, FunctionType([IntegerType], NullType)], NullType, ($, events, emit) => {
|
|
90
|
+
const acc = $.let(0n);
|
|
91
|
+
$.for(events, ($, v) => {
|
|
92
|
+
$.assign(acc, acc.add(v));
|
|
93
|
+
$(emit(acc));
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
const outputPath = join(tempDir, 'output.beast2');
|
|
97
|
+
await runProgram(writeIr(fn), [], [], [inputPath], outputPath, { emit: 'array', streamInput: 0 });
|
|
98
|
+
const decoded = decodeBeast2For(AT)(new Uint8Array(readFileSync(outputPath)));
|
|
99
|
+
assert.equal(decoded.length, 2500);
|
|
100
|
+
assert.equal(decoded[0], 0n);
|
|
101
|
+
assert.equal(decoded[2499], (2499n * 2500n) / 2n);
|
|
102
|
+
});
|
|
103
|
+
/** The 0..count keys in a deterministic Fisher-Yates shuffle, so the
|
|
104
|
+
* disorder the sink must absorb is stable across runs. */
|
|
105
|
+
function shuffledKeys(count) {
|
|
106
|
+
const keys = Array.from({ length: count }, (_, i) => BigInt(i));
|
|
107
|
+
let seed = 12345;
|
|
108
|
+
const rnd = () => (seed = (seed * 48271) % 2147483647) / 2147483647;
|
|
109
|
+
for (let i = keys.length - 1; i > 0; i--) {
|
|
110
|
+
const j = Math.floor(rnd() * (i + 1));
|
|
111
|
+
[keys[i], keys[j]] = [keys[j], keys[i]];
|
|
112
|
+
}
|
|
113
|
+
return keys;
|
|
114
|
+
}
|
|
115
|
+
/** A dict producer emitting `row-${i}` for each key in the given order. */
|
|
116
|
+
function dictEmitter(order) {
|
|
117
|
+
const emitType = FunctionType([IntegerType, StringType], NullType);
|
|
118
|
+
return East.function([emitType], NullType, ($, emit) => {
|
|
119
|
+
$.for($.const(order, ArrayType(IntegerType)), ($, i) => {
|
|
120
|
+
$(emit(i, East.str `row-${i}`));
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
it('a dict emit accepts any emission order and writes the canonical blob (#518)', async () => {
|
|
125
|
+
const shuffledPath = join(tempDir, 'shuffled.beast2');
|
|
126
|
+
await runProgram(writeIr(dictEmitter(shuffledKeys(1000))), [], [], [], shuffledPath, { emit: 'dict' });
|
|
127
|
+
const orderedPath = join(tempDir, 'ordered.beast2');
|
|
128
|
+
const ascending = Array.from({ length: 1000 }, (_, i) => BigInt(i));
|
|
129
|
+
await runProgram(writeIr(dictEmitter(ascending)), [], [], [], orderedPath, { emit: 'dict' });
|
|
130
|
+
const shuffled = new Uint8Array(readFileSync(shuffledPath));
|
|
131
|
+
assert.deepEqual(shuffled, new Uint8Array(readFileSync(orderedPath)), 'out-of-order emission must produce the byte-identical canonical blob');
|
|
132
|
+
const DT = DictType(IntegerType, StringType);
|
|
133
|
+
const decoded = decodeBeast2For(DT)(shuffled);
|
|
134
|
+
assert.equal(decoded.size, 1000);
|
|
135
|
+
assert.equal(decoded.get(42n), 'row-42');
|
|
136
|
+
assert.ok(openBeast2PagesFor(DT)(shuffled).selfContained);
|
|
137
|
+
assert.ok(!existsSync(`${shuffledPath}.run0`), 'spill runs must be cleaned up');
|
|
138
|
+
});
|
|
139
|
+
it('a tiny EAST_EMIT_RUN_ELEMENTS cap forces spilled runs and the merge is still canonical', async () => {
|
|
140
|
+
const saved = process.env.EAST_EMIT_RUN_ELEMENTS;
|
|
141
|
+
process.env.EAST_EMIT_RUN_ELEMENTS = '16';
|
|
142
|
+
try {
|
|
143
|
+
const shuffledPath = join(tempDir, 'spilled.beast2');
|
|
144
|
+
await runProgram(writeIr(dictEmitter(shuffledKeys(300))), [], [], [], shuffledPath, { emit: 'dict' });
|
|
145
|
+
const orderedPath = join(tempDir, 'ordered300.beast2');
|
|
146
|
+
const ascending = Array.from({ length: 300 }, (_, i) => BigInt(i));
|
|
147
|
+
await runProgram(writeIr(dictEmitter(ascending)), [], [], [], orderedPath, { emit: 'dict' });
|
|
148
|
+
assert.deepEqual(new Uint8Array(readFileSync(shuffledPath)), new Uint8Array(readFileSync(orderedPath)));
|
|
149
|
+
assert.ok(!existsSync(`${shuffledPath}.run1`), 'spill runs must be cleaned up');
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
if (saved === undefined)
|
|
153
|
+
delete process.env.EAST_EMIT_RUN_ELEMENTS;
|
|
154
|
+
else
|
|
155
|
+
process.env.EAST_EMIT_RUN_ELEMENTS = saved;
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
it('a duplicate dict key is a hard error, adjacent or across spilled runs', async () => {
|
|
159
|
+
const emitType = FunctionType([IntegerType, StringType], NullType);
|
|
160
|
+
const adjacent = East.function([emitType], NullType, ($, emit) => {
|
|
161
|
+
$(emit(1n, 'a'));
|
|
162
|
+
$(emit(1n, 'b'));
|
|
163
|
+
});
|
|
164
|
+
await assert.rejects(runProgram(writeIr(adjacent), [], [], [], join(tempDir, 'dup.beast2'), { emit: 'dict' }), /duplicate Dict key emitted/);
|
|
165
|
+
// An inversion first (buffered mode), so the duplicate is only visible
|
|
166
|
+
// to the finalize-time merge.
|
|
167
|
+
const crossRun = East.function([emitType], NullType, ($, emit) => {
|
|
168
|
+
$(emit(5n, 'x'));
|
|
169
|
+
$(emit(3n, 'y'));
|
|
170
|
+
$(emit(5n, 'dup'));
|
|
171
|
+
});
|
|
172
|
+
await assert.rejects(runProgram(writeIr(crossRun), [], [], [], join(tempDir, 'dup2.beast2'), { emit: 'dict' }), /duplicate Dict key emitted/);
|
|
173
|
+
});
|
|
174
|
+
it('a lazy dict input serves keyed reads without a whole decode', async () => {
|
|
175
|
+
const DT = DictType(IntegerType, StringType);
|
|
176
|
+
const table = new SortedMap(Array.from({ length: 2000 }, (_, i) => [BigInt(i), `row-${i}`]), compareFor(IntegerType));
|
|
177
|
+
const inputPath = join(tempDir, 'table.beast2');
|
|
178
|
+
writeFileSync(inputPath, encodeBeast2PagedFor(DT, { batchSize: 250 })(table));
|
|
179
|
+
const fn = East.function([DT], StringType, ($, table) => table.get(1234n));
|
|
180
|
+
const outputPath = join(tempDir, 'output.beast2');
|
|
181
|
+
// Threshold of 1 byte forces the lazy open for any input size.
|
|
182
|
+
await runProgram(writeIr(fn), [], [], [inputPath], outputPath, { lazyInputBytes: 1 });
|
|
183
|
+
const result = decodeBeast2For(StringType)(new Uint8Array(readFileSync(outputPath)));
|
|
184
|
+
assert.equal(result, 'row-1234');
|
|
185
|
+
});
|
|
186
|
+
it('the shape gate keeps mutable-nested inputs eager even under the threshold', async () => {
|
|
187
|
+
const NestedT = DictType(IntegerType, StructType({ xs: ArrayType(IntegerType) }));
|
|
188
|
+
const table = new SortedMap([[1n, { xs: [1n, 2n] }], [2n, { xs: [] }], [3n, { xs: [3n] }]], compareFor(IntegerType));
|
|
189
|
+
const inputPath = join(tempDir, 'nested.beast2');
|
|
190
|
+
writeFileSync(inputPath, encodeBeast2PagedFor(NestedT, { batchSize: 2 })(table));
|
|
191
|
+
// Write through a read-out element, then force a re-materialization
|
|
192
|
+
// (insert would hydrate a lazy value from the blob, dropping the write)
|
|
193
|
+
// and observe: only an eagerly-opened input keeps the write.
|
|
194
|
+
const fn = East.function([NestedT], IntegerType, ($, d) => {
|
|
195
|
+
const row = $.let(d.get(1n));
|
|
196
|
+
$(row.xs.pushLast(42n));
|
|
197
|
+
$(d.insert(99n, { xs: [] }));
|
|
198
|
+
return d.get(1n).xs.size();
|
|
199
|
+
});
|
|
200
|
+
const outputPath = join(tempDir, 'output.beast2');
|
|
201
|
+
await runProgram(writeIr(fn), [], [], [inputPath], outputPath, { lazyInputBytes: 1 });
|
|
202
|
+
const result = decodeBeast2For(IntegerType)(new Uint8Array(readFileSync(outputPath)));
|
|
203
|
+
assert.equal(result, 3n, 'the write through the read-out element must land in the input');
|
|
204
|
+
});
|
|
205
|
+
it('refuses --emit with a non-.beast2 output, like east-c and east-py', async () => {
|
|
206
|
+
const fn = East.function([FunctionType([IntegerType], NullType)], NullType, ($, emit) => {
|
|
207
|
+
$(emit(1n));
|
|
208
|
+
});
|
|
209
|
+
await assert.rejects(runProgram(writeIr(fn), [], [], [], join(tempDir, 'out.json'), { emit: 'array' }), /--emit requires a \.beast2 output file \(-o\)/);
|
|
210
|
+
});
|
|
211
|
+
it('refuses --emit on a zero-parameter function with the emit-capability error', async () => {
|
|
212
|
+
const fn = East.function([], IntegerType, (_$) => 1n);
|
|
213
|
+
await assert.rejects(runProgram(writeIr(fn), [], [], [], join(tempDir, 'out.beast2'), { emit: 'array' }), /trailing parameter to be the emit capability[\s\S]*takes no parameters/);
|
|
214
|
+
});
|
|
215
|
+
it('a set emit accepts any order and names duplicates with the element noun', async () => {
|
|
216
|
+
const emitType = FunctionType([IntegerType], NullType);
|
|
217
|
+
const disordered = East.function([emitType], NullType, ($, emit) => {
|
|
218
|
+
$(emit(2n));
|
|
219
|
+
$(emit(1n));
|
|
220
|
+
$(emit(3n));
|
|
221
|
+
});
|
|
222
|
+
const outputPath = join(tempDir, 'set.beast2');
|
|
223
|
+
await runProgram(writeIr(disordered), [], [], [], outputPath, { emit: 'set' });
|
|
224
|
+
const decoded = decodeBeast2For(SetType(IntegerType))(new Uint8Array(readFileSync(outputPath)));
|
|
225
|
+
assert.deepEqual([...decoded], [1n, 2n, 3n]);
|
|
226
|
+
const dup = East.function([emitType], NullType, ($, emit) => {
|
|
227
|
+
$(emit(2n));
|
|
228
|
+
$(emit(1n));
|
|
229
|
+
$(emit(2n));
|
|
230
|
+
});
|
|
231
|
+
await assert.rejects(runProgram(writeIr(dup), [], [], [], join(tempDir, 'dupset.beast2'), { emit: 'set' }), /duplicate Set element emitted/);
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
describe('lazy input threshold resolution', () => {
|
|
235
|
+
const saved = process.env.EAST_LAZY_INPUT_BYTES;
|
|
236
|
+
afterEach(() => {
|
|
237
|
+
if (saved === undefined)
|
|
238
|
+
delete process.env.EAST_LAZY_INPUT_BYTES;
|
|
239
|
+
else
|
|
240
|
+
process.env.EAST_LAZY_INPUT_BYTES = saved;
|
|
241
|
+
});
|
|
242
|
+
it('defaults to 64 MiB when the environment variable is unset or empty', () => {
|
|
243
|
+
delete process.env.EAST_LAZY_INPUT_BYTES;
|
|
244
|
+
assert.equal(lazyThreshold({}), 64 * 1024 * 1024);
|
|
245
|
+
process.env.EAST_LAZY_INPUT_BYTES = '';
|
|
246
|
+
assert.equal(lazyThreshold({}), 64 * 1024 * 1024, 'empty must fall through to the default, not disable lazy opening');
|
|
247
|
+
});
|
|
248
|
+
it('honours numeric overrides, 0 as the kill switch, and falls back on invalid values', () => {
|
|
249
|
+
process.env.EAST_LAZY_INPUT_BYTES = '0';
|
|
250
|
+
assert.equal(lazyThreshold({}), 0, '0 disables lazy opening');
|
|
251
|
+
process.env.EAST_LAZY_INPUT_BYTES = '123';
|
|
252
|
+
assert.equal(lazyThreshold({}), 123);
|
|
253
|
+
process.env.EAST_LAZY_INPUT_BYTES = '-5';
|
|
254
|
+
assert.equal(lazyThreshold({}), 64 * 1024 * 1024, 'negative values fall back to the default');
|
|
255
|
+
process.env.EAST_LAZY_INPUT_BYTES = 'not-a-number';
|
|
256
|
+
assert.equal(lazyThreshold({}), 64 * 1024 * 1024, 'garbage falls back to the default');
|
|
257
|
+
process.env.EAST_LAZY_INPUT_BYTES = '999';
|
|
258
|
+
assert.equal(lazyThreshold({ lazyInputBytes: 7 }), 7, 'the explicit option wins over the environment');
|
|
259
|
+
});
|
|
260
|
+
});
|
|
55
261
|
//# sourceMappingURL=runner.spec.js.map
|
package/dist/runner.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.spec.js","sourceRoot":"","sources":["../src/runner.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.spec.js","sourceRoot":"","sources":["../src/runner.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elaraai/east-node-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.60",
|
|
4
4
|
"description": "Command-line interface for running East IR programs with Node.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"east-node": "./bin/east-node.mjs"
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"tar-stream": "^3.1.7"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@elaraai/east": "1.0.
|
|
47
|
+
"@elaraai/east": "1.0.60"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "^22.18.1",
|