@elaraai/east-node-cli 1.0.83 → 1.0.85
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 +33 -13
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +31 -9
- package/dist/cli.js.map +1 -1
- package/dist/exec.d.ts +17 -21
- package/dist/exec.d.ts.map +1 -1
- package/dist/exec.js +42 -338
- package/dist/exec.js.map +1 -1
- package/dist/exec.spec.js +292 -24
- package/dist/exec.spec.js.map +1 -1
- package/dist/loader.d.ts +86 -42
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +185 -304
- package/dist/loader.js.map +1 -1
- package/dist/loader.spec.js +61 -24
- package/dist/loader.spec.js.map +1 -1
- package/dist/merge.d.ts +5 -1
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +24 -241
- package/dist/merge.js.map +1 -1
- package/dist/runner.d.ts +82 -27
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +136 -68
- package/dist/runner.js.map +1 -1
- package/dist/runner.spec.js +123 -52
- package/dist/runner.spec.js.map +1 -1
- package/package.json +3 -3
package/dist/runner.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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 { type UnitResult } from '@elaraai/east';
|
|
5
|
+
import { type Beast2LazyStats, type UnitDecode, type UnitResult, type UnitRunReport } from '@elaraai/east';
|
|
6
6
|
import type { PlatformFunction, EastTypeValue } from '@elaraai/east/internal';
|
|
7
7
|
/** A file's size for the verbose account, or `?` when it cannot be read. @internal */
|
|
8
8
|
export declare function formatFileSize(path: string): string;
|
|
@@ -25,8 +25,45 @@ export declare function reportInput(i: number, path: string, type: EastTypeValue
|
|
|
25
25
|
*/
|
|
26
26
|
export declare function reportInputLazy(i: number): void;
|
|
27
27
|
/**
|
|
28
|
-
* Prints
|
|
29
|
-
*
|
|
28
|
+
* Prints the verbose account of an input decoded whole as it loaded: the
|
|
29
|
+
* growth in resident memory across its decode — what it holds in memory, as a
|
|
30
|
+
* runner that loads its inputs first sees it — beside what it weighs on disk,
|
|
31
|
+
* since a nested collection decodes at many times that.
|
|
32
|
+
*
|
|
33
|
+
* @param i - the input's position
|
|
34
|
+
* @param bytes - the growth in resident memory, in bytes
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export declare function reportInputWhole(i: number, bytes: number): void;
|
|
38
|
+
/**
|
|
39
|
+
* Opens a program's inputs, always frozen: task inputs are immutable, and
|
|
40
|
+
* mutating one throws the uniform copy-first error.
|
|
41
|
+
*
|
|
42
|
+
* With `decode` lazy, each beast2 collection input opens as a paged value
|
|
43
|
+
* whatever it weighs, so a read decodes only the segments it reaches and an
|
|
44
|
+
* operation the pager cannot serve decodes it whole, once, when it first needs
|
|
45
|
+
* it; frozen collapses the shape gate, so nested element shapes open lazily
|
|
46
|
+
* too. With `whole`, every input is decoded before the program runs. An input
|
|
47
|
+
* that cannot open lazily — another format, an index-less blob, an element
|
|
48
|
+
* shape holding a Ref or a function — is decoded whole either way. A manifest
|
|
49
|
+
* is the collection it names, its segments the files beside it. A lazy input's
|
|
50
|
+
* pager keeps the segments keyed and index reads decode, up to
|
|
51
|
+
* `EAST_PAGED_CACHE_BYTES` of decoded weight ({@link pagedCacheBytes}). It is
|
|
52
|
+
* east's `openUnitInputs` — what `exec` opens a run unit's inputs by — over
|
|
53
|
+
* this machine's files.
|
|
54
|
+
*
|
|
55
|
+
* @param paths - the input files, in parameter order
|
|
56
|
+
* @param types - the parameters' types
|
|
57
|
+
* @param decode - how the collection inputs are read
|
|
58
|
+
* @param verbose - print how each input opened: lazily, or decoded whole and
|
|
59
|
+
* the resident memory it added
|
|
60
|
+
* @returns the inputs, in parameter order
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
export declare function openInputs(paths: readonly string[], types: readonly EastTypeValue[], decode: UnitDecode, verbose: boolean): unknown[];
|
|
64
|
+
/**
|
|
65
|
+
* Prints what reading a lazily opened input came to; nothing for an input
|
|
66
|
+
* decoded whole as it loaded ({@link reportLazyReads}).
|
|
30
67
|
*
|
|
31
68
|
* @param i - the input's position
|
|
32
69
|
* @param path - its file
|
|
@@ -34,6 +71,35 @@ export declare function reportInputLazy(i: number): void;
|
|
|
34
71
|
* @internal
|
|
35
72
|
*/
|
|
36
73
|
export declare function reportInputReads(i: number, path: string, value: unknown): void;
|
|
74
|
+
/**
|
|
75
|
+
* Prints what reading a lazily opened input came to.
|
|
76
|
+
*
|
|
77
|
+
* An operation the pager cannot serve decoded the input whole, and says what
|
|
78
|
+
* that added to resident memory; reads that decoded segments again — a scan
|
|
79
|
+
* repeated, which keeps no segment it has passed (#1129), or reads at random
|
|
80
|
+
* beyond the ones the pager keeps — say so, and that decoding the input whole
|
|
81
|
+
* would decode each once but hold all of it; any other reads say the segments
|
|
82
|
+
* they decoded and the fences they probed, and then the bytes they read,
|
|
83
|
+
* against what the input weighs. east-c and east-py say each in the same
|
|
84
|
+
* words, but for the bytes read.
|
|
85
|
+
*
|
|
86
|
+
* @param i - the input's position
|
|
87
|
+
* @param path - its file
|
|
88
|
+
* @param stats - its segment decodes and fence probes, and whether it was read
|
|
89
|
+
* whole
|
|
90
|
+
* @param read - the bytes its reads read from its files
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
export declare function reportLazyReads(i: number, path: string, stats: Beast2LazyStats, read: number): void;
|
|
94
|
+
/**
|
|
95
|
+
* The account `exec -v` gives of a run unit's inputs, on stderr: the program
|
|
96
|
+
* and what its file weighs, then each input as `run -v` gives it — its file,
|
|
97
|
+
* what it weighs and its type, whether it opened lazily or was decoded whole,
|
|
98
|
+
* and what reading it came to. It is what reaches a task's log.
|
|
99
|
+
*
|
|
100
|
+
* @internal
|
|
101
|
+
*/
|
|
102
|
+
export declare const unitRunReport: UnitRunReport;
|
|
37
103
|
/**
|
|
38
104
|
* A refusal of the command line itself — a function the inputs given do not
|
|
39
105
|
* fit.
|
|
@@ -46,34 +112,23 @@ export declare function reportInputReads(i: number, path: string, value: unknown
|
|
|
46
112
|
export declare class UsageError extends Error {
|
|
47
113
|
constructor(message: string);
|
|
48
114
|
}
|
|
49
|
-
/** Resolves the lazy-open threshold: the environment, else the default. An
|
|
50
|
-
* unset or empty `EAST_LAZY_INPUT_BYTES` falls through to the 64 MiB default
|
|
51
|
-
* (`Number('')` is `0`, which would silently DISABLE lazy opening); invalid
|
|
52
|
-
* or negative values fall through too, matching east-c and east-py. Exported
|
|
53
|
-
* for `exec` and the spec. @internal */
|
|
54
|
-
export declare function lazyThreshold(): number;
|
|
55
115
|
/**
|
|
56
116
|
* Runs an East IR program.
|
|
57
|
-
*/
|
|
58
|
-
export declare function runProgram(irPath: string, platformFns: PlatformFunction[], packages: string[], inputPaths: string[], outputPath?: string, verbose?: boolean): Promise<unknown>;
|
|
59
|
-
/** A compiled `(K, V, V) -> V` fold of equal keys. */
|
|
60
|
-
export type MergeFunction = (key: unknown, acc: unknown, value: unknown) => unknown;
|
|
61
|
-
/**
|
|
62
|
-
* Loads a merge function: an IR file holding a `(K, V, V) -> V` East function
|
|
63
|
-
* over the given key and value types, compiled with the unit's platforms.
|
|
64
|
-
* Shared by `exec`'s dict output and the blob merge.
|
|
65
117
|
*
|
|
66
|
-
* @param
|
|
67
|
-
* @param
|
|
68
|
-
* @param
|
|
69
|
-
*
|
|
70
|
-
* @param
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* @
|
|
74
|
-
*
|
|
118
|
+
* @param irPath - the program's IR file
|
|
119
|
+
* @param platformFns - the platform functions it may call
|
|
120
|
+
* @param packages - the platform packages they came from, for the verbose
|
|
121
|
+
* account
|
|
122
|
+
* @param inputPaths - one input file per parameter, in order
|
|
123
|
+
* @param outputPath - where the result is written, in its extension's format;
|
|
124
|
+
* without it the result prints as East text
|
|
125
|
+
* @param verbose - print where the time went, the peak memory and how each
|
|
126
|
+
* input opened
|
|
127
|
+
* @param decode - how the collection inputs are read: lazily (the default), or
|
|
128
|
+
* decoded whole before the program runs
|
|
129
|
+
* @returns the result, when it is not written to `outputPath`
|
|
75
130
|
*/
|
|
76
|
-
export declare function
|
|
131
|
+
export declare function runProgram(irPath: string, platformFns: PlatformFunction[], packages: string[], inputPaths: string[], outputPath?: string, verbose?: boolean, decode?: UnitDecode): Promise<unknown>;
|
|
77
132
|
/**
|
|
78
133
|
* Prints a unit's result as `-v` shows it: where the time went, and the
|
|
79
134
|
* process's peak memory.
|
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;AAIH,OAAO,EASH,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EASH,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,KAAK,UAAU,EACf,KAAK,aAAa,EACrB,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;AAQD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAG9E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAE/C;AAeD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/D;AAKD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAQrI;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAI9E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWnG;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,aAQ3B,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI9B;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,EACf,MAAM,GAAE,UAAkC,GAC3C,OAAO,CAAC,OAAO,CAAC,CAyFlB;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
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { readFileSync, statSync, writeFileSync } from 'fs';
|
|
6
6
|
import { extname } from 'path';
|
|
7
|
-
import { EastIR, encodeBeast2For, encodeBeast2PagedFor, encodeEastFor, encodeJSONFor,
|
|
8
|
-
import { printTypeValue } from '@elaraai/east/internal';
|
|
9
|
-
import { inputBytes, lazyInputBytesRead, loadEastIR,
|
|
7
|
+
import { EastIR, beast2LazyStats, encodeBeast2For, encodeBeast2PagedFor, encodeEastFor, encodeJSONFor, printFor, variant, } from '@elaraai/east';
|
|
8
|
+
import { openUnitInputs, printTypeValue } from '@elaraai/east/internal';
|
|
9
|
+
import { fetchingSegments, inputBytes, lazyInputBytesRead, loadEastIR, nodeUnitIO, pagedCacheBytes, residentBytes } 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) {
|
|
@@ -59,8 +59,69 @@ export function reportInputLazy(i) {
|
|
|
59
59
|
console.error(` input ${i}: opened lazily — paged from the file`);
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
62
|
+
* What a whole decode added to resident memory, as the verbose account says
|
|
63
|
+
* it: `+X resident`, never below 0 B, since memory freed across the decode can
|
|
64
|
+
* leave the process smaller after it. The load-time and the mid-run
|
|
65
|
+
* whole-decode accounts both say it through here.
|
|
66
|
+
*
|
|
67
|
+
* @param bytes - the growth in resident memory, in bytes
|
|
68
|
+
* @returns the account's words for it
|
|
69
|
+
*/
|
|
70
|
+
function formatResident(bytes) {
|
|
71
|
+
return `+${formatSize(Math.max(0, bytes))} resident`;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Prints the verbose account of an input decoded whole as it loaded: the
|
|
75
|
+
* growth in resident memory across its decode — what it holds in memory, as a
|
|
76
|
+
* runner that loads its inputs first sees it — beside what it weighs on disk,
|
|
77
|
+
* since a nested collection decodes at many times that.
|
|
78
|
+
*
|
|
79
|
+
* @param i - the input's position
|
|
80
|
+
* @param bytes - the growth in resident memory, in bytes
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
export function reportInputWhole(i, bytes) {
|
|
84
|
+
console.error(` input ${i}: decoded whole — ${formatResident(bytes)}`);
|
|
85
|
+
}
|
|
86
|
+
/** The verbose account of how each input opened, as it opens. */
|
|
87
|
+
const INPUT_REPORT = { openedLazily: reportInputLazy, decodedWhole: reportInputWhole };
|
|
88
|
+
/**
|
|
89
|
+
* Opens a program's inputs, always frozen: task inputs are immutable, and
|
|
90
|
+
* mutating one throws the uniform copy-first error.
|
|
91
|
+
*
|
|
92
|
+
* With `decode` lazy, each beast2 collection input opens as a paged value
|
|
93
|
+
* whatever it weighs, so a read decodes only the segments it reaches and an
|
|
94
|
+
* operation the pager cannot serve decodes it whole, once, when it first needs
|
|
95
|
+
* it; frozen collapses the shape gate, so nested element shapes open lazily
|
|
96
|
+
* too. With `whole`, every input is decoded before the program runs. An input
|
|
97
|
+
* that cannot open lazily — another format, an index-less blob, an element
|
|
98
|
+
* shape holding a Ref or a function — is decoded whole either way. A manifest
|
|
99
|
+
* is the collection it names, its segments the files beside it. A lazy input's
|
|
100
|
+
* pager keeps the segments keyed and index reads decode, up to
|
|
101
|
+
* `EAST_PAGED_CACHE_BYTES` of decoded weight ({@link pagedCacheBytes}). It is
|
|
102
|
+
* east's `openUnitInputs` — what `exec` opens a run unit's inputs by — over
|
|
103
|
+
* this machine's files.
|
|
104
|
+
*
|
|
105
|
+
* @param paths - the input files, in parameter order
|
|
106
|
+
* @param types - the parameters' types
|
|
107
|
+
* @param decode - how the collection inputs are read
|
|
108
|
+
* @param verbose - print how each input opened: lazily, or decoded whole and
|
|
109
|
+
* the resident memory it added
|
|
110
|
+
* @returns the inputs, in parameter order
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
113
|
+
export function openInputs(paths, types, decode, verbose) {
|
|
114
|
+
const cacheBytes = pagedCacheBytes();
|
|
115
|
+
return openUnitInputs(nodeUnitIO, paths, types, decode, {
|
|
116
|
+
fetch: fetchingSegments(),
|
|
117
|
+
resident: residentBytes,
|
|
118
|
+
...(cacheBytes !== undefined && { cacheBytes }),
|
|
119
|
+
...(verbose && { report: INPUT_REPORT }),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Prints what reading a lazily opened input came to; nothing for an input
|
|
124
|
+
* decoded whole as it loaded ({@link reportLazyReads}).
|
|
64
125
|
*
|
|
65
126
|
* @param i - the input's position
|
|
66
127
|
* @param path - its file
|
|
@@ -69,9 +130,60 @@ export function reportInputLazy(i) {
|
|
|
69
130
|
*/
|
|
70
131
|
export function reportInputReads(i, path, value) {
|
|
71
132
|
const read = lazyInputBytesRead(value);
|
|
72
|
-
|
|
73
|
-
|
|
133
|
+
const stats = beast2LazyStats(value);
|
|
134
|
+
if (read !== undefined && stats !== undefined)
|
|
135
|
+
reportLazyReads(i, path, stats, read);
|
|
74
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Prints what reading a lazily opened input came to.
|
|
139
|
+
*
|
|
140
|
+
* An operation the pager cannot serve decoded the input whole, and says what
|
|
141
|
+
* that added to resident memory; reads that decoded segments again — a scan
|
|
142
|
+
* repeated, which keeps no segment it has passed (#1129), or reads at random
|
|
143
|
+
* beyond the ones the pager keeps — say so, and that decoding the input whole
|
|
144
|
+
* would decode each once but hold all of it; any other reads say the segments
|
|
145
|
+
* they decoded and the fences they probed, and then the bytes they read,
|
|
146
|
+
* against what the input weighs. east-c and east-py say each in the same
|
|
147
|
+
* words, but for the bytes read.
|
|
148
|
+
*
|
|
149
|
+
* @param i - the input's position
|
|
150
|
+
* @param path - its file
|
|
151
|
+
* @param stats - its segment decodes and fence probes, and whether it was read
|
|
152
|
+
* whole
|
|
153
|
+
* @param read - the bytes its reads read from its files
|
|
154
|
+
* @internal
|
|
155
|
+
*/
|
|
156
|
+
export function reportLazyReads(i, path, stats, read) {
|
|
157
|
+
if (stats.hydrated) {
|
|
158
|
+
console.error(` input ${i}: decoded whole (an operation the pager cannot serve) — ${formatResident(stats.hydratedBytes)}`);
|
|
159
|
+
}
|
|
160
|
+
else if (stats.segmentsDecoded > stats.segments) {
|
|
161
|
+
console.error(` input ${i}: ${stats.segmentsDecoded} segment decodes of its ${stats.segments} segments, ` +
|
|
162
|
+
`${stats.fencesProbed} fences probed — it read segments again that the pager no longer held (a scan ` +
|
|
163
|
+
'repeated, or reads at random); decoding it whole would decode each once, but hold the whole input at once');
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
console.error(` input ${i}: ${stats.segmentsDecoded} of ${stats.segments} segments decoded, ${stats.fencesProbed} fences probed — ` +
|
|
167
|
+
`${formatSize(read)} read of ${formatInputSize(path)}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* The account `exec -v` gives of a run unit's inputs, on stderr: the program
|
|
172
|
+
* and what its file weighs, then each input as `run -v` gives it — its file,
|
|
173
|
+
* what it weighs and its type, whether it opened lazily or was decoded whole,
|
|
174
|
+
* and what reading it came to. It is what reaches a task's log.
|
|
175
|
+
*
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
export const unitRunReport = {
|
|
179
|
+
running: (program, inputs) => {
|
|
180
|
+
console.error(`Running: ${program} (${formatFileSize(program)})`);
|
|
181
|
+
inputs.forEach((input, i) => reportInput(i, input.path, input.type));
|
|
182
|
+
},
|
|
183
|
+
openedLazily: reportInputLazy,
|
|
184
|
+
decodedWhole: reportInputWhole,
|
|
185
|
+
lazyReads: reportLazyReads,
|
|
186
|
+
};
|
|
75
187
|
/**
|
|
76
188
|
* A refusal of the command line itself — a function the inputs given do not
|
|
77
189
|
* fit.
|
|
@@ -87,26 +199,23 @@ export class UsageError extends Error {
|
|
|
87
199
|
this.name = 'UsageError';
|
|
88
200
|
}
|
|
89
201
|
}
|
|
90
|
-
/** Default size threshold above which collection inputs open lazily. */
|
|
91
|
-
const LAZY_INPUT_BYTES_DEFAULT = 64 * 1024 * 1024;
|
|
92
|
-
/** Resolves the lazy-open threshold: the environment, else the default. An
|
|
93
|
-
* unset or empty `EAST_LAZY_INPUT_BYTES` falls through to the 64 MiB default
|
|
94
|
-
* (`Number('')` is `0`, which would silently DISABLE lazy opening); invalid
|
|
95
|
-
* or negative values fall through too, matching east-c and east-py. Exported
|
|
96
|
-
* for `exec` and the spec. @internal */
|
|
97
|
-
export function lazyThreshold() {
|
|
98
|
-
const raw = process.env.EAST_LAZY_INPUT_BYTES;
|
|
99
|
-
if (raw !== undefined && raw !== '') {
|
|
100
|
-
const env = Number(raw);
|
|
101
|
-
if (Number.isFinite(env) && env >= 0)
|
|
102
|
-
return env;
|
|
103
|
-
}
|
|
104
|
-
return LAZY_INPUT_BYTES_DEFAULT;
|
|
105
|
-
}
|
|
106
202
|
/**
|
|
107
203
|
* Runs an East IR program.
|
|
204
|
+
*
|
|
205
|
+
* @param irPath - the program's IR file
|
|
206
|
+
* @param platformFns - the platform functions it may call
|
|
207
|
+
* @param packages - the platform packages they came from, for the verbose
|
|
208
|
+
* account
|
|
209
|
+
* @param inputPaths - one input file per parameter, in order
|
|
210
|
+
* @param outputPath - where the result is written, in its extension's format;
|
|
211
|
+
* without it the result prints as East text
|
|
212
|
+
* @param verbose - print where the time went, the peak memory and how each
|
|
213
|
+
* input opened
|
|
214
|
+
* @param decode - how the collection inputs are read: lazily (the default), or
|
|
215
|
+
* decoded whole before the program runs
|
|
216
|
+
* @returns the result, when it is not written to `outputPath`
|
|
108
217
|
*/
|
|
109
|
-
export async function runProgram(irPath, platformFns, packages, inputPaths, outputPath, verbose = false) {
|
|
218
|
+
export async function runProgram(irPath, platformFns, packages, inputPaths, outputPath, verbose = false, decode = variant('lazy', null)) {
|
|
110
219
|
const t0 = now();
|
|
111
220
|
// Load as an EastIR bundle so source_map travels with the IR and error
|
|
112
221
|
// frames resolve end-to-end.
|
|
@@ -139,21 +248,9 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
139
248
|
console.error(` ${printTypeValue(outputType)}`);
|
|
140
249
|
}
|
|
141
250
|
}
|
|
142
|
-
// Load inputs
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
// indexed input stops paying a whole decode — and because frozen collapses
|
|
146
|
-
// the shape gate, nested-container element shapes open lazily too. The
|
|
147
|
-
// size is the value's: an input staged as a manifest is a small file
|
|
148
|
-
// naming large ones.
|
|
149
|
-
const threshold = lazyThreshold();
|
|
150
|
-
const inputs = [];
|
|
151
|
-
for (let i = 0; i < inputPaths.length; i++) {
|
|
152
|
-
const lazy = threshold > 0 && inputBytes(inputPaths[i]) >= threshold ? loadInputLazy(inputPaths[i]) : undefined;
|
|
153
|
-
if (lazy !== undefined && verbose)
|
|
154
|
-
reportInputLazy(i);
|
|
155
|
-
inputs.push(lazy !== undefined ? lazy : loadInput(inputPaths[i], inputTypes[i]));
|
|
156
|
-
}
|
|
251
|
+
// Load inputs, frozen: each collection lazily, unless --decode whole says
|
|
252
|
+
// to decode them before the program runs.
|
|
253
|
+
const inputs = openInputs(inputPaths, inputTypes, decode, verbose);
|
|
157
254
|
/** The verbose summary's account of each lazy input: what paging came
|
|
158
255
|
* to, against the size of the value. */
|
|
159
256
|
const reportLazyReads = () => {
|
|
@@ -194,35 +291,6 @@ export async function runProgram(irPath, platformFns, packages, inputPaths, outp
|
|
|
194
291
|
}
|
|
195
292
|
return outputPath ? undefined : result;
|
|
196
293
|
}
|
|
197
|
-
/**
|
|
198
|
-
* Loads a merge function: an IR file holding a `(K, V, V) -> V` East function
|
|
199
|
-
* over the given key and value types, compiled with the unit's platforms.
|
|
200
|
-
* Shared by `exec`'s dict output and the blob merge.
|
|
201
|
-
*
|
|
202
|
-
* @param path - the IR file (any format the IR positional accepts)
|
|
203
|
-
* @param keyType - the key type
|
|
204
|
-
* @param valueType - the value type
|
|
205
|
-
* @param platformFns - the unit's platforms
|
|
206
|
-
* @param subject - what the function must match, for the message: `the emit
|
|
207
|
-
* parameter` or `the inputs`
|
|
208
|
-
* @returns the compiled merge function
|
|
209
|
-
* @throws {Error} When the IR is not a function of that shape, naming the
|
|
210
|
-
* expected and the actual types.
|
|
211
|
-
*/
|
|
212
|
-
export function loadMergeFunction(path, keyType, valueType, platformFns, subject) {
|
|
213
|
-
const bundle = loadEastIR(path);
|
|
214
|
-
const fnType = bundle.ir.value.type;
|
|
215
|
-
const shape = fnType.type === 'Function' ? fnType.value : null;
|
|
216
|
-
if (shape === null || shape.inputs.length !== 3 ||
|
|
217
|
-
!isTypeValueEqual(shape.inputs[0], keyType) ||
|
|
218
|
-
!isTypeValueEqual(shape.inputs[1], valueType) ||
|
|
219
|
-
!isTypeValueEqual(shape.inputs[2], valueType) ||
|
|
220
|
-
!isTypeValueEqual(shape.output, valueType)) {
|
|
221
|
-
throw new Error(`merge function: expected a function (K, V, V) -> V matching ${subject} ` +
|
|
222
|
-
`(K = ${printTypeValue(keyType)}, V = ${printTypeValue(valueType)}), got ${printTypeValue(fnType)}`);
|
|
223
|
-
}
|
|
224
|
-
return bundle.compile(platformFns);
|
|
225
|
-
}
|
|
226
294
|
function maybeWriteOutput(outputPath, result, outputType, verbose) {
|
|
227
295
|
if (!outputPath) {
|
|
228
296
|
// 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":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|