@ai-ecoverse/slicc-kernel 1.124.2 → 1.124.4
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 +7 -2
- package/dist/kernel-worker.js +93 -35
- package/dist/kernel-worker.js.map +3 -3
- package/dist/node-process-worker.js +39 -10
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +93 -35
- package/dist/node.js.map +3 -3
- package/dist/process-worker.js +39 -10
- package/dist/process-worker.js.map +3 -3
- package/dist/types/fs/remote.d.ts +8 -0
- package/dist/types/kernel/proc-info.d.ts +1 -0
- package/dist/types/realm/live-vfs-fs.d.ts +1 -0
- package/dist/types/realm/sync-fs-dispatch.d.ts +1 -0
- package/dist/types/realm/sync-sab-bridge.d.ts +2 -0
- package/package.json +4 -4
package/dist/process-worker.js
CHANGED
|
@@ -1082,6 +1082,12 @@ var init_changes = __esm({
|
|
|
1082
1082
|
function syncCallCount() {
|
|
1083
1083
|
return calls;
|
|
1084
1084
|
}
|
|
1085
|
+
function lookedOutside() {
|
|
1086
|
+
looks++;
|
|
1087
|
+
}
|
|
1088
|
+
function syncEpoch() {
|
|
1089
|
+
return calls + looks;
|
|
1090
|
+
}
|
|
1085
1091
|
function createSyncSabTransport(sab, port2, deps = {}) {
|
|
1086
1092
|
const views = sabViews(sab);
|
|
1087
1093
|
const { header, window } = views;
|
|
@@ -1320,7 +1326,7 @@ function createSyncFsSabBridge(transport, opts = {}) {
|
|
|
1320
1326
|
statfs: (path = "/") => parseSyncFsUsage(json2({ op: "statfs", path }, path))
|
|
1321
1327
|
};
|
|
1322
1328
|
}
|
|
1323
|
-
var PATH_OPS, calls, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS;
|
|
1329
|
+
var PATH_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS;
|
|
1324
1330
|
var init_sync_sab_bridge = __esm({
|
|
1325
1331
|
"src/realm/sync-sab-bridge.ts"() {
|
|
1326
1332
|
"use strict";
|
|
@@ -1330,6 +1336,7 @@ var init_sync_sab_bridge = __esm({
|
|
|
1330
1336
|
init_sync_sab_wire();
|
|
1331
1337
|
PATH_OPS = new Set(SYNC_FS_OPS);
|
|
1332
1338
|
calls = 0;
|
|
1339
|
+
looks = 0;
|
|
1333
1340
|
SPIN_MS = 0.06;
|
|
1334
1341
|
SPIN_STRIDE = 128;
|
|
1335
1342
|
SPIN_STRIDES = 256;
|
|
@@ -1485,6 +1492,10 @@ function linkedStates(bridgeOf) {
|
|
|
1485
1492
|
const holder = (node) => opens.get(node.live) ?? node;
|
|
1486
1493
|
return { opening: opening2, sharedWith, know, idOf: idOf4, holder };
|
|
1487
1494
|
}
|
|
1495
|
+
function freshState(stat) {
|
|
1496
|
+
const base = { len: 0, loaded: false, dirty: false, openCount: 0 };
|
|
1497
|
+
return stat ? { stat, statAt: syncCallCount(), seenAt: syncEpoch(), ...base } : base;
|
|
1498
|
+
}
|
|
1488
1499
|
function createHelpers(Fs, ops) {
|
|
1489
1500
|
const bridgeOf = (node) => node.mount.opts.bridge;
|
|
1490
1501
|
const fileIo = (node) => pinnedIo(bridgeOf(node), node.live.handle);
|
|
@@ -1524,10 +1535,6 @@ function createHelpers(Fs, ops) {
|
|
|
1524
1535
|
if (err.errno !== wasiErrno("ENOSYS")) throw err;
|
|
1525
1536
|
}
|
|
1526
1537
|
}
|
|
1527
|
-
function freshState(stat) {
|
|
1528
|
-
const statAt = syncCallCount();
|
|
1529
|
-
return { ...stat ? { stat, statAt } : {}, len: 0, loaded: false, dirty: false, openCount: 0 };
|
|
1530
|
-
}
|
|
1531
1538
|
function makeNode(parent, name2, st) {
|
|
1532
1539
|
const node = Fs.createNode(parent, name2, modeFromStat(st, exactIn(parent)), 0);
|
|
1533
1540
|
node.node_ops = ops.node;
|
|
@@ -1542,7 +1549,7 @@ function createHelpers(Fs, ops) {
|
|
|
1542
1549
|
}
|
|
1543
1550
|
if (!cachedStat(node.live, Fs.isDir(node.mode), bridgeOf(node).changes)) {
|
|
1544
1551
|
const st = call2(() => bridgeOf(node).lstat(liveNodePath(linked.holder(node))));
|
|
1545
|
-
Object.assign(node.live, { stat: st, statAt: syncCallCount() });
|
|
1552
|
+
Object.assign(node.live, { stat: st, statAt: syncCallCount(), seenAt: syncEpoch() });
|
|
1546
1553
|
node.mode = modeFromStat(st, exactIn(node));
|
|
1547
1554
|
}
|
|
1548
1555
|
return node.live.stat;
|
|
@@ -2267,7 +2274,7 @@ function guardKeptNodes(Fs, handled) {
|
|
|
2267
2274
|
}
|
|
2268
2275
|
function outdated(node, view, before) {
|
|
2269
2276
|
const s = node.live;
|
|
2270
|
-
if (view.foreign() && s.openCount === 0 && !s.dirty && node !== node.mount.root && !node.mounted)
|
|
2277
|
+
if (view.foreign() && s.seenAt !== syncEpoch() && s.openCount === 0 && !s.dirty && node !== node.mount.root && !node.mounted)
|
|
2271
2278
|
return true;
|
|
2272
2279
|
if (s.named === void 0) {
|
|
2273
2280
|
s.named = before;
|
|
@@ -2603,7 +2610,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
2603
2610
|
var init_version = __esm({
|
|
2604
2611
|
"src/version.ts"() {
|
|
2605
2612
|
"use strict";
|
|
2606
|
-
KERNEL_VERSION = true ? "1.124.
|
|
2613
|
+
KERNEL_VERSION = true ? "1.124.4" : "0.0.0-dev";
|
|
2607
2614
|
OS_RELEASE = "6.0.0-slicc";
|
|
2608
2615
|
}
|
|
2609
2616
|
});
|
|
@@ -5586,6 +5593,8 @@ var init_procfs = __esm({
|
|
|
5586
5593
|
slicc_wasm_memories: (listing) => `${listing.wasm?.live ?? 0} ${listing.wasm?.ceiling ?? 0} ${listing.wasm?.source ?? "none"}
|
|
5587
5594
|
`,
|
|
5588
5595
|
slicc_shared_root: (listing) => `${listing.peers ?? 0}
|
|
5596
|
+
`,
|
|
5597
|
+
slicc_fs_calls: (listing) => `${listing.fsCalls ?? 0}
|
|
5589
5598
|
`
|
|
5590
5599
|
}
|
|
5591
5600
|
};
|
|
@@ -6020,7 +6029,7 @@ async function runWasmProcess(init, port2, deps = {}) {
|
|
|
6020
6029
|
ppid: () => identify(transport, init).ppid,
|
|
6021
6030
|
poll: () => void signals.interrupt()
|
|
6022
6031
|
});
|
|
6023
|
-
return WebAssembly.instantiate(init.program.module, imports);
|
|
6032
|
+
return WebAssembly.instantiate(init.program.module, watchOutside(imports));
|
|
6024
6033
|
}).then((instance) => {
|
|
6025
6034
|
memory = wasmMemory(instance, imports);
|
|
6026
6035
|
port2.postMessage({ type: WASM_PROCESS_READY });
|
|
@@ -6189,7 +6198,20 @@ function runMain(running, init) {
|
|
|
6189
6198
|
return status2;
|
|
6190
6199
|
}
|
|
6191
6200
|
}
|
|
6192
|
-
|
|
6201
|
+
function watchOutside(imports) {
|
|
6202
|
+
for (const space of Object.values(imports)) {
|
|
6203
|
+
for (const [name2, value2] of Object.entries(space)) {
|
|
6204
|
+
if (!OUTSIDE.has(name2) || typeof value2 !== "function") continue;
|
|
6205
|
+
const look = value2;
|
|
6206
|
+
space[name2] = (...args) => {
|
|
6207
|
+
lookedOutside();
|
|
6208
|
+
return look(...args);
|
|
6209
|
+
};
|
|
6210
|
+
}
|
|
6211
|
+
}
|
|
6212
|
+
return imports;
|
|
6213
|
+
}
|
|
6214
|
+
var FS_OPS, O_RDONLY2, O_WRONLY3, O_RDWR3, O_ACCMODE5, O_DIRECTORY2, accessMode, PLACED, GLUE_TRAILER, evaluateGlue, EVAL_BLOCKED, OUTSIDE;
|
|
6193
6215
|
var init_process_runtime = __esm({
|
|
6194
6216
|
"src/process/process-runtime.ts"() {
|
|
6195
6217
|
"use strict";
|
|
@@ -6296,6 +6318,13 @@ var init_process_runtime = __esm({
|
|
|
6296
6318
|
run(module);
|
|
6297
6319
|
};
|
|
6298
6320
|
EVAL_BLOCKED = "the wasm realm evaluates the program's Emscripten glue, and this page's CSP forbids eval (no 'unsafe-eval')";
|
|
6321
|
+
OUTSIDE = /* @__PURE__ */ new Set([
|
|
6322
|
+
"clock_time_get",
|
|
6323
|
+
"emscripten_date_now",
|
|
6324
|
+
"emscripten_get_now",
|
|
6325
|
+
"random_get",
|
|
6326
|
+
"getentropy"
|
|
6327
|
+
]);
|
|
6299
6328
|
}
|
|
6300
6329
|
});
|
|
6301
6330
|
|