@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.
@@ -8236,7 +8236,7 @@ function satisfies(version, range2) {
8236
8236
  }
8237
8237
 
8238
8238
  // src/version.ts
8239
- var KERNEL_VERSION = true ? "1.159.5" : "0.0.0-dev";
8239
+ var KERNEL_VERSION = true ? "1.159.6" : "0.0.0-dev";
8240
8240
  var OS_RELEASE = "6.0.0-slicc";
8241
8241
  function procVersion() {
8242
8242
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -7352,7 +7352,7 @@ var init_version = __esm({
7352
7352
  "src/version.ts"() {
7353
7353
  "use strict";
7354
7354
  init_captured_globals();
7355
- KERNEL_VERSION = true ? "1.159.5" : "0.0.0-dev";
7355
+ KERNEL_VERSION = true ? "1.159.6" : "0.0.0-dev";
7356
7356
  OS_RELEASE = "6.0.0-slicc";
7357
7357
  }
7358
7358
  });
@@ -12461,6 +12461,7 @@ function laneOf(lane, silence = SYNC_FS_REQUEST_TIMEOUT_MS, open = createSyncSab
12461
12461
  }
12462
12462
  function syncOps(kernel, shared) {
12463
12463
  const { infos, handles, resolve: resolve2 } = shared;
12464
+ const clean = () => shared.clean?.() === true;
12464
12465
  const tryDevSync = (abs) => {
12465
12466
  try {
12466
12467
  const resolved2 = physicalPath(
@@ -12516,7 +12517,7 @@ function syncOps(kernel, shared) {
12516
12517
  const abs = resolve2(path);
12517
12518
  if (inDev(abs)) return devSync(kernel, devStat(abs, op === "stat"));
12518
12519
  try {
12519
- kernel.call({ op: "fd-path-flush", path: abs });
12520
+ if (!clean()) kernel.call({ op: "fd-path-flush", path: abs });
12520
12521
  const s = parseSyncFsStat(kernel.json({ op, path: abs }));
12521
12522
  if (!s) throw new JsCallError("EIO", op);
12522
12523
  return s;
@@ -12593,7 +12594,7 @@ function syncOps(kernel, shared) {
12593
12594
  },
12594
12595
  pipe: () => kernel.json({ op: "fd-pipe" }),
12595
12596
  open: procOpenSync(open, kernel, { resolve: resolve2, pid: shared.pid }),
12596
- fs: procFsSync(syncPathOps(kernel, resolve2, statOf, open, tryDevSync), kernel, {
12597
+ fs: procFsSync(syncPathOps(kernel, resolve2, statOf, open, tryDevSync, clean), kernel, {
12597
12598
  resolve: resolve2,
12598
12599
  pid: shared.pid
12599
12600
  })
@@ -12670,7 +12671,7 @@ function syncFile(kernel, fd, path, append, forget) {
12670
12671
  }
12671
12672
  };
12672
12673
  }
12673
- function syncPathOps(kernel, resolve2, statOf, open, tryDev) {
12674
+ function syncPathOps(kernel, resolve2, statOf, open, tryDev, clean) {
12674
12675
  return {
12675
12676
  stat: (path) => statOf("stat", path),
12676
12677
  lstat: (path) => statOf("lstat", path),
@@ -12719,7 +12720,7 @@ function syncPathOps(kernel, resolve2, statOf, open, tryDev) {
12719
12720
  const abs = resolve2(path);
12720
12721
  if (inDev(abs)) return readWholeSync(open(abs));
12721
12722
  try {
12722
- kernel.call({ op: "fd-path-flush", path: abs });
12723
+ if (!clean()) kernel.call({ op: "fd-path-flush", path: abs });
12723
12724
  return kernel.bytes({ op: "read", path: abs });
12724
12725
  } catch (err) {
12725
12726
  if (!(err instanceof JsCallError) || err.code !== "ENOENT") throw err;
@@ -15991,9 +15992,9 @@ async function resolveDevAsync(kernel, abs) {
15991
15992
  return void 0;
15992
15993
  }
15993
15994
  }
15994
- async function vfsStat(kernel, abs, op, tryDev) {
15995
+ async function vfsStat(kernel, abs, op, tryDev, clean) {
15995
15996
  try {
15996
- await kernel.call({ op: "fd-path-flush", path: abs });
15997
+ if (!clean()) await kernel.call({ op: "fd-path-flush", path: abs });
15997
15998
  const s = parseSyncFsStat(await kernel.json({ op, path: abs }));
15998
15999
  if (!s) throw new JsCallError("EIO", op);
15999
16000
  return s;
@@ -16183,6 +16184,10 @@ function hostExtras(o) {
16183
16184
  ...o.asyncContext ? { asyncContext: o.asyncContext() } : {}
16184
16185
  };
16185
16186
  }
16187
+ function cleanOf(sab) {
16188
+ const changes = sab ? new ChangeView(sab) : void 0;
16189
+ return () => changes?.clean() === true;
16190
+ }
16186
16191
  function createContext(o) {
16187
16192
  const { kernel } = o;
16188
16193
  const infos = new capturedMap();
@@ -16192,6 +16197,7 @@ function createContext(o) {
16192
16197
  let held2;
16193
16198
  const resolve2 = (path) => resolvePath(cwdFor(o.cwd, held2, path), path);
16194
16199
  const tryDev = (abs) => resolveDevAsync(kernel, abs);
16200
+ const clean = cleanOf(o.changes);
16195
16201
  let exiting;
16196
16202
  const exit = (code2 = 0) => {
16197
16203
  exiting ??= code2;
@@ -16220,7 +16226,7 @@ function createContext(o) {
16220
16226
  const statOf = async (op, path) => {
16221
16227
  const abs = resolve2(path);
16222
16228
  if (inDev(abs)) return devAsync(kernel, devStat(abs, op === "stat"));
16223
- return vfsStat(kernel, abs, op, tryDev);
16229
+ return vfsStat(kernel, abs, op, tryDev, clean);
16224
16230
  };
16225
16231
  const devIo = { infos, handles, read: read2, write: writeAll };
16226
16232
  const open = async (path, options = {}, whole = false) => {
@@ -16235,7 +16241,7 @@ function createContext(o) {
16235
16241
  return openDev(kernel, devPath, options, devIo);
16236
16242
  }
16237
16243
  };
16238
- const fs = procFsAsync(pathOps(kernel, resolve2, statOf, open, tryDev), kernel, {
16244
+ const fs = procFsAsync(pathOps(kernel, resolve2, statOf, open, tryDev, clean), kernel, {
16239
16245
  resolve: resolve2,
16240
16246
  pid: o.pid
16241
16247
  });
@@ -16244,7 +16250,7 @@ function createContext(o) {
16244
16250
  const syncKernel = new JsSyncKernel(lane, kernel, unwind);
16245
16251
  held2 = heldOn(o.held, lane, syncKernel);
16246
16252
  const terminal = ttyOps(kernel, syncKernel);
16247
- const shared = { pid: o.pid, resolve: resolve2, random: random2, infos, handles, closing };
16253
+ const shared = { pid: o.pid, resolve: resolve2, random: random2, infos, handles, closing, clean };
16248
16254
  const wasi = wasiFor({ lane, pid: o.pid, cwd: o.cwd, resolve: resolve2, fs: o.fs, owned: o.owned });
16249
16255
  const sync = {
16250
16256
  kernel: KERNEL_INFO,
@@ -16451,7 +16457,7 @@ async function sendSome(kernel, fd, body, signal) {
16451
16457
  await kernel.blocking({ op: "fd-select", read: [], write: [fd], timeoutMs: -1 }, signal);
16452
16458
  }
16453
16459
  }
16454
- function pathOps(kernel, resolve2, statOf, open, tryDev) {
16460
+ function pathOps(kernel, resolve2, statOf, open, tryDev, clean) {
16455
16461
  return {
16456
16462
  stat: (path) => statOf("stat", path),
16457
16463
  lstat: (path) => statOf("lstat", path),
@@ -16502,7 +16508,7 @@ function pathOps(kernel, resolve2, statOf, open, tryDev) {
16502
16508
  const abs = resolve2(path);
16503
16509
  if (inDev(abs)) return readWhole(await open(abs));
16504
16510
  try {
16505
- await kernel.call({ op: "fd-path-flush", path: abs });
16511
+ if (!clean()) await kernel.call({ op: "fd-path-flush", path: abs });
16506
16512
  return await kernel.bytes({ op: "read", path: abs });
16507
16513
  } catch (err) {
16508
16514
  if (!(err instanceof JsCallError) || err.code !== "ENOENT") throw err;
@@ -16531,6 +16537,7 @@ var init_js_context = __esm({
16531
16537
  "src/process/js/js-context.ts"() {
16532
16538
  "use strict";
16533
16539
  init_captured_globals();
16540
+ init_changes();
16534
16541
  init_physical_path();
16535
16542
  init_held_cwd();
16536
16543
  init_signals();
@@ -16742,6 +16749,7 @@ async function runJs(init, port3, deps, thread) {
16742
16749
  cwd: init.cwd,
16743
16750
  exit: (status3) => exited(statusOf(status3)),
16744
16751
  lane: laneOf(init.lane),
16752
+ changes: init.changes,
16745
16753
  fs: { owners: init.owners === true, links: init.links === true },
16746
16754
  strays,
16747
16755
  thread: threadContext(port3, thread),