@ai-ecoverse/slicc-kernel 1.141.3 → 1.142.1
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 +17 -2
- package/dist/index.js.map +1 -1
- package/dist/kernel-worker.js +492 -107
- package/dist/kernel-worker.js.map +4 -4
- package/dist/meta.js +3 -0
- package/dist/meta.js.map +2 -2
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.js +113 -85
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +505 -110
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +14 -2
- package/dist/process-worker.js.map +2 -2
- package/dist/types/fs/meta.d.ts +2 -0
- package/dist/types/fs/opfs.d.ts +30 -0
- package/dist/types/fs/remote.d.ts +15 -0
- package/dist/types/fs/types.d.ts +7 -0
- package/dist/types/kernel/proc-info.d.ts +7 -0
- package/dist/types/node.d.ts +1 -0
- package/package.json +2 -2
package/dist/types/fs/meta.d.ts
CHANGED
|
@@ -49,6 +49,7 @@ export interface MetaStore {
|
|
|
49
49
|
all(): Promise<MetaEntry[]>;
|
|
50
50
|
absent?(path: string): boolean;
|
|
51
51
|
removeFile?(path: string): Promise<void>;
|
|
52
|
+
forgetTrees?(trees: readonly string[]): void;
|
|
52
53
|
}
|
|
53
54
|
export declare const META_DB = "slicc-kernel";
|
|
54
55
|
export declare const META_VERSION = 1;
|
|
@@ -78,6 +79,7 @@ export declare class IndexedDbMeta implements MetaStore {
|
|
|
78
79
|
private readonly listeners;
|
|
79
80
|
listen(listener: (change: Invalidation) => void): void;
|
|
80
81
|
constructor(db: IDBDatabase);
|
|
82
|
+
forgetTrees(trees: readonly string[]): void;
|
|
81
83
|
private drop;
|
|
82
84
|
private changed;
|
|
83
85
|
private transaction;
|
package/dist/types/fs/opfs.d.ts
CHANGED
|
@@ -162,7 +162,37 @@ export declare class OpfsFs implements KernelFs {
|
|
|
162
162
|
links(): boolean;
|
|
163
163
|
link(from: string, to: string, follow?: boolean): Promise<void>;
|
|
164
164
|
rename(from: string, to: string): Promise<void>;
|
|
165
|
+
private renameOnce;
|
|
165
166
|
private moveTo;
|
|
167
|
+
private admitted;
|
|
168
|
+
private renameAcks;
|
|
169
|
+
private ackBusy;
|
|
170
|
+
private readonly ackMs;
|
|
171
|
+
private readonly ownLocks;
|
|
172
|
+
private readonly peerMoves;
|
|
173
|
+
private readonly peerWaits;
|
|
174
|
+
private readonly inflight;
|
|
175
|
+
private renameCall;
|
|
176
|
+
private looking;
|
|
177
|
+
private lookedAt;
|
|
178
|
+
private peerWaited;
|
|
179
|
+
private queries;
|
|
180
|
+
renameWaits(): NonNullable<ReturnType<NonNullable<KernelFs['renameWaits']>>>;
|
|
181
|
+
private notePeer;
|
|
182
|
+
private learnRenames;
|
|
183
|
+
private renamingElsewhere;
|
|
184
|
+
private lookForRenames;
|
|
185
|
+
private heardRename;
|
|
186
|
+
private peerAt;
|
|
187
|
+
private clashing;
|
|
188
|
+
private peerMoved;
|
|
189
|
+
private peerSettled;
|
|
190
|
+
private aloneCalls;
|
|
191
|
+
private aloneDrain;
|
|
192
|
+
alonePlain(inner: (...args: unknown[]) => Promise<unknown>, args: unknown[]): Promise<unknown>;
|
|
193
|
+
private resolvedForms;
|
|
194
|
+
amongPeers(): boolean;
|
|
195
|
+
peerOp(name: string, args: unknown[], inner: (...args: unknown[]) => Promise<unknown>): Promise<unknown>;
|
|
166
196
|
private readonly renamingDirs;
|
|
167
197
|
private intents;
|
|
168
198
|
private intend;
|
|
@@ -2,11 +2,18 @@ export interface RemoteChange {
|
|
|
2
2
|
paths: readonly string[];
|
|
3
3
|
trees: readonly string[];
|
|
4
4
|
}
|
|
5
|
+
export interface PeerRename {
|
|
6
|
+
from: string;
|
|
7
|
+
to: string;
|
|
8
|
+
lock: string;
|
|
9
|
+
}
|
|
5
10
|
export type RemoteListener = (change: RemoteChange) => void;
|
|
6
11
|
export declare const ANNOUNCE_WAIT_MS = 500;
|
|
7
12
|
export declare const PRUNE_EVERY_MS = 30000;
|
|
8
13
|
export declare const MOURN_TRIES = 5;
|
|
9
14
|
export declare const MOURN_RETRY_MS = 100;
|
|
15
|
+
export declare const RENAME_ACK_MAX_MS = 10000;
|
|
16
|
+
export declare const ANNOUNCE_POLL_MS = 20;
|
|
10
17
|
export interface LockManagerLike {
|
|
11
18
|
request(name: string, callback: () => Promise<void>): Promise<unknown>;
|
|
12
19
|
query(): Promise<{
|
|
@@ -39,6 +46,9 @@ export declare class RemoteWatch {
|
|
|
39
46
|
quiet: (() => Promise<void>) | undefined;
|
|
40
47
|
crowd: ((crowded: boolean) => void) | undefined;
|
|
41
48
|
gone: (() => void) | undefined;
|
|
49
|
+
renaming: ((rename: PeerRename) => Promise<void>) | undefined;
|
|
50
|
+
renamed: ((lock: string) => void) | undefined;
|
|
51
|
+
private readonly ackers;
|
|
42
52
|
private told;
|
|
43
53
|
private counted;
|
|
44
54
|
private recount;
|
|
@@ -47,12 +57,14 @@ export declare class RemoteWatch {
|
|
|
47
57
|
});
|
|
48
58
|
private join;
|
|
49
59
|
peered(): Promise<boolean>;
|
|
60
|
+
joinedAll(cap: number): Promise<boolean>;
|
|
50
61
|
crowded(): boolean;
|
|
51
62
|
private lockOf;
|
|
52
63
|
private receive;
|
|
53
64
|
private arrived;
|
|
54
65
|
private mourn;
|
|
55
66
|
private greeted;
|
|
67
|
+
private heard;
|
|
56
68
|
private announced;
|
|
57
69
|
private acked;
|
|
58
70
|
private rebuild;
|
|
@@ -60,6 +72,9 @@ export declare class RemoteWatch {
|
|
|
60
72
|
watched(): boolean;
|
|
61
73
|
wrote(path: string): void;
|
|
62
74
|
announce(paths: readonly string[]): Promise<void>;
|
|
75
|
+
renamingTree(rename: PeerRename, cap?: number): Promise<string[]>;
|
|
76
|
+
renamedTree(lock: string): void;
|
|
77
|
+
private acks;
|
|
63
78
|
emit(change: RemoteChange): void;
|
|
64
79
|
listen(listener: RemoteListener): () => void;
|
|
65
80
|
}
|
package/dist/types/fs/types.d.ts
CHANGED
|
@@ -117,6 +117,13 @@ export interface KernelFs {
|
|
|
117
117
|
}>;
|
|
118
118
|
version?(path: string, cached?: boolean): Promise<string>;
|
|
119
119
|
opfsCalls?(): number;
|
|
120
|
+
renameWaits?(): {
|
|
121
|
+
acks: number;
|
|
122
|
+
busy: number;
|
|
123
|
+
waits: number;
|
|
124
|
+
queries: number;
|
|
125
|
+
ackMs: readonly number[];
|
|
126
|
+
};
|
|
120
127
|
opfsOps?(): number;
|
|
121
128
|
}
|
|
122
129
|
export type RangedOps = Required<Pick<KernelFs, 'pread' | 'pwrite' | 'truncate'>>;
|
|
@@ -53,6 +53,13 @@ export interface ProcessListing {
|
|
|
53
53
|
opfsCalls?: number;
|
|
54
54
|
opfsOps?: number;
|
|
55
55
|
cwdChecks?: number;
|
|
56
|
+
renameAcks?: {
|
|
57
|
+
acks: number;
|
|
58
|
+
busy: number;
|
|
59
|
+
waits: number;
|
|
60
|
+
queries: number;
|
|
61
|
+
ackMs: readonly number[];
|
|
62
|
+
};
|
|
56
63
|
}
|
|
57
64
|
export declare function mayTrace(viewer: ProcessInfo | undefined, target: ProcessInfo): boolean;
|
|
58
65
|
export declare function fileIdentity(ino: number | undefined, mtimeMs: number | undefined): string | undefined;
|
package/dist/types/node.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-kernel",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.142.1",
|
|
4
4
|
"description": "SLICC's wasm-realm kernel: run Emscripten programs in the browser against OPFS, with fork, spawn, pipes and waitpid",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@ai-ecoverse/py-numpy": "2.5.4-3",
|
|
67
67
|
"@ai-ecoverse/slicc-node": "2.5.2",
|
|
68
68
|
"@ai-ecoverse/slicc-scrub": "1.0.0",
|
|
69
|
-
"@ai-ecoverse/slicc-shared-web": "1.29.
|
|
69
|
+
"@ai-ecoverse/slicc-shared-web": "1.29.9",
|
|
70
70
|
"@ai-ecoverse/wasi-cargo": "0.99.0-4",
|
|
71
71
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-19",
|
|
72
72
|
"@ai-ecoverse/wasi-ripgrep": "15.2.0-5",
|