@ai-ecoverse/slicc-kernel 1.93.2 → 1.93.3

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.
@@ -9348,7 +9348,7 @@ function statOf(attr2, path, mount) {
9348
9348
  size: attr2.size,
9349
9349
  mode: attr2.mode ?? fallback,
9350
9350
  mtime,
9351
- atime: mtime,
9351
+ atime: attr2.atime === void 0 ? mtime : new Date(attr2.atime),
9352
9352
  ctime: mtime,
9353
9353
  ino: attr2.ino ?? inodeOf(path),
9354
9354
  ...!inodeless(mount, attr2) && attr2.nlink !== void 0 ? { nlink: attr2.nlink } : {},
@@ -10393,7 +10393,7 @@ var MountFs = class _MountFs {
10393
10393
  ([to], n) => this.utimes(to, atime, mtime, n)
10394
10394
  );
10395
10395
  }
10396
- await this.setMtime(found, real, mtime);
10396
+ await this.setTimes(found, real, atime, mtime);
10397
10397
  }
10398
10398
  async lutimes(path, atime, mtime, redirects = 0) {
10399
10399
  const found = this.at(path);
@@ -10410,12 +10410,13 @@ var MountFs = class _MountFs {
10410
10410
  if (!found.mount.caps.linkTimes && (await this.lstat(real)).isSymbolicLink) {
10411
10411
  throw errnoError("EOPNOTSUPP", path);
10412
10412
  }
10413
- await this.setMtime(found, real, mtime);
10413
+ await this.setTimes(found, real, atime, mtime);
10414
10414
  }
10415
- async setMtime(found, real, mtime) {
10415
+ async setTimes(found, real, atime, mtime) {
10416
10416
  this.writable(found.mount, real);
10417
10417
  this.table.forget(found.mount, real);
10418
- await found.mount.conn.call({ op: "setattr", path: found.rel, mtime: mtime.getTime() });
10418
+ const times = { mtime: mtime.getTime(), atime: atime.getTime() };
10419
+ await found.mount.conn.call({ op: "setattr", path: found.rel, ...times });
10419
10420
  }
10420
10421
  noLinks() {
10421
10422
  const noLinkBase = this.base.noLinks.call(this.base);
@@ -11569,7 +11570,7 @@ function mountTable(mounts = []) {
11569
11570
  }
11570
11571
 
11571
11572
  // src/version.ts
11572
- var KERNEL_VERSION = true ? "1.93.2" : "0.0.0-dev";
11573
+ var KERNEL_VERSION = true ? "1.93.3" : "0.0.0-dev";
11573
11574
  var OS_RELEASE = "6.0.0-slicc";
11574
11575
  function procVersion() {
11575
11576
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -17091,6 +17092,12 @@ function withOwner(base, owner) {
17091
17092
  function fsError2(code, message3 = code) {
17092
17093
  return Object.assign(new Error(message3), { code });
17093
17094
  }
17095
+ var SET_ATTRS = ["mode", "mtime", "atime", "size", "uid", "gid"];
17096
+ function setAttrOf(req) {
17097
+ const attr2 = {};
17098
+ for (const key of SET_ATTRS) if (req[key] !== void 0) attr2[key] = req[key];
17099
+ return attr2;
17100
+ }
17094
17101
  async function dispatch(h, req) {
17095
17102
  switch (req.op) {
17096
17103
  case "getattr":
@@ -17135,13 +17142,7 @@ async function dispatch(h, req) {
17135
17142
  if (!h.readlink) throw fsError2("EINVAL", `${req.path} is not a symlink`);
17136
17143
  return h.readlink(req.path);
17137
17144
  case "setattr":
17138
- return h.setattr?.(req.path, {
17139
- ...req.mode !== void 0 ? { mode: req.mode } : {},
17140
- ...req.mtime !== void 0 ? { mtime: req.mtime } : {},
17141
- ...req.size !== void 0 ? { size: req.size } : {},
17142
- ...req.uid !== void 0 ? { uid: req.uid } : {},
17143
- ...req.gid !== void 0 ? { gid: req.gid } : {}
17144
- });
17145
+ return h.setattr?.(req.path, setAttrOf(req));
17145
17146
  case "statfs":
17146
17147
  return h.statfs?.() ?? null;
17147
17148
  default:
@@ -18250,11 +18251,13 @@ function idOption2(value) {
18250
18251
  return value !== void 0 && /^\d+$/.test(value) ? Number(value) : 0;
18251
18252
  }
18252
18253
  function created2(ino, kind, mode, from, owner) {
18254
+ const now = Date.now();
18253
18255
  return {
18254
18256
  kind,
18255
18257
  ino,
18256
18258
  mode: owner?.mode === void 0 ? mode : mode & ~4095 | owner.mode & 4095,
18257
- mtime: Date.now(),
18259
+ mtime: now,
18260
+ atime: now,
18258
18261
  data: new ChunkedBytes(),
18259
18262
  target: "",
18260
18263
  children: /* @__PURE__ */ new Map(),
@@ -18272,6 +18275,7 @@ function attr(node) {
18272
18275
  kind: node.kind,
18273
18276
  size: node.kind === "file" ? node.data.size : node.kind === "symlink" ? node.target.length : 4096,
18274
18277
  mtime: node.mtime,
18278
+ atime: node.atime,
18275
18279
  mode: node.mode,
18276
18280
  ino: node.ino,
18277
18281
  ...node.kind === "directory" ? {} : { nlink: node.links },
@@ -18434,6 +18438,7 @@ function tmpfs() {
18434
18438
  node.mtime = Date.now();
18435
18439
  }
18436
18440
  if (change.mtime !== void 0) node.mtime = change.mtime;
18441
+ if (change.atime !== void 0) node.atime = change.atime;
18437
18442
  owned3(node, change);
18438
18443
  },
18439
18444
  async statfs() {