@ai-ecoverse/slicc-kernel 1.147.3 → 1.147.4

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.
@@ -7157,7 +7157,7 @@ var KERNEL_VERSION, OS_RELEASE;
7157
7157
  var init_version = __esm({
7158
7158
  "src/version.ts"() {
7159
7159
  "use strict";
7160
- KERNEL_VERSION = true ? "1.147.3" : "0.0.0-dev";
7160
+ KERNEL_VERSION = true ? "1.147.4" : "0.0.0-dev";
7161
7161
  OS_RELEASE = "6.0.0-slicc";
7162
7162
  }
7163
7163
  });
package/dist/node.js CHANGED
@@ -3305,7 +3305,7 @@ function satisfies(version, range2) {
3305
3305
  }
3306
3306
 
3307
3307
  // src/version.ts
3308
- var KERNEL_VERSION = true ? "1.147.3" : "0.0.0-dev";
3308
+ var KERNEL_VERSION = true ? "1.147.4" : "0.0.0-dev";
3309
3309
  var OS_RELEASE = "6.0.0-slicc";
3310
3310
  function procVersion() {
3311
3311
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -29092,6 +29092,25 @@ var Launcher = class {
29092
29092
  const optional = `${root}-names${beside.slice(root.length)}`;
29093
29093
  return await this.base.exists(optional) ? optional : void 0;
29094
29094
  }
29095
+ loaded(target, env, caller) {
29096
+ const read = () => this.program(target, env, caller);
29097
+ const id2 = () => this.exeId(target);
29098
+ return id2().then(
29099
+ (before) => read().then(
29100
+ (first) => id2().then(
29101
+ (after) => after.exeId === before.exeId ? [first, after] : this.reread(target, read).then(
29102
+ (again) => id2().then((last) => [again, last])
29103
+ )
29104
+ )
29105
+ )
29106
+ );
29107
+ }
29108
+ reread(target, read) {
29109
+ for (const key of this.compiled.keys()) {
29110
+ if (key.startsWith(`${target.wasm}:`)) this.compiled.delete(key);
29111
+ }
29112
+ return read();
29113
+ }
29095
29114
  exeId(target) {
29096
29115
  if (target.abi !== "wasi" || (target.copy ?? target.glue) !== target.wasm) {
29097
29116
  return Promise.resolve({});
@@ -29154,7 +29173,7 @@ var Launcher = class {
29154
29173
  try {
29155
29174
  const caller = { pid: req.ppid ?? 0, uid: req.cred.euid, tag: req.tags?.[0] };
29156
29175
  if (this.integrity) await this.checkedSources(planned, caller);
29157
- [program, exeId] = await Promise.all([this.program(target, env, caller), this.exeId(target)]);
29176
+ [program, exeId] = await this.loaded(target, env, caller);
29158
29177
  if (readsEtcHostname(program)) setOrDrop(env, "HOSTNAME", own);
29159
29178
  } catch (err) {
29160
29179
  await req.fds.closeAll();