@ai-ecoverse/slicc-kernel 1.108.2 → 1.108.3
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 -3
- package/dist/kernel-worker.js +8311 -8240
- package/dist/kernel-worker.js.map +4 -4
- package/dist/node-process-worker.js +3 -2
- package/dist/node-process-worker.js.map +2 -2
- package/dist/node.js +63 -3
- package/dist/node.js.map +2 -2
- package/dist/process-worker.js +3 -2
- package/dist/process-worker.js.map +2 -2
- package/dist/types/kernel/protocol.d.ts +1 -0
- package/dist/types/launcher.d.ts +14 -0
- package/dist/types/serve.d.ts +2 -1
- package/package.json +1 -1
package/dist/node.js
CHANGED
|
@@ -6435,7 +6435,7 @@ function satisfies(version, range2) {
|
|
|
6435
6435
|
}
|
|
6436
6436
|
|
|
6437
6437
|
// src/version.ts
|
|
6438
|
-
var KERNEL_VERSION = true ? "1.108.
|
|
6438
|
+
var KERNEL_VERSION = true ? "1.108.3" : "0.0.0-dev";
|
|
6439
6439
|
var OS_RELEASE = "6.0.0-slicc";
|
|
6440
6440
|
function procVersion() {
|
|
6441
6441
|
return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
|
|
@@ -21665,6 +21665,16 @@ var SUDO_SOURCE = [
|
|
|
21665
21665
|
].join("\n");
|
|
21666
21666
|
|
|
21667
21667
|
// src/launcher.ts
|
|
21668
|
+
var MODULE_URLS = 16;
|
|
21669
|
+
function dataModuleUrl(source) {
|
|
21670
|
+
const bytes = new TextEncoder().encode(source);
|
|
21671
|
+
let binary = "";
|
|
21672
|
+
for (let at = 0; at < bytes.length; at += 32768) {
|
|
21673
|
+
binary += String.fromCharCode(...bytes.subarray(at, at + 32768));
|
|
21674
|
+
}
|
|
21675
|
+
return { url: `data:text/javascript;base64,${btoa(binary)}`, revoke: () => {
|
|
21676
|
+
} };
|
|
21677
|
+
}
|
|
21668
21678
|
function linksOf2(req) {
|
|
21669
21679
|
return req.links === void 0 ? {} : { links: req.links };
|
|
21670
21680
|
}
|
|
@@ -21835,6 +21845,9 @@ var Launcher = class {
|
|
|
21835
21845
|
unlinkOwnerOption;
|
|
21836
21846
|
base;
|
|
21837
21847
|
createWorker;
|
|
21848
|
+
moduleUrl;
|
|
21849
|
+
moduleUrls = /* @__PURE__ */ new Map();
|
|
21850
|
+
urlsInUse = /* @__PURE__ */ new Map();
|
|
21838
21851
|
modulesDir;
|
|
21839
21852
|
appended;
|
|
21840
21853
|
reportedRoots = /* @__PURE__ */ new Set();
|
|
@@ -21954,6 +21967,7 @@ var Launcher = class {
|
|
|
21954
21967
|
this.mounted = this.mounts.wrap(options.fs);
|
|
21955
21968
|
this.base = this.rooted(this.mounted);
|
|
21956
21969
|
this.createWorker = options.createWorker;
|
|
21970
|
+
this.moduleUrl = options.moduleUrl;
|
|
21957
21971
|
this.createDriverWorker = options.createDriverWorker;
|
|
21958
21972
|
this.media = options.media ?? memoryMedia();
|
|
21959
21973
|
this.onMountPending = options.onMountPending;
|
|
@@ -22610,6 +22624,43 @@ var Launcher = class {
|
|
|
22610
22624
|
return { value: new TextDecoder().decode(bytes), key: read };
|
|
22611
22625
|
});
|
|
22612
22626
|
}
|
|
22627
|
+
urlFor(source) {
|
|
22628
|
+
const known = this.moduleUrls.get(source);
|
|
22629
|
+
if (known) {
|
|
22630
|
+
this.moduleUrls.delete(source);
|
|
22631
|
+
this.moduleUrls.set(source, known);
|
|
22632
|
+
known.users++;
|
|
22633
|
+
return known.made.url;
|
|
22634
|
+
}
|
|
22635
|
+
const held = {
|
|
22636
|
+
made: (this.moduleUrl ?? dataModuleUrl)(source),
|
|
22637
|
+
users: 1,
|
|
22638
|
+
evicted: false
|
|
22639
|
+
};
|
|
22640
|
+
this.moduleUrls.set(source, held);
|
|
22641
|
+
this.urlsInUse.set(held.made.url, held);
|
|
22642
|
+
for (const [old, entry] of this.moduleUrls) {
|
|
22643
|
+
if (this.moduleUrls.size <= MODULE_URLS) break;
|
|
22644
|
+
this.moduleUrls.delete(old);
|
|
22645
|
+
entry.evicted = true;
|
|
22646
|
+
this.releaseUrl(entry);
|
|
22647
|
+
}
|
|
22648
|
+
return held.made.url;
|
|
22649
|
+
}
|
|
22650
|
+
heldUrl(program) {
|
|
22651
|
+
const held = program.abi === "js" && program.url ? this.urlsInUse.get(program.url) : void 0;
|
|
22652
|
+
if (!held) return () => {
|
|
22653
|
+
};
|
|
22654
|
+
return () => {
|
|
22655
|
+
held.users--;
|
|
22656
|
+
this.releaseUrl(held);
|
|
22657
|
+
};
|
|
22658
|
+
}
|
|
22659
|
+
releaseUrl(held) {
|
|
22660
|
+
if (!held.evicted || held.users > 0) return;
|
|
22661
|
+
if (this.urlsInUse.get(held.made.url) === held) this.urlsInUse.delete(held.made.url);
|
|
22662
|
+
held.made.revoke();
|
|
22663
|
+
}
|
|
22613
22664
|
async names(path, module) {
|
|
22614
22665
|
if (WebAssembly.Module.customSections(module, "name").length > 0) return void 0;
|
|
22615
22666
|
const beside = `${path}.names`;
|
|
@@ -22628,7 +22679,8 @@ var Launcher = class {
|
|
|
22628
22679
|
}
|
|
22629
22680
|
const { asked } = target;
|
|
22630
22681
|
if (target.abi === "js") {
|
|
22631
|
-
|
|
22682
|
+
const url = this.urlFor(await this.text(target.wasm, caller, asked));
|
|
22683
|
+
return { abi: "js", glue: "", url, path: target.wasm };
|
|
22632
22684
|
}
|
|
22633
22685
|
if (target.abi !== "wasi") {
|
|
22634
22686
|
const [glue, { module: module2 }] = await Promise.all([
|
|
@@ -22670,7 +22722,15 @@ var Launcher = class {
|
|
|
22670
22722
|
await req.fds.closeAll();
|
|
22671
22723
|
throw err;
|
|
22672
22724
|
}
|
|
22673
|
-
|
|
22725
|
+
const done4 = this.heldUrl(program);
|
|
22726
|
+
try {
|
|
22727
|
+
const handle = this.start({ ...req, cwd, program, argv0: target.argv0, args, env });
|
|
22728
|
+
void handle.exited.finally(done4);
|
|
22729
|
+
return handle;
|
|
22730
|
+
} catch (err) {
|
|
22731
|
+
done4();
|
|
22732
|
+
throw err;
|
|
22733
|
+
}
|
|
22674
22734
|
}
|
|
22675
22735
|
groupSession(pgid) {
|
|
22676
22736
|
return this.jobs.sessionOf(pgid);
|