@elaraai/east 1.0.83 → 1.0.84
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/dist/src/naming.d.ts +10 -7
- package/dist/src/naming.d.ts.map +1 -1
- package/dist/src/naming.js +30 -13
- package/dist/src/naming.js.map +1 -1
- package/dist/src/naming.spec.js +49 -0
- package/dist/src/naming.spec.js.map +1 -1
- package/dist/src/runner_protocol.d.ts +49 -2
- package/dist/src/runner_protocol.d.ts.map +1 -1
- package/dist/src/runner_protocol.js +37 -2
- package/dist/src/runner_protocol.js.map +1 -1
- package/dist/src/serialization/beast2/index.d.ts +1 -1
- package/dist/src/serialization/beast2/index.d.ts.map +1 -1
- package/dist/src/serialization/beast2/index.js +1 -1
- package/dist/src/serialization/beast2/index.js.map +1 -1
- package/dist/src/serialization/beast2/v5/lazy.d.ts +67 -5
- package/dist/src/serialization/beast2/v5/lazy.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/lazy.js +116 -24
- package/dist/src/serialization/beast2/v5/lazy.js.map +1 -1
- package/dist/src/serialization/beast2/v5/lazy.spec.js +95 -1
- package/dist/src/serialization/beast2/v5/lazy.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/stream.d.ts +29 -2
- package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/stream.js +43 -2
- package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
- package/dist/src/serialization/beast2/v5/type-section.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/type-section.js +25 -12
- package/dist/src/serialization/beast2/v5/type-section.js.map +1 -1
- package/dist/src/serialization/beast2/v5/type-section.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/type-section.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/type-section.spec.js +41 -0
- package/dist/src/serialization/beast2/v5/type-section.spec.js.map +1 -0
- package/dist/src/serialization/index.d.ts +1 -1
- package/dist/src/serialization/index.d.ts.map +1 -1
- package/dist/src/serialization/index.js +1 -1
- package/dist/src/serialization/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -32,13 +32,47 @@
|
|
|
32
32
|
* This is what lets a task runner open a huge collection input lazily: a
|
|
33
33
|
* body that only iterates it once, or reads a few keys, never pays the whole
|
|
34
34
|
* decode — while a body that does anything else gets the eager value's exact
|
|
35
|
-
* semantics.
|
|
35
|
+
* semantics. What a lazy value's reads came to — the segments they decoded,
|
|
36
|
+
* and whether an operation read it whole — {@link beast2LazyStats} says, for a
|
|
37
|
+
* runner's account of its inputs.
|
|
36
38
|
*/
|
|
37
39
|
import { type EastTypeValue } from "../../../type_of_type.js";
|
|
38
40
|
import type { EastType, ValueTypeOf } from "../../../types.js";
|
|
39
41
|
import { type Beast2DecodeOptions } from "../shared.js";
|
|
40
42
|
import { type Beast2SyncRangeReader } from "./range.js";
|
|
41
43
|
import { type Beast2ManifestSource } from "./manifest.js";
|
|
44
|
+
/**
|
|
45
|
+
* Options accepted by {@link openBeast2LazyFor}: the decode options, and the
|
|
46
|
+
* gauge a whole read of the value is weighed by.
|
|
47
|
+
*/
|
|
48
|
+
export type Beast2LazyOptions = Beast2DecodeOptions & {
|
|
49
|
+
/** The process's resident memory now, in bytes. It is read before and after
|
|
50
|
+
* an operation the pager cannot serve reads the value whole, so the value
|
|
51
|
+
* can say what that read added ({@link beast2LazyStats}). Core reads no
|
|
52
|
+
* process state of its own, so a runner passes it: east-node's reads
|
|
53
|
+
* `process.memoryUsage.rss()`. Without it, a whole read adds 0. */
|
|
54
|
+
resident?: () => number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* What reading a lazily opened collection has come to — the account a
|
|
58
|
+
* runner's `-v` gives of each input it opened lazily, which east-c's pager
|
|
59
|
+
* keeps for its runners too.
|
|
60
|
+
*/
|
|
61
|
+
export type Beast2LazyStats = {
|
|
62
|
+
/** The segments the collection is stored in. */
|
|
63
|
+
segments: number;
|
|
64
|
+
/** The segment decodes its reads have made: above `segments` when its reads
|
|
65
|
+
* decoded a segment again, beyond the few the pager keeps. */
|
|
66
|
+
segmentsDecoded: number;
|
|
67
|
+
/** The segment fences its reads probed. */
|
|
68
|
+
fencesProbed: number;
|
|
69
|
+
/** Whether an operation the pager cannot serve has read it whole. */
|
|
70
|
+
hydrated: boolean;
|
|
71
|
+
/** What that whole read added to resident memory, in bytes, by the
|
|
72
|
+
* `resident` gauge the value was opened with: 0 without a gauge, and
|
|
73
|
+
* before the value is read whole. */
|
|
74
|
+
hydratedBytes: number;
|
|
75
|
+
};
|
|
42
76
|
/**
|
|
43
77
|
* What a compiled loop over a Set or Dict walks: a Set's elements, a Dict's
|
|
44
78
|
* entries. A lazy one not yet read whole is walked as east-c's paged loop
|
|
@@ -68,6 +102,30 @@ export declare function loopWalk<E>(collection: Iterable<E>): Iterable<E>;
|
|
|
68
102
|
* @internal
|
|
69
103
|
*/
|
|
70
104
|
export declare function readLazyWhole(value: unknown): void;
|
|
105
|
+
/**
|
|
106
|
+
* Reads what reading a lazily opened collection has come to: the segment
|
|
107
|
+
* decodes and fence probes its reads made, and whether an operation the pager
|
|
108
|
+
* cannot serve read it whole, with what that added to resident memory.
|
|
109
|
+
*
|
|
110
|
+
* A runner's `-v` gives this account of each input it opened lazily, as
|
|
111
|
+
* east-c's runners give theirs from east-c's pager: reads that decode segments
|
|
112
|
+
* again, or an operation that read the input whole anyway, say that decoding
|
|
113
|
+
* it whole before the program runs would serve the program better.
|
|
114
|
+
*
|
|
115
|
+
* @param value - an East value
|
|
116
|
+
* @returns the account, or `undefined` when `value` is not a collection
|
|
117
|
+
* {@link openBeast2LazyFor} opened
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* const open = openBeast2LazyFor(TableType, { frozen: true, resident: () => process.memoryUsage.rss() });
|
|
122
|
+
* const table = open(blob);
|
|
123
|
+
* table.get(42n);
|
|
124
|
+
* beast2LazyStats(table); // { segments: 4, segmentsDecoded: 1, fencesProbed: 4, hydrated: false, hydratedBytes: 0 }
|
|
125
|
+
* beast2LazyStats(new Map()); // undefined
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function beast2LazyStats(value: unknown): Beast2LazyStats | undefined;
|
|
71
129
|
/**
|
|
72
130
|
* Builds a curried lazy opener: `open(source)` returns an ordinary collection
|
|
73
131
|
* value — a `SortedMap`, `SortedSet`, or array — backed by the blob's
|
|
@@ -95,13 +153,17 @@ export declare function readLazyWhole(value: unknown): void;
|
|
|
95
153
|
* raises at the operation that made the read. A hydration that fails leaves
|
|
96
154
|
* the value unread, so the next access reads the blob again.
|
|
97
155
|
*
|
|
156
|
+
* What the value's reads came to — its segment decodes and fence probes, and
|
|
157
|
+
* whether it was read whole, weighed by `options.resident` — is
|
|
158
|
+
* {@link beast2LazyStats}'s to say.
|
|
159
|
+
*
|
|
98
160
|
* @param type - the collection type (Array/Set/Dict)
|
|
99
161
|
* @param options - decode options (platform functions for decoded functions,
|
|
100
|
-
* frozen)
|
|
162
|
+
* frozen), and the gauge a whole read of the value is weighed by
|
|
101
163
|
* @returns a function opening a blob as a lazy collection value
|
|
102
164
|
* @throws {TypeError} When `type` is not an Array, Set or Dict type.
|
|
103
165
|
*/
|
|
104
|
-
export declare function openBeast2LazyFor<T extends EastType>(type: T | EastTypeValue, options?:
|
|
166
|
+
export declare function openBeast2LazyFor<T extends EastType>(type: T | EastTypeValue, options?: Beast2LazyOptions): (source: Uint8Array | Beast2SyncRangeReader | Beast2ManifestSource) => ValueTypeOf<T>;
|
|
105
167
|
/** Options accepted by {@link isBeast2LazySafe}. */
|
|
106
168
|
export type Beast2LazySafeOptions = {
|
|
107
169
|
/** Judge the shape for a frozen open ({@link openBeast2LazyFor} with
|
|
@@ -130,8 +192,8 @@ export type Beast2LazySafeOptions = {
|
|
|
130
192
|
* for every practical shape. Only `Ref`- and function-bearing element shapes
|
|
131
193
|
* still force the eager (frozen) decode.
|
|
132
194
|
*
|
|
133
|
-
* Runners consult this before opening
|
|
134
|
-
*
|
|
195
|
+
* Runners consult this before opening an input lazily; an unsafe shape falls
|
|
196
|
+
* back to the eager whole decode (always correct, just not O(segment)).
|
|
135
197
|
*
|
|
136
198
|
* @param type - the candidate input type
|
|
137
199
|
* @param options - gate options (`frozen` for frozen opens)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAM/D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAqE1D;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD;;;;wEAIoE;IACpE,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB;mEAC+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB;;0CAEsC;IACtC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AA4eF;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAIhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAIlD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAG3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,qBAAqB,GAAG,oBAAoB,KAAK,WAAW,CAAC,CAAC,CAAC,CA0BjM;AAiED,oDAAoD;AACpD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;mEAG+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CASzG"}
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
* This is what lets a task runner open a huge collection input lazily: a
|
|
33
33
|
* body that only iterates it once, or reads a few keys, never pays the whole
|
|
34
34
|
* decode — while a body that does anything else gets the eager value's exact
|
|
35
|
-
* semantics.
|
|
35
|
+
* semantics. What a lazy value's reads came to — the segments they decoded,
|
|
36
|
+
* and whether an operation read it whole — {@link beast2LazyStats} says, for a
|
|
37
|
+
* runner's account of its inputs.
|
|
36
38
|
*/
|
|
37
39
|
import {} from "../../../type_of_type.js";
|
|
38
40
|
import { compareFor } from "../../../comparison.js";
|
|
@@ -109,6 +111,25 @@ function* lazySetKeys(pages, cmp, from) {
|
|
|
109
111
|
* lookup, cheap on the eager values a constructor is given far more
|
|
110
112
|
* often. */
|
|
111
113
|
const READ_WHOLE = Symbol("east.lazy.readWhole");
|
|
114
|
+
/** The key of a lazy value's method that says what reading it has come to
|
|
115
|
+
* ({@link beast2LazyStats}). */
|
|
116
|
+
const LAZY_STATS = Symbol("east.lazy.stats");
|
|
117
|
+
/** A lazy value's account of its reads: its pager's, and what reading it
|
|
118
|
+
* whole added — `undefined` until an operation the pager cannot serve has. */
|
|
119
|
+
function statsOf(pages, wholeBytes) {
|
|
120
|
+
return {
|
|
121
|
+
segments: pages.segmentCount,
|
|
122
|
+
segmentsDecoded: pages.segmentsDecoded,
|
|
123
|
+
fencesProbed: pages.fencesProbed,
|
|
124
|
+
hydrated: wholeBytes !== undefined,
|
|
125
|
+
hydratedBytes: wholeBytes ?? 0,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/** What a whole read that began at `before` added to resident memory by
|
|
129
|
+
* `resident`: 0 without a gauge, and never below 0. */
|
|
130
|
+
function grownSince(resident, before) {
|
|
131
|
+
return resident === undefined ? 0 : Math.max(0, resident() - before);
|
|
132
|
+
}
|
|
112
133
|
/** Streams a Set or Dict blob's elements — pairs, for a Dict — as east-c's
|
|
113
134
|
* paged loop walks them: every segment fence verified before the first
|
|
114
135
|
* element, and each segment checked against the next fence as it is read. */
|
|
@@ -128,22 +149,31 @@ class LazySortedMap extends SortedMap {
|
|
|
128
149
|
pages;
|
|
129
150
|
cmp;
|
|
130
151
|
frozen;
|
|
152
|
+
resident;
|
|
131
153
|
hydrated = false;
|
|
154
|
+
/** What reading the map whole added to resident memory, once an operation
|
|
155
|
+
* the pager cannot serve has; `undefined` until then. */
|
|
156
|
+
wholeBytes;
|
|
157
|
+
/** The greatest key, once {@link maxKey} has read it from the last segment:
|
|
158
|
+
* the map cannot change unread, so the segment is decoded once. */
|
|
159
|
+
greatest;
|
|
132
160
|
// A frozen lazy map cannot be Object.freeze'd — hydration writes through
|
|
133
161
|
// its own internals — so the flag guards the mutators and the frozen
|
|
134
162
|
// registry carries the brand (see openBeast2LazyFor).
|
|
135
|
-
constructor(pages, cmp, frozen = false) {
|
|
163
|
+
constructor(pages, cmp, frozen = false, resident) {
|
|
136
164
|
super(undefined, cmp);
|
|
137
165
|
this.pages = pages;
|
|
138
166
|
this.cmp = cmp;
|
|
139
167
|
this.frozen = frozen;
|
|
168
|
+
this.resident = resident;
|
|
140
169
|
}
|
|
141
|
-
/** Decodes every segment into the underlying B-tree once
|
|
142
|
-
*
|
|
143
|
-
* again. */
|
|
170
|
+
/** Decodes every segment into the underlying B-tree once, weighing what that
|
|
171
|
+
* adds to resident memory. A read that fails leaves the map unread rather
|
|
172
|
+
* than half-filled, so the next access reads again. */
|
|
144
173
|
hydrate() {
|
|
145
174
|
if (this.hydrated)
|
|
146
175
|
return;
|
|
176
|
+
const before = this.resident?.() ?? 0;
|
|
147
177
|
try {
|
|
148
178
|
for (const [k, v] of lazyDictEntries(this.pages, this.cmp)) {
|
|
149
179
|
super.set(k, v);
|
|
@@ -154,11 +184,16 @@ class LazySortedMap extends SortedMap {
|
|
|
154
184
|
throw err;
|
|
155
185
|
}
|
|
156
186
|
this.hydrated = true;
|
|
187
|
+
this.wholeBytes = grownSince(this.resident, before);
|
|
157
188
|
}
|
|
158
189
|
/** What {@link readLazyWhole} runs. */
|
|
159
190
|
[READ_WHOLE]() {
|
|
160
191
|
this.hydrate();
|
|
161
192
|
}
|
|
193
|
+
/** What {@link beast2LazyStats} reads. */
|
|
194
|
+
[LAZY_STATS]() {
|
|
195
|
+
return statsOf(this.pages, this.wholeBytes);
|
|
196
|
+
}
|
|
162
197
|
/** The entries a compiled loop walks ({@link loopWalk}). */
|
|
163
198
|
loopWalk() {
|
|
164
199
|
return this.hydrated ? super.entries() : walkDisjoint(this.pages);
|
|
@@ -222,10 +257,11 @@ class LazySortedMap extends SortedMap {
|
|
|
222
257
|
const n = this.pages.segmentCount;
|
|
223
258
|
if (n === 0)
|
|
224
259
|
return undefined;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
260
|
+
if (this.greatest === undefined) {
|
|
261
|
+
for (const k of served(() => this.pages.segment(n - 1)).keys())
|
|
262
|
+
this.greatest = k;
|
|
263
|
+
}
|
|
264
|
+
return this.greatest;
|
|
229
265
|
}
|
|
230
266
|
keys(firstKey) {
|
|
231
267
|
if (!this.hydrated) {
|
|
@@ -271,22 +307,31 @@ class LazySortedSet extends SortedSet {
|
|
|
271
307
|
pages;
|
|
272
308
|
cmp;
|
|
273
309
|
frozen;
|
|
310
|
+
resident;
|
|
274
311
|
hydrated = false;
|
|
312
|
+
/** What reading the set whole added to resident memory, once an operation
|
|
313
|
+
* the pager cannot serve has; `undefined` until then. */
|
|
314
|
+
wholeBytes;
|
|
315
|
+
/** The greatest element, once {@link maxKey} has read it from the last
|
|
316
|
+
* segment: the set cannot change unread, so the segment is decoded once. */
|
|
317
|
+
greatest;
|
|
275
318
|
// A frozen lazy set cannot be Object.freeze'd — hydration writes through
|
|
276
319
|
// its own internals — so the flag guards the mutators and the frozen
|
|
277
320
|
// registry carries the brand (see openBeast2LazyFor).
|
|
278
|
-
constructor(pages, cmp, frozen = false) {
|
|
321
|
+
constructor(pages, cmp, frozen = false, resident) {
|
|
279
322
|
super(undefined, cmp);
|
|
280
323
|
this.pages = pages;
|
|
281
324
|
this.cmp = cmp;
|
|
282
325
|
this.frozen = frozen;
|
|
326
|
+
this.resident = resident;
|
|
283
327
|
}
|
|
284
|
-
/** Decodes every segment into the underlying B-tree once
|
|
285
|
-
*
|
|
286
|
-
* again. */
|
|
328
|
+
/** Decodes every segment into the underlying B-tree once, weighing what that
|
|
329
|
+
* adds to resident memory. A read that fails leaves the set unread rather
|
|
330
|
+
* than half-filled, so the next access reads again. */
|
|
287
331
|
hydrate() {
|
|
288
332
|
if (this.hydrated)
|
|
289
333
|
return;
|
|
334
|
+
const before = this.resident?.() ?? 0;
|
|
290
335
|
try {
|
|
291
336
|
for (const k of lazySetKeys(this.pages, this.cmp)) {
|
|
292
337
|
super.add(k);
|
|
@@ -297,11 +342,16 @@ class LazySortedSet extends SortedSet {
|
|
|
297
342
|
throw err;
|
|
298
343
|
}
|
|
299
344
|
this.hydrated = true;
|
|
345
|
+
this.wholeBytes = grownSince(this.resident, before);
|
|
300
346
|
}
|
|
301
347
|
/** What {@link readLazyWhole} runs. */
|
|
302
348
|
[READ_WHOLE]() {
|
|
303
349
|
this.hydrate();
|
|
304
350
|
}
|
|
351
|
+
/** What {@link beast2LazyStats} reads. */
|
|
352
|
+
[LAZY_STATS]() {
|
|
353
|
+
return statsOf(this.pages, this.wholeBytes);
|
|
354
|
+
}
|
|
305
355
|
/** The elements a compiled loop walks ({@link loopWalk}). */
|
|
306
356
|
loopWalk() {
|
|
307
357
|
return this.hydrated ? super.keys() : walkDisjoint(this.pages);
|
|
@@ -390,10 +440,11 @@ class LazySortedSet extends SortedSet {
|
|
|
390
440
|
const n = this.pages.segmentCount;
|
|
391
441
|
if (n === 0)
|
|
392
442
|
return undefined;
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
443
|
+
if (this.greatest === undefined) {
|
|
444
|
+
for (const k of served(() => this.pages.segment(n - 1)))
|
|
445
|
+
this.greatest = k;
|
|
446
|
+
}
|
|
447
|
+
return this.greatest;
|
|
397
448
|
}
|
|
398
449
|
keys(firstKey) {
|
|
399
450
|
if (!this.hydrated) {
|
|
@@ -426,14 +477,18 @@ const LAZY_ARRAY_READS = new Set(["entries", "keys", "values", "forEach", Symbol
|
|
|
426
477
|
* the pager; any other access hydrates the target array in place. The
|
|
427
478
|
* proxy IS the value, so identity-keyed host state (iteration locks,
|
|
428
479
|
* freezes) survives hydration. */
|
|
429
|
-
function lazyArray(pages, frozen = false) {
|
|
480
|
+
function lazyArray(pages, frozen = false, resident) {
|
|
430
481
|
const target = [];
|
|
431
482
|
let hydrated = false;
|
|
483
|
+
// What reading the array whole added to resident memory, once an operation
|
|
484
|
+
// the pager cannot serve has.
|
|
485
|
+
let wholeBytes;
|
|
432
486
|
// A read that fails leaves the array unread rather than half-filled, so
|
|
433
487
|
// the next access reads again.
|
|
434
488
|
const hydrate = () => {
|
|
435
489
|
if (hydrated)
|
|
436
490
|
return;
|
|
491
|
+
const before = resident?.() ?? 0;
|
|
437
492
|
try {
|
|
438
493
|
for (let i = 0; i < pages.segmentCount; i++) {
|
|
439
494
|
// Element-by-element append — a spread (`push(...segment)`) passes the
|
|
@@ -448,7 +503,9 @@ function lazyArray(pages, frozen = false) {
|
|
|
448
503
|
throw err;
|
|
449
504
|
}
|
|
450
505
|
hydrated = true;
|
|
506
|
+
wholeBytes = grownSince(resident, before);
|
|
451
507
|
};
|
|
508
|
+
const stats = () => statsOf(pages, wholeBytes);
|
|
452
509
|
function* elements() {
|
|
453
510
|
for (let i = 0; i < pages.segmentCount; i++) {
|
|
454
511
|
yield* served(() => pages.segment(i));
|
|
@@ -476,6 +533,8 @@ function lazyArray(pages, frozen = false) {
|
|
|
476
533
|
get(t, prop, receiver) {
|
|
477
534
|
if (prop === READ_WHOLE)
|
|
478
535
|
return hydrate;
|
|
536
|
+
if (prop === LAZY_STATS)
|
|
537
|
+
return stats;
|
|
479
538
|
if (!hydrated) {
|
|
480
539
|
if (prop === "length")
|
|
481
540
|
return pages.elementCount;
|
|
@@ -570,6 +629,34 @@ export function readLazyWhole(value) {
|
|
|
570
629
|
value[READ_WHOLE]?.();
|
|
571
630
|
}
|
|
572
631
|
}
|
|
632
|
+
/**
|
|
633
|
+
* Reads what reading a lazily opened collection has come to: the segment
|
|
634
|
+
* decodes and fence probes its reads made, and whether an operation the pager
|
|
635
|
+
* cannot serve read it whole, with what that added to resident memory.
|
|
636
|
+
*
|
|
637
|
+
* A runner's `-v` gives this account of each input it opened lazily, as
|
|
638
|
+
* east-c's runners give theirs from east-c's pager: reads that decode segments
|
|
639
|
+
* again, or an operation that read the input whole anyway, say that decoding
|
|
640
|
+
* it whole before the program runs would serve the program better.
|
|
641
|
+
*
|
|
642
|
+
* @param value - an East value
|
|
643
|
+
* @returns the account, or `undefined` when `value` is not a collection
|
|
644
|
+
* {@link openBeast2LazyFor} opened
|
|
645
|
+
*
|
|
646
|
+
* @example
|
|
647
|
+
* ```ts
|
|
648
|
+
* const open = openBeast2LazyFor(TableType, { frozen: true, resident: () => process.memoryUsage.rss() });
|
|
649
|
+
* const table = open(blob);
|
|
650
|
+
* table.get(42n);
|
|
651
|
+
* beast2LazyStats(table); // { segments: 4, segmentsDecoded: 1, fencesProbed: 4, hydrated: false, hydratedBytes: 0 }
|
|
652
|
+
* beast2LazyStats(new Map()); // undefined
|
|
653
|
+
* ```
|
|
654
|
+
*/
|
|
655
|
+
export function beast2LazyStats(value) {
|
|
656
|
+
if (typeof value !== "object" || value === null)
|
|
657
|
+
return undefined;
|
|
658
|
+
return value[LAZY_STATS]?.();
|
|
659
|
+
}
|
|
573
660
|
/**
|
|
574
661
|
* Builds a curried lazy opener: `open(source)` returns an ordinary collection
|
|
575
662
|
* value — a `SortedMap`, `SortedSet`, or array — backed by the blob's
|
|
@@ -597,9 +684,13 @@ export function readLazyWhole(value) {
|
|
|
597
684
|
* raises at the operation that made the read. A hydration that fails leaves
|
|
598
685
|
* the value unread, so the next access reads the blob again.
|
|
599
686
|
*
|
|
687
|
+
* What the value's reads came to — its segment decodes and fence probes, and
|
|
688
|
+
* whether it was read whole, weighed by `options.resident` — is
|
|
689
|
+
* {@link beast2LazyStats}'s to say.
|
|
690
|
+
*
|
|
600
691
|
* @param type - the collection type (Array/Set/Dict)
|
|
601
692
|
* @param options - decode options (platform functions for decoded functions,
|
|
602
|
-
* frozen)
|
|
693
|
+
* frozen), and the gauge a whole read of the value is weighed by
|
|
603
694
|
* @returns a function opening a blob as a lazy collection value
|
|
604
695
|
* @throws {TypeError} When `type` is not an Array, Set or Dict type.
|
|
605
696
|
*/
|
|
@@ -609,21 +700,22 @@ export function openBeast2LazyFor(type, options) {
|
|
|
609
700
|
throw new TypeError(`beast2 v5 lazy values hold Array, Set or Dict roots, not ${typeValue.type}`);
|
|
610
701
|
}
|
|
611
702
|
const frozen = options?.frozen ?? false;
|
|
703
|
+
const resident = options?.resident;
|
|
612
704
|
return (source) => {
|
|
613
705
|
// The pages carry the decode options, so every segment (and fence) the
|
|
614
706
|
// lazy value serves is decoded frozen at construction.
|
|
615
707
|
const pages = new Beast2Pages(source, typeValue, options);
|
|
616
708
|
let value;
|
|
617
709
|
if (typeValue.type === "Array") {
|
|
618
|
-
value = lazyArray(pages, frozen);
|
|
710
|
+
value = lazyArray(pages, frozen, resident);
|
|
619
711
|
}
|
|
620
712
|
else if (typeValue.type === "Set") {
|
|
621
713
|
const cmp = compareFor(typeValue.value);
|
|
622
|
-
value = new LazySortedSet(pages, cmp, frozen);
|
|
714
|
+
value = new LazySortedSet(pages, cmp, frozen, resident);
|
|
623
715
|
}
|
|
624
716
|
else {
|
|
625
717
|
const cmp = compareFor(typeValue.value.key);
|
|
626
|
-
value = new LazySortedMap(pages, cmp, frozen);
|
|
718
|
+
value = new LazySortedMap(pages, cmp, frozen, resident);
|
|
627
719
|
}
|
|
628
720
|
// Lazy values cannot be Object.freeze'd (hydration writes through their
|
|
629
721
|
// own internals), so the registry carries the frozen brand.
|
|
@@ -713,8 +805,8 @@ function isLazySafeElementFrozen(type) {
|
|
|
713
805
|
* for every practical shape. Only `Ref`- and function-bearing element shapes
|
|
714
806
|
* still force the eager (frozen) decode.
|
|
715
807
|
*
|
|
716
|
-
* Runners consult this before opening
|
|
717
|
-
*
|
|
808
|
+
* Runners consult this before opening an input lazily; an unsafe shape falls
|
|
809
|
+
* back to the eager whole decode (always correct, just not O(segment)).
|
|
718
810
|
*
|
|
719
811
|
* @param type - the candidate input type
|
|
720
812
|
* @param options - gate options (`frozen` for frozen opens)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/lazy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAsB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAA4B,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAA8B,MAAM,YAAY,CAAC;AACxD,OAAO,EAA6B,MAAM,eAAe,CAAC;AAE1D;4DAC4D;AAC5D,SAAS,UAAU,CAAC,IAAoB;IACtC,OAAO,IAAI,aAAa,CAAC,cAAc,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,mHAAmH,CAAC,CAAC;AAC5M,CAAC;AAED;;qEAEqE;AACrE,SAAS,MAAM,CAAI,IAAa;IAC9B,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,aAAa,CAAE,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED;;;;;0EAK0E;AAC1E,QAAQ,CAAC,CAAC,eAAe,CAAO,KAAkB,EAAE,GAA2B,EAAE,IAAQ;IACvF,IAAI,IAAmB,CAAC;IACxB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAa,CAAC,CAAC,CAAC;IACrF,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAc,CAAC;QAC5D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,GAAG,CAAC,IAAS,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,GAAG,CAAC,CAAC;YACT,GAAG,GAAG,IAAI,CAAC;YACX,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED;;yEAEyE;AACzE,QAAQ,CAAC,CAAC,WAAW,CAAI,KAAkB,EAAE,GAA2B,EAAE,IAAQ;IAChF,IAAI,IAAmB,CAAC;IACxB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAa,CAAC,CAAC,CAAC;IACrF,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAW,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAS,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,CAAC;YACT,GAAG,GAAG,IAAI,CAAC;YACX,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED;;aAEa;AACb,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEjD;iCACiC;AACjC,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAoC7C;+EAC+E;AAC/E,SAAS,OAAO,CAAC,KAAkB,EAAE,UAA8B;IACjE,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,YAAY;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,UAAU,KAAK,SAAS;QAClC,aAAa,EAAE,UAAU,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;wDACwD;AACxD,SAAS,UAAU,CAAC,QAAoC,EAAE,MAAc;IACtE,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;8EAE8E;AAC9E,QAAQ,CAAC,CAAC,YAAY,CAAI,KAAkB;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAgB,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,aAAoB,SAAQ,SAAe;IAa5B;IACA;IACA;IACA;IAfX,QAAQ,GAAG,KAAK,CAAC;IACzB;8DAC0D;IAClD,UAAU,CAAqB;IACvC;wEACoE;IAC5D,QAAQ,CAAgB;IAEhC,yEAAyE;IACzE,qEAAqE;IACrE,sDAAsD;IACtD,YACmB,KAAkB,EAClB,GAA2B,EAC3B,SAAkB,KAAK,EACvB,QAAuB;QAExC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QALL,UAAK,GAAL,KAAK,CAAa;QAClB,QAAG,GAAH,GAAG,CAAwB;QAC3B,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAe;IAG1C,CAAC;IAED;;4DAEwD;IAChD,OAAO;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,eAAe,CAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,uCAAuC;IACvC,CAAC,UAAU,CAAC;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,0CAA0C;IAC1C,CAAC,UAAU,CAAC;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,4DAA4D;IAC5D,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,CAAS,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,IAAa,IAAI;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IAC9D,CAAC;IAEQ,GAAG,CAAC,GAAM;QACjB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAY,CAAC,CAAkB,CAAC;IACrE,CAAC;IAEQ,GAAG,CAAC,GAAM;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACtE,CAAC;IAEQ,GAAG,CAAC,GAAM,EAAE,KAAQ;QAC3B,wEAAwE;QACxE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEQ,MAAM,CAAC,GAAM;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEQ,KAAK;QACZ,qEAAqE;QACrE,6BAA6B;QAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAEQ,OAAO,CAAC,UAAsD,EAAE,OAAiB;QACxF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,eAAe,CAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,CAAC;IAChD,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAK,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAe,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEQ,IAAI,CAAC,QAAY;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAC7B,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,eAAe,CAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;oBAAE,MAAM,CAAC,CAAC;YACzE,CAAC,CAAC,EAAE,CAAmB,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAEQ,MAAM,CAAC,QAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAC7B,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,eAAe,CAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;oBAAE,MAAM,CAAC,CAAC;YAC3E,CAAC,CAAC,EAAE,CAAmB,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAEQ,OAAO,CAAC,QAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAwB,CAAC;QACrG,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,aAAiB,SAAQ,SAAY;IAatB;IACA;IACA;IACA;IAfX,QAAQ,GAAG,KAAK,CAAC;IACzB;8DAC0D;IAClD,UAAU,CAAqB;IACvC;iFAC6E;IACrE,QAAQ,CAAgB;IAEhC,yEAAyE;IACzE,qEAAqE;IACrE,sDAAsD;IACtD,YACmB,KAAkB,EAClB,GAA2B,EAC3B,SAAkB,KAAK,EACvB,QAAuB;QAExC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QALL,UAAK,GAAL,KAAK,CAAa;QAClB,QAAG,GAAH,GAAG,CAAwB;QAC3B,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAe;IAG1C,CAAC;IAED;;4DAEwD;IAChD,OAAO;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,WAAW,CAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,uCAAuC;IACvC,CAAC,UAAU,CAAC;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,0CAA0C;IAC1C,CAAC,UAAU,CAAC;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,6DAA6D;IAC7D,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,IAAa,IAAI;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IAC9D,CAAC;IAEQ,GAAG,CAAC,GAAM;QACjB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAY,CAAC,CAAC,KAAK,SAAS,CAAC;IAClE,CAAC;IAEQ,GAAG,CAAC,GAAM;QACjB,wEAAwE;QACxE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAEQ,MAAM,CAAC,GAAM;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEQ,KAAK;QACZ,qEAAqE;QACrE,6BAA6B;QAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAEQ,OAAO,CAAC,UAAsD,EAAE,OAAiB;QACxF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEQ,KAAK,CAAI,KAAyB;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEQ,YAAY,CAAI,KAAyB;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEQ,UAAU,CAAI,KAAyB;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEQ,mBAAmB,CAAI,KAAyB;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEQ,UAAU,CAAC,KAA+B;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEQ,YAAY,CAAC,KAA+B;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEQ,cAAc,CAAC,KAA+B;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,CAAC;IAChD,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAW;gBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEQ,IAAI,CAAC,QAAY;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAmB,CAAC;QACzF,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAEQ,MAAM,CAAC,QAAY;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAEQ,OAAO,CAAC,QAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAC7B,KAAK,MAAM,CAAC,IAAI,WAAW,CAAI,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;oBAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAwB,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAED,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEzG;;;;mCAImC;AACnC,SAAS,SAAS,CAAC,KAAkB,EAAE,SAAkB,KAAK,EAAE,QAAuB;IACrF,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,2EAA2E;IAC3E,8BAA8B;IAC9B,IAAI,UAA8B,CAAC;IACnC,wEAAwE;IACxE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,MAAM,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,uEAAuE;gBACvE,oEAAoE;gBACpE,2BAA2B;gBAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAc;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAoB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChE,QAAQ,CAAC,CAAC,QAAQ;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAc,CAAC;QACrD,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAiC;QAC9C,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,QAAQ,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;gBAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAsB,CAAC;QAClE,CAAC;QACD,IAAI,EAAE,QAAQ,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC,UAAqE,EAAE,OAAiB,EAAE,EAAE;YACpG,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;IACF,MAAM,KAAK,GAAc,IAAI,KAAK,CAAC,MAAM,EAAE;QACzC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ;YACnB,IAAI,IAAI,KAAK,UAAU;gBAAE,OAAO,OAAO,CAAC;YACxC,IAAI,IAAI,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC,YAAY,CAAC;gBACjD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,iEAAiE;oBACjE,iEAAiE;oBACjE,gCAAgC;oBAChC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC9D,OAAO,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjF,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ;YAC1B,qEAAqE;YACrE,qEAAqE;YACrE,4CAA4C;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,IAAI;YACT,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;YACP,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,wBAAwB,CAAC,CAAC,EAAE,IAAI;YAC9B,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU;YAChC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,IAAI;YACpB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAI,UAAuB;IACjD,OAAO,UAAU,YAAY,aAAa,IAAI,UAAU,YAAY,aAAa;QAC/E,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAiB;QACtC,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC/C,KAAuC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,OAAQ,KAAkD,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,iBAAiB,CAAqB,IAAuB,EAAE,OAA2B;IACxG,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,4DAA4D,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,MAAiE,EAAE,EAAE;QAC3E,uEAAuE;QACvE,uDAAuD;QACvD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,KAAc,CAAC;QACnB,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,UAAU,CAAE,SAAiB,CAAC,KAAK,CAAuC,CAAC;YACvF,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,UAAU,CAAE,SAAiB,CAAC,KAAK,CAAC,GAAG,CAAuC,CAAC;YAC3F,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,MAAM;YAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAuB,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;wEAKwE;AACxE,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAQ,IAAI,CAAC,KAAiD,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzG,KAAK,WAAW;YACd,oEAAoE;YACpE,6DAA6D;YAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAC,KAAkC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxH;YACE,mEAAmE;YACnE,6DAA6D;YAC7D,gEAAgE;YAChE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;sDAMsD;AACtD,SAAS,uBAAuB,CAAC,IAAmB;IAClD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK,CAAC;QACX,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,KAAK;YACR,OAAO,uBAAuB,CAAE,IAAY,CAAC,KAAsB,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAI,IAAY,CAAC,KAAqD,CAAC;YACjF,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAQ,IAAI,CAAC,KAAiD,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/G,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAE,IAAI,CAAC,KAAK,CAAC,KAAkC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9H;YACE,+DAA+D;YAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA8B,EAAE,OAA+B;IAC9F,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAClF,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAI,SAAiB,CAAC,KAAqD,CAAC;QACtF,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,WAAW,CAAE,SAAiB,CAAC,KAAsB,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -13,7 +13,7 @@ import { IntegerType, StringType, ArrayType, SetType, DictType, StructType, Floa
|
|
|
13
13
|
import { compareFor, equalFor } from "../../../comparison.js";
|
|
14
14
|
import { LazyReadError } from "../../../error.js";
|
|
15
15
|
import { SortedMap, SortedSet, isEastDict, isEastSet } from "../../../index.js";
|
|
16
|
-
import { decodeBeast2For, encodeBeast2For, encodeBeast2PagedFor, encodeBeast2SegmentsFor, iterBeast2SegmentsFor, openBeast2LazyFor, openBeast2PagesFor, isBeast2LazySafe, readBeast2Extents, spliceBeast2, } from "../index.js";
|
|
16
|
+
import { decodeBeast2For, encodeBeast2For, encodeBeast2PagedFor, encodeBeast2SegmentsFor, iterBeast2SegmentsFor, openBeast2LazyFor, openBeast2PagesFor, isBeast2LazySafe, beast2LazyStats, readBeast2Extents, spliceBeast2, } from "../index.js";
|
|
17
17
|
const RowType = StructType({ id: IntegerType, name: StringType });
|
|
18
18
|
const TableType = DictType(IntegerType, RowType);
|
|
19
19
|
/** A collection in canonical order as a blob of 100-element segments — a
|
|
@@ -342,6 +342,100 @@ describe("Beast2 v5 — pages segment cache", () => {
|
|
|
342
342
|
assert.equal(v1.name, "row-42");
|
|
343
343
|
assert.notEqual(pages.segment(0), pages.segment(0), "segment() decodes fresh so callers cannot poison the cache");
|
|
344
344
|
});
|
|
345
|
+
test("counts the segments it decodes and the fences it probes, a kept segment's read not among them", () => {
|
|
346
|
+
const rows = openBeast2PagesFor(RowsT)(paged(RowsT, structRows));
|
|
347
|
+
rows.element(42);
|
|
348
|
+
rows.element(43);
|
|
349
|
+
assert.equal(rows.segmentsDecoded, 1, "the second read is served by the kept segment");
|
|
350
|
+
rows.segment(0);
|
|
351
|
+
assert.equal(rows.segmentsDecoded, 2, "segment() decodes fresh, and counts");
|
|
352
|
+
assert.equal(rows.fencesProbed, 0, "an Array read probes no fence");
|
|
353
|
+
const table = openBeast2PagesFor(TableType)(paged(TableType, makeTable(350)));
|
|
354
|
+
assert.equal(table.segmentCount, 4);
|
|
355
|
+
table.get(42n);
|
|
356
|
+
table.get(43n);
|
|
357
|
+
assert.equal(table.fencesProbed, 4, "the first keyed read verifies every fence, once");
|
|
358
|
+
assert.equal(table.segmentsDecoded, 1);
|
|
359
|
+
assert.equal(table.fence(3), 300n);
|
|
360
|
+
assert.equal(table.fencesProbed, 4, "a fence the keyed read probed is kept: asking for it again probes nothing");
|
|
361
|
+
const fresh = openBeast2PagesFor(TableType)(paged(TableType, makeTable(350)));
|
|
362
|
+
assert.equal(fresh.fence(2), 200n);
|
|
363
|
+
assert.equal(fresh.fence(2), 200n);
|
|
364
|
+
assert.equal(fresh.fencesProbed, 1, "a Dict fence is probed once and kept");
|
|
365
|
+
assert.equal(fresh.get(42n)?.name, "row-42");
|
|
366
|
+
assert.equal(fresh.fencesProbed, 4, "a keyed read probes only the fences not yet kept");
|
|
367
|
+
// An Array's first element may be a container its caller changes, so it
|
|
368
|
+
// is never kept.
|
|
369
|
+
rows.fence(1);
|
|
370
|
+
rows.fence(1);
|
|
371
|
+
assert.equal(rows.fencesProbed, 2, "an Array's fence is probed afresh each time");
|
|
372
|
+
});
|
|
373
|
+
});
|
|
374
|
+
describe("Beast2 v5 — what a lazy value's reads came to (beast2LazyStats)", () => {
|
|
375
|
+
test("counts a Dict's segment decodes and fence probes, and weighs the whole read an operation makes", () => {
|
|
376
|
+
const blob = paged(TableType, makeTable(500));
|
|
377
|
+
// The gauge the whole read is weighed by: read once before it, once after.
|
|
378
|
+
const readings = [1_000, 4_096];
|
|
379
|
+
const lazy = openBeast2LazyFor(TableType, { resident: () => readings.shift() })(blob);
|
|
380
|
+
assert.deepEqual(beast2LazyStats(lazy), { segments: 5, segmentsDecoded: 0, fencesProbed: 0, hydrated: false, hydratedBytes: 0 });
|
|
381
|
+
lazy.get(42n);
|
|
382
|
+
lazy.get(43n);
|
|
383
|
+
assert.deepEqual(beast2LazyStats(lazy), { segments: 5, segmentsDecoded: 1, fencesProbed: 5, hydrated: false, hydratedBytes: 0 });
|
|
384
|
+
// Keyed reads that cycle over more segments than the pager keeps decode
|
|
385
|
+
// each again: every read of the second round misses.
|
|
386
|
+
for (let round = 0; round < 2; round++) {
|
|
387
|
+
for (const key of [0n, 100n, 200n, 300n, 400n])
|
|
388
|
+
lazy.get(key);
|
|
389
|
+
}
|
|
390
|
+
assert.deepEqual(beast2LazyStats(lazy), { segments: 5, segmentsDecoded: 10, fencesProbed: 5, hydrated: false, hydratedBytes: 0 });
|
|
391
|
+
assert.equal(readings.length, 2, "reads the pager serves weigh nothing");
|
|
392
|
+
// A write is an operation the pager cannot serve: it reads the map whole,
|
|
393
|
+
// a decode of each segment, and the gauge says what that added.
|
|
394
|
+
lazy.set(9999n, { id: 9999n, name: "added" });
|
|
395
|
+
assert.deepEqual(beast2LazyStats(lazy), { segments: 5, segmentsDecoded: 15, fencesProbed: 5, hydrated: true, hydratedBytes: 3_096 });
|
|
396
|
+
});
|
|
397
|
+
test("says an Array was read whole, adding nothing without a gauge", () => {
|
|
398
|
+
const Rows = ArrayType(StringType);
|
|
399
|
+
const lazy = openBeast2LazyFor(Rows)(paged(Rows, Array.from({ length: 260 }, (_, i) => `row-${i}`)));
|
|
400
|
+
assert.equal(lazy[150], "row-150");
|
|
401
|
+
assert.deepEqual(beast2LazyStats(lazy), { segments: 3, segmentsDecoded: 1, fencesProbed: 0, hydrated: false, hydratedBytes: 0 });
|
|
402
|
+
lazy.push("appended");
|
|
403
|
+
assert.deepEqual(beast2LazyStats(lazy), { segments: 3, segmentsDecoded: 4, fencesProbed: 0, hydrated: true, hydratedBytes: 0 });
|
|
404
|
+
});
|
|
405
|
+
test("a gauge that reads lower after the whole read adds nothing, and a clear is no whole read", () => {
|
|
406
|
+
const Tags = SetType(StringType);
|
|
407
|
+
const tags = new SortedSet(Array.from({ length: 150 }, (_, i) => `tag-${String(i).padStart(4, "0")}`), compareFor(StringType));
|
|
408
|
+
const readings = [8_192, 4_096];
|
|
409
|
+
const shrunk = openBeast2LazyFor(Tags, { resident: () => readings.shift() })(paged(Tags, tags));
|
|
410
|
+
assert.equal(shrunk.union(new SortedSet(["extra"], compareFor(StringType))).size, 151);
|
|
411
|
+
assert.deepEqual(beast2LazyStats(shrunk), { segments: 2, segmentsDecoded: 2, fencesProbed: 0, hydrated: true, hydratedBytes: 0 });
|
|
412
|
+
const cleared = openBeast2LazyFor(Tags)(paged(Tags, tags));
|
|
413
|
+
cleared.clear();
|
|
414
|
+
assert.equal(cleared.size, 0);
|
|
415
|
+
assert.deepEqual(beast2LazyStats(cleared), { segments: 2, segmentsDecoded: 0, fencesProbed: 0, hydrated: false, hydratedBytes: 0 });
|
|
416
|
+
});
|
|
417
|
+
test("reads a Dict's and a Set's least and greatest keys once, however often they are asked for", () => {
|
|
418
|
+
const table = openBeast2LazyFor(TableType)(paged(TableType, makeTable(500)));
|
|
419
|
+
const Tags = SetType(StringType);
|
|
420
|
+
const tags = openBeast2LazyFor(Tags)(paged(Tags, new SortedSet(Array.from({ length: 250 }, (_, i) => `tag-${String(i).padStart(4, "0")}`), compareFor(StringType))));
|
|
421
|
+
for (let i = 0; i < 3; i++) {
|
|
422
|
+
assert.equal(table.minKey(), 0n);
|
|
423
|
+
assert.equal(table.maxKey(), 499n);
|
|
424
|
+
assert.equal(tags.minKey(), "tag-0000");
|
|
425
|
+
assert.equal(tags.maxKey(), "tag-0249");
|
|
426
|
+
}
|
|
427
|
+
// The least is the first fence, probed once; the greatest is the last
|
|
428
|
+
// segment's last, decoded once.
|
|
429
|
+
assert.deepEqual(beast2LazyStats(table), { segments: 5, segmentsDecoded: 1, fencesProbed: 1, hydrated: false, hydratedBytes: 0 });
|
|
430
|
+
assert.deepEqual(beast2LazyStats(tags), { segments: 3, segmentsDecoded: 1, fencesProbed: 1, hydrated: false, hydratedBytes: 0 });
|
|
431
|
+
});
|
|
432
|
+
test("says nothing of a value not opened lazily", () => {
|
|
433
|
+
const blob = paged(TableType, makeTable(10));
|
|
434
|
+
assert.equal(beast2LazyStats(decodeBeast2For(TableType)(blob)), undefined);
|
|
435
|
+
assert.equal(beast2LazyStats(["row-0"]), undefined);
|
|
436
|
+
assert.equal(beast2LazyStats(42n), undefined);
|
|
437
|
+
assert.equal(beast2LazyStats(null), undefined);
|
|
438
|
+
});
|
|
345
439
|
});
|
|
346
440
|
describe("Beast2 v5 — negative zero keys", () => {
|
|
347
441
|
// A plain JS Set or Map reads -0 as 0 and merges the two; every paged read
|