@ai-ecoverse/slicc-kernel 1.137.0 → 1.138.1
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 -2
- package/dist/driver-worker.js +2 -10
- package/dist/driver-worker.js.map +2 -2
- package/dist/kernel-worker.js +21 -6
- package/dist/kernel-worker.js.map +2 -2
- package/dist/meta.js.map +1 -1
- package/dist/node-driver-worker.js +2 -10
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.js +31 -18
- package/dist/node-process-worker.js.map +2 -2
- package/dist/node.js +21 -6
- package/dist/node.js.map +2 -2
- package/dist/process-worker.js +31 -18
- package/dist/process-worker.js.map +2 -2
- package/dist/types/fs/notice.d.ts +1 -0
- package/dist/types/fs/opfs.d.ts +1 -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
|
@@ -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,
|
|
@@ -4059,12 +4051,16 @@ function readyEvents(subs, ready) {
|
|
|
4059
4051
|
...nbytesOf(s, ready)
|
|
4060
4052
|
}));
|
|
4061
4053
|
}
|
|
4062
|
-
function selectOnce(deps, read2, write2, timeoutMs2) {
|
|
4054
|
+
function selectOnce(deps, read2, write2, timeoutMs2, mayResume) {
|
|
4063
4055
|
try {
|
|
4064
4056
|
const ready = deps.kernel.call({ op: "fd-select", read: read2, write: write2, timeoutMs: timeoutMs2 });
|
|
4065
4057
|
return { ready, interrupted: false };
|
|
4066
4058
|
} catch (e) {
|
|
4067
|
-
if (
|
|
4059
|
+
if (e.code !== "EINTR") throw e;
|
|
4060
|
+
if (!deps.interruptWakes && mayResume && deps.resumes?.()) {
|
|
4061
|
+
return { ready: { read: [], write: [] }, interrupted: false, resumed: true };
|
|
4062
|
+
}
|
|
4063
|
+
if (!deps.interruptWakes) throw e;
|
|
4068
4064
|
return { ready: { read: [], write: [] }, interrupted: true };
|
|
4069
4065
|
}
|
|
4070
4066
|
}
|
|
@@ -4074,8 +4070,15 @@ function waitEvents(deps, subs, { events, read: read2, write: write2 }, entered)
|
|
|
4074
4070
|
if (events.length > 0 || entered) return 0;
|
|
4075
4071
|
return earliest === Infinity ? -1 : Math.max(0, Math.ceil(earliest - performance.now()));
|
|
4076
4072
|
};
|
|
4077
|
-
for (; ; ) {
|
|
4078
|
-
const { ready, interrupted } = selectOnce(
|
|
4073
|
+
for (let resumes = 0; ; ) {
|
|
4074
|
+
const { ready, interrupted, resumed } = selectOnce(
|
|
4075
|
+
deps,
|
|
4076
|
+
read2,
|
|
4077
|
+
write2,
|
|
4078
|
+
timeout(),
|
|
4079
|
+
resumes++ < RESUMES
|
|
4080
|
+
);
|
|
4081
|
+
if (resumed) continue;
|
|
4079
4082
|
events.push(...readyEvents(subs, ready));
|
|
4080
4083
|
if (interrupted) return true;
|
|
4081
4084
|
if (events.length > 0 || entered || earliest === Infinity) return false;
|
|
@@ -4102,10 +4105,12 @@ function pollOneoff(deps, inPtr, outPtr, nsubs, neventsPtr) {
|
|
|
4102
4105
|
mem.view().setUint32(neventsPtr, events.length, true);
|
|
4103
4106
|
return E.SUCCESS;
|
|
4104
4107
|
}
|
|
4108
|
+
var RESUMES;
|
|
4105
4109
|
var init_wasi_poll = __esm({
|
|
4106
4110
|
"src/process/wasi/wasi-poll.ts"() {
|
|
4107
4111
|
"use strict";
|
|
4108
4112
|
init_wasi_abi();
|
|
4113
|
+
RESUMES = 64;
|
|
4109
4114
|
}
|
|
4110
4115
|
});
|
|
4111
4116
|
|
|
@@ -5348,7 +5353,8 @@ var init_wasi_host = __esm({
|
|
|
5348
5353
|
}
|
|
5349
5354
|
});
|
|
5350
5355
|
}
|
|
5351
|
-
poll(inPtr, outPtr, n, nevents) {
|
|
5356
|
+
poll(inPtr, outPtr, n, nevents, resume = true) {
|
|
5357
|
+
const ran = this.signals?.ran ?? 0;
|
|
5352
5358
|
try {
|
|
5353
5359
|
return pollOneoff(
|
|
5354
5360
|
{
|
|
@@ -5357,7 +5363,8 @@ var init_wasi_host = __esm({
|
|
|
5357
5363
|
kernel: this.o.kernel,
|
|
5358
5364
|
now: (id) => this.now(id),
|
|
5359
5365
|
interruptWakes: this.interruptWakes,
|
|
5360
|
-
entered: this.entered
|
|
5366
|
+
entered: this.entered,
|
|
5367
|
+
...resume ? { resumes: () => this.resumesPoll(ran) } : {}
|
|
5361
5368
|
},
|
|
5362
5369
|
inPtr,
|
|
5363
5370
|
outPtr,
|
|
@@ -5368,13 +5375,17 @@ var init_wasi_host = __esm({
|
|
|
5368
5375
|
this.o.fs.invalidate?.();
|
|
5369
5376
|
}
|
|
5370
5377
|
}
|
|
5378
|
+
resumesPoll(ran) {
|
|
5379
|
+
this.interrupted?.();
|
|
5380
|
+
return (this.signals?.ran ?? 0) === ran;
|
|
5381
|
+
}
|
|
5371
5382
|
maskedPoll(mask, set, [inPtr, outPtr, n, nevents]) {
|
|
5372
5383
|
const old = mask.swap(set[0], set[1]);
|
|
5373
5384
|
try {
|
|
5374
5385
|
this.mem.view().setUint32(nevents, 0, true);
|
|
5375
5386
|
if (mask.deliverUnblocked()) return E.INTR;
|
|
5376
5387
|
this.settleEntry(mask);
|
|
5377
|
-
if (n > 0) return this.poll(inPtr, outPtr, n, nevents);
|
|
5388
|
+
if (n > 0) return this.poll(inPtr, outPtr, n, nevents, false);
|
|
5378
5389
|
return this.entered ? E.INTR : this.suspend();
|
|
5379
5390
|
} finally {
|
|
5380
5391
|
mask.deliverUnblocked();
|
|
@@ -6699,7 +6710,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
6699
6710
|
var init_version = __esm({
|
|
6700
6711
|
"src/version.ts"() {
|
|
6701
6712
|
"use strict";
|
|
6702
|
-
KERNEL_VERSION = true ? "1.
|
|
6713
|
+
KERNEL_VERSION = true ? "1.138.1" : "0.0.0-dev";
|
|
6703
6714
|
OS_RELEASE = "6.0.0-slicc";
|
|
6704
6715
|
}
|
|
6705
6716
|
});
|
|
@@ -16028,7 +16039,9 @@ var init_wasi_signals = __esm({
|
|
|
16028
16039
|
this.deferred &= ~bit;
|
|
16029
16040
|
this.raise(sig);
|
|
16030
16041
|
}
|
|
16042
|
+
ran = 0;
|
|
16031
16043
|
run(handler, sig) {
|
|
16044
|
+
this.ran++;
|
|
16032
16045
|
const outer = { sig: this.delivering, defaulted: this.defaulted, libc: this.libcDefault };
|
|
16033
16046
|
this.delivering = sig;
|
|
16034
16047
|
this.defaulted = false;
|