@ai-ecoverse/slicc-kernel 1.138.0 → 1.139.0
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 +2 -0
- package/dist/driver-worker.js +2 -10
- package/dist/driver-worker.js.map +2 -2
- package/dist/kernel-worker.js +1 -1
- package/dist/node-driver-worker.js +13 -10
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.js +91 -34
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +1 -1
- package/dist/process-worker.js +44 -19
- package/dist/process-worker.js.map +3 -3
- package/dist/types/process/js/js-context.d.ts +9 -0
- package/dist/types/process/wasi/wasi-host.d.ts +1 -0
- package/dist/types/process/wasi/wasi-poll.d.ts +1 -0
- package/dist/types/process/wasi/wasi-signals.d.ts +1 -0
- package/package.json +3 -3
package/dist/node.js
CHANGED
|
@@ -7513,7 +7513,7 @@ function satisfies(version, range2) {
|
|
|
7513
7513
|
}
|
|
7514
7514
|
|
|
7515
7515
|
// src/version.ts
|
|
7516
|
-
var KERNEL_VERSION = true ? "1.
|
|
7516
|
+
var KERNEL_VERSION = true ? "1.139.0" : "0.0.0-dev";
|
|
7517
7517
|
var OS_RELEASE = "6.0.0-slicc";
|
|
7518
7518
|
function procVersion() {
|
|
7519
7519
|
return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
|
package/dist/process-worker.js
CHANGED
|
@@ -25,11 +25,7 @@ function chain(target) {
|
|
|
25
25
|
function hide(target, names) {
|
|
26
26
|
for (const name2 of names) {
|
|
27
27
|
const holders = chain(target);
|
|
28
|
-
for (const holder of holders)
|
|
29
|
-
if (Object.getOwnPropertyDescriptor(holder, name2)?.configurable) {
|
|
30
|
-
Reflect.deleteProperty(holder, name2);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
28
|
+
for (const holder of holders) Reflect.deleteProperty(holder, name2);
|
|
33
29
|
const kept = holders.slice(1).some((holder) => Object.hasOwn(holder, name2));
|
|
34
30
|
const defined = Reflect.defineProperty(target, name2, {
|
|
35
31
|
value: void 0,
|
|
@@ -45,11 +41,7 @@ function hide(target, names) {
|
|
|
45
41
|
function vacate(target, names) {
|
|
46
42
|
for (const name2 of names) {
|
|
47
43
|
const holders = chain(target);
|
|
48
|
-
for (const holder of holders)
|
|
49
|
-
if (Object.getOwnPropertyDescriptor(holder, name2)?.configurable) {
|
|
50
|
-
Reflect.deleteProperty(holder, name2);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
44
|
+
for (const holder of holders) Reflect.deleteProperty(holder, name2);
|
|
53
45
|
const kept = holders.slice(1).some((holder) => Object.hasOwn(holder, name2));
|
|
54
46
|
const opened2 = Reflect.defineProperty(target, name2, {
|
|
55
47
|
value: void 0,
|
|
@@ -2783,7 +2775,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
2783
2775
|
var init_version = __esm({
|
|
2784
2776
|
"src/version.ts"() {
|
|
2785
2777
|
"use strict";
|
|
2786
|
-
KERNEL_VERSION = true ? "1.
|
|
2778
|
+
KERNEL_VERSION = true ? "1.139.0" : "0.0.0-dev";
|
|
2787
2779
|
OS_RELEASE = "6.0.0-slicc";
|
|
2788
2780
|
}
|
|
2789
2781
|
});
|
|
@@ -9675,12 +9667,16 @@ function readyEvents(subs, ready) {
|
|
|
9675
9667
|
...nbytesOf(s, ready)
|
|
9676
9668
|
}));
|
|
9677
9669
|
}
|
|
9678
|
-
function selectOnce(deps, read2, write2, timeoutMs2) {
|
|
9670
|
+
function selectOnce(deps, read2, write2, timeoutMs2, mayResume) {
|
|
9679
9671
|
try {
|
|
9680
9672
|
const ready = deps.kernel.call({ op: "fd-select", read: read2, write: write2, timeoutMs: timeoutMs2 });
|
|
9681
9673
|
return { ready, interrupted: false };
|
|
9682
9674
|
} catch (e) {
|
|
9683
|
-
if (
|
|
9675
|
+
if (e.code !== "EINTR") throw e;
|
|
9676
|
+
if (!deps.interruptWakes && mayResume && deps.resumes?.()) {
|
|
9677
|
+
return { ready: { read: [], write: [] }, interrupted: false, resumed: true };
|
|
9678
|
+
}
|
|
9679
|
+
if (!deps.interruptWakes) throw e;
|
|
9684
9680
|
return { ready: { read: [], write: [] }, interrupted: true };
|
|
9685
9681
|
}
|
|
9686
9682
|
}
|
|
@@ -9690,8 +9686,15 @@ function waitEvents(deps, subs, { events, read: read2, write: write2 }, entered)
|
|
|
9690
9686
|
if (events.length > 0 || entered) return 0;
|
|
9691
9687
|
return earliest === Infinity ? -1 : Math.max(0, Math.ceil(earliest - performance.now()));
|
|
9692
9688
|
};
|
|
9693
|
-
for (; ; ) {
|
|
9694
|
-
const { ready, interrupted } = selectOnce(
|
|
9689
|
+
for (let resumes = 0; ; ) {
|
|
9690
|
+
const { ready, interrupted, resumed } = selectOnce(
|
|
9691
|
+
deps,
|
|
9692
|
+
read2,
|
|
9693
|
+
write2,
|
|
9694
|
+
timeout(),
|
|
9695
|
+
resumes++ < RESUMES
|
|
9696
|
+
);
|
|
9697
|
+
if (resumed) continue;
|
|
9695
9698
|
events.push(...readyEvents(subs, ready));
|
|
9696
9699
|
if (interrupted) return true;
|
|
9697
9700
|
if (events.length > 0 || entered || earliest === Infinity) return false;
|
|
@@ -9718,10 +9721,12 @@ function pollOneoff(deps, inPtr, outPtr, nsubs, neventsPtr) {
|
|
|
9718
9721
|
mem.view().setUint32(neventsPtr, events.length, true);
|
|
9719
9722
|
return E.SUCCESS;
|
|
9720
9723
|
}
|
|
9724
|
+
var RESUMES;
|
|
9721
9725
|
var init_wasi_poll = __esm({
|
|
9722
9726
|
"src/process/wasi/wasi-poll.ts"() {
|
|
9723
9727
|
"use strict";
|
|
9724
9728
|
init_wasi_abi();
|
|
9729
|
+
RESUMES = 64;
|
|
9725
9730
|
}
|
|
9726
9731
|
});
|
|
9727
9732
|
|
|
@@ -10918,7 +10923,8 @@ var init_wasi_host = __esm({
|
|
|
10918
10923
|
}
|
|
10919
10924
|
});
|
|
10920
10925
|
}
|
|
10921
|
-
poll(inPtr, outPtr, n, nevents) {
|
|
10926
|
+
poll(inPtr, outPtr, n, nevents, resume = true) {
|
|
10927
|
+
const ran = this.signals?.ran ?? 0;
|
|
10922
10928
|
try {
|
|
10923
10929
|
return pollOneoff(
|
|
10924
10930
|
{
|
|
@@ -10927,7 +10933,8 @@ var init_wasi_host = __esm({
|
|
|
10927
10933
|
kernel: this.o.kernel,
|
|
10928
10934
|
now: (id) => this.now(id),
|
|
10929
10935
|
interruptWakes: this.interruptWakes,
|
|
10930
|
-
entered: this.entered
|
|
10936
|
+
entered: this.entered,
|
|
10937
|
+
...resume ? { resumes: () => this.resumesPoll(ran) } : {}
|
|
10931
10938
|
},
|
|
10932
10939
|
inPtr,
|
|
10933
10940
|
outPtr,
|
|
@@ -10938,13 +10945,17 @@ var init_wasi_host = __esm({
|
|
|
10938
10945
|
this.o.fs.invalidate?.();
|
|
10939
10946
|
}
|
|
10940
10947
|
}
|
|
10948
|
+
resumesPoll(ran) {
|
|
10949
|
+
this.interrupted?.();
|
|
10950
|
+
return (this.signals?.ran ?? 0) === ran;
|
|
10951
|
+
}
|
|
10941
10952
|
maskedPoll(mask, set, [inPtr, outPtr, n, nevents]) {
|
|
10942
10953
|
const old = mask.swap(set[0], set[1]);
|
|
10943
10954
|
try {
|
|
10944
10955
|
this.mem.view().setUint32(nevents, 0, true);
|
|
10945
10956
|
if (mask.deliverUnblocked()) return E.INTR;
|
|
10946
10957
|
this.settleEntry(mask);
|
|
10947
|
-
if (n > 0) return this.poll(inPtr, outPtr, n, nevents);
|
|
10958
|
+
if (n > 0) return this.poll(inPtr, outPtr, n, nevents, false);
|
|
10948
10959
|
return this.entered ? E.INTR : this.suspend();
|
|
10949
10960
|
} finally {
|
|
10950
10961
|
mask.deliverUnblocked();
|
|
@@ -12897,7 +12908,9 @@ var init_wasi_signals = __esm({
|
|
|
12897
12908
|
this.deferred &= ~bit;
|
|
12898
12909
|
this.raise(sig);
|
|
12899
12910
|
}
|
|
12911
|
+
ran = 0;
|
|
12900
12912
|
run(handler, sig) {
|
|
12913
|
+
this.ran++;
|
|
12901
12914
|
const outer = { sig: this.delivering, defaulted: this.defaulted, libc: this.libcDefault };
|
|
12902
12915
|
this.delivering = sig;
|
|
12903
12916
|
this.defaulted = false;
|
|
@@ -17816,6 +17829,15 @@ function heldOn(init, lane, syncKernel) {
|
|
|
17816
17829
|
const ask = () => syncKernel.json({ op: "cwd-check" });
|
|
17817
17830
|
return new HeldCwd(init.sab, init.slot, ask, init);
|
|
17818
17831
|
}
|
|
17832
|
+
function measured(measure) {
|
|
17833
|
+
const got = measure?.() ?? {};
|
|
17834
|
+
const out = {};
|
|
17835
|
+
for (const field2 of MEMORY_FIELDS) {
|
|
17836
|
+
const value2 = got[field2];
|
|
17837
|
+
if (typeof value2 === "number" && Number.isFinite(value2)) out[field2] = value2;
|
|
17838
|
+
}
|
|
17839
|
+
return out;
|
|
17840
|
+
}
|
|
17819
17841
|
function createContext(o) {
|
|
17820
17842
|
const { kernel } = o;
|
|
17821
17843
|
const infos = /* @__PURE__ */ new Map();
|
|
@@ -17956,6 +17978,7 @@ function createContext(o) {
|
|
|
17956
17978
|
tty: terminal.tty,
|
|
17957
17979
|
exit,
|
|
17958
17980
|
thread: o.thread,
|
|
17981
|
+
memory: () => measured(o.memory),
|
|
17959
17982
|
onUncaught: (listener) => listen(strays.exception, listener),
|
|
17960
17983
|
onUnhandledRejection: (listener) => listen(strays.rejection, listener)
|
|
17961
17984
|
};
|
|
@@ -18153,7 +18176,7 @@ function pathOps(kernel, resolve, statOf, open, tryDev) {
|
|
|
18153
18176
|
}
|
|
18154
18177
|
};
|
|
18155
18178
|
}
|
|
18156
|
-
var KERNEL_INFO, JsExit, encoder4, cryptoRandom;
|
|
18179
|
+
var KERNEL_INFO, JsExit, encoder4, cryptoRandom, MEMORY_FIELDS;
|
|
18157
18180
|
var init_js_context = __esm({
|
|
18158
18181
|
"src/process/js/js-context.ts"() {
|
|
18159
18182
|
"use strict";
|
|
@@ -18188,6 +18211,7 @@ var init_js_context = __esm({
|
|
|
18188
18211
|
};
|
|
18189
18212
|
encoder4 = new TextEncoder();
|
|
18190
18213
|
cryptoRandom = (bytes) => void crypto.getRandomValues(bytes);
|
|
18214
|
+
MEMORY_FIELDS = ["heapUsed", "heapTotal", "heapLimit", "external", "arrayBuffers"];
|
|
18191
18215
|
}
|
|
18192
18216
|
});
|
|
18193
18217
|
|
|
@@ -18361,6 +18385,7 @@ async function runJs(init, port2, deps, thread) {
|
|
|
18361
18385
|
fs: { owners: init.owners === true, links: init.links === true },
|
|
18362
18386
|
strays,
|
|
18363
18387
|
thread: threadContext(port2, thread),
|
|
18388
|
+
memory: deps.memory,
|
|
18364
18389
|
...thread?.owned ? { owned: thread.owned } : {},
|
|
18365
18390
|
held: init.held,
|
|
18366
18391
|
failed: () => failedWith
|