@elaraai/east-node-cli 1.0.77 → 1.0.78
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 +126 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +151 -18
- package/dist/cli.js.map +1 -1
- package/dist/emit-writer.d.ts +74 -0
- package/dist/emit-writer.d.ts.map +1 -0
- package/dist/emit-writer.js +159 -0
- package/dist/emit-writer.js.map +1 -0
- package/dist/merge.d.ts +48 -0
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +342 -0
- package/dist/merge.js.map +1 -0
- package/dist/runner.d.ts +53 -3
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +145 -244
- package/dist/runner.js.map +1 -1
- package/dist/runner.spec.js +559 -63
- package/dist/runner.spec.js.map +1 -1
- package/package.json +3 -3
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;AAeH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAc9E,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,kEAAkE;AAClE;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI9B;AAED,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,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;iBAIa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;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,CAqJlB;AAoBD,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;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAI7G"}
|
package/dist/runner.js
CHANGED
|
@@ -2,10 +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 { statSync, writeFileSync } from 'fs';
|
|
6
6
|
import { extname } from 'path';
|
|
7
|
-
import { EastIR,
|
|
7
|
+
import { EastIR, compareFor, encodeBeast2For, encodeBeast2PagedFor, encodeEastFor, encodeJSONFor, isTypeValueEqual, printFor, variant, } from '@elaraai/east';
|
|
8
8
|
import { printTypeValue } from '@elaraai/east/internal';
|
|
9
|
+
import { EmitFileWriter } from './emit-writer.js';
|
|
9
10
|
import { lazyInputBytesRead, loadEastIR, loadInput, loadInputLazy } from './loader.js';
|
|
10
11
|
function now() { return process.hrtime.bigint(); }
|
|
11
12
|
function elapsed(start, end) { return Number(end - start) / 1e6; }
|
|
@@ -16,7 +17,8 @@ function formatSize(bytes) {
|
|
|
16
17
|
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
17
18
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
/** A file's size for the verbose account, or `?` when it cannot be read. @internal */
|
|
21
|
+
export function formatFileSize(path) {
|
|
20
22
|
try {
|
|
21
23
|
return formatSize(statSync(path).size);
|
|
22
24
|
}
|
|
@@ -24,6 +26,22 @@ function formatFileSize(path) {
|
|
|
24
26
|
return '?';
|
|
25
27
|
}
|
|
26
28
|
}
|
|
29
|
+
/** Streaming-execution options accepted by {@link runProgram}. */
|
|
30
|
+
/**
|
|
31
|
+
* A refusal of the command line itself — a flag combination, an output
|
|
32
|
+
* destination, a function shape the flags do not fit.
|
|
33
|
+
*
|
|
34
|
+
* These are the user's errors, not the program's, and east-c and east-py
|
|
35
|
+
* answer them with one sentence on stderr. Marking them lets the CLI do the
|
|
36
|
+
* same instead of printing the JS stack it prints for an error thrown from
|
|
37
|
+
* East or from a platform function, where the frames are the diagnosis.
|
|
38
|
+
*/
|
|
39
|
+
export class UsageError extends Error {
|
|
40
|
+
constructor(message) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.name = 'UsageError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
27
45
|
/** Default size threshold above which collection inputs open lazily. */
|
|
28
46
|
const LAZY_INPUT_BYTES_DEFAULT = 64 * 1024 * 1024;
|
|
29
47
|
/** Resolves the lazy-open threshold: explicit option, else environment, else
|
|
@@ -50,6 +68,12 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
50
68
|
const opts = typeof options === 'boolean' ? { verbose: options } : options;
|
|
51
69
|
const verbose = opts.verbose ?? false;
|
|
52
70
|
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
|
+
}
|
|
53
77
|
// Load as an EastIR bundle so source_map travels with the IR and error
|
|
54
78
|
// frames resolve end-to-end.
|
|
55
79
|
const eastIR = loadEastIR(irPath);
|
|
@@ -63,22 +87,33 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
63
87
|
// has no trailing parameter to be it — the shaped emit error, not a
|
|
64
88
|
// negative arity count.
|
|
65
89
|
if (opts.emit !== undefined && inputTypes.length === 0) {
|
|
66
|
-
throw new
|
|
90
|
+
throw new UsageError(`--emit requires the function's trailing parameter to be the emit capability (a function type)`);
|
|
67
91
|
}
|
|
68
92
|
const fileParamCount = opts.emit !== undefined ? inputTypes.length - 1 : inputTypes.length;
|
|
69
93
|
if (inputPaths.length !== fileParamCount) {
|
|
70
|
-
|
|
94
|
+
// east-c / east-py parity, down to the signature line: one sentence
|
|
95
|
+
// for one condition, whichever runner the task declares.
|
|
96
|
+
const signature = `(${inputTypes.map((t) => printTypeValue(t)).join(', ')}) -> ` +
|
|
97
|
+
`${outputType !== null ? printTypeValue(outputType) : '?'}`;
|
|
98
|
+
throw new UsageError(`Function expects ${fileParamCount} inputs, got ${inputPaths.length}\nSignature: ${signature}`);
|
|
71
99
|
}
|
|
72
100
|
if (opts.emit !== undefined && (outputPath === undefined || extname(outputPath).toLowerCase() !== '.beast2')) {
|
|
73
101
|
// east-c / east-py parity: the emitted blob is a beast2 stream, so
|
|
74
102
|
// any other output extension is refused up front.
|
|
75
|
-
throw new
|
|
103
|
+
throw new UsageError(`--emit requires a .beast2 output file (-o)`);
|
|
76
104
|
}
|
|
77
|
-
|
|
78
|
-
|
|
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
|
+
}
|
|
79
110
|
}
|
|
80
111
|
const emitSink = opts.emit !== undefined
|
|
81
|
-
? createEmitSink(opts.emit, inputTypes[inputTypes.length - 1], outputPath,
|
|
112
|
+
? createEmitSink(opts.emit, inputTypes[inputTypes.length - 1], outputPath, {
|
|
113
|
+
...(opts.merge !== undefined && { mergePath: opts.merge }),
|
|
114
|
+
union: opts.union ?? false,
|
|
115
|
+
platformFns,
|
|
116
|
+
})
|
|
82
117
|
: null;
|
|
83
118
|
// Verbose header
|
|
84
119
|
if (verbose) {
|
|
@@ -102,7 +137,7 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
102
137
|
}
|
|
103
138
|
}
|
|
104
139
|
// Load inputs — always frozen (task inputs are immutable; mutating one
|
|
105
|
-
// throws the uniform copy-first error).
|
|
140
|
+
// throws the uniform copy-first error). Streamed inputs always open
|
|
106
141
|
// lazily; other beast2 collection inputs open lazily at or above the
|
|
107
142
|
// size threshold, so a sparse read into a huge indexed input stops
|
|
108
143
|
// paying a whole decode — and because frozen collapses the shape gate,
|
|
@@ -111,7 +146,7 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
111
146
|
const inputs = [];
|
|
112
147
|
const lazyInputs = [];
|
|
113
148
|
for (let i = 0; i < inputPaths.length; i++) {
|
|
114
|
-
const wantLazy = i
|
|
149
|
+
const wantLazy = streamInputs.includes(i) ||
|
|
115
150
|
(threshold > 0 && statSync(inputPaths[i]).size >= threshold);
|
|
116
151
|
const lazy = wantLazy ? loadInputLazy(inputPaths[i]) : undefined;
|
|
117
152
|
if (lazy !== undefined) {
|
|
@@ -164,276 +199,142 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
164
199
|
}
|
|
165
200
|
return outputPath ? undefined : result;
|
|
166
201
|
}
|
|
167
|
-
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
*
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
202
|
+
/**
|
|
203
|
+
* Loads a `--merge` function: an IR file holding a `(K, V, V) -> V` East
|
|
204
|
+
* function over the given key and value types, compiled with the run's
|
|
205
|
+
* platforms. Shared by the emit sink and the blob merge.
|
|
206
|
+
*
|
|
207
|
+
* @param path - the IR file (any format the IR positional accepts)
|
|
208
|
+
* @param keyType - the key type
|
|
209
|
+
* @param valueType - the value type
|
|
210
|
+
* @param platformFns - the run's platforms
|
|
211
|
+
* @param subject - what the function must match, for the message: `the emit
|
|
212
|
+
* parameter` or `the inputs`
|
|
213
|
+
* @returns the compiled merge function
|
|
214
|
+
* @throws {Error} When the IR is not a function of that shape, naming the
|
|
215
|
+
* expected and the actual types.
|
|
216
|
+
*/
|
|
217
|
+
export function loadMergeFunction(path, keyType, valueType, platformFns, subject) {
|
|
218
|
+
const bundle = loadEastIR(path);
|
|
219
|
+
const fnType = bundle.ir.value.type;
|
|
220
|
+
const shape = fnType.type === 'Function' ? fnType.value : null;
|
|
221
|
+
if (shape === null || shape.inputs.length !== 3 ||
|
|
222
|
+
!isTypeValueEqual(shape.inputs[0], keyType) ||
|
|
223
|
+
!isTypeValueEqual(shape.inputs[1], valueType) ||
|
|
224
|
+
!isTypeValueEqual(shape.inputs[2], valueType) ||
|
|
225
|
+
!isTypeValueEqual(shape.output, valueType)) {
|
|
226
|
+
throw new Error(`--merge: expected a function (K, V, V) -> V matching ${subject} ` +
|
|
227
|
+
`(K = ${printTypeValue(keyType)}, V = ${printTypeValue(valueType)}), got ${printTypeValue(fnType)}`);
|
|
179
228
|
}
|
|
180
|
-
return
|
|
229
|
+
return bundle.compile(platformFns);
|
|
230
|
+
}
|
|
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`;
|
|
181
259
|
}
|
|
182
260
|
/**
|
|
183
261
|
* Builds the emit capability: a host function value that re-batches elements
|
|
184
262
|
* byte-adaptively and appends segments to the output file through a
|
|
185
|
-
* streaming writer
|
|
263
|
+
* streaming writer ({@link EmitFileWriter}) — one pass, with one open batch
|
|
264
|
+
* in memory whatever the output's size.
|
|
186
265
|
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
* `finish` k-way merges runs + tail into the canonical output. Duplicate
|
|
195
|
-
* Set/Dict keys are a hard error in every path: immediately when adjacent in
|
|
196
|
-
* the stream, at spill/merge time otherwise.
|
|
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.
|
|
197
273
|
*/
|
|
198
|
-
function createEmitSink(kind, emitParamType, outputPath,
|
|
274
|
+
function createEmitSink(kind, emitParamType, outputPath, fold) {
|
|
199
275
|
if (emitParamType.type !== 'Function') {
|
|
200
|
-
throw new
|
|
276
|
+
throw new UsageError(`--emit requires the function's trailing parameter to be the emit capability (a function type)`);
|
|
201
277
|
}
|
|
202
278
|
const emitInputs = emitParamType.value.inputs;
|
|
203
279
|
const expectedArity = kind === 'dict' ? 2 : 1;
|
|
204
280
|
if (emitInputs.length !== expectedArity) {
|
|
205
|
-
throw new
|
|
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');
|
|
206
288
|
}
|
|
289
|
+
const merge = fold.mergePath !== undefined
|
|
290
|
+
? loadMergeFunction(fold.mergePath, emitInputs[0], emitInputs[1], fold.platformFns, 'the emit parameter')
|
|
291
|
+
: null;
|
|
207
292
|
// The output collection's wire type is reconstructed from the emit
|
|
208
293
|
// parameter's argument types.
|
|
209
294
|
const outTypeValue = kind === 'dict' ? variant('Dict', { key: emitInputs[0], value: emitInputs[1] }) :
|
|
210
295
|
kind === 'set' ? variant('Set', emitInputs[0]) :
|
|
211
296
|
variant('Array', emitInputs[0]);
|
|
212
|
-
/** Opens a streaming file writer: header at open, terminator + index at
|
|
213
|
-
* `finishClose` — every finished file is a complete canonical blob. */
|
|
214
|
-
function openFileWriter(path, parallel = false) {
|
|
215
|
-
const fd = openSync(path, 'w');
|
|
216
|
-
let headerBytes = -1;
|
|
217
|
-
const writer = new Beast2Writer(outTypeValue, (bytes) => {
|
|
218
|
-
// writeSync may return a short count; loop until the chunk is
|
|
219
|
-
// fully on disk — a silently truncated write would corrupt the
|
|
220
|
-
// blob while the process still exits 0.
|
|
221
|
-
let written = 0;
|
|
222
|
-
while (written < bytes.length) {
|
|
223
|
-
written += writeSync(fd, bytes, written, bytes.length - written);
|
|
224
|
-
}
|
|
225
|
-
if (headerBytes < 0)
|
|
226
|
-
headerBytes = bytes.length;
|
|
227
|
-
}, { parallel });
|
|
228
|
-
const refine = (bytes, elements) => {
|
|
229
|
-
const avg = Math.max(1, Math.max(1, bytes - Math.max(0, headerBytes)) / elements);
|
|
230
|
-
return Math.max(1, Math.min(BEAST2_PAGED_BATCH_DEFAULT, Math.floor(BEAST2_PAGED_TARGET_BYTES_DEFAULT / avg)));
|
|
231
|
-
};
|
|
232
|
-
return {
|
|
233
|
-
writer,
|
|
234
|
-
// The next batch size after `elements` have been written. With
|
|
235
|
-
// frames deflating on workers (#763) the bytes written are only
|
|
236
|
-
// known within bounds; the refinement is monotone in them, so
|
|
237
|
-
// agreeing bounds are the serial decision and disagreeing ones
|
|
238
|
-
// wait for the frames — the segmentation never depends on timing.
|
|
239
|
-
nextBatch: (elements) => {
|
|
240
|
-
const { lo, hi } = writer.emittedBounds();
|
|
241
|
-
const next = refine(lo, elements);
|
|
242
|
-
if (next === refine(hi, elements))
|
|
243
|
-
return next;
|
|
244
|
-
writer.settle();
|
|
245
|
-
return refine(writer.emittedBounds().lo, elements);
|
|
246
|
-
},
|
|
247
|
-
finishClose: () => { writer.finish(); closeSync(fd); },
|
|
248
|
-
closeAbandoned: () => { closeSync(fd); },
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
297
|
// Canonical-order tracking per element, ahead of the writer's own
|
|
252
|
-
// batch-level check, so an adjacent duplicate
|
|
253
|
-
// call and can never collapse silently inside a
|
|
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.
|
|
254
301
|
const orderCmp = kind === 'array' ? null : compareFor(emitInputs[0]);
|
|
255
302
|
const printKey = kind === 'array' ? null : printFor(emitInputs[0]);
|
|
256
|
-
const
|
|
257
|
-
const noun = kind === 'dict' ? 'Dict' : 'Set';
|
|
258
|
-
const part = kind === 'dict' ? 'key' : 'element';
|
|
259
|
-
return `beast2 v5: duplicate ${noun} ${part} emitted: ${printKey(key)} — ${noun} ${part}s must be unique`;
|
|
260
|
-
};
|
|
261
|
-
const itemKey = (item) => kind === 'dict' ? item[0] : item;
|
|
262
|
-
const toValue = (items) => kind === 'dict' ? new Map(items) : kind === 'set' ? new Set(items) : items;
|
|
263
|
-
let out = openFileWriter(outputPath, true);
|
|
303
|
+
const out = new EmitFileWriter(kind, outTypeValue, outputPath);
|
|
264
304
|
let hasLast = false;
|
|
265
305
|
let lastKey;
|
|
266
|
-
let emitted = 0;
|
|
267
|
-
// Byte-adaptive re-batching toward the paged-encode segment target,
|
|
268
|
-
// refined from the writer's actual output as segments flush.
|
|
269
|
-
let batch = [];
|
|
270
|
-
let written = 0;
|
|
271
|
-
let nextBatch = BEAST2_PAGED_BATCH_DEFAULT;
|
|
272
|
-
const flush = () => {
|
|
273
|
-
if (batch.length === 0)
|
|
274
|
-
return;
|
|
275
|
-
out.writer.write(toValue(batch));
|
|
276
|
-
written += batch.length;
|
|
277
|
-
batch = [];
|
|
278
|
-
nextBatch = out.nextBatch(written);
|
|
279
|
-
};
|
|
280
|
-
// Out-of-order (spill/merge) state; `buffer === null` means the
|
|
281
|
-
// ascending fast path is still live.
|
|
282
|
-
let buffer = null;
|
|
283
|
-
const runs = [];
|
|
284
|
-
const runCap = emitRunElements();
|
|
285
|
-
let spilledBytes = 0;
|
|
286
|
-
/** East-order sort of buffered items with the adjacent-duplicate check —
|
|
287
|
-
* equality is East equality (`compareFor`) throughout. */
|
|
288
|
-
const sortRun = (items) => {
|
|
289
|
-
const sorted = items.slice().sort((a, b) => orderCmp(itemKey(a), itemKey(b)));
|
|
290
|
-
for (let i = 1; i < sorted.length; i++) {
|
|
291
|
-
if (orderCmp(itemKey(sorted[i - 1]), itemKey(sorted[i])) === 0) {
|
|
292
|
-
throw new Error(duplicateMessage(itemKey(sorted[i])));
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return sorted;
|
|
296
|
-
};
|
|
297
|
-
const spill = () => {
|
|
298
|
-
if (buffer.length === 0)
|
|
299
|
-
return;
|
|
300
|
-
const sorted = sortRun(buffer);
|
|
301
|
-
const path = `${outputPath}.run${runs.length}`;
|
|
302
|
-
const run = openFileWriter(path);
|
|
303
|
-
for (let i = 0; i < sorted.length; i += BEAST2_PAGED_BATCH_DEFAULT) {
|
|
304
|
-
run.writer.write(toValue(sorted.slice(i, i + BEAST2_PAGED_BATCH_DEFAULT)));
|
|
305
|
-
}
|
|
306
|
-
run.finishClose();
|
|
307
|
-
runs.push(path);
|
|
308
|
-
spilledBytes += statSync(path).size;
|
|
309
|
-
buffer = [];
|
|
310
|
-
};
|
|
311
|
-
const demote = () => {
|
|
312
|
-
// The prefix written so far is ascending, so finishing the writer
|
|
313
|
-
// yields a complete canonical beast2 file — demote it to run #0 and
|
|
314
|
-
// switch to buffered (sort-in-the-sink) emission.
|
|
315
|
-
flush();
|
|
316
|
-
out.finishClose();
|
|
317
|
-
const run0 = `${outputPath}.run0`;
|
|
318
|
-
renameSync(outputPath, run0);
|
|
319
|
-
if (written > 0) {
|
|
320
|
-
runs.push(run0);
|
|
321
|
-
spilledBytes += statSync(run0).size;
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
unlinkSync(run0);
|
|
325
|
-
}
|
|
326
|
-
buffer = [];
|
|
327
|
-
console.error(`east emit: ${kind === 'dict' ? 'Dict keys' : 'Set elements'} left ascending order at ` +
|
|
328
|
-
`element ${emitted}; establishing canonical order in the sink (spill/merge)`);
|
|
329
|
-
};
|
|
330
|
-
const mergeRuns = () => {
|
|
331
|
-
// K-way merge the spilled runs and the in-memory tail into the
|
|
332
|
-
// canonical output — O(run cap + one decoded segment per run)
|
|
333
|
-
// memory, with the cross-run duplicate check on the merged stream.
|
|
334
|
-
const tail = buffer.length > 0 ? sortRun(buffer) : [];
|
|
335
|
-
buffer = [];
|
|
336
|
-
const iters = runs.map((path) => {
|
|
337
|
-
const bytes = new Uint8Array(readFileSync(path));
|
|
338
|
-
return (function* () {
|
|
339
|
-
for (const segment of iterBeast2SegmentsFor(outTypeValue)(bytes)) {
|
|
340
|
-
if (kind === 'dict')
|
|
341
|
-
yield* segment.entries();
|
|
342
|
-
else
|
|
343
|
-
yield* segment;
|
|
344
|
-
}
|
|
345
|
-
})();
|
|
346
|
-
});
|
|
347
|
-
iters.push(tail[Symbol.iterator]());
|
|
348
|
-
const heads = iters.map((it) => it.next());
|
|
349
|
-
out = openFileWriter(outputPath, true);
|
|
350
|
-
let finished = false;
|
|
351
|
-
try {
|
|
352
|
-
let prevKey;
|
|
353
|
-
let hasPrev = false;
|
|
354
|
-
let mergedBatch = [];
|
|
355
|
-
let merged = 0;
|
|
356
|
-
let next = BEAST2_PAGED_BATCH_DEFAULT;
|
|
357
|
-
for (;;) {
|
|
358
|
-
let min = -1;
|
|
359
|
-
for (let i = 0; i < heads.length; i++) {
|
|
360
|
-
if (!heads[i].done && (min < 0 || orderCmp(itemKey(heads[i].value), itemKey(heads[min].value)) < 0)) {
|
|
361
|
-
min = i;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
if (min < 0)
|
|
365
|
-
break;
|
|
366
|
-
const item = heads[min].value;
|
|
367
|
-
heads[min] = iters[min].next();
|
|
368
|
-
const key = itemKey(item);
|
|
369
|
-
if (hasPrev && orderCmp(prevKey, key) === 0)
|
|
370
|
-
throw new Error(duplicateMessage(key));
|
|
371
|
-
prevKey = key;
|
|
372
|
-
hasPrev = true;
|
|
373
|
-
mergedBatch.push(item);
|
|
374
|
-
if (mergedBatch.length >= next) {
|
|
375
|
-
out.writer.write(toValue(mergedBatch));
|
|
376
|
-
merged += mergedBatch.length;
|
|
377
|
-
mergedBatch = [];
|
|
378
|
-
next = out.nextBatch(merged);
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
if (mergedBatch.length > 0)
|
|
382
|
-
out.writer.write(toValue(mergedBatch));
|
|
383
|
-
out.finishClose();
|
|
384
|
-
finished = true;
|
|
385
|
-
}
|
|
386
|
-
finally {
|
|
387
|
-
// An error (a cross-run duplicate) leaves the partial output
|
|
388
|
-
// unfinalized — no terminator or index — exactly like an error
|
|
389
|
-
// on the straight-through path.
|
|
390
|
-
if (!finished)
|
|
391
|
-
out.closeAbandoned();
|
|
392
|
-
}
|
|
393
|
-
for (const path of runs)
|
|
394
|
-
unlinkSync(path);
|
|
395
|
-
if (verbose) {
|
|
396
|
-
console.error(` emit: merged ${runs.length} spilled run(s) + in-memory tail (${formatSize(spilledBytes)} temp)`);
|
|
397
|
-
}
|
|
398
|
-
};
|
|
399
306
|
const emit = (...args) => {
|
|
400
|
-
if (buffer !== null) {
|
|
401
|
-
buffer.push(kind === 'dict' ? [args[0], args[1]] : args[0]);
|
|
402
|
-
emitted++;
|
|
403
|
-
if (buffer.length >= runCap)
|
|
404
|
-
spill();
|
|
405
|
-
return null;
|
|
406
|
-
}
|
|
407
307
|
const key = args[0];
|
|
408
308
|
if (orderCmp !== null && hasLast) {
|
|
409
309
|
const order = orderCmp(lastKey, key);
|
|
410
|
-
if (order === 0)
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
demote();
|
|
414
|
-
return emit(...args);
|
|
310
|
+
if (order === 0 && fold.union) {
|
|
311
|
+
// The first element stands.
|
|
312
|
+
return null;
|
|
415
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));
|
|
416
327
|
}
|
|
328
|
+
out.push(kind === 'dict' ? [key, args[1]] : key);
|
|
417
329
|
if (orderCmp !== null) {
|
|
418
330
|
lastKey = key;
|
|
419
331
|
hasLast = true;
|
|
420
332
|
}
|
|
421
|
-
batch.push(kind === 'dict' ? [args[0], args[1]] : args[0]);
|
|
422
|
-
emitted++;
|
|
423
|
-
if (batch.length >= nextBatch)
|
|
424
|
-
flush();
|
|
425
333
|
return null;
|
|
426
334
|
};
|
|
427
335
|
return {
|
|
428
336
|
emit,
|
|
429
|
-
finish: () =>
|
|
430
|
-
if (buffer === null) {
|
|
431
|
-
flush();
|
|
432
|
-
out.finishClose();
|
|
433
|
-
return;
|
|
434
|
-
}
|
|
435
|
-
mergeRuns();
|
|
436
|
-
},
|
|
337
|
+
finish: () => out.finishClose(),
|
|
437
338
|
};
|
|
438
339
|
}
|
|
439
340
|
/** Finalizes the emit sink and reports the output like the return-value path. */
|
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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"}
|