@volter/browser-wali 0.1.5 → 0.1.6
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 +73 -0
- package/dist/browser-wali-command.d.ts +3 -0
- package/dist/browser-wali-command.d.ts.map +1 -1
- package/dist/browser-wali-command.js +2 -1
- package/dist/browser-wali-command.js.map +1 -1
- package/dist/capabilities.d.ts +73 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +86 -2
- package/dist/capabilities.js.map +1 -1
- package/dist/child-processes.d.ts +24 -0
- package/dist/child-processes.d.ts.map +1 -0
- package/dist/child-processes.js +134 -0
- package/dist/child-processes.js.map +1 -0
- package/dist/codec-protocol.d.ts +66 -0
- package/dist/codec-protocol.d.ts.map +1 -0
- package/dist/codec-protocol.js +59 -0
- package/dist/codec-protocol.js.map +1 -0
- package/dist/codec-remote.d.ts +33 -0
- package/dist/codec-remote.d.ts.map +1 -0
- package/dist/codec-remote.js +190 -0
- package/dist/codec-remote.js.map +1 -0
- package/dist/codec-worker.d.ts +2 -0
- package/dist/codec-worker.d.ts.map +1 -0
- package/dist/codec-worker.js +438 -0
- package/dist/codec-worker.js.map +1 -0
- package/dist/coherent-file-locks.d.ts.map +1 -1
- package/dist/coherent-file-locks.js +17 -5
- package/dist/coherent-file-locks.js.map +1 -1
- package/dist/descriptors.d.ts +49 -0
- package/dist/descriptors.d.ts.map +1 -0
- package/dist/descriptors.js +115 -0
- package/dist/descriptors.js.map +1 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -2
- package/dist/events.js.map +1 -1
- package/dist/filesystem-protocol.d.ts +28 -1
- package/dist/filesystem-protocol.d.ts.map +1 -1
- package/dist/filesystem-protocol.js +18 -0
- package/dist/filesystem-protocol.js.map +1 -1
- package/dist/filesystem-remote.d.ts +26 -2
- package/dist/filesystem-remote.d.ts.map +1 -1
- package/dist/filesystem-remote.js +132 -23
- package/dist/filesystem-remote.js.map +1 -1
- package/dist/filesystem-worker.js +274 -34
- package/dist/filesystem-worker.js.map +1 -1
- package/dist/filesystem.d.ts +30 -1
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +180 -50
- package/dist/filesystem.js.map +1 -1
- package/dist/fork-worker.d.ts +2 -0
- package/dist/fork-worker.d.ts.map +1 -0
- package/dist/fork-worker.js +52 -0
- package/dist/fork-worker.js.map +1 -0
- package/dist/host.d.ts +36 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +153 -0
- package/dist/host.js.map +1 -0
- package/dist/loopback-host.d.ts +25 -1
- package/dist/loopback-host.d.ts.map +1 -1
- package/dist/loopback-host.js +447 -13
- package/dist/loopback-host.js.map +1 -1
- package/dist/memory.d.ts +65 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +306 -49
- package/dist/memory.js.map +1 -1
- package/dist/module-layout.d.ts +2 -0
- package/dist/module-layout.d.ts.map +1 -1
- package/dist/module-layout.js +4 -2
- package/dist/module-layout.js.map +1 -1
- package/dist/monotonic-clock.d.ts +12 -0
- package/dist/monotonic-clock.d.ts.map +1 -0
- package/dist/monotonic-clock.js +14 -0
- package/dist/monotonic-clock.js.map +1 -0
- package/dist/network-protocol.d.ts +12 -1
- package/dist/network-protocol.d.ts.map +1 -1
- package/dist/network-protocol.js +6 -0
- package/dist/network-protocol.js.map +1 -1
- package/dist/network-worker.js +149 -20
- package/dist/network-worker.js.map +1 -1
- package/dist/network.d.ts +15 -3
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +74 -39
- package/dist/network.js.map +1 -1
- package/dist/process-adapter.d.ts +4 -1
- package/dist/process-adapter.d.ts.map +1 -1
- package/dist/process-adapter.js +3 -3
- package/dist/process-adapter.js.map +1 -1
- package/dist/process-bridge.d.ts +43 -0
- package/dist/process-bridge.d.ts.map +1 -1
- package/dist/process-bridge.js +30 -1
- package/dist/process-bridge.js.map +1 -1
- package/dist/program.d.ts +60 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +92 -31
- package/dist/program.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +491 -134
- package/dist/runtime.js.map +1 -1
- package/dist/select.d.ts +16 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +100 -0
- package/dist/select.js.map +1 -0
- package/dist/shared-pipes.d.ts +17 -6
- package/dist/shared-pipes.d.ts.map +1 -1
- package/dist/shared-pipes.js +94 -70
- package/dist/shared-pipes.js.map +1 -1
- package/dist/signals.d.ts +48 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +232 -0
- package/dist/signals.js.map +1 -0
- package/dist/snapshot-filesystem.d.ts +128 -2
- package/dist/snapshot-filesystem.d.ts.map +1 -1
- package/dist/snapshot-filesystem.js +481 -53
- package/dist/snapshot-filesystem.js.map +1 -1
- package/dist/spawn-policy.d.ts +5 -0
- package/dist/spawn-policy.d.ts.map +1 -0
- package/dist/spawn-policy.js +29 -0
- package/dist/spawn-policy.js.map +1 -0
- package/dist/stdin.d.ts +2 -0
- package/dist/stdin.d.ts.map +1 -1
- package/dist/stdin.js +4 -0
- package/dist/stdin.js.map +1 -1
- package/dist/symlink.d.ts +8 -0
- package/dist/symlink.d.ts.map +1 -1
- package/dist/symlink.js +13 -0
- package/dist/symlink.js.map +1 -1
- package/dist/system.d.ts +152 -1
- package/dist/system.d.ts.map +1 -1
- package/dist/system.js +226 -7
- package/dist/system.js.map +1 -1
- package/dist/thread-coordinator-worker.d.ts +1 -0
- package/dist/thread-coordinator-worker.d.ts.map +1 -1
- package/dist/thread-coordinator-worker.js +1 -0
- package/dist/thread-coordinator-worker.js.map +1 -1
- package/dist/thread-worker.js +241 -122
- package/dist/thread-worker.js.map +1 -1
- package/dist/threads.d.ts +12 -2
- package/dist/threads.d.ts.map +1 -1
- package/dist/threads.js +30 -10
- package/dist/threads.js.map +1 -1
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/websocket-peer.d.ts.map +1 -1
- package/dist/websocket-peer.js +4 -14
- package/dist/websocket-peer.js.map +1 -1
- package/dist/worker-program-protocol.d.ts +70 -3
- package/dist/worker-program-protocol.d.ts.map +1 -1
- package/dist/worker-program-worker.js +115 -23
- package/dist/worker-program-worker.js.map +1 -1
- package/dist/worker-program.d.ts +25 -1
- package/dist/worker-program.d.ts.map +1 -1
- package/dist/worker-program.js +470 -61
- package/dist/worker-program.js.map +1 -1
- package/dist/worker-standby.d.ts +3 -0
- package/dist/worker-standby.d.ts.map +1 -0
- package/dist/worker-standby.js +17 -0
- package/dist/worker-standby.js.map +1 -0
- package/package.json +20 -6
package/dist/shared-pipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-pipes.js","sourceRoot":"","sources":["../src/shared-pipes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared-pipes.js","sourceRoot":"","sources":["../src/shared-pipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { WaliImportHandler } from "./types.js";
|
|
2
|
+
/** Whether SIG_DFL for `signal` ends the process (SIGCHLD, SIGCONT, SIGURG and SIGWINCH do not). */
|
|
3
|
+
export declare const defaultTerminates: (signal: number) => boolean;
|
|
4
|
+
export declare function createWaliSignalState(): SharedArrayBuffer;
|
|
5
|
+
/** Shared dispositions and coalesced pending standard signals; masks belong to threads. */
|
|
6
|
+
export declare class WaliSignals {
|
|
7
|
+
readonly buffer: SharedArrayBuffer;
|
|
8
|
+
readonly words: Int32Array;
|
|
9
|
+
constructor(buffer: SharedArrayBuffer);
|
|
10
|
+
private offset;
|
|
11
|
+
private locked;
|
|
12
|
+
changed(): void;
|
|
13
|
+
action(signal: number, next?: Uint8Array): Uint8Array;
|
|
14
|
+
/**
|
|
15
|
+
* Queues a signal for the process's handler. What the process does with it
|
|
16
|
+
* is its disposition: `"handled"` when a handler will run (or one is already
|
|
17
|
+
* pending), `"ignored"` for SIG_IGN, `"default"` for SIG_DFL, whose action
|
|
18
|
+
* (ending the process, for most signals) is the sender's to carry out.
|
|
19
|
+
*/
|
|
20
|
+
raise(signal: number, pid?: number, status?: number): "handled" | "ignored" | "default";
|
|
21
|
+
pending(): bigint;
|
|
22
|
+
take(mask: bigint): {
|
|
23
|
+
signal: number;
|
|
24
|
+
action: Uint8Array;
|
|
25
|
+
pid: number;
|
|
26
|
+
status: number;
|
|
27
|
+
} | undefined;
|
|
28
|
+
}
|
|
29
|
+
/** Cooperative delivery at guest syscall boundaries, including interrupted reactor waits. */
|
|
30
|
+
export declare class WaliSignalHost {
|
|
31
|
+
readonly signals: WaliSignals;
|
|
32
|
+
private readonly memory;
|
|
33
|
+
private readonly table;
|
|
34
|
+
private readonly allocateScratch;
|
|
35
|
+
mask: bigint;
|
|
36
|
+
private delivering;
|
|
37
|
+
private scratch;
|
|
38
|
+
constructor(signals: WaliSignals, memory: () => WebAssembly.Memory, table: () => WebAssembly.Table | undefined, allocateScratch: () => number);
|
|
39
|
+
private range;
|
|
40
|
+
imports(): Record<string, WaliImportHandler>;
|
|
41
|
+
/**
|
|
42
|
+
* Runs the handlers of pending unblocked signals. True when at least one ran
|
|
43
|
+
* and every one that ran asked for SA_RESTART: an interrupted call is made
|
|
44
|
+
* again, as the kernel restarts it, instead of failing with EINTR.
|
|
45
|
+
*/
|
|
46
|
+
deliver(): boolean;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgBpD,oGAAoG;AACpG,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,OAAuC,CAAC;AAE3F,wBAAgB,qBAAqB,IAAI,iBAAiB,CAEzD;AAED,2FAA2F;AAC3F,qBAAa,WAAW;IAEV,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAD9C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;gBACN,MAAM,EAAE,iBAAiB;IAC9C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAKd,OAAO,IAAI,IAAI;IACf,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU;IAcrD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAI,EAAE,MAAM,SAAI,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;IAgB7E,OAAO,IAAI,MAAM;IAQjB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;CAepG;AAED,6FAA6F;AAC7F,qBAAa,cAAc;IAKvB,QAAQ,CAAC,OAAO,EAAE,WAAW;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAPlC,IAAI,SAAM;IACV,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAK;gBAET,OAAO,EAAE,WAAW,EACZ,MAAM,EAAE,MAAM,WAAW,CAAC,MAAM,EAChC,KAAK,EAAE,MAAM,WAAW,CAAC,KAAK,GAAG,SAAS,EAC1C,eAAe,EAAE,MAAM,MAAM;IAEhD,OAAO,CAAC,KAAK;IAGb,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAqC5C;;;;OAIG;IACH,OAAO,IAAI,OAAO;CAqCnB"}
|
package/dist/signals.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
// WALI musl's packed k_sigaction: pointer32, flags64, pointer32, mask64.
|
|
2
|
+
const ACTION_BYTES = 24;
|
|
3
|
+
const RECORD_WORDS = 12;
|
|
4
|
+
const HEADER_WORDS = 4;
|
|
5
|
+
const SIGCHLD = 17;
|
|
6
|
+
const SA_RESTART = 0x10000000n;
|
|
7
|
+
const bit = (signal) => 1n << BigInt(signal - 1);
|
|
8
|
+
const UNMASKABLE = bit(9) | bit(19);
|
|
9
|
+
// The signals whose default action is not to end the process: SIGCHLD,
|
|
10
|
+
// SIGCONT, SIGURG and SIGWINCH are ignored by default; the stop signals
|
|
11
|
+
// (SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU) stop it, which is not modelled, so
|
|
12
|
+
// they do nothing rather than end it.
|
|
13
|
+
const DEFAULT_IGNORED = new Set([17, 18, 19, 20, 21, 22, 23, 28]);
|
|
14
|
+
/** Whether SIG_DFL for `signal` ends the process (SIGCHLD, SIGCONT, SIGURG and SIGWINCH do not). */
|
|
15
|
+
export const defaultTerminates = (signal) => !DEFAULT_IGNORED.has(signal);
|
|
16
|
+
export function createWaliSignalState() {
|
|
17
|
+
return new SharedArrayBuffer((HEADER_WORDS + 64 * RECORD_WORDS) * 4);
|
|
18
|
+
}
|
|
19
|
+
/** Shared dispositions and coalesced pending standard signals; masks belong to threads. */
|
|
20
|
+
export class WaliSignals {
|
|
21
|
+
buffer;
|
|
22
|
+
words;
|
|
23
|
+
constructor(buffer) {
|
|
24
|
+
this.buffer = buffer;
|
|
25
|
+
this.words = new Int32Array(buffer);
|
|
26
|
+
}
|
|
27
|
+
offset(signal) { return HEADER_WORDS + (signal - 1) * RECORD_WORDS; }
|
|
28
|
+
locked(operation) {
|
|
29
|
+
while (Atomics.compareExchange(this.words, 0, 0, 1) !== 0)
|
|
30
|
+
Atomics.wait(this.words, 0, 1);
|
|
31
|
+
try {
|
|
32
|
+
return operation();
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
Atomics.store(this.words, 0, 0);
|
|
36
|
+
Atomics.notify(this.words, 0);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
changed() { Atomics.add(this.words, 1, 1); Atomics.notify(this.words, 1); }
|
|
40
|
+
action(signal, next) {
|
|
41
|
+
return this.locked(() => {
|
|
42
|
+
const start = this.offset(signal);
|
|
43
|
+
const bytes = new Uint8Array(this.buffer, (start + 1) * 4, ACTION_BYTES);
|
|
44
|
+
const previous = Uint8Array.from(bytes);
|
|
45
|
+
if (next) {
|
|
46
|
+
bytes.set(next);
|
|
47
|
+
if (new DataView(next.buffer, next.byteOffset, next.byteLength).getUint32(0, true) <= 1
|
|
48
|
+
&& Atomics.exchange(this.words, start, 0) !== 0)
|
|
49
|
+
Atomics.sub(this.words, 2, 1);
|
|
50
|
+
this.changed();
|
|
51
|
+
}
|
|
52
|
+
return previous;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Queues a signal for the process's handler. What the process does with it
|
|
57
|
+
* is its disposition: `"handled"` when a handler will run (or one is already
|
|
58
|
+
* pending), `"ignored"` for SIG_IGN, `"default"` for SIG_DFL, whose action
|
|
59
|
+
* (ending the process, for most signals) is the sender's to carry out.
|
|
60
|
+
*/
|
|
61
|
+
raise(signal, pid = 0, status = 0) {
|
|
62
|
+
return this.locked(() => {
|
|
63
|
+
const start = this.offset(signal);
|
|
64
|
+
// Default SIGCHLD does not reap. Explicit ignore/NOCLDWAIT is refused by
|
|
65
|
+
// the host until it can commit the child's filesystem without wait4.
|
|
66
|
+
const handler = Atomics.load(this.words, start + 1) >>> 0;
|
|
67
|
+
if (handler <= 1)
|
|
68
|
+
return handler === 1 ? "ignored" : "default";
|
|
69
|
+
if (Atomics.load(this.words, start) !== 0)
|
|
70
|
+
return "handled";
|
|
71
|
+
Atomics.store(this.words, start + 7, pid);
|
|
72
|
+
Atomics.store(this.words, start + 8, status);
|
|
73
|
+
Atomics.store(this.words, start, 1);
|
|
74
|
+
Atomics.add(this.words, 2, 1);
|
|
75
|
+
this.changed();
|
|
76
|
+
return "handled";
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
pending() {
|
|
80
|
+
if (Atomics.load(this.words, 2) === 0)
|
|
81
|
+
return 0n;
|
|
82
|
+
let pending = 0n;
|
|
83
|
+
for (let signal = 1; signal <= 64; signal++) {
|
|
84
|
+
if (Atomics.load(this.words, this.offset(signal)))
|
|
85
|
+
pending |= bit(signal);
|
|
86
|
+
}
|
|
87
|
+
return pending;
|
|
88
|
+
}
|
|
89
|
+
take(mask) {
|
|
90
|
+
if ((this.pending() & ~mask) === 0n)
|
|
91
|
+
return;
|
|
92
|
+
return this.locked(() => {
|
|
93
|
+
for (let signal = 1; signal <= 64; signal++) {
|
|
94
|
+
const start = this.offset(signal);
|
|
95
|
+
if ((mask & bit(signal)) !== 0n || Atomics.load(this.words, start) === 0)
|
|
96
|
+
continue;
|
|
97
|
+
Atomics.store(this.words, start, 0);
|
|
98
|
+
Atomics.sub(this.words, 2, 1);
|
|
99
|
+
const action = Uint8Array.from(new Uint8Array(this.buffer, (start + 1) * 4, ACTION_BYTES));
|
|
100
|
+
const view = new DataView(action.buffer);
|
|
101
|
+
if ((view.getBigUint64(4, true) & 0x80000000n) !== 0n)
|
|
102
|
+
Atomics.store(this.words, start + 1, 0);
|
|
103
|
+
return { signal, action, pid: Atomics.load(this.words, start + 7), status: Atomics.load(this.words, start + 8) };
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** Cooperative delivery at guest syscall boundaries, including interrupted reactor waits. */
|
|
110
|
+
export class WaliSignalHost {
|
|
111
|
+
signals;
|
|
112
|
+
memory;
|
|
113
|
+
table;
|
|
114
|
+
allocateScratch;
|
|
115
|
+
mask = 0n;
|
|
116
|
+
delivering = false;
|
|
117
|
+
scratch = 0;
|
|
118
|
+
constructor(signals, memory, table, allocateScratch) {
|
|
119
|
+
this.signals = signals;
|
|
120
|
+
this.memory = memory;
|
|
121
|
+
this.table = table;
|
|
122
|
+
this.allocateScratch = allocateScratch;
|
|
123
|
+
}
|
|
124
|
+
range(pointer, length) {
|
|
125
|
+
return Number.isSafeInteger(pointer) && pointer > 0 && pointer + length <= this.memory().buffer.byteLength;
|
|
126
|
+
}
|
|
127
|
+
imports() {
|
|
128
|
+
return {
|
|
129
|
+
SYS_rt_sigaction: (signal, next, previous, size) => {
|
|
130
|
+
const number = Number(signal), input = Number(next), output = Number(previous);
|
|
131
|
+
if (number < 1 || number > 64 || Number(size) !== 8 || (input !== 0 && [9, 19].includes(number)))
|
|
132
|
+
return -22n;
|
|
133
|
+
if ((input && !this.range(input, ACTION_BYTES)) || (output && !this.range(output, ACTION_BYTES)))
|
|
134
|
+
return -14n;
|
|
135
|
+
const action = input ? new Uint8Array(this.memory().buffer).slice(input, input + ACTION_BYTES) : undefined;
|
|
136
|
+
if (action) {
|
|
137
|
+
const view = new DataView(action.buffer), handler = view.getUint32(0, true), flags = view.getBigUint64(4, true);
|
|
138
|
+
if (number === SIGCHLD && (handler === 1 || (flags & 2n) !== 0n))
|
|
139
|
+
return -95n;
|
|
140
|
+
// Alternate stacks and recursive signal frames need guest stack support.
|
|
141
|
+
if (handler > 1 && (flags & (0x08000000n | 0x40000000n)) !== 0n)
|
|
142
|
+
return -95n;
|
|
143
|
+
}
|
|
144
|
+
const old = this.signals.action(number, action);
|
|
145
|
+
if (output)
|
|
146
|
+
new Uint8Array(this.memory().buffer).set(old, output);
|
|
147
|
+
return 0n;
|
|
148
|
+
},
|
|
149
|
+
SYS_rt_sigprocmask: (how, next, previous, size) => {
|
|
150
|
+
const input = Number(next), output = Number(previous), operation = Number(how);
|
|
151
|
+
if (Number(size) !== 8 || (input && ![0, 1, 2].includes(operation)))
|
|
152
|
+
return -22n;
|
|
153
|
+
if ((input && !this.range(input, 8)) || (output && !this.range(output, 8)))
|
|
154
|
+
return -14n;
|
|
155
|
+
const view = new DataView(this.memory().buffer), value = input ? view.getBigUint64(input, true) : 0n;
|
|
156
|
+
if (output)
|
|
157
|
+
view.setBigUint64(output, this.mask, true);
|
|
158
|
+
if (input) {
|
|
159
|
+
this.mask = (operation === 0 ? this.mask | value : operation === 1 ? this.mask & ~value : value) & ~UNMASKABLE;
|
|
160
|
+
this.signals.changed();
|
|
161
|
+
}
|
|
162
|
+
return 0n;
|
|
163
|
+
},
|
|
164
|
+
SYS_rt_sigpending: (pointer, size) => {
|
|
165
|
+
if (Number(size) !== 8)
|
|
166
|
+
return -22n;
|
|
167
|
+
if (!this.range(Number(pointer), 8))
|
|
168
|
+
return -14n;
|
|
169
|
+
new DataView(this.memory().buffer).setBigUint64(Number(pointer), this.signals.pending(), true);
|
|
170
|
+
return 0n;
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Runs the handlers of pending unblocked signals. True when at least one ran
|
|
176
|
+
* and every one that ran asked for SA_RESTART: an interrupted call is made
|
|
177
|
+
* again, as the kernel restarts it, instead of failing with EINTR.
|
|
178
|
+
*/
|
|
179
|
+
deliver() {
|
|
180
|
+
if (this.delivering || (this.signals.pending() & ~this.mask) === 0n)
|
|
181
|
+
return false;
|
|
182
|
+
this.delivering = true;
|
|
183
|
+
let ran = false;
|
|
184
|
+
let restart = true;
|
|
185
|
+
try {
|
|
186
|
+
for (let count = 0; count < 64; count++) {
|
|
187
|
+
const delivery = this.signals.take(this.mask);
|
|
188
|
+
if (!delivery)
|
|
189
|
+
return ran && restart;
|
|
190
|
+
const action = new DataView(delivery.action.buffer), pointer = action.getUint32(0, true);
|
|
191
|
+
if (pointer <= 1)
|
|
192
|
+
continue;
|
|
193
|
+
ran = true;
|
|
194
|
+
if ((action.getBigUint64(4, true) & SA_RESTART) === 0n)
|
|
195
|
+
restart = false;
|
|
196
|
+
const handler = this.table()?.get(pointer);
|
|
197
|
+
if (typeof handler !== "function")
|
|
198
|
+
throw new Error(`Invalid WALI signal handler ${pointer}.`);
|
|
199
|
+
const previousMask = this.mask;
|
|
200
|
+
this.mask |= action.getBigUint64(16, true) | bit(delivery.signal);
|
|
201
|
+
try {
|
|
202
|
+
if ((action.getBigUint64(4, true) & 4n) !== 0n) {
|
|
203
|
+
if (!this.scratch)
|
|
204
|
+
this.scratch = this.allocateScratch();
|
|
205
|
+
if (this.scratch <= 0)
|
|
206
|
+
throw new Error("Cannot allocate WALI signal information.");
|
|
207
|
+
new Uint8Array(this.memory().buffer).fill(0, this.scratch, this.scratch + 128);
|
|
208
|
+
const info = new DataView(this.memory().buffer);
|
|
209
|
+
info.setInt32(this.scratch, delivery.signal, true);
|
|
210
|
+
info.setInt32(this.scratch + 8, delivery.signal === SIGCHLD ? 1 : 0, true);
|
|
211
|
+
info.setInt32(this.scratch + 16, delivery.pid, true);
|
|
212
|
+
info.setInt32(this.scratch + 20, 1000, true);
|
|
213
|
+
info.setInt32(this.scratch + 24, delivery.status, true);
|
|
214
|
+
// WebAssembly exposes no interrupted register context. Do not
|
|
215
|
+
// manufacture a Linux ucontext: this cooperative port passes null.
|
|
216
|
+
handler(delivery.signal, this.scratch, 0);
|
|
217
|
+
}
|
|
218
|
+
else
|
|
219
|
+
handler(delivery.signal);
|
|
220
|
+
}
|
|
221
|
+
finally {
|
|
222
|
+
this.mask = previousMask;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return ran && restart;
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
this.delivering = false;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,146 @@
|
|
|
1
|
-
import type { BrowserFileSystemSnapshot } from "@volter/browser-runtime/browser-filesystem.js";
|
|
1
|
+
import type { BrowserFileSnapshotEntry, BrowserFileSystemSnapshot } from "@volter/browser-runtime/browser-filesystem.js";
|
|
2
|
+
import { type PackStore } from "@volter/browser-runtime/browser-pack-store.js";
|
|
2
3
|
import type { WaliFileStat, WaliFileSystem } from "./types.js";
|
|
3
4
|
/** Small transferable filesystem used inside WALI process workers. */
|
|
4
5
|
export declare class SnapshotWaliFileSystem implements WaliFileSystem {
|
|
5
|
-
private
|
|
6
|
+
private nodes;
|
|
7
|
+
/**
|
|
8
|
+
* The project's store, when the tree is over one (ADR-0042): its index
|
|
9
|
+
* answers every path this tree has not itself touched, and a path is made a
|
|
10
|
+
* node when first asked for. Building every node up front was 272 ms of each
|
|
11
|
+
* process's start in a tree of 100,000 entries, and a process that can fork
|
|
12
|
+
* paid it twice, once more in its filesystem worker (2026-09-24).
|
|
13
|
+
*/
|
|
14
|
+
private lower;
|
|
15
|
+
/** The store's paths this tree removed or moved away; everything under one is gone too. */
|
|
16
|
+
private readonly hidden;
|
|
6
17
|
private nextInode;
|
|
7
18
|
private mutationDepth;
|
|
8
19
|
private mutated;
|
|
9
20
|
private mutationHandler;
|
|
21
|
+
/**
|
|
22
|
+
* The paths mutated since the last {@link takeChangedPaths}, tracked only
|
|
23
|
+
* while a mutation handler is installed -- i.e. only for the coordinator's
|
|
24
|
+
* page-facing delta channel, which is the one caller that drains it. Nobody
|
|
25
|
+
* else drains, so nobody else accumulates.
|
|
26
|
+
*/
|
|
27
|
+
private changedPaths;
|
|
10
28
|
static fromSnapshot(snapshot: BrowserFileSystemSnapshot): SnapshotWaliFileSystem;
|
|
29
|
+
/**
|
|
30
|
+
* The tree as the project's store holds it, each file's bytes read from
|
|
31
|
+
* the store when the program first opens it; the snapshot the page sent
|
|
32
|
+
* is metadata, and the entries in it that carry content, a program's
|
|
33
|
+
* private files, are written over the store's.
|
|
34
|
+
*/
|
|
35
|
+
static fromStore(store: PackStore, snapshot: BrowserFileSystemSnapshot): SnapshotWaliFileSystem;
|
|
36
|
+
/** A path's node: one this tree holds, or the store's entry for it, made a node the first time it is asked for. */
|
|
37
|
+
private node;
|
|
38
|
+
private lowerNode;
|
|
39
|
+
/**
|
|
40
|
+
* The tree for a peer that reads the same store: only what differs from it.
|
|
41
|
+
* A tree that has removed any of the store's paths answers whole, since a
|
|
42
|
+
* snapshot names what is there and cannot name what is not.
|
|
43
|
+
*/
|
|
44
|
+
toStoreOverlaySnapshot(): BrowserFileSystemSnapshot;
|
|
45
|
+
private isHidden;
|
|
46
|
+
/** A store path this tree no longer has. */
|
|
47
|
+
private hide;
|
|
48
|
+
/** A path made again where the store's was removed: it is new, and the store's contents under it stay gone. */
|
|
49
|
+
private unhide;
|
|
50
|
+
/** Every path of the tree, the store's untouched ones as they are there. */
|
|
51
|
+
private everyNode;
|
|
11
52
|
setMutationHandler(handler: (() => void) | undefined): void;
|
|
53
|
+
/**
|
|
54
|
+
* THE PATHS THIS TREE HAS MUTATED, and then it forgets them.
|
|
55
|
+
*
|
|
56
|
+
* This is what the page-facing delta channel publishes, and it exists
|
|
57
|
+
* because the alternative -- diff two whole-tree snapshots -- is quadratic
|
|
58
|
+
* in a session's own history. `dirty` (above) stops a flush re-encoding
|
|
59
|
+
* files the PAGE wrote, but nothing cleared it for files the GUEST wrote,
|
|
60
|
+
* so every file Blender had ever written was re-base64-encoded on every
|
|
61
|
+
* later flush. MEASURED 2026-09-19 against Blender's real 1,751-file,
|
|
62
|
+
* 76 MB staged tree: `toWrittenSnapshot()` costs 0.2 ms on a fresh session
|
|
63
|
+
* and 1,447 ms forty-one calls in, and the channel calls it three times per
|
|
64
|
+
* host round trip. That single curve is the whole "WALI is ~100x slower
|
|
65
|
+
* than Emscripten" floor, and its growth with session age is why a floor
|
|
66
|
+
* measured on one model looked like a property of the model.
|
|
67
|
+
*
|
|
68
|
+
* Clearing `dirty` on publish would NOT have been safe: an entry the page
|
|
69
|
+
* already holds is compared by SIZE, so a same-length rewrite of the export
|
|
70
|
+
* arena would have silently dropped out of the patch. Naming the paths
|
|
71
|
+
* avoids the comparison altogether -- and it is the same shape the HOST
|
|
72
|
+
* side of this channel already uses (`worker-program.ts`'s
|
|
73
|
+
* `scheduleFilesystemImport`: "THE CHANGED PATHS, ONE AT A TIME, never the
|
|
74
|
+
* whole tree"), which had been fixed on that side only.
|
|
75
|
+
*/
|
|
76
|
+
takeChangedPaths(): Set<string>;
|
|
77
|
+
/** These paths are not news: file coherence carried them to the page already. */
|
|
78
|
+
dropChangedPaths(paths: Iterable<string>): void;
|
|
79
|
+
/**
|
|
80
|
+
* One path as the page must record it: bytes for a file, the bare node for
|
|
81
|
+
* a directory, and undefined when the path is gone (the caller's removal).
|
|
82
|
+
* Always content-carrying, never sized -- the caller named this path
|
|
83
|
+
* because it changed, so a size would be exactly the wrong answer.
|
|
84
|
+
*/
|
|
85
|
+
writtenEntry(path: string): BrowserFileSnapshotEntry | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* The tree as a snapshot describes it. An entry with content is written;
|
|
88
|
+
* an entry without keeps the bytes this tree already holds for that path,
|
|
89
|
+
* which is what a snapshot from another realm over the same store says.
|
|
90
|
+
*/
|
|
12
91
|
replaceSnapshot(snapshot: BrowserFileSystemSnapshot): void;
|
|
92
|
+
/**
|
|
93
|
+
* The tree for a peer that holds NOTHING: every file's bytes, except the
|
|
94
|
+
* ones still in the store, which such a peer reads from the store itself.
|
|
95
|
+
*
|
|
96
|
+
* This is the TRANSFER form, and it has two consumers that both materialize
|
|
97
|
+
* a tree from it and would otherwise get empty files: the coordinator
|
|
98
|
+
* worker a threaded program's filesystem is handed to (`runtime.ts` ->
|
|
99
|
+
* `WaliFilesystemCoordinator.create`) and `FilesystemOperation.Snapshot`.
|
|
100
|
+
* MEASURED 2026-09-19 by shipping the other behaviour here for one commit:
|
|
101
|
+
* Blender booted to "Failed to import encodings module" because
|
|
102
|
+
* `python313.zip` reached the coordinator as a size. For a peer that
|
|
103
|
+
* already holds the unwritten rest, ask {@link toWrittenSnapshot}.
|
|
104
|
+
*/
|
|
13
105
|
toSnapshot(): BrowserFileSystemSnapshot;
|
|
106
|
+
/** The store's entries this tree has not made nodes of, as sized entries: their bytes are the store's. */
|
|
107
|
+
private untouchedStoreEntries;
|
|
108
|
+
/**
|
|
109
|
+
* The tree for a peer that ALREADY HOLDS what this filesystem has not
|
|
110
|
+
* written: bytes for files written here, a size for everything else.
|
|
111
|
+
*
|
|
112
|
+
* WHY, measured 2026-09-19 with Blender's 78 MB runtime tree (2,285 files)
|
|
113
|
+
* in the guest: `toSnapshot()` costs 1739 ms and allocates 96.2 MB of
|
|
114
|
+
* base64 string, and the page-facing delta channel calls it on a 100 ms
|
|
115
|
+
* debounce after every guest mutation plus twice more inside every host
|
|
116
|
+
* import -- so one round trip of a long-lived program spent seconds
|
|
117
|
+
* re-encoding files nobody had written, and the editor's Blender session
|
|
118
|
+
* wedged on it. Against the same tree this answers in 0 ms and allocates
|
|
119
|
+
* nothing.
|
|
120
|
+
*
|
|
121
|
+
* Safe for that channel and only for it: the page sent those bytes, and
|
|
122
|
+
* `createProcessFilesystemPatch` compares a sized entry against a
|
|
123
|
+
* content-carrying one by SIZE, so an untouched file falls out of the patch
|
|
124
|
+
* exactly as it did when it carried its own base64.
|
|
125
|
+
*/
|
|
126
|
+
toWrittenSnapshot(): BrowserFileSystemSnapshot;
|
|
127
|
+
private sized;
|
|
14
128
|
existsSync(path: string): boolean;
|
|
15
129
|
statSync(path: string): WaliFileStat;
|
|
16
130
|
lstatSync(path: string): WaliFileStat;
|
|
131
|
+
readFile(path: string): Promise<Uint8Array>;
|
|
17
132
|
readFileSync(path: string): Uint8Array;
|
|
133
|
+
/** The file's bytes, read from the store the first time. */
|
|
134
|
+
private bytesOf;
|
|
135
|
+
readRangeSync(path: string, offset: number, length: number): Uint8Array;
|
|
136
|
+
/**
|
|
137
|
+
* Write in place, growing the backing buffer geometrically. `content` is a
|
|
138
|
+
* view; its `buffer` may be larger than the file, and every reader of a
|
|
139
|
+
* node goes through the view (`bytesOf`, `writtenEntry`, `toSnapshot`), so
|
|
140
|
+
* the spare capacity is never observed. A file that does not exist yet is
|
|
141
|
+
* created; a gap past the old end is zero.
|
|
142
|
+
*/
|
|
143
|
+
writeRangeSync(path: string, offset: number, data: Uint8Array): void;
|
|
18
144
|
writeFileSync(path: string, data: string | Uint8Array): void;
|
|
19
145
|
mkdirSync(path: string, options?: {
|
|
20
146
|
recursive?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-filesystem.d.ts","sourceRoot":"","sources":["../src/snapshot-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"snapshot-filesystem.d.ts","sourceRoot":"","sources":["../src/snapshot-filesystem.ts"],"names":[],"mappings":"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"}
|