@ai-ecoverse/slicc-kernel 1.110.5 → 1.110.7
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 +3 -1
- package/dist/kernel-worker.js +28 -6
- package/dist/kernel-worker.js.map +2 -2
- package/dist/node-process-worker.js +40 -19
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +28 -6
- package/dist/node.js.map +2 -2
- package/dist/process-worker.js +40 -19
- package/dist/process-worker.js.map +3 -3
- package/dist/types/launcher.d.ts +3 -0
- package/package.json +2 -2
package/dist/node.js
CHANGED
|
@@ -6494,7 +6494,7 @@ function satisfies(version, range2) {
|
|
|
6494
6494
|
}
|
|
6495
6495
|
|
|
6496
6496
|
// src/version.ts
|
|
6497
|
-
var KERNEL_VERSION = true ? "1.110.
|
|
6497
|
+
var KERNEL_VERSION = true ? "1.110.7" : "0.0.0-dev";
|
|
6498
6498
|
var OS_RELEASE = "6.0.0-slicc";
|
|
6499
6499
|
function procVersion() {
|
|
6500
6500
|
return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
|
|
@@ -22582,13 +22582,34 @@ var Launcher = class {
|
|
|
22582
22582
|
return { abi: "emscripten", glue, wasm, argv0: baseName2(argv0 || file), ...asked };
|
|
22583
22583
|
}
|
|
22584
22584
|
const owner = await this.glueOwner(glue, baseName2(file), scope);
|
|
22585
|
-
|
|
22585
|
+
if (!owner) return void 0;
|
|
22586
|
+
return { ...targetOf(owner), ...asked, ...owner.glue === glue ? {} : { copy: glue } };
|
|
22586
22587
|
}
|
|
22587
22588
|
async glueOwner(glue, name2, scope) {
|
|
22588
|
-
const
|
|
22589
|
-
|
|
22590
|
-
);
|
|
22591
|
-
|
|
22589
|
+
const commands = [...(await this.commands(scope)).values()];
|
|
22590
|
+
const owners = commands.filter((c) => c.abi === "emscripten" && !c.script && c.glue === glue);
|
|
22591
|
+
if (owners.length > 0) return owners.find((c) => c.name === name2) ?? owners[0];
|
|
22592
|
+
const leaf = baseName2(glue);
|
|
22593
|
+
const dir = glue.slice(0, glue.lastIndexOf("/"));
|
|
22594
|
+
for (const c of commands) {
|
|
22595
|
+
if (c.abi !== "emscripten" || c.script || c.name !== leaf) continue;
|
|
22596
|
+
const own = await physicalPathAsync(this.base, c.glue).catch(() => c.glue);
|
|
22597
|
+
if (own.slice(0, own.lastIndexOf("/")) !== dir) continue;
|
|
22598
|
+
if (await this.sameFile(glue, own)) return c;
|
|
22599
|
+
}
|
|
22600
|
+
return void 0;
|
|
22601
|
+
}
|
|
22602
|
+
sameFiles = /* @__PURE__ */ new Map();
|
|
22603
|
+
async sameFile(a, b) {
|
|
22604
|
+
const [x, y] = await Promise.all([this.base.stat(a), this.base.stat(b)]).catch(() => []);
|
|
22605
|
+
if (!x?.isFile || !y?.isFile || x.size !== y.size) return false;
|
|
22606
|
+
const stamp = [x, y].map((st) => `${st.size}:${st.mtime.getTime()}:${st.ino}`).join("|");
|
|
22607
|
+
const known = this.sameFiles.get(`${a}|${b}`);
|
|
22608
|
+
if (known?.stamp === stamp) return known.same;
|
|
22609
|
+
const [p, q] = await Promise.all([this.base.readFileBuffer(a), this.base.readFileBuffer(b)]);
|
|
22610
|
+
const same = p.length === q.length && p.every((byte, i) => byte === q[i]);
|
|
22611
|
+
this.sameFiles.set(`${a}|${b}`, { stamp, same });
|
|
22612
|
+
return same;
|
|
22592
22613
|
}
|
|
22593
22614
|
async wasmOwner(wasm, name2, scope) {
|
|
22594
22615
|
const leaf = baseName2(wasm);
|
|
@@ -22686,6 +22707,7 @@ var Launcher = class {
|
|
|
22686
22707
|
await need(g, "exec", this.fs.resolvePath(req.cwd, file), want);
|
|
22687
22708
|
}
|
|
22688
22709
|
for (const bin of planned?.bins ?? []) await need(g, "exec", bin, R_OK | X_OK);
|
|
22710
|
+
if (planned?.target.copy) await need(g, "exec", planned.target.copy, R_OK | X_OK);
|
|
22689
22711
|
}
|
|
22690
22712
|
async checkedPlan(req, { ppid, cred, scope }, fds) {
|
|
22691
22713
|
const refused2 = async (err) => {
|