@ai-ecoverse/slicc-kernel 1.159.5 → 1.159.6

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/node.js CHANGED
@@ -3672,7 +3672,7 @@ function satisfies(version, range2) {
3672
3672
  }
3673
3673
 
3674
3674
  // src/version.ts
3675
- var KERNEL_VERSION = true ? "1.159.5" : "0.0.0-dev";
3675
+ var KERNEL_VERSION = true ? "1.159.6" : "0.0.0-dev";
3676
3676
  var OS_RELEASE = "6.0.0-slicc";
3677
3677
  function procVersion() {
3678
3678
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -3052,7 +3052,7 @@ var init_version = __esm({
3052
3052
  "src/version.ts"() {
3053
3053
  "use strict";
3054
3054
  init_captured_globals();
3055
- KERNEL_VERSION = true ? "1.159.5" : "0.0.0-dev";
3055
+ KERNEL_VERSION = true ? "1.159.6" : "0.0.0-dev";
3056
3056
  OS_RELEASE = "6.0.0-slicc";
3057
3057
  }
3058
3058
  });
@@ -17638,6 +17638,7 @@ function laneOf(lane, silence = SYNC_FS_REQUEST_TIMEOUT_MS, open = createSyncSab
17638
17638
  }
17639
17639
  function syncOps(kernel, shared) {
17640
17640
  const { infos, handles, resolve } = shared;
17641
+ const clean = () => shared.clean?.() === true;
17641
17642
  const tryDevSync = (abs) => {
17642
17643
  try {
17643
17644
  const resolved2 = physicalPath(
@@ -17693,7 +17694,7 @@ function syncOps(kernel, shared) {
17693
17694
  const abs = resolve(path);
17694
17695
  if (inDev(abs)) return devSync(kernel, devStat(abs, op === "stat"));
17695
17696
  try {
17696
- kernel.call({ op: "fd-path-flush", path: abs });
17697
+ if (!clean()) kernel.call({ op: "fd-path-flush", path: abs });
17697
17698
  const s = parseSyncFsStat(kernel.json({ op, path: abs }));
17698
17699
  if (!s) throw new JsCallError("EIO", op);
17699
17700
  return s;
@@ -17770,7 +17771,7 @@ function syncOps(kernel, shared) {
17770
17771
  },
17771
17772
  pipe: () => kernel.json({ op: "fd-pipe" }),
17772
17773
  open: procOpenSync(open, kernel, { resolve, pid: shared.pid }),
17773
- fs: procFsSync(syncPathOps(kernel, resolve, statOf, open, tryDevSync), kernel, {
17774
+ fs: procFsSync(syncPathOps(kernel, resolve, statOf, open, tryDevSync, clean), kernel, {
17774
17775
  resolve,
17775
17776
  pid: shared.pid
17776
17777
  })
@@ -17847,7 +17848,7 @@ function syncFile(kernel, fd, path, append, forget) {
17847
17848
  }
17848
17849
  };
17849
17850
  }
17850
- function syncPathOps(kernel, resolve, statOf, open, tryDev) {
17851
+ function syncPathOps(kernel, resolve, statOf, open, tryDev, clean) {
17851
17852
  return {
17852
17853
  stat: (path) => statOf("stat", path),
17853
17854
  lstat: (path) => statOf("lstat", path),
@@ -17896,7 +17897,7 @@ function syncPathOps(kernel, resolve, statOf, open, tryDev) {
17896
17897
  const abs = resolve(path);
17897
17898
  if (inDev(abs)) return readWholeSync(open(abs));
17898
17899
  try {
17899
- kernel.call({ op: "fd-path-flush", path: abs });
17900
+ if (!clean()) kernel.call({ op: "fd-path-flush", path: abs });
17900
17901
  return kernel.bytes({ op: "read", path: abs });
17901
17902
  } catch (err) {
17902
17903
  if (!(err instanceof JsCallError) || err.code !== "ENOENT") throw err;
@@ -18728,9 +18729,9 @@ async function resolveDevAsync(kernel, abs) {
18728
18729
  return void 0;
18729
18730
  }
18730
18731
  }
18731
- async function vfsStat(kernel, abs, op, tryDev) {
18732
+ async function vfsStat(kernel, abs, op, tryDev, clean) {
18732
18733
  try {
18733
- await kernel.call({ op: "fd-path-flush", path: abs });
18734
+ if (!clean()) await kernel.call({ op: "fd-path-flush", path: abs });
18734
18735
  const s = parseSyncFsStat(await kernel.json({ op, path: abs }));
18735
18736
  if (!s) throw new JsCallError("EIO", op);
18736
18737
  return s;
@@ -18920,6 +18921,10 @@ function hostExtras(o) {
18920
18921
  ...o.asyncContext ? { asyncContext: o.asyncContext() } : {}
18921
18922
  };
18922
18923
  }
18924
+ function cleanOf(sab) {
18925
+ const changes = sab ? new ChangeView(sab) : void 0;
18926
+ return () => changes?.clean() === true;
18927
+ }
18923
18928
  function createContext(o) {
18924
18929
  const { kernel } = o;
18925
18930
  const infos = new capturedMap();
@@ -18929,6 +18934,7 @@ function createContext(o) {
18929
18934
  let held2;
18930
18935
  const resolve = (path) => resolvePath(cwdFor(o.cwd, held2, path), path);
18931
18936
  const tryDev = (abs) => resolveDevAsync(kernel, abs);
18937
+ const clean = cleanOf(o.changes);
18932
18938
  let exiting;
18933
18939
  const exit = (code2 = 0) => {
18934
18940
  exiting ??= code2;
@@ -18957,7 +18963,7 @@ function createContext(o) {
18957
18963
  const statOf = async (op, path) => {
18958
18964
  const abs = resolve(path);
18959
18965
  if (inDev(abs)) return devAsync(kernel, devStat(abs, op === "stat"));
18960
- return vfsStat(kernel, abs, op, tryDev);
18966
+ return vfsStat(kernel, abs, op, tryDev, clean);
18961
18967
  };
18962
18968
  const devIo = { infos, handles, read: read2, write: writeAll };
18963
18969
  const open = async (path, options = {}, whole = false) => {
@@ -18972,7 +18978,7 @@ function createContext(o) {
18972
18978
  return openDev(kernel, devPath, options, devIo);
18973
18979
  }
18974
18980
  };
18975
- const fs = procFsAsync(pathOps(kernel, resolve, statOf, open, tryDev), kernel, {
18981
+ const fs = procFsAsync(pathOps(kernel, resolve, statOf, open, tryDev, clean), kernel, {
18976
18982
  resolve,
18977
18983
  pid: o.pid
18978
18984
  });
@@ -18981,7 +18987,7 @@ function createContext(o) {
18981
18987
  const syncKernel = new JsSyncKernel(lane, kernel, unwind);
18982
18988
  held2 = heldOn(o.held, lane, syncKernel);
18983
18989
  const terminal = ttyOps(kernel, syncKernel);
18984
- const shared = { pid: o.pid, resolve, random, infos, handles, closing };
18990
+ const shared = { pid: o.pid, resolve, random, infos, handles, closing, clean };
18985
18991
  const wasi = wasiFor({ lane, pid: o.pid, cwd: o.cwd, resolve, fs: o.fs, owned: o.owned });
18986
18992
  const sync = {
18987
18993
  kernel: KERNEL_INFO,
@@ -19188,7 +19194,7 @@ async function sendSome(kernel, fd, body, signal) {
19188
19194
  await kernel.blocking({ op: "fd-select", read: [], write: [fd], timeoutMs: -1 }, signal);
19189
19195
  }
19190
19196
  }
19191
- function pathOps(kernel, resolve, statOf, open, tryDev) {
19197
+ function pathOps(kernel, resolve, statOf, open, tryDev, clean) {
19192
19198
  return {
19193
19199
  stat: (path) => statOf("stat", path),
19194
19200
  lstat: (path) => statOf("lstat", path),
@@ -19239,7 +19245,7 @@ function pathOps(kernel, resolve, statOf, open, tryDev) {
19239
19245
  const abs = resolve(path);
19240
19246
  if (inDev(abs)) return readWhole(await open(abs));
19241
19247
  try {
19242
- await kernel.call({ op: "fd-path-flush", path: abs });
19248
+ if (!clean()) await kernel.call({ op: "fd-path-flush", path: abs });
19243
19249
  return await kernel.bytes({ op: "read", path: abs });
19244
19250
  } catch (err) {
19245
19251
  if (!(err instanceof JsCallError) || err.code !== "ENOENT") throw err;
@@ -19268,6 +19274,7 @@ var init_js_context = __esm({
19268
19274
  "src/process/js/js-context.ts"() {
19269
19275
  "use strict";
19270
19276
  init_captured_globals();
19277
+ init_changes();
19271
19278
  init_physical_path();
19272
19279
  init_held_cwd();
19273
19280
  init_signals();
@@ -19479,6 +19486,7 @@ async function runJs(init, port2, deps, thread) {
19479
19486
  cwd: init.cwd,
19480
19487
  exit: (status3) => exited(statusOf(status3)),
19481
19488
  lane: laneOf(init.lane),
19489
+ changes: init.changes,
19482
19490
  fs: { owners: init.owners === true, links: init.links === true },
19483
19491
  strays,
19484
19492
  thread: threadContext(port2, thread),