@elaraai/east-node-cli 1.0.79 → 1.0.81
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 +35 -105
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +37 -135
- package/dist/cli.js.map +1 -1
- package/dist/exec.d.ts +36 -0
- package/dist/exec.d.ts.map +1 -0
- package/dist/exec.js +348 -0
- package/dist/exec.js.map +1 -0
- package/dist/exec.spec.d.ts +6 -0
- package/dist/exec.spec.d.ts.map +1 -0
- package/dist/exec.spec.js +91 -0
- package/dist/exec.spec.js.map +1 -0
- package/dist/loader.d.ts +23 -3
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +190 -36
- package/dist/loader.js.map +1 -1
- package/dist/loader.spec.js +188 -4
- package/dist/loader.spec.js.map +1 -1
- package/dist/merge.d.ts +8 -8
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +167 -221
- package/dist/merge.js.map +1 -1
- package/dist/runner.d.ts +25 -49
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +76 -214
- package/dist/runner.js.map +1 -1
- package/dist/runner.spec.js +191 -336
- package/dist/runner.spec.js.map +1 -1
- package/package.json +4 -6
- package/dist/emit-writer.d.ts +0 -74
- package/dist/emit-writer.d.ts.map +0 -1
- package/dist/emit-writer.js +0 -159
- package/dist/emit-writer.js.map +0 -1
- package/dist/snapshot.d.ts +0 -19
- package/dist/snapshot.d.ts.map +0 -1
- package/dist/snapshot.js +0 -116
- package/dist/snapshot.js.map +0 -1
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;AAIH,OAAO,EASH,KAAK,UAAU,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAa9E,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI9B;AAKD;;;;yCAIyC;AACzC,wBAAgB,aAAa,IAAI,MAAM,CAOtC;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,UAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CA+GlB;AAED,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAEpF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAejK;AAqBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAUpD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAQlC"}
|
package/dist/runner.js
CHANGED
|
@@ -2,12 +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 { statSync, writeFileSync } from 'fs';
|
|
5
|
+
import { readFileSync, statSync, writeFileSync } from 'fs';
|
|
6
6
|
import { extname } from 'path';
|
|
7
|
-
import { EastIR,
|
|
7
|
+
import { EastIR, encodeBeast2For, encodeBeast2PagedFor, encodeEastFor, encodeJSONFor, isTypeValueEqual, printFor, variant, } from '@elaraai/east';
|
|
8
8
|
import { printTypeValue } from '@elaraai/east/internal';
|
|
9
|
-
import {
|
|
10
|
-
import { lazyInputBytesRead, loadEastIR, loadInput, loadInputLazy } from './loader.js';
|
|
9
|
+
import { inputBytes, lazyInputBytesRead, loadEastIR, loadInput, loadInputLazy } from './loader.js';
|
|
11
10
|
function now() { return process.hrtime.bigint(); }
|
|
12
11
|
function elapsed(start, end) { return Number(end - start) / 1e6; }
|
|
13
12
|
function formatSize(bytes) {
|
|
@@ -26,10 +25,9 @@ export function formatFileSize(path) {
|
|
|
26
25
|
return '?';
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
|
-
/** Streaming-execution options accepted by {@link runProgram}. */
|
|
30
28
|
/**
|
|
31
|
-
* A refusal of the command line itself — a
|
|
32
|
-
*
|
|
29
|
+
* A refusal of the command line itself — a function the inputs given do not
|
|
30
|
+
* fit.
|
|
33
31
|
*
|
|
34
32
|
* These are the user's errors, not the program's, and east-c and east-py
|
|
35
33
|
* answer them with one sentence on stderr. Marking them lets the CLI do the
|
|
@@ -44,14 +42,12 @@ export class UsageError extends Error {
|
|
|
44
42
|
}
|
|
45
43
|
/** Default size threshold above which collection inputs open lazily. */
|
|
46
44
|
const LAZY_INPUT_BYTES_DEFAULT = 64 * 1024 * 1024;
|
|
47
|
-
/** Resolves the lazy-open threshold:
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
export function lazyThreshold(
|
|
53
|
-
if (options.lazyInputBytes !== undefined)
|
|
54
|
-
return options.lazyInputBytes;
|
|
45
|
+
/** Resolves the lazy-open threshold: the environment, else the default. An
|
|
46
|
+
* unset or empty `EAST_LAZY_INPUT_BYTES` falls through to the 64 MiB default
|
|
47
|
+
* (`Number('')` is `0`, which would silently DISABLE lazy opening); invalid
|
|
48
|
+
* or negative values fall through too, matching east-c and east-py. Exported
|
|
49
|
+
* for `exec` and the spec. @internal */
|
|
50
|
+
export function lazyThreshold() {
|
|
55
51
|
const raw = process.env.EAST_LAZY_INPUT_BYTES;
|
|
56
52
|
if (raw !== undefined && raw !== '') {
|
|
57
53
|
const env = Number(raw);
|
|
@@ -63,17 +59,8 @@ export function lazyThreshold(options) {
|
|
|
63
59
|
/**
|
|
64
60
|
* Runs an East IR program.
|
|
65
61
|
*/
|
|
66
|
-
export async function runProgram(irPath, platformFns, packages, inputPaths, outputPath,
|
|
67
|
-
// Callers predating streaming execution pass `verbose` as a boolean.
|
|
68
|
-
const opts = typeof options === 'boolean' ? { verbose: options } : options;
|
|
69
|
-
const verbose = opts.verbose ?? false;
|
|
62
|
+
export async function runProgram(irPath, platformFns, packages, inputPaths, outputPath, verbose = false) {
|
|
70
63
|
const t0 = now();
|
|
71
|
-
if (opts.merge !== undefined && opts.emit !== 'dict') {
|
|
72
|
-
throw new UsageError('--merge applies to --emit dict only');
|
|
73
|
-
}
|
|
74
|
-
if (opts.union && opts.emit !== 'set') {
|
|
75
|
-
throw new UsageError('--union applies to --emit set only');
|
|
76
|
-
}
|
|
77
64
|
// Load as an EastIR bundle so source_map travels with the IR and error
|
|
78
65
|
// frames resolve end-to-end.
|
|
79
66
|
const eastIR = loadEastIR(irPath);
|
|
@@ -82,39 +69,13 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
82
69
|
// Get the function's input/output types from the IR.
|
|
83
70
|
const inputTypes = ir?.value?.type?.value?.inputs ?? [];
|
|
84
71
|
const outputType = (ir?.value?.type?.value?.output ?? null);
|
|
85
|
-
|
|
86
|
-
// beyond the input files: the emit capability. A zero-parameter function
|
|
87
|
-
// has no trailing parameter to be it — the shaped emit error, not a
|
|
88
|
-
// negative arity count.
|
|
89
|
-
if (opts.emit !== undefined && inputTypes.length === 0) {
|
|
90
|
-
throw new UsageError(`--emit requires the function's trailing parameter to be the emit capability (a function type)`);
|
|
91
|
-
}
|
|
92
|
-
const fileParamCount = opts.emit !== undefined ? inputTypes.length - 1 : inputTypes.length;
|
|
93
|
-
if (inputPaths.length !== fileParamCount) {
|
|
72
|
+
if (inputPaths.length !== inputTypes.length) {
|
|
94
73
|
// east-c / east-py parity, down to the signature line: one sentence
|
|
95
74
|
// for one condition, whichever runner the task declares.
|
|
96
75
|
const signature = `(${inputTypes.map((t) => printTypeValue(t)).join(', ')}) -> ` +
|
|
97
76
|
`${outputType !== null ? printTypeValue(outputType) : '?'}`;
|
|
98
|
-
throw new UsageError(`Function expects ${
|
|
99
|
-
}
|
|
100
|
-
if (opts.emit !== undefined && (outputPath === undefined || extname(outputPath).toLowerCase() !== '.beast2')) {
|
|
101
|
-
// east-c / east-py parity: the emitted blob is a beast2 stream, so
|
|
102
|
-
// any other output extension is refused up front.
|
|
103
|
-
throw new UsageError(`--emit requires a .beast2 output file (-o)`);
|
|
104
|
-
}
|
|
105
|
-
const streamInputs = opts.streamInputs ?? [];
|
|
106
|
-
for (const index of streamInputs) {
|
|
107
|
-
if (index < 0 || index >= inputPaths.length) {
|
|
108
|
-
throw new UsageError(`--stream index ${index} out of range (${inputPaths.length} inputs)`);
|
|
109
|
-
}
|
|
77
|
+
throw new UsageError(`Function expects ${inputTypes.length} inputs, got ${inputPaths.length}\nSignature: ${signature}`);
|
|
110
78
|
}
|
|
111
|
-
const emitSink = opts.emit !== undefined
|
|
112
|
-
? createEmitSink(opts.emit, inputTypes[inputTypes.length - 1], outputPath, {
|
|
113
|
-
...(opts.merge !== undefined && { mergePath: opts.merge }),
|
|
114
|
-
union: opts.union ?? false,
|
|
115
|
-
platformFns,
|
|
116
|
-
})
|
|
117
|
-
: null;
|
|
118
79
|
// Verbose header
|
|
119
80
|
if (verbose) {
|
|
120
81
|
console.error(`Running: ${irPath} (${formatFileSize(irPath)})`);
|
|
@@ -124,31 +85,28 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
124
85
|
console.error(` - ${p}`);
|
|
125
86
|
}
|
|
126
87
|
console.error(`Function: ${inputTypes.length} inputs, ${isAsync ? 'async' : 'sync'}`);
|
|
127
|
-
for (let i = 0; i <
|
|
88
|
+
for (let i = 0; i < inputPaths.length; i++) {
|
|
128
89
|
const t = printTypeValue(inputTypes[i]);
|
|
129
90
|
console.error(` input ${i}: ${inputPaths[i]} (${formatFileSize(inputPaths[i])})`);
|
|
130
91
|
console.error(` ${t}`);
|
|
131
92
|
}
|
|
132
|
-
if (emitSink)
|
|
133
|
-
console.error(` emit: ${opts.emit} sink -> ${outputPath}`);
|
|
134
93
|
if (outputType) {
|
|
135
94
|
console.error(` return:`);
|
|
136
95
|
console.error(` ${printTypeValue(outputType)}`);
|
|
137
96
|
}
|
|
138
97
|
}
|
|
139
98
|
// Load inputs — always frozen (task inputs are immutable; mutating one
|
|
140
|
-
// throws the uniform copy-first error).
|
|
141
|
-
// lazily
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
|
|
99
|
+
// throws the uniform copy-first error). Beast2 collection inputs open
|
|
100
|
+
// lazily at or above the size threshold, so a sparse read into a huge
|
|
101
|
+
// indexed input stops paying a whole decode — and because frozen collapses
|
|
102
|
+
// the shape gate, nested-container element shapes open lazily too. The
|
|
103
|
+
// size is the value's: an input staged as a manifest is a small file
|
|
104
|
+
// naming large ones.
|
|
105
|
+
const threshold = lazyThreshold();
|
|
146
106
|
const inputs = [];
|
|
147
107
|
const lazyInputs = [];
|
|
148
108
|
for (let i = 0; i < inputPaths.length; i++) {
|
|
149
|
-
const
|
|
150
|
-
(threshold > 0 && statSync(inputPaths[i]).size >= threshold);
|
|
151
|
-
const lazy = wantLazy ? loadInputLazy(inputPaths[i]) : undefined;
|
|
109
|
+
const lazy = threshold > 0 && inputBytes(inputPaths[i]) >= threshold ? loadInputLazy(inputPaths[i]) : undefined;
|
|
152
110
|
if (lazy !== undefined) {
|
|
153
111
|
lazyInputs.push(i);
|
|
154
112
|
if (verbose)
|
|
@@ -157,16 +115,14 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
157
115
|
inputs.push(lazy !== undefined ? lazy : loadInput(inputPaths[i], inputTypes[i]));
|
|
158
116
|
}
|
|
159
117
|
/** The verbose summary's account of each lazy input: what paging came
|
|
160
|
-
* to, against the
|
|
118
|
+
* to, against the size of the value. */
|
|
161
119
|
const reportLazyReads = () => {
|
|
162
120
|
for (const i of lazyInputs) {
|
|
163
121
|
const read = lazyInputBytesRead(inputs[i]);
|
|
164
122
|
if (read !== undefined)
|
|
165
|
-
console.error(` input ${i}: ${formatSize(read)} read of ${
|
|
123
|
+
console.error(` input ${i}: ${formatSize(read)} read of ${formatSize(inputBytes(inputPaths[i]))}`);
|
|
166
124
|
}
|
|
167
125
|
};
|
|
168
|
-
if (emitSink)
|
|
169
|
-
inputs.push(emitSink.emit);
|
|
170
126
|
const t1 = now();
|
|
171
127
|
let result;
|
|
172
128
|
if (!isAsync) {
|
|
@@ -174,12 +130,13 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
174
130
|
const t2 = now();
|
|
175
131
|
result = compiled(...inputs);
|
|
176
132
|
const t3 = now();
|
|
177
|
-
const t4 =
|
|
178
|
-
? finishEmit(emitSink, outputPath, verbose)
|
|
179
|
-
: maybeWriteOutput(outputPath, result, outputType, verbose);
|
|
180
|
-
const t5 = now();
|
|
133
|
+
const t4 = maybeWriteOutput(outputPath, result, outputType, verbose);
|
|
181
134
|
if (verbose) {
|
|
182
|
-
|
|
135
|
+
printResult({
|
|
136
|
+
outcome: variant('ok', null),
|
|
137
|
+
peakBytes: peakBytes(),
|
|
138
|
+
timings: { load: elapsed(t0, t1), compile: elapsed(t1, t2), execute: elapsed(t2, t3), output: elapsed(t3, t4) },
|
|
139
|
+
});
|
|
183
140
|
reportLazyReads();
|
|
184
141
|
}
|
|
185
142
|
}
|
|
@@ -188,26 +145,27 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
188
145
|
const t2 = now();
|
|
189
146
|
result = await compiled(...inputs);
|
|
190
147
|
const t3 = now();
|
|
191
|
-
const t4 =
|
|
192
|
-
? finishEmit(emitSink, outputPath, verbose)
|
|
193
|
-
: maybeWriteOutput(outputPath, result, outputType, verbose);
|
|
194
|
-
const t5 = now();
|
|
148
|
+
const t4 = maybeWriteOutput(outputPath, result, outputType, verbose);
|
|
195
149
|
if (verbose) {
|
|
196
|
-
|
|
150
|
+
printResult({
|
|
151
|
+
outcome: variant('ok', null),
|
|
152
|
+
peakBytes: peakBytes(),
|
|
153
|
+
timings: { load: elapsed(t0, t1), compile: elapsed(t1, t2), execute: elapsed(t2, t3), output: elapsed(t3, t4) },
|
|
154
|
+
});
|
|
197
155
|
reportLazyReads();
|
|
198
156
|
}
|
|
199
157
|
}
|
|
200
158
|
return outputPath ? undefined : result;
|
|
201
159
|
}
|
|
202
160
|
/**
|
|
203
|
-
* Loads a
|
|
204
|
-
*
|
|
205
|
-
*
|
|
161
|
+
* Loads a merge function: an IR file holding a `(K, V, V) -> V` East function
|
|
162
|
+
* over the given key and value types, compiled with the unit's platforms.
|
|
163
|
+
* Shared by `exec`'s dict output and the blob merge.
|
|
206
164
|
*
|
|
207
165
|
* @param path - the IR file (any format the IR positional accepts)
|
|
208
166
|
* @param keyType - the key type
|
|
209
167
|
* @param valueType - the value type
|
|
210
|
-
* @param platformFns - the
|
|
168
|
+
* @param platformFns - the unit's platforms
|
|
211
169
|
* @param subject - what the function must match, for the message: `the emit
|
|
212
170
|
* parameter` or `the inputs`
|
|
213
171
|
* @returns the compiled merge function
|
|
@@ -223,129 +181,11 @@ export function loadMergeFunction(path, keyType, valueType, platformFns, subject
|
|
|
223
181
|
!isTypeValueEqual(shape.inputs[1], valueType) ||
|
|
224
182
|
!isTypeValueEqual(shape.inputs[2], valueType) ||
|
|
225
183
|
!isTypeValueEqual(shape.output, valueType)) {
|
|
226
|
-
throw new Error(
|
|
184
|
+
throw new Error(`merge function: expected a function (K, V, V) -> V matching ${subject} ` +
|
|
227
185
|
`(K = ${printTypeValue(keyType)}, V = ${printTypeValue(valueType)}), got ${printTypeValue(fnType)}`);
|
|
228
186
|
}
|
|
229
187
|
return bundle.compile(platformFns);
|
|
230
188
|
}
|
|
231
|
-
/**
|
|
232
|
-
* The canonical duplicate-key error, identical across runners: the emit
|
|
233
|
-
* sink's, and the blob merge's when a key is shared without a fold.
|
|
234
|
-
*
|
|
235
|
-
* @param kind - the collection kind
|
|
236
|
-
* @param printKey - the key type's printer
|
|
237
|
-
* @param key - the repeated key
|
|
238
|
-
* @returns the message
|
|
239
|
-
*/
|
|
240
|
-
export function duplicateMessage(kind, printKey, key) {
|
|
241
|
-
const noun = kind === 'dict' ? 'Dict' : 'Set';
|
|
242
|
-
const part = kind === 'dict' ? 'key' : 'element';
|
|
243
|
-
return `beast2 v5: duplicate ${noun} ${part} emitted: ${printKey(key)} — ${noun} ${part}s must be unique`;
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* The canonical out-of-order error, identical across runners: a Set/Dict
|
|
247
|
-
* emission below the previous one.
|
|
248
|
-
*
|
|
249
|
-
* @param kind - the collection kind
|
|
250
|
-
* @param printKey - the key type's printer
|
|
251
|
-
* @param key - the offending key
|
|
252
|
-
* @param previous - the key emitted before it
|
|
253
|
-
* @returns the message
|
|
254
|
-
*/
|
|
255
|
-
function disorderMessage(kind, printKey, key, previous) {
|
|
256
|
-
const noun = kind === 'dict' ? 'Dict' : 'Set';
|
|
257
|
-
const part = kind === 'dict' ? 'key' : 'element';
|
|
258
|
-
return `beast2 v5: ${noun} ${part} emitted out of order: ${printKey(key)} after ${printKey(previous)} — Set/Dict emissions must ascend in East order`;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Builds the emit capability: a host function value that re-batches elements
|
|
262
|
-
* byte-adaptively and appends segments to the output file through a
|
|
263
|
-
* streaming writer ({@link EmitFileWriter}) — one pass, with one open batch
|
|
264
|
-
* in memory whatever the output's size.
|
|
265
|
-
*
|
|
266
|
-
* Set/Dict emissions must ascend in East (key) order (issue #770): a key
|
|
267
|
-
* below the previous one is an error naming both, in the same words on every
|
|
268
|
-
* runner, and so is an equal key unless the sink folds it. With a merge
|
|
269
|
-
* function an adjacent equal dict key folds into the batch's last entry,
|
|
270
|
-
* `acc = merge(key, acc, value)`; with union an adjacent equal set element
|
|
271
|
-
* collapses into the previous one. The output is then byte-identical to what
|
|
272
|
-
* the non-folding sink writes for the already-folded sequence.
|
|
273
|
-
*/
|
|
274
|
-
function createEmitSink(kind, emitParamType, outputPath, fold) {
|
|
275
|
-
if (emitParamType.type !== 'Function') {
|
|
276
|
-
throw new UsageError(`--emit requires the function's trailing parameter to be the emit capability (a function type)`);
|
|
277
|
-
}
|
|
278
|
-
const emitInputs = emitParamType.value.inputs;
|
|
279
|
-
const expectedArity = kind === 'dict' ? 2 : 1;
|
|
280
|
-
if (emitInputs.length !== expectedArity) {
|
|
281
|
-
throw new UsageError(`--emit ${kind} expects an emit parameter taking ${expectedArity} argument(s), got ${emitInputs.length}`);
|
|
282
|
-
}
|
|
283
|
-
if (fold.mergePath !== undefined && kind !== 'dict') {
|
|
284
|
-
throw new UsageError('--merge applies to --emit dict only');
|
|
285
|
-
}
|
|
286
|
-
if (fold.union && kind !== 'set') {
|
|
287
|
-
throw new UsageError('--union applies to --emit set only');
|
|
288
|
-
}
|
|
289
|
-
const merge = fold.mergePath !== undefined
|
|
290
|
-
? loadMergeFunction(fold.mergePath, emitInputs[0], emitInputs[1], fold.platformFns, 'the emit parameter')
|
|
291
|
-
: null;
|
|
292
|
-
// The output collection's wire type is reconstructed from the emit
|
|
293
|
-
// parameter's argument types.
|
|
294
|
-
const outTypeValue = kind === 'dict' ? variant('Dict', { key: emitInputs[0], value: emitInputs[1] }) :
|
|
295
|
-
kind === 'set' ? variant('Set', emitInputs[0]) :
|
|
296
|
-
variant('Array', emitInputs[0]);
|
|
297
|
-
// Canonical-order tracking per element, ahead of the writer's own
|
|
298
|
-
// batch-level check, so an adjacent duplicate or an out-of-order key
|
|
299
|
-
// names the offending emit call and can never collapse silently inside a
|
|
300
|
-
// batch container.
|
|
301
|
-
const orderCmp = kind === 'array' ? null : compareFor(emitInputs[0]);
|
|
302
|
-
const printKey = kind === 'array' ? null : printFor(emitInputs[0]);
|
|
303
|
-
const out = new EmitFileWriter(kind, outTypeValue, outputPath);
|
|
304
|
-
let hasLast = false;
|
|
305
|
-
let lastKey;
|
|
306
|
-
const emit = (...args) => {
|
|
307
|
-
const key = args[0];
|
|
308
|
-
if (orderCmp !== null && hasLast) {
|
|
309
|
-
const order = orderCmp(lastKey, key);
|
|
310
|
-
if (order === 0 && fold.union) {
|
|
311
|
-
// The first element stands.
|
|
312
|
-
return null;
|
|
313
|
-
}
|
|
314
|
-
if (order === 0 && merge !== null) {
|
|
315
|
-
// The flush rule keeps the last entry in the open batch, so
|
|
316
|
-
// the fold lands in place.
|
|
317
|
-
out.foldLast((last) => {
|
|
318
|
-
const [k, acc] = last;
|
|
319
|
-
return [k, merge(key, acc, args[1])];
|
|
320
|
-
});
|
|
321
|
-
return null;
|
|
322
|
-
}
|
|
323
|
-
if (order === 0)
|
|
324
|
-
throw new Error(duplicateMessage(kind, printKey, key));
|
|
325
|
-
if (order > 0)
|
|
326
|
-
throw new Error(disorderMessage(kind, printKey, key, lastKey));
|
|
327
|
-
}
|
|
328
|
-
out.push(kind === 'dict' ? [key, args[1]] : key);
|
|
329
|
-
if (orderCmp !== null) {
|
|
330
|
-
lastKey = key;
|
|
331
|
-
hasLast = true;
|
|
332
|
-
}
|
|
333
|
-
return null;
|
|
334
|
-
};
|
|
335
|
-
return {
|
|
336
|
-
emit,
|
|
337
|
-
finish: () => out.finishClose(),
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
|
-
/** Finalizes the emit sink and reports the output like the return-value path. */
|
|
341
|
-
function finishEmit(sink, outputPath, verbose) {
|
|
342
|
-
sink.finish();
|
|
343
|
-
const t = now();
|
|
344
|
-
if (verbose) {
|
|
345
|
-
console.error(`Output: ${outputPath} (${formatFileSize(outputPath)})`);
|
|
346
|
-
}
|
|
347
|
-
return t;
|
|
348
|
-
}
|
|
349
189
|
function maybeWriteOutput(outputPath, result, outputType, verbose) {
|
|
350
190
|
if (!outputPath) {
|
|
351
191
|
// Print to stdout as .east format (matches east-c / east-py)
|
|
@@ -365,17 +205,39 @@ function maybeWriteOutput(outputPath, result, outputType, verbose) {
|
|
|
365
205
|
}
|
|
366
206
|
return t;
|
|
367
207
|
}
|
|
368
|
-
|
|
208
|
+
/**
|
|
209
|
+
* Prints a unit's result as `-v` shows it: where the time went, and the
|
|
210
|
+
* process's peak memory.
|
|
211
|
+
*
|
|
212
|
+
* @param result - the result
|
|
213
|
+
*/
|
|
214
|
+
export function printResult(result) {
|
|
215
|
+
const { load, compile, execute, output } = result.timings;
|
|
369
216
|
console.error('\nTiming:');
|
|
370
|
-
console.error(` Load: ${
|
|
371
|
-
console.error(` Compile: ${
|
|
372
|
-
console.error(` Execute: ${
|
|
373
|
-
console.error(` Output: ${
|
|
374
|
-
console.error(` Total: ${
|
|
375
|
-
const rssBytes = process.memoryUsage().rss;
|
|
376
|
-
const rssMB = rssBytes / (1024 * 1024);
|
|
217
|
+
console.error(` Load: ${load.toFixed(1).padStart(8)} ms`);
|
|
218
|
+
console.error(` Compile: ${compile.toFixed(1).padStart(8)} ms`);
|
|
219
|
+
console.error(` Execute: ${execute.toFixed(1).padStart(8)} ms`);
|
|
220
|
+
console.error(` Output: ${output.toFixed(1).padStart(8)} ms`);
|
|
221
|
+
console.error(` Total: ${(load + compile + execute + output).toFixed(1).padStart(8)} ms`);
|
|
377
222
|
console.error('\nMemory:');
|
|
378
|
-
console.error(` Peak RSS: ${
|
|
223
|
+
console.error(` Peak RSS: ${(Number(result.peakBytes) / (1024 * 1024)).toFixed(1).padStart(8)} MB`);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* The process's peak resident memory in bytes: VmHWM on Linux, where
|
|
227
|
+
* `ru_maxrss` carries a parent's peak across exec, and `ru_maxrss` elsewhere.
|
|
228
|
+
*
|
|
229
|
+
* @returns the peak
|
|
230
|
+
*/
|
|
231
|
+
export function peakBytes() {
|
|
232
|
+
try {
|
|
233
|
+
const hwm = /^VmHWM:\s+(\d+) kB$/m.exec(readFileSync('/proc/self/status', 'utf8'));
|
|
234
|
+
if (hwm !== null)
|
|
235
|
+
return BigInt(hwm[1]) * 1024n;
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
// No /proc: not Linux.
|
|
239
|
+
}
|
|
240
|
+
return BigInt(process.resourceUsage().maxRSS) * 1024n;
|
|
379
241
|
}
|
|
380
242
|
/** Whether an output root type is a collection (Array/Set/Dict). */
|
|
381
243
|
function isCollectionRoot(type) {
|
|
@@ -386,9 +248,9 @@ function writeOutput(filePath, value, type) {
|
|
|
386
248
|
switch (ext) {
|
|
387
249
|
case '.beast2':
|
|
388
250
|
case '.beast': {
|
|
389
|
-
// Collection-rooted outputs are ALWAYS segmented + indexed
|
|
390
|
-
//
|
|
391
|
-
// one
|
|
251
|
+
// Collection-rooted outputs are ALWAYS segmented + indexed, cut by
|
|
252
|
+
// the content-defined rule, so e3's paged dataset reads can seek —
|
|
253
|
+
// one encoding per logical value, at every size.
|
|
392
254
|
const encoder = isCollectionRoot(type)
|
|
393
255
|
? encodeBeast2PagedFor(type)
|
|
394
256
|
: encodeBeast2For(type);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|