@ai-ecoverse/slicc-kernel 1.55.0 → 1.56.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 +2 -2
- package/dist/index.js.map +2 -2
- package/dist/kernel-worker.js +16 -6
- package/dist/kernel-worker.js.map +2 -2
- package/dist/node-process-worker.js +58 -6
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +16 -6
- package/dist/node.js.map +2 -2
- package/dist/process-worker.js +58 -6
- package/dist/process-worker.js.map +3 -3
- package/package.json +1 -1
|
@@ -1905,6 +1905,7 @@ var init_wasi_host = __esm({
|
|
|
1905
1905
|
muted;
|
|
1906
1906
|
signals;
|
|
1907
1907
|
interrupted;
|
|
1908
|
+
quietly = (fn) => fn();
|
|
1908
1909
|
listening;
|
|
1909
1910
|
o;
|
|
1910
1911
|
constructor(o) {
|
|
@@ -9268,6 +9269,10 @@ var init_wasix_fork = __esm({
|
|
|
9268
9269
|
get supported() {
|
|
9269
9270
|
return typeof this.exports.asyncify_start_unwind === "function";
|
|
9270
9271
|
}
|
|
9272
|
+
get idle() {
|
|
9273
|
+
const state = this.exports.asyncify_get_state;
|
|
9274
|
+
return !this.supported || typeof state !== "function" || state() === 0;
|
|
9275
|
+
}
|
|
9271
9276
|
resume() {
|
|
9272
9277
|
if (this.exports.asyncify_get_state?.() !== UNWINDING) return false;
|
|
9273
9278
|
this.exports.asyncify_stop_unwind?.();
|
|
@@ -10998,13 +11003,49 @@ var wasi_runtime_exports = {};
|
|
|
10998
11003
|
__export(wasi_runtime_exports, {
|
|
10999
11004
|
FALLBACK_MAXIMUM_PAGES: () => FALLBACK_MAXIMUM_PAGES,
|
|
11000
11005
|
LinkSync: () => LinkSync,
|
|
11006
|
+
UNDELIVERED: () => UNDELIVERED,
|
|
11001
11007
|
captureBacktraces: () => captureBacktraces,
|
|
11008
|
+
catchUpFirst: () => catchUpFirst,
|
|
11002
11009
|
createImportedMemory: () => createImportedMemory,
|
|
11010
|
+
delivering: () => delivering,
|
|
11003
11011
|
runWasiProcess: () => runWasiProcess,
|
|
11004
11012
|
runWasiThread: () => runWasiThread,
|
|
11005
11013
|
trapMessage: () => trapMessage,
|
|
11006
|
-
unsupportedImport: () => unsupportedImport
|
|
11014
|
+
unsupportedImport: () => unsupportedImport,
|
|
11015
|
+
wireSignals: () => wireSignals
|
|
11007
11016
|
});
|
|
11017
|
+
function wireSignals(host, gate) {
|
|
11018
|
+
host.interrupted = () => gate.interrupt();
|
|
11019
|
+
host.quietly = (fn) => gate.quiet(fn);
|
|
11020
|
+
}
|
|
11021
|
+
function catchUpFirst(host, sync) {
|
|
11022
|
+
return sync && (() => host.quietly(() => sync.current()));
|
|
11023
|
+
}
|
|
11024
|
+
function deliverAll(imports, host, driver, before) {
|
|
11025
|
+
for (const ns of DELIVERED) {
|
|
11026
|
+
const table = imports[ns];
|
|
11027
|
+
if (table) imports[ns] = delivering(ns, table, host, driver, before);
|
|
11028
|
+
}
|
|
11029
|
+
}
|
|
11030
|
+
function delivering(ns, table, host, driver, before) {
|
|
11031
|
+
const exempt = new Set(UNDELIVERED[ns]);
|
|
11032
|
+
const out = {};
|
|
11033
|
+
for (const [name2, value2] of Object.entries(table)) {
|
|
11034
|
+
if (exempt.has(name2) || typeof value2 !== "function") {
|
|
11035
|
+
out[name2] = value2;
|
|
11036
|
+
continue;
|
|
11037
|
+
}
|
|
11038
|
+
const fn = value2;
|
|
11039
|
+
out[name2] = (...args) => {
|
|
11040
|
+
if (driver.idle) {
|
|
11041
|
+
before?.();
|
|
11042
|
+
host.interrupted?.();
|
|
11043
|
+
}
|
|
11044
|
+
return fn(...args);
|
|
11045
|
+
};
|
|
11046
|
+
}
|
|
11047
|
+
return out;
|
|
11048
|
+
}
|
|
11008
11049
|
function enosys(module, name2, foreign) {
|
|
11009
11050
|
const type = foreign?.[module]?.[name2];
|
|
11010
11051
|
if (type === "other") throw new Error(noErrno(`${module}.${name2}`));
|
|
@@ -11203,6 +11244,7 @@ async function instantiate(host, module, memory, threads, {
|
|
|
11203
11244
|
sliccFs,
|
|
11204
11245
|
sliccTty2
|
|
11205
11246
|
);
|
|
11247
|
+
deliverAll(hostImports, host, driver, catchUpFirst(host, sync));
|
|
11206
11248
|
const imports = sync ? merge(hostImports, sync.linker.mainImports(module)) : hostImports;
|
|
11207
11249
|
instance = await WebAssembly.instantiate(module, imports);
|
|
11208
11250
|
stats?.phase("instantiate");
|
|
@@ -11330,7 +11372,7 @@ async function runWasiProcess(init, port3) {
|
|
|
11330
11372
|
if (importsSigactionHook(module)) signals.useHook();
|
|
11331
11373
|
if (fork?.signals) signals.restore(fork.signals);
|
|
11332
11374
|
host.signals = signals;
|
|
11333
|
-
host
|
|
11375
|
+
wireSignals(host, gate);
|
|
11334
11376
|
host.onRaise = (sig) => signals.raised(sig);
|
|
11335
11377
|
host.muted = (fd, data) => signals.muted(fd, data);
|
|
11336
11378
|
const exports = instance.exports;
|
|
@@ -11410,7 +11452,7 @@ async function runWasiThread(init, port3) {
|
|
|
11410
11452
|
});
|
|
11411
11453
|
signals.bind(instance.exports);
|
|
11412
11454
|
signals.register(SIGNAL_CALLBACK);
|
|
11413
|
-
host
|
|
11455
|
+
wireSignals(host, gate);
|
|
11414
11456
|
host.onRaise = (sig) => signals.raised(sig);
|
|
11415
11457
|
const start2 = instance.exports.wasi_thread_start;
|
|
11416
11458
|
try {
|
|
@@ -11436,7 +11478,7 @@ async function runWasiThread(init, port3) {
|
|
|
11436
11478
|
throw e;
|
|
11437
11479
|
}
|
|
11438
11480
|
}
|
|
11439
|
-
var TRAPPED, PREVIEW1, WASIX, SLICC, SIGNAL_CALLBACK, takeDefault, SLICC_FS, SLICC_TTY, RESERVED2, importsSigactionHook, noErrno, FALLBACK_MAXIMUM_PAGES, LinkSync, DL_GEN, BACKTRACE_FRAMES;
|
|
11481
|
+
var TRAPPED, PREVIEW1, WASIX, SLICC, SIGNAL_CALLBACK, takeDefault, SLICC_FS, SLICC_TTY, RESERVED2, UNDELIVERED, DELIVERED, importsSigactionHook, noErrno, FALLBACK_MAXIMUM_PAGES, LinkSync, DL_GEN, BACKTRACE_FRAMES;
|
|
11440
11482
|
var init_wasi_runtime = __esm({
|
|
11441
11483
|
"src/process/wasi/wasi-runtime.ts"() {
|
|
11442
11484
|
"use strict";
|
|
@@ -11473,6 +11515,13 @@ var init_wasi_runtime = __esm({
|
|
|
11473
11515
|
SLICC_FS = "slicc_fs";
|
|
11474
11516
|
SLICC_TTY = "slicc_tty";
|
|
11475
11517
|
RESERVED2 = RESERVED_NAMESPACES;
|
|
11518
|
+
UNDELIVERED = {
|
|
11519
|
+
[PREVIEW1]: ["proc_exit", "clock_time_get"],
|
|
11520
|
+
[WASIX]: ["proc_exit2", "thread_exit", "thread_spawn_v2", "callback_signal"],
|
|
11521
|
+
[SLICC]: ["sigaction_set"],
|
|
11522
|
+
wasi: ["thread-spawn"]
|
|
11523
|
+
};
|
|
11524
|
+
DELIVERED = [PREVIEW1, WASIX, SLICC, SLICC_FS, SLICC_TTY];
|
|
11476
11525
|
importsSigactionHook = (module) => WebAssembly.Module.imports(module).some((i) => i.module === SLICC && i.name === "sigaction_set");
|
|
11477
11526
|
noErrno = (key) => `imports ${key}: its result cannot carry ENOSYS, and this host does not provide it`;
|
|
11478
11527
|
FALLBACK_MAXIMUM_PAGES = 32768;
|
|
@@ -11524,6 +11573,9 @@ var init_wasi_runtime = __esm({
|
|
|
11524
11573
|
this.bump();
|
|
11525
11574
|
this.catchUp();
|
|
11526
11575
|
}
|
|
11576
|
+
current() {
|
|
11577
|
+
if (this.ids && Atomics.load(this.ids, DL_GEN) !== this.gen) this.catchUp();
|
|
11578
|
+
}
|
|
11527
11579
|
catchUp() {
|
|
11528
11580
|
for (; ; ) {
|
|
11529
11581
|
const gen = this.ids ? Atomics.load(this.ids, DL_GEN) : 0;
|
|
@@ -11543,9 +11595,9 @@ var init_wasi_runtime = __esm({
|
|
|
11543
11595
|
Object.entries(table).map(([name2, fn]) => [
|
|
11544
11596
|
name2,
|
|
11545
11597
|
((...args) => {
|
|
11546
|
-
|
|
11598
|
+
this.current();
|
|
11547
11599
|
const result = fn(...args);
|
|
11548
|
-
|
|
11600
|
+
this.current();
|
|
11549
11601
|
return result;
|
|
11550
11602
|
})
|
|
11551
11603
|
])
|