@volter/browser-wali 0.1.10 → 0.1.11
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/bulk-memory.d.ts +23 -0
- package/dist/bulk-memory.d.ts.map +1 -0
- package/dist/bulk-memory.js +50 -0
- package/dist/bulk-memory.js.map +1 -0
- package/dist/coherent-file-locks.d.ts +4 -1
- package/dist/coherent-file-locks.d.ts.map +1 -1
- package/dist/coherent-file-locks.js +24 -1
- package/dist/coherent-file-locks.js.map +1 -1
- package/dist/descriptors.d.ts +18 -1
- package/dist/descriptors.d.ts.map +1 -1
- package/dist/descriptors.js +51 -6
- package/dist/descriptors.js.map +1 -1
- package/dist/filesystem-host.d.ts +81 -0
- package/dist/filesystem-host.d.ts.map +1 -0
- package/dist/filesystem-host.js +849 -0
- package/dist/filesystem-host.js.map +1 -0
- package/dist/filesystem-protocol.d.ts +49 -1
- package/dist/filesystem-protocol.d.ts.map +1 -1
- package/dist/filesystem-protocol.js +17 -0
- package/dist/filesystem-protocol.js.map +1 -1
- package/dist/filesystem-remote.d.ts +72 -18
- package/dist/filesystem-remote.d.ts.map +1 -1
- package/dist/filesystem-remote.js +271 -40
- package/dist/filesystem-remote.js.map +1 -1
- package/dist/filesystem-worker.js +8 -502
- package/dist/filesystem-worker.js.map +1 -1
- package/dist/filesystem.d.ts +9 -0
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +209 -61
- package/dist/filesystem.js.map +1 -1
- package/dist/host-idle.d.ts +29 -0
- package/dist/host-idle.d.ts.map +1 -0
- package/dist/host-idle.js +68 -0
- package/dist/host-idle.js.map +1 -0
- package/dist/host.d.ts +1 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +1 -3
- package/dist/host.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +79 -18
- package/dist/memory.js.map +1 -1
- package/dist/module-layout.d.ts +6 -0
- package/dist/module-layout.d.ts.map +1 -1
- package/dist/module-layout.js +26 -3
- package/dist/module-layout.js.map +1 -1
- package/dist/monotonic-clock.d.ts +9 -0
- package/dist/monotonic-clock.d.ts.map +1 -1
- package/dist/monotonic-clock.js +11 -0
- package/dist/monotonic-clock.js.map +1 -1
- package/dist/network-worker.js +7 -2
- package/dist/network-worker.js.map +1 -1
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +11 -8
- package/dist/network.js.map +1 -1
- package/dist/process-bridge.d.ts.map +1 -1
- package/dist/process-bridge.js +25 -5
- package/dist/process-bridge.js.map +1 -1
- package/dist/program.d.ts +5 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +13 -12
- package/dist/program.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +75 -9
- package/dist/runtime.js.map +1 -1
- package/dist/shared-file-layer.d.ts +69 -0
- package/dist/shared-file-layer.d.ts.map +1 -0
- package/dist/shared-file-layer.js +299 -0
- package/dist/shared-file-layer.js.map +1 -0
- package/dist/shared-pipes.d.ts +7 -0
- package/dist/shared-pipes.d.ts.map +1 -1
- package/dist/shared-pipes.js +56 -17
- package/dist/shared-pipes.js.map +1 -1
- package/dist/signals.d.ts +2 -0
- package/dist/signals.d.ts.map +1 -1
- package/dist/signals.js +5 -1
- package/dist/signals.js.map +1 -1
- package/dist/snapshot-filesystem.d.ts +36 -3
- package/dist/snapshot-filesystem.d.ts.map +1 -1
- package/dist/snapshot-filesystem.js +204 -19
- package/dist/snapshot-filesystem.js.map +1 -1
- package/dist/stdin.d.ts.map +1 -1
- package/dist/stdin.js +3 -2
- package/dist/stdin.js.map +1 -1
- package/dist/symlink.d.ts.map +1 -1
- package/dist/symlink.js +91 -1
- package/dist/symlink.js.map +1 -1
- package/dist/system.d.ts.map +1 -1
- package/dist/system.js +17 -6
- package/dist/system.js.map +1 -1
- package/dist/thread-coordinator-worker.d.ts +1 -25
- package/dist/thread-coordinator-worker.d.ts.map +1 -1
- package/dist/thread-coordinator-worker.js +29 -2
- package/dist/thread-coordinator-worker.js.map +1 -1
- package/dist/thread-worker.js +13 -8
- package/dist/thread-worker.js.map +1 -1
- package/dist/threads.d.ts +4 -0
- package/dist/threads.d.ts.map +1 -1
- package/dist/threads.js +72 -43
- package/dist/threads.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/websocket-peer.d.ts.map +1 -1
- package/dist/websocket-peer.js +2 -1
- package/dist/websocket-peer.js.map +1 -1
- package/dist/worker-program-protocol.d.ts +26 -0
- package/dist/worker-program-protocol.d.ts.map +1 -1
- package/dist/worker-program-worker.js +26 -8
- package/dist/worker-program-worker.js.map +1 -1
- package/dist/worker-program.d.ts +43 -0
- package/dist/worker-program.d.ts.map +1 -1
- package/dist/worker-program.js +198 -24
- package/dist/worker-program.js.map +1 -1
- package/package.json +1 -1
package/dist/worker-program.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { createSharedFileLayer, lowerTreeOf, sharedFileLayerEntries, withoutHostTrees } from "./shared-file-layer.js";
|
|
1
2
|
import { normalizeProcessFilesystemPolicy, intersectProcessFilesystemPolicies, requireProcessFilesystemPolicySupport } from "@volter/browser-runtime/browser-process-filesystem-policy.js";
|
|
2
3
|
import { localBrowserFileSystemStore, readBrowserFileSystemSnapshot, readBrowserFileSystemEntry } from "@volter/browser-runtime/browser-filesystem.js";
|
|
3
4
|
import { BROWSER_PACK_RETENTION_ROOT, NODE_ENGINE_ROOT, PROJECT_ROOTS } from "@volter/browser-runtime/browser-pack-store.js";
|
|
4
5
|
import { browserProcessLineage } from "@volter/browser-runtime/browser-process.js";
|
|
5
6
|
import { SharedWaliStdinWriter } from "./stdin.js";
|
|
7
|
+
import { findImportedMemory } from "./module-layout.js";
|
|
6
8
|
import { createWaliSignalState, defaultTerminates, WaliSignals } from "./signals.js";
|
|
7
9
|
import { waliSharedPipeDescribesFd } from "./shared-pipes.js";
|
|
8
10
|
import { applyProcessFilesystemPatch, closeSharedPipe, createProcessFilesystemPatch, encodeProcessPatch, readSharedPipe, writeSharedPipe, } from "./process-bridge.js";
|
|
9
11
|
import { createBrowserFileLockChannel, sharedBrowserFileLockCoordinator, } from "@volter/browser-runtime/browser-file-locks.js";
|
|
10
12
|
import { createBrowserFileCoherenceChannel, sharedBrowserFileCoherenceCoordinator, } from "@volter/browser-runtime/browser-file-coherence.js";
|
|
11
|
-
import { currentEntry,
|
|
13
|
+
import { currentEntry, patchWithContent, ProcessFilesystemBase } from "@volter/browser-runtime/browser-process-filesystem.js";
|
|
12
14
|
import { pageWorker } from "@volter/browser-runtime/page-workers.js";
|
|
13
15
|
/** Runs one unchanged WALI executable off the UI thread while retaining its compiled module. */
|
|
14
16
|
/**
|
|
@@ -18,6 +20,58 @@ import { pageWorker } from "@volter/browser-runtime/page-workers.js";
|
|
|
18
20
|
*/
|
|
19
21
|
const compiledModules = new Map();
|
|
20
22
|
const compiledKey = (url, integrity) => integrity ? `${url}\n${integrity}` : undefined;
|
|
23
|
+
/** `work`, or sooner when `signal` aborts: a run waiting on a preload is still one that can be cancelled (review of da64b88). */
|
|
24
|
+
async function untilAborted(work, signal) {
|
|
25
|
+
if (!signal) {
|
|
26
|
+
await work;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (signal.aborted)
|
|
30
|
+
return;
|
|
31
|
+
let stop = () => undefined;
|
|
32
|
+
const aborted = new Promise((resolve) => { stop = () => resolve(); });
|
|
33
|
+
signal.addEventListener("abort", stop, { once: true });
|
|
34
|
+
try {
|
|
35
|
+
await Promise.race([work, aborted]);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
signal.removeEventListener("abort", stop);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Preloads in flight, which a run waits for rather than compiling the module a second time. */
|
|
42
|
+
const preloads = new Map();
|
|
43
|
+
/**
|
|
44
|
+
* A pinned program's module fetched, checked and compiled on the page before
|
|
45
|
+
* its first run, into the same cache a run's worker fills. A host that has
|
|
46
|
+
* other work before it can start the program -- the editor's Blender builds
|
|
47
|
+
* its 66 MB runtime layer first -- overlaps the module's download and compile
|
|
48
|
+
* with that work instead of paying them after it (measured 2026-09-28: the
|
|
49
|
+
* layer 270-975 ms, then the module 200-250 ms warm, in series). The checks
|
|
50
|
+
* are the worker's: a well-formed SRI pin, fetched with it, so the browser
|
|
51
|
+
* refuses bytes that do not match. A failed preload leaves the run to load
|
|
52
|
+
* the module as it would have.
|
|
53
|
+
*/
|
|
54
|
+
export function preloadWaliModule(url, integrity) {
|
|
55
|
+
const key = compiledKey(url, integrity);
|
|
56
|
+
if (compiledModules.has(key))
|
|
57
|
+
return Promise.resolve();
|
|
58
|
+
let pending = preloads.get(key);
|
|
59
|
+
if (pending)
|
|
60
|
+
return pending;
|
|
61
|
+
if (!/^sha256-[A-Za-z0-9+/]{43}=$/u.test(integrity))
|
|
62
|
+
return Promise.reject(new Error("Invalid artifact integrity metadata."));
|
|
63
|
+
pending = fetch(url, { integrity }).then(async (response) => {
|
|
64
|
+
if (!response.ok)
|
|
65
|
+
throw new Error(`Unable to load WALI program: HTTP ${response.status}.`);
|
|
66
|
+
const streamed = WebAssembly.compileStreaming(response.clone()).catch(() => undefined);
|
|
67
|
+
const bytes = await response.arrayBuffer();
|
|
68
|
+
const layout = findImportedMemory(new Uint8Array(bytes));
|
|
69
|
+
const module = await streamed ?? await WebAssembly.compile(bytes);
|
|
70
|
+
compiledModules.set(key, { module, ...(layout ? { layout } : {}) });
|
|
71
|
+
}).finally(() => preloads.delete(key));
|
|
72
|
+
preloads.set(key, pending);
|
|
73
|
+
return pending;
|
|
74
|
+
}
|
|
21
75
|
export class BrowserWaliWorkerProgram {
|
|
22
76
|
filesystem;
|
|
23
77
|
program;
|
|
@@ -43,6 +97,12 @@ export class BrowserWaliWorkerProgram {
|
|
|
43
97
|
this.filesystem = filesystem;
|
|
44
98
|
this.program = program;
|
|
45
99
|
}
|
|
100
|
+
/** The trees of the host's layers this run reads (`layers`): what the program writes there stays the program's. */
|
|
101
|
+
hostRoots = [];
|
|
102
|
+
/** A patch without the host's trees, which the page does not hold (review of c5de163: a program's bytecode landed in the page). */
|
|
103
|
+
withoutHostTrees(patch) {
|
|
104
|
+
return withoutHostTrees(patch, this.hostRoots);
|
|
105
|
+
}
|
|
46
106
|
async run(argv, options = {}) {
|
|
47
107
|
if (options.filesystemPolicy !== undefined)
|
|
48
108
|
options = { ...options, filesystemPolicy: normalizeProcessFilesystemPolicy(options.filesystemPolicy) };
|
|
@@ -73,18 +133,45 @@ export class BrowserWaliWorkerProgram {
|
|
|
73
133
|
// bodies are its own: carried as content, an editor's 296 MB of them went
|
|
74
134
|
// into every `git` run's image, and two runs at once ended the page on
|
|
75
135
|
// its heap (measured 2026-09-24 in examples/volter-editor).
|
|
76
|
-
const unread =
|
|
77
|
-
|
|
78
|
-
|
|
136
|
+
const unread = this.unreadRoots();
|
|
137
|
+
// A tree with no store travels as a shared layer (ADR-0044 §6): the
|
|
138
|
+
// snapshot describes every file by size, and the files' bytes go once
|
|
139
|
+
// into shared memory that each of the run's workers reads.
|
|
140
|
+
let image = await readBrowserFileSystemSnapshot(this.filesystem, "/", store ? { metadataRoots: [...PROJECT_ROOTS, ...unread] } : { metadataRoots: ["/"] });
|
|
141
|
+
const layer = store ? undefined : await createSharedFileLayer(this.filesystem, image.files.filter((entry) => !underAny(entry.path, unread)));
|
|
142
|
+
if (!store && !layer)
|
|
143
|
+
image = await readBrowserFileSystemSnapshot(this.filesystem, "/", unread.length > 0 ? { metadataRoots: unread } : {});
|
|
144
|
+
// A file gone before its bytes were read is not in the worker's tree, so
|
|
145
|
+
// it is not in the base either: the exit would propose removing it, and
|
|
146
|
+
// meet the file if it came back meanwhile (an atomic save).
|
|
147
|
+
if (layer?.vanished) {
|
|
148
|
+
const vanished = new Set(layer.vanished);
|
|
149
|
+
image = { files: image.files.filter((entry) => !vanished.has(entry.path)) };
|
|
150
|
+
delete layer.vanished;
|
|
151
|
+
}
|
|
152
|
+
// The host's own layers are described by size in the image and the base,
|
|
153
|
+
// as a store's files are: the program holds them, and a file it did not
|
|
154
|
+
// write comes back as it went.
|
|
155
|
+
const hostLayers = this.program.layers ?? [];
|
|
156
|
+
if (hostLayers.length > 0) {
|
|
157
|
+
const held = new Set(image.files.map((entry) => entry.path));
|
|
158
|
+
image = { files: [...image.files, ...hostLayers.flatMap(sharedFileLayerEntries).filter((entry) => !held.has(entry.path))] };
|
|
159
|
+
}
|
|
160
|
+
const layers = [...(layer ? [layer] : []), ...hostLayers];
|
|
161
|
+
this.hostRoots = [...hostLayers.flatMap((hosted) => hosted.roots ?? []), ...(this.program.privateRoots ?? [])]
|
|
162
|
+
.map((root) => root === "/" ? root : root.replace(/\/+$/u, "") || "/");
|
|
79
163
|
// The base every patch is diffed against is the image as the worker
|
|
80
164
|
// holds it: the unread trees' files are not in it (their directories
|
|
81
165
|
// are). Diffed against the page's own listing, the worker's final tree
|
|
82
166
|
// reported every one of those files removed, and the page deleted them
|
|
83
167
|
// (measured 2026-09-21: one git run's exit took 3,318 files of the
|
|
84
168
|
// GitLens and server trees).
|
|
85
|
-
const
|
|
86
|
-
const base = { files: image.files.filter((entry) => entry.type === "directory" || !unreadFile(entry.path)) };
|
|
169
|
+
const base = { files: image.files.filter((entry) => entry.type === "directory" || !underAny(entry.path, unread)) };
|
|
87
170
|
const filesystem = this.program.prepareFilesystem ? await this.program.prepareFilesystem(image) : image;
|
|
171
|
+
// A preload of this module still in flight is waited for, not repeated in the worker.
|
|
172
|
+
const preloading = preloads.get(compiledKey(this.program.url, this.program.integrity) ?? "");
|
|
173
|
+
if (preloading)
|
|
174
|
+
await untilAborted(preloading.catch(() => undefined), options.signal);
|
|
88
175
|
if (options.signal?.aborted)
|
|
89
176
|
throw options.signal.reason;
|
|
90
177
|
const id = this.nextId++;
|
|
@@ -101,7 +188,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
101
188
|
if (!pending || pending.id !== id)
|
|
102
189
|
return;
|
|
103
190
|
const entry = currentEntry(coherenceFilesystem, path);
|
|
104
|
-
pending.filesystemBase
|
|
191
|
+
pending.filesystemBase.apply(entry ? { files: [entry], removed: [] } : { files: [], removed: [path] });
|
|
105
192
|
});
|
|
106
193
|
this.urlScanTail = "";
|
|
107
194
|
this.openedUrls.clear();
|
|
@@ -154,7 +241,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
154
241
|
const filesystemFinalization = new Promise((resolve) => { resolveFilesystemFinalization = resolve; });
|
|
155
242
|
this.pending = {
|
|
156
243
|
id,
|
|
157
|
-
filesystemBase: base,
|
|
244
|
+
filesystemBase: new ProcessFilesystemBase(base, layers.length > 0 ? ((lower) => (path) => lower.entries.has(path) ? lower.read(path) : undefined)(lowerTreeOf(undefined, layers)) : undefined),
|
|
158
245
|
filesystemQueue: Promise.resolve(),
|
|
159
246
|
resolve,
|
|
160
247
|
reject,
|
|
@@ -167,6 +254,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
167
254
|
releaseFileCoherence,
|
|
168
255
|
releaseFilesystemChanges: () => { },
|
|
169
256
|
changedPaths: new Set(),
|
|
257
|
+
importSequence: 0,
|
|
170
258
|
importingFilesystem: false,
|
|
171
259
|
filesystemFinalized: false,
|
|
172
260
|
filesystemFinalization,
|
|
@@ -211,6 +299,8 @@ export class BrowserWaliWorkerProgram {
|
|
|
211
299
|
terminal: options.terminal !== undefined,
|
|
212
300
|
filesystem,
|
|
213
301
|
...(store ? { store: { projectId: store } } : {}),
|
|
302
|
+
...(layers.length > 0 ? { layers } : {}),
|
|
303
|
+
...(this.program.privateRoots?.length ? { privateRoots: [...this.program.privateRoots] } : {}),
|
|
214
304
|
fileLocks: { channel: lockChannel.client, owner: lockOwner },
|
|
215
305
|
fileCoherence: coherenceChannel.client,
|
|
216
306
|
signalState,
|
|
@@ -268,8 +358,33 @@ export class BrowserWaliWorkerProgram {
|
|
|
268
358
|
this.filesystemUpdatePort = filesystemUpdates.port1;
|
|
269
359
|
this.filesystemUpdatePort.onmessage = (event) => {
|
|
270
360
|
const active = this.pending;
|
|
271
|
-
if (active?.id
|
|
272
|
-
|
|
361
|
+
if (active?.id !== id)
|
|
362
|
+
return;
|
|
363
|
+
if (event.data.type === "mailbox") {
|
|
364
|
+
// New imports go to the mailbox; one already on the port is the
|
|
365
|
+
// host's to take until it closes the port (review of 31309ca: sent
|
|
366
|
+
// again here, it could be taken twice).
|
|
367
|
+
active.mailbox = { control: new Int32Array(event.data.buffer, 0, 2), buffer: event.data.buffer, doorbell: new Int32Array(event.data.doorbell) };
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
if (event.data.type === "port-closed") {
|
|
371
|
+
const unread = active.importOnPort;
|
|
372
|
+
delete active.importOnPort;
|
|
373
|
+
if (unread && (unread.sequence ?? 0) > event.data.taken && active.mailbox) {
|
|
374
|
+
// On the ordered queue, whose failure ends the run as an import's does (review of 29919da).
|
|
375
|
+
active.filesystemQueue = active.filesystemQueue.then(() => this.sendImport(active, unread)).catch((error) => {
|
|
376
|
+
if (this.pending !== active)
|
|
377
|
+
return;
|
|
378
|
+
this.finishPending();
|
|
379
|
+
this.resetWorker();
|
|
380
|
+
active.reject(error);
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
if (event.data.type === "imported" || event.data.type === "import-error")
|
|
386
|
+
delete active.importOnPort;
|
|
387
|
+
active.filesystemQueue = active.filesystemQueue.then(() => this.applyLiveFilesystemPatch(id, event.data));
|
|
273
388
|
};
|
|
274
389
|
this.filesystemUpdatePort.start();
|
|
275
390
|
const changed = (path) => {
|
|
@@ -446,7 +561,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
446
561
|
// Its full snapshot may predate a peer import acknowledged on that port;
|
|
447
562
|
// diffing it against the advanced base would manufacture a deletion.
|
|
448
563
|
const patch = message.filesystemFinalized ? { files: [], removed: [] }
|
|
449
|
-
: createProcessFilesystemPatch(pending.filesystemBase, safeFilesystem);
|
|
564
|
+
: this.withoutHostTrees(createProcessFilesystemPatch(pending.filesystemBase, safeFilesystem, { written: true }));
|
|
450
565
|
if (!message.filesystemFinalized)
|
|
451
566
|
applyProcessFilesystemPatch(this.filesystem, patch, pending.filesystemBase);
|
|
452
567
|
try {
|
|
@@ -518,8 +633,14 @@ export class BrowserWaliWorkerProgram {
|
|
|
518
633
|
const patch = createProcessFilesystemPatch(before, await metadataSnapshot());
|
|
519
634
|
const previous = new Map(before.files.map((entry) => [entry.path, entry]));
|
|
520
635
|
const files = [];
|
|
521
|
-
|
|
636
|
+
// A tree the parent never reads is not the parent's news: another
|
|
637
|
+
// program placed while the child ran was 151 MB of bytes here, nine
|
|
638
|
+
// times the patch's room, and the child's result never arrived.
|
|
639
|
+
const unread = this.unreadRoots();
|
|
640
|
+
const removed = new Set(patch.removed.filter((path) => !underAny(path, unread)));
|
|
522
641
|
for (const entry of patch.files) {
|
|
642
|
+
if (entry.type !== "directory" && underAny(entry.path, unread))
|
|
643
|
+
continue;
|
|
523
644
|
const current = previous.get(entry.path);
|
|
524
645
|
const bytesMoved = entry.type === "file" && (!current || current.type !== "file"
|
|
525
646
|
|| current.size !== entry.size || current.mtimeMs !== entry.mtimeMs);
|
|
@@ -562,11 +683,11 @@ export class BrowserWaliWorkerProgram {
|
|
|
562
683
|
? intersectProcessFilesystemPolicies(pending.options.filesystemPolicy, message.filesystemPolicy)
|
|
563
684
|
: message.filesystemPolicy === undefined ? undefined : normalizeProcessFilesystemPolicy(message.filesystemPolicy);
|
|
564
685
|
requireProcessFilesystemPolicySupport(filesystemPolicy, backend.capabilities);
|
|
565
|
-
const safePatch = this.program.sanitizeFilesystemPatch
|
|
686
|
+
const safePatch = this.withoutHostTrees(this.program.sanitizeFilesystemPatch
|
|
566
687
|
? await this.program.sanitizeFilesystemPatch(message.filesystemPatch)
|
|
567
|
-
: message.filesystemPatch;
|
|
688
|
+
: message.filesystemPatch);
|
|
568
689
|
applyProcessFilesystemPatch(this.filesystem, safePatch, pending.filesystemBase);
|
|
569
|
-
pending.filesystemBase
|
|
690
|
+
pending.filesystemBase.apply(safePatch);
|
|
570
691
|
childFilesystem = await metadataSnapshot();
|
|
571
692
|
trace("spawn-patched");
|
|
572
693
|
const stdinStream = message.stdin ? streamBrowserPipe(message.stdin, controller.signal) : undefined;
|
|
@@ -631,7 +752,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
631
752
|
return;
|
|
632
753
|
}
|
|
633
754
|
if (message.type === "imported") {
|
|
634
|
-
pending.filesystemBase
|
|
755
|
+
pending.filesystemBase.apply(message.patch);
|
|
635
756
|
pending.importingFilesystem = false;
|
|
636
757
|
this.scheduleFilesystemImport(pending);
|
|
637
758
|
return;
|
|
@@ -639,9 +760,11 @@ export class BrowserWaliWorkerProgram {
|
|
|
639
760
|
try {
|
|
640
761
|
if (message.type === "import-error")
|
|
641
762
|
throw new Error(message.message);
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
763
|
+
if (message.type === "mailbox" || message.type === "port-closed")
|
|
764
|
+
return;
|
|
765
|
+
const safePatch = this.withoutHostTrees(this.program.sanitizeFilesystemPatch
|
|
766
|
+
? await this.program.sanitizeFilesystemPatch(patchWithContent(message.patch))
|
|
767
|
+
: message.patch);
|
|
645
768
|
this.applyingFilesystem = true;
|
|
646
769
|
try {
|
|
647
770
|
applyProcessFilesystemPatch(this.filesystem, safePatch, pending.filesystemBase);
|
|
@@ -649,7 +772,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
649
772
|
finally {
|
|
650
773
|
this.applyingFilesystem = false;
|
|
651
774
|
}
|
|
652
|
-
pending.filesystemBase
|
|
775
|
+
pending.filesystemBase.apply(safePatch);
|
|
653
776
|
}
|
|
654
777
|
catch (error) {
|
|
655
778
|
// THIS IS WHERE A LIVE PROGRAM BECOMES A DEAD ONE, and it is not an
|
|
@@ -683,7 +806,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
683
806
|
}
|
|
684
807
|
try {
|
|
685
808
|
if (message.type === "filesystem")
|
|
686
|
-
await this.program.onFilesystemCommit?.(this.filesystem, message.patch);
|
|
809
|
+
await this.program.onFilesystemCommit?.(this.filesystem, patchWithContent(message.patch));
|
|
687
810
|
}
|
|
688
811
|
catch (error) {
|
|
689
812
|
if (this.pending?.id !== id)
|
|
@@ -693,6 +816,45 @@ export class BrowserWaliWorkerProgram {
|
|
|
693
816
|
pending.reject(new Error(`WALI filesystem durability barrier failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
694
817
|
}
|
|
695
818
|
}
|
|
819
|
+
/**
|
|
820
|
+
* The trees a run's program never reads, read now rather than when it
|
|
821
|
+
* started: a program placed while this one runs (a cold open places Pi's
|
|
822
|
+
* 109 MB beside a running Supercode) is another program's tree from the
|
|
823
|
+
* moment it appears, and its files cross neither a child's patch nor a
|
|
824
|
+
* live import, as they are not in the run's image.
|
|
825
|
+
*/
|
|
826
|
+
unreadRoots() {
|
|
827
|
+
return [BROWSER_PACK_RETENTION_ROOT, NODE_ENGINE_ROOT, ...this.program.excludedImagePaths?.() ?? []];
|
|
828
|
+
}
|
|
829
|
+
/** An import to the program: a message, or the mailbox of a host on its main thread (ADR-0046). */
|
|
830
|
+
sendImport(pending, message) {
|
|
831
|
+
message = { ...message, sequence: message.sequence ?? ++pending.importSequence };
|
|
832
|
+
const mailbox = pending.mailbox;
|
|
833
|
+
if (!mailbox) {
|
|
834
|
+
// Kept until answered: a host that announces a mailbox after this left
|
|
835
|
+
// its port unread, and it goes again there (see the "mailbox" message).
|
|
836
|
+
pending.importOnPort = message;
|
|
837
|
+
this.filesystemUpdatePort?.postMessage(message);
|
|
838
|
+
return;
|
|
839
|
+
}
|
|
840
|
+
// Raw bytes in the base are base64 again before JSON, which would make a
|
|
841
|
+
// Uint8Array an object and every file the program wrote a false conflict
|
|
842
|
+
// (review of c96148c).
|
|
843
|
+
const encoded = new TextEncoder().encode(JSON.stringify({ ...message, patch: patchWithContent(message.patch), ...(message.base ? { base: patchWithContent(message.base) } : {}) }));
|
|
844
|
+
const needed = 8 + encoded.byteLength;
|
|
845
|
+
const growable = mailbox.buffer;
|
|
846
|
+
if (needed > mailbox.buffer.byteLength) {
|
|
847
|
+
if (!growable.grow || needed > (growable.maxByteLength ?? 0))
|
|
848
|
+
throw new Error(`A filesystem import of ${encoded.byteLength} bytes does not fit the program's mailbox.`);
|
|
849
|
+
growable.grow(needed);
|
|
850
|
+
}
|
|
851
|
+
// One import is outstanding at a time (`importingFilesystem`), so the slot is empty.
|
|
852
|
+
new Uint8Array(mailbox.buffer, 8, encoded.byteLength).set(encoded);
|
|
853
|
+
Atomics.store(mailbox.control, 1, encoded.byteLength);
|
|
854
|
+
Atomics.store(mailbox.control, 0, 1);
|
|
855
|
+
Atomics.add(mailbox.doorbell, 0, 1);
|
|
856
|
+
Atomics.notify(mailbox.doorbell, 0);
|
|
857
|
+
}
|
|
696
858
|
scheduleFilesystemImport(pending) {
|
|
697
859
|
if (pending.filesystemFinalized || pending.importingFilesystem || pending.changedPaths.size === 0 || this.pending !== pending)
|
|
698
860
|
return;
|
|
@@ -700,9 +862,14 @@ export class BrowserWaliWorkerProgram {
|
|
|
700
862
|
pending.filesystemQueue = pending.filesystemQueue.then(async () => {
|
|
701
863
|
if (this.pending !== pending)
|
|
702
864
|
return;
|
|
703
|
-
|
|
865
|
+
// The program's own trees (private, and a host's layers) take nothing
|
|
866
|
+
// from the page, on either side of the patch: left out of `after` only,
|
|
867
|
+
// a path the base knows would read as removed (review of 29919da).
|
|
868
|
+
const paths = new Set([...pending.changedPaths].filter((path) => !underAny(path, this.hostRoots)));
|
|
704
869
|
pending.changedPaths.clear();
|
|
705
|
-
const
|
|
870
|
+
const unread = this.unreadRoots();
|
|
871
|
+
// The same paths leave both sides: a file dropped from one side only would read as removed.
|
|
872
|
+
const before = pending.filesystemBase.only([...paths].filter((path) => !underAny(path, unread) || pending.filesystemBase.byPath.get(path)?.type === "directory"));
|
|
706
873
|
const after = { files: [] };
|
|
707
874
|
// THE CHANGED PATHS, ONE AT A TIME, never the whole tree. This read a
|
|
708
875
|
// full `toSnapshot()` to pick two entries out of it, and a page-side
|
|
@@ -711,6 +878,9 @@ export class BrowserWaliWorkerProgram {
|
|
|
711
878
|
// ~100 MB of string built and thrown away PER PAGE WRITE, and a
|
|
712
879
|
// directory-channel session writes twice per request.
|
|
713
880
|
for (const path of paths) {
|
|
881
|
+
// An unread tree's directories cross, as they are in the image; its files do not.
|
|
882
|
+
if (underAny(path, unread) && !(this.filesystem.existsSync(path) && this.filesystem.statSync(path).isDirectory()))
|
|
883
|
+
continue;
|
|
714
884
|
const entry = await readBrowserFileSystemEntry(this.filesystem, path);
|
|
715
885
|
if (entry)
|
|
716
886
|
after.files.push(entry);
|
|
@@ -723,7 +893,7 @@ export class BrowserWaliWorkerProgram {
|
|
|
723
893
|
this.scheduleFilesystemImport(pending);
|
|
724
894
|
return;
|
|
725
895
|
}
|
|
726
|
-
this.
|
|
896
|
+
this.sendImport(pending, { type: "import", patch, base: before });
|
|
727
897
|
}).catch((error) => {
|
|
728
898
|
if (this.pending !== pending)
|
|
729
899
|
return;
|
|
@@ -854,4 +1024,8 @@ async function* streamBrowserPipe(handle, signal) {
|
|
|
854
1024
|
if (signal.aborted)
|
|
855
1025
|
throw signal.reason;
|
|
856
1026
|
}
|
|
1027
|
+
/** Whether a path is one of these roots or under one. */
|
|
1028
|
+
function underAny(path, roots) {
|
|
1029
|
+
return roots.some((root) => root === "/" || path === root || path.startsWith(`${root}/`));
|
|
1030
|
+
}
|
|
857
1031
|
//# sourceMappingURL=worker-program.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-program.js","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-program.js","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"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"}
|