@ai-ecoverse/slicc-kernel 1.103.2 → 1.103.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/dist/kernel-worker.js +1 -1
- package/dist/kernel-worker.js.map +2 -2
- package/dist/node-process-worker.js +113 -82
- package/dist/node-process-worker.js.map +4 -4
- package/dist/node.js +1 -1
- package/dist/node.js.map +2 -2
- package/dist/process-worker.js +35 -4
- package/dist/process-worker.js.map +3 -3
- package/dist/types/process/wasi/wasi-files.d.ts +1 -1
- package/package.json +1 -1
|
@@ -563,6 +563,84 @@ var init_ranged = __esm({
|
|
|
563
563
|
}
|
|
564
564
|
});
|
|
565
565
|
|
|
566
|
+
// src/realm/sync-fs-wire.ts
|
|
567
|
+
function parseSyncFsUsage(json2) {
|
|
568
|
+
const u = json2;
|
|
569
|
+
if (!u || typeof u.quota !== "number" || typeof u.usage !== "number") return null;
|
|
570
|
+
return { quota: u.quota, usage: u.usage };
|
|
571
|
+
}
|
|
572
|
+
function syncError(code2, label) {
|
|
573
|
+
return Object.assign(new Error(`${code2}: ${label}`), { code: code2 });
|
|
574
|
+
}
|
|
575
|
+
function parseSyncFsStat(json2) {
|
|
576
|
+
const s = json2;
|
|
577
|
+
if (!s || typeof s.isFile !== "boolean" || typeof s.isDirectory !== "boolean" || typeof s.size !== "number") {
|
|
578
|
+
return null;
|
|
579
|
+
}
|
|
580
|
+
return {
|
|
581
|
+
isFile: s.isFile,
|
|
582
|
+
isDirectory: s.isDirectory,
|
|
583
|
+
isSymbolicLink: s.isSymbolicLink,
|
|
584
|
+
...s.isSocket === true ? { isSocket: true } : {},
|
|
585
|
+
size: s.size,
|
|
586
|
+
...typeof s.mode === "number" ? { mode: s.mode } : {},
|
|
587
|
+
...typeof s.mtimeMs === "number" ? { mtimeMs: s.mtimeMs } : {},
|
|
588
|
+
...typeof s.atimeMs === "number" ? { atimeMs: s.atimeMs } : {},
|
|
589
|
+
...typeof s.ctimeMs === "number" ? { ctimeMs: s.ctimeMs } : {},
|
|
590
|
+
...typeof s.ino === "number" ? { ino: s.ino } : {},
|
|
591
|
+
...typeof s.nlink === "number" ? { nlink: s.nlink } : {},
|
|
592
|
+
...typeof s.dev === "number" ? { dev: s.dev } : {},
|
|
593
|
+
...s.readonly === true ? { readonly: true } : {},
|
|
594
|
+
...typeof s.maxFile === "number" ? { maxFile: s.maxFile } : {},
|
|
595
|
+
...s.ranged === true ? { ranged: true } : {},
|
|
596
|
+
...s.linkable === true ? { linkable: true } : {},
|
|
597
|
+
...typeof s.version === "string" ? { version: s.version } : {},
|
|
598
|
+
...typeof s.uid === "number" ? { uid: s.uid } : {},
|
|
599
|
+
...typeof s.gid === "number" ? { gid: s.gid } : {}
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
var SYNC_FS_OPS, HOLD_READ, HOLD_WRITE, HOLD_CREATED, SYNC_FS_REQUEST_TIMEOUT_MS;
|
|
603
|
+
var init_sync_fs_wire = __esm({
|
|
604
|
+
"src/realm/sync-fs-wire.ts"() {
|
|
605
|
+
"use strict";
|
|
606
|
+
SYNC_FS_OPS = [
|
|
607
|
+
"read",
|
|
608
|
+
"write",
|
|
609
|
+
"exists",
|
|
610
|
+
"stat",
|
|
611
|
+
"lstat",
|
|
612
|
+
"readdir",
|
|
613
|
+
"readdir-stat",
|
|
614
|
+
"mkdir",
|
|
615
|
+
"rm",
|
|
616
|
+
"rename",
|
|
617
|
+
"link",
|
|
618
|
+
"unlink",
|
|
619
|
+
"rmdir",
|
|
620
|
+
"symlink",
|
|
621
|
+
"readlink",
|
|
622
|
+
"chmod",
|
|
623
|
+
"utimes",
|
|
624
|
+
"lutimes",
|
|
625
|
+
"statfs",
|
|
626
|
+
"hold",
|
|
627
|
+
"create",
|
|
628
|
+
"kept",
|
|
629
|
+
"pread",
|
|
630
|
+
"pwrite",
|
|
631
|
+
"append",
|
|
632
|
+
"truncate",
|
|
633
|
+
"chown",
|
|
634
|
+
"lchown",
|
|
635
|
+
"access"
|
|
636
|
+
];
|
|
637
|
+
HOLD_READ = 4;
|
|
638
|
+
HOLD_WRITE = 8;
|
|
639
|
+
HOLD_CREATED = 16;
|
|
640
|
+
SYNC_FS_REQUEST_TIMEOUT_MS = 25e3;
|
|
641
|
+
}
|
|
642
|
+
});
|
|
643
|
+
|
|
566
644
|
// src/process/wasi/wasi-files.ts
|
|
567
645
|
function normalize(path) {
|
|
568
646
|
const out = [];
|
|
@@ -653,15 +731,37 @@ function cachingBridge(bridge, now = () => performance.now(), shared) {
|
|
|
653
731
|
const blind = shared !== void 0 && shared.length * 4 < SHARED_IDS_BYTES;
|
|
654
732
|
const cache = new StatCache(blind ? void 0 : shared);
|
|
655
733
|
const { stats, lstats } = cache;
|
|
734
|
+
const view = bridge.changes;
|
|
735
|
+
const live = (miss, path) => miss.until > now() && (view === void 0 || miss.gen === void 0 || !view.changedSince(miss.gen, path).changed);
|
|
736
|
+
const seenAt = /* @__PURE__ */ new Map();
|
|
737
|
+
const gone = (path) => {
|
|
738
|
+
for (let at = path.lastIndexOf("/"); at > 0; at = path.lastIndexOf("/", at - 1)) {
|
|
739
|
+
const up = path.slice(0, at);
|
|
740
|
+
for (const map of [lstats, stats]) {
|
|
741
|
+
const hit = map.get(up);
|
|
742
|
+
const code2 = hit && "until" in hit ? hit.error.code : void 0;
|
|
743
|
+
if (hit && "until" in hit && code2 === "ENOENT" && live(hit, up)) return hit;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
return void 0;
|
|
747
|
+
};
|
|
656
748
|
const cached = (map, path, get) => {
|
|
657
749
|
if (blind) return get();
|
|
658
750
|
cache.fresh();
|
|
659
751
|
let hit = map.get(path);
|
|
660
|
-
if (hit === void 0 || "until" in hit && hit
|
|
752
|
+
if (hit === void 0 || "until" in hit && !live(hit, path)) {
|
|
753
|
+
const missing2 = gone(path);
|
|
754
|
+
if (missing2) throw missing2.error;
|
|
755
|
+
const gen = view?.now();
|
|
661
756
|
try {
|
|
662
757
|
hit = get();
|
|
758
|
+
if (gen !== void 0 && map === lstats) seenAt.set(path, gen);
|
|
663
759
|
} catch (e) {
|
|
664
|
-
hit = {
|
|
760
|
+
hit = {
|
|
761
|
+
error: e,
|
|
762
|
+
until: now() + MISS_TTL_MS,
|
|
763
|
+
...gen !== void 0 ? { gen } : {}
|
|
764
|
+
};
|
|
665
765
|
}
|
|
666
766
|
cache.put(map, path, hit);
|
|
667
767
|
}
|
|
@@ -717,7 +817,15 @@ function cachingBridge(bridge, now = () => performance.now(), shared) {
|
|
|
717
817
|
}
|
|
718
818
|
return list;
|
|
719
819
|
},
|
|
720
|
-
readlink: (p) =>
|
|
820
|
+
readlink: (p) => {
|
|
821
|
+
const known = blind ? void 0 : (cache.fresh(), lstats.get(p));
|
|
822
|
+
const gen = seenAt.get(p);
|
|
823
|
+
const current = view !== void 0 && gen !== void 0 && !view.changedSince(gen, p).changed;
|
|
824
|
+
if (known && current && !("until" in known) && !known.isSymbolicLink) {
|
|
825
|
+
throw syncError("EINVAL", `'${p}' is not a symbolic link`);
|
|
826
|
+
}
|
|
827
|
+
return bridge.readlink(p);
|
|
828
|
+
},
|
|
721
829
|
stat: (p) => cached(stats, p, () => bridge.stat(p)),
|
|
722
830
|
lstat: (p) => cached(lstats, p, () => bridge.lstat(p)),
|
|
723
831
|
exists: (p) => {
|
|
@@ -784,6 +892,7 @@ var init_wasi_files = __esm({
|
|
|
784
892
|
"src/process/wasi/wasi-files.ts"() {
|
|
785
893
|
"use strict";
|
|
786
894
|
init_ranged();
|
|
895
|
+
init_sync_fs_wire();
|
|
787
896
|
WasiError = class extends Error {
|
|
788
897
|
code;
|
|
789
898
|
constructor(code2) {
|
|
@@ -1631,84 +1740,6 @@ var init_fd_table = __esm({
|
|
|
1631
1740
|
}
|
|
1632
1741
|
});
|
|
1633
1742
|
|
|
1634
|
-
// src/realm/sync-fs-wire.ts
|
|
1635
|
-
function parseSyncFsUsage(json2) {
|
|
1636
|
-
const u = json2;
|
|
1637
|
-
if (!u || typeof u.quota !== "number" || typeof u.usage !== "number") return null;
|
|
1638
|
-
return { quota: u.quota, usage: u.usage };
|
|
1639
|
-
}
|
|
1640
|
-
function syncError(code2, label) {
|
|
1641
|
-
return Object.assign(new Error(`${code2}: ${label}`), { code: code2 });
|
|
1642
|
-
}
|
|
1643
|
-
function parseSyncFsStat(json2) {
|
|
1644
|
-
const s = json2;
|
|
1645
|
-
if (!s || typeof s.isFile !== "boolean" || typeof s.isDirectory !== "boolean" || typeof s.size !== "number") {
|
|
1646
|
-
return null;
|
|
1647
|
-
}
|
|
1648
|
-
return {
|
|
1649
|
-
isFile: s.isFile,
|
|
1650
|
-
isDirectory: s.isDirectory,
|
|
1651
|
-
isSymbolicLink: s.isSymbolicLink,
|
|
1652
|
-
...s.isSocket === true ? { isSocket: true } : {},
|
|
1653
|
-
size: s.size,
|
|
1654
|
-
...typeof s.mode === "number" ? { mode: s.mode } : {},
|
|
1655
|
-
...typeof s.mtimeMs === "number" ? { mtimeMs: s.mtimeMs } : {},
|
|
1656
|
-
...typeof s.atimeMs === "number" ? { atimeMs: s.atimeMs } : {},
|
|
1657
|
-
...typeof s.ctimeMs === "number" ? { ctimeMs: s.ctimeMs } : {},
|
|
1658
|
-
...typeof s.ino === "number" ? { ino: s.ino } : {},
|
|
1659
|
-
...typeof s.nlink === "number" ? { nlink: s.nlink } : {},
|
|
1660
|
-
...typeof s.dev === "number" ? { dev: s.dev } : {},
|
|
1661
|
-
...s.readonly === true ? { readonly: true } : {},
|
|
1662
|
-
...typeof s.maxFile === "number" ? { maxFile: s.maxFile } : {},
|
|
1663
|
-
...s.ranged === true ? { ranged: true } : {},
|
|
1664
|
-
...s.linkable === true ? { linkable: true } : {},
|
|
1665
|
-
...typeof s.version === "string" ? { version: s.version } : {},
|
|
1666
|
-
...typeof s.uid === "number" ? { uid: s.uid } : {},
|
|
1667
|
-
...typeof s.gid === "number" ? { gid: s.gid } : {}
|
|
1668
|
-
};
|
|
1669
|
-
}
|
|
1670
|
-
var SYNC_FS_OPS, HOLD_READ, HOLD_WRITE, HOLD_CREATED, SYNC_FS_REQUEST_TIMEOUT_MS;
|
|
1671
|
-
var init_sync_fs_wire = __esm({
|
|
1672
|
-
"src/realm/sync-fs-wire.ts"() {
|
|
1673
|
-
"use strict";
|
|
1674
|
-
SYNC_FS_OPS = [
|
|
1675
|
-
"read",
|
|
1676
|
-
"write",
|
|
1677
|
-
"exists",
|
|
1678
|
-
"stat",
|
|
1679
|
-
"lstat",
|
|
1680
|
-
"readdir",
|
|
1681
|
-
"readdir-stat",
|
|
1682
|
-
"mkdir",
|
|
1683
|
-
"rm",
|
|
1684
|
-
"rename",
|
|
1685
|
-
"link",
|
|
1686
|
-
"unlink",
|
|
1687
|
-
"rmdir",
|
|
1688
|
-
"symlink",
|
|
1689
|
-
"readlink",
|
|
1690
|
-
"chmod",
|
|
1691
|
-
"utimes",
|
|
1692
|
-
"lutimes",
|
|
1693
|
-
"statfs",
|
|
1694
|
-
"hold",
|
|
1695
|
-
"create",
|
|
1696
|
-
"kept",
|
|
1697
|
-
"pread",
|
|
1698
|
-
"pwrite",
|
|
1699
|
-
"append",
|
|
1700
|
-
"truncate",
|
|
1701
|
-
"chown",
|
|
1702
|
-
"lchown",
|
|
1703
|
-
"access"
|
|
1704
|
-
];
|
|
1705
|
-
HOLD_READ = 4;
|
|
1706
|
-
HOLD_WRITE = 8;
|
|
1707
|
-
HOLD_CREATED = 16;
|
|
1708
|
-
SYNC_FS_REQUEST_TIMEOUT_MS = 25e3;
|
|
1709
|
-
}
|
|
1710
|
-
});
|
|
1711
|
-
|
|
1712
1743
|
// src/process/wasi/wasi-fds.ts
|
|
1713
1744
|
function stdioAlias(path) {
|
|
1714
1745
|
const m = /^\/dev\/(?:(stdin)|(stdout)|(stderr)|fd\/(\d+))$/.exec(path);
|
|
@@ -4785,7 +4816,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
4785
4816
|
var init_version = __esm({
|
|
4786
4817
|
"src/version.ts"() {
|
|
4787
4818
|
"use strict";
|
|
4788
|
-
KERNEL_VERSION = true ? "1.103.
|
|
4819
|
+
KERNEL_VERSION = true ? "1.103.3" : "0.0.0-dev";
|
|
4789
4820
|
OS_RELEASE = "6.0.0-slicc";
|
|
4790
4821
|
}
|
|
4791
4822
|
});
|