@ai-ecoverse/slicc-kernel 1.166.3 → 1.166.5

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.
@@ -1689,19 +1689,22 @@ var init_wasi_files = __esm({
1689
1689
  });
1690
1690
 
1691
1691
  // src/realm/sync-sab-wire.ts
1692
+ function copyWindow(out, window, chunk, at) {
1693
+ setBytes.call(out, bytesPart.call(window, 0, chunk), at);
1694
+ }
1692
1695
  function loadBlocked(header) {
1693
- return [capturedAtomics.load(header, SAB_I_BLOCKED), capturedAtomics.load(header, SAB_I_BLOCKED_HI)];
1696
+ return [sabLoad(header, SAB_I_BLOCKED), sabLoad(header, SAB_I_BLOCKED_HI)];
1694
1697
  }
1695
1698
  function storeBlocked(header, [low, high]) {
1696
- capturedAtomics.store(header, SAB_I_BLOCKED_HI, high);
1697
- capturedAtomics.store(header, SAB_I_BLOCKED, low);
1699
+ sabStore(header, SAB_I_BLOCKED_HI, high);
1700
+ sabStore(header, SAB_I_BLOCKED, low);
1698
1701
  }
1699
1702
  function loadU53(header, lo, hi) {
1700
- return (capturedAtomics.load(header, lo) >>> 0) + capturedAtomics.load(header, hi) * U32;
1703
+ return (sabLoad(header, lo) >>> 0) + sabLoad(header, hi) * U32;
1701
1704
  }
1702
1705
  function publishMemory(sab, bytes) {
1703
1706
  if (bytes > 0)
1704
- capturedAtomics.store(new capturedInt32Array(sab, 0, SAB_HEADER_I32), SAB_I_MEMORY, capturedMath.ceil(bytes / 65536));
1707
+ sabStore(new capturedInt32Array(sab, 0, SAB_HEADER_I32), SAB_I_MEMORY, capturedMath.ceil(bytes / 65536));
1705
1708
  }
1706
1709
  function decodeSabResult(status2, payload) {
1707
1710
  switch (status2) {
@@ -1711,14 +1714,14 @@ function decodeSabResult(status2, payload) {
1711
1714
  return { ok: true, kind: "void" };
1712
1715
  case SAB_STATUS_JSON: {
1713
1716
  try {
1714
- return { ok: true, kind: "json", json: capturedJSON.parse(decoder.decode(payload)) };
1717
+ return { ok: true, kind: "json", json: capturedJSON.parse(decodeText.call(decoder, payload)) };
1715
1718
  } catch {
1716
1719
  return { ok: false, errno: "EIO", message: "sync-sab: malformed json payload" };
1717
1720
  }
1718
1721
  }
1719
1722
  case SAB_STATUS_ERRNO: {
1720
1723
  try {
1721
- const parsed = capturedJSON.parse(decoder.decode(payload));
1724
+ const parsed = capturedJSON.parse(decodeText.call(decoder, payload));
1722
1725
  const errno2 = typeof parsed.errno === "string" && /^E[A-Z]+$|^EAI_[A-Z]+$/.test(parsed.errno) ? parsed.errno : "EIO";
1723
1726
  const message2 = capturedString(parsed.message ?? errno2);
1724
1727
  return {
@@ -1745,11 +1748,20 @@ function sabViews(sab) {
1745
1748
  window: new capturedUint8Array(sab, SAB_HEADER_BYTES)
1746
1749
  };
1747
1750
  }
1748
- var SAB_HEADER_I32, SAB_CLOCK_OFFSET, SAB_CLOCK_I64, SAB_HEADER_BYTES, SAB_I_STATE, SAB_I_SEQ, SAB_I_STATUS, SAB_I_TOTAL, SAB_I_CHUNK, SAB_I_OFFSET, SAB_I_REQ, SAB_I_PUB, SAB_I_SIGNALS, SAB_I_TIMERS, SAB_I_MEMORY, SAB_I_TOTAL_HI, SAB_I_OFFSET_HI, SAB_I_KILLED, SAB_I_ASYNC, SAB_I_STOP, SAB_I_BLOCKED, SAB_I_BLOCKED_HI, anyBlocked, U32, SAB_STATE_IDLE, SAB_STATE_PENDING, SAB_STATE_READY, SAB_STATUS_BYTES, SAB_STATUS_JSON, SAB_STATUS_VOID, SAB_STATUS_ERRNO, SAB_DEFAULT_WINDOW_BYTES, SAB_MIN_BYTES, SYNC_SAB_REQ_MSG, SYNC_SAB_NEXT_MSG, encoder, decoder;
1751
+ var atomicLoad, atomicStore, atomicWaitAsync, setBytes, bytesPart, decodeText, sabLoad, sabStore, sabWaitAsync, SAB_HEADER_I32, SAB_CLOCK_OFFSET, SAB_CLOCK_I64, SAB_HEADER_BYTES, SAB_I_STATE, SAB_I_SEQ, SAB_I_STATUS, SAB_I_TOTAL, SAB_I_CHUNK, SAB_I_OFFSET, SAB_I_REQ, SAB_I_PUB, SAB_I_SIGNALS, SAB_I_TIMERS, SAB_I_MEMORY, SAB_I_TOTAL_HI, SAB_I_OFFSET_HI, SAB_I_KILLED, SAB_I_ASYNC, SAB_I_STOP, SAB_I_BLOCKED, SAB_I_BLOCKED_HI, anyBlocked, U32, SAB_STATE_IDLE, SAB_STATE_PENDING, SAB_STATE_READY, SAB_STATUS_BYTES, SAB_STATUS_JSON, SAB_STATUS_VOID, SAB_STATUS_ERRNO, SAB_DEFAULT_WINDOW_BYTES, SAB_MIN_BYTES, SYNC_SAB_REQ_MSG, SYNC_SAB_NEXT_MSG, encoder, decoder;
1749
1752
  var init_sync_sab_wire = __esm({
1750
1753
  "src/realm/sync-sab-wire.ts"() {
1751
1754
  "use strict";
1752
1755
  init_captured_globals();
1756
+ atomicLoad = capturedAtomics.load;
1757
+ atomicStore = capturedAtomics.store;
1758
+ atomicWaitAsync = capturedAtomics.waitAsync;
1759
+ setBytes = capturedUint8Array.prototype.set;
1760
+ bytesPart = capturedUint8Array.prototype.subarray;
1761
+ decodeText = capturedTextDecoder.prototype.decode;
1762
+ sabLoad = (a, i) => atomicLoad(a, i);
1763
+ sabStore = (a, i, v) => atomicStore(a, i, v);
1764
+ sabWaitAsync = atomicWaitAsync;
1753
1765
  SAB_HEADER_I32 = 18;
1754
1766
  SAB_CLOCK_OFFSET = SAB_HEADER_I32 * 4;
1755
1767
  SAB_CLOCK_I64 = 3;
@@ -1992,9 +2004,9 @@ function useLocalClock(sab) {
1992
2004
  if (!local) return;
1993
2005
  localSab = sab;
1994
2006
  localStart = epochMicros();
1995
- const wait2 = (typed, index3, value2, timeout) => localWait(
1996
- () => rawWait(typed, index3, value2, timeout),
1997
- timeout !== 0 && capturedAtomics.load(typed, index3) === value2
2007
+ const wait2 = (typed3, index3, value2, timeout) => localWait(
2008
+ () => rawWait(typed3, index3, value2, timeout),
2009
+ timeout !== 0 && capturedAtomics.load(typed3, index3) === value2
1998
2010
  );
1999
2011
  capturedAtomics.wait = wait2;
2000
2012
  }
@@ -2185,7 +2197,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2185
2197
  const now = deps.now ?? (() => capturedperformance.now());
2186
2198
  let seq = 0;
2187
2199
  let typical = 0;
2188
- const ready = (id) => capturedAtomics.load(header, SAB_I_STATE) === SAB_STATE_READY && capturedAtomics.load(header, SAB_I_SEQ) === id;
2200
+ const ready = (id) => sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id;
2189
2201
  function spinUntil(id, until) {
2190
2202
  for (let stride = 0; stride < SPIN_STRIDES; stride++) {
2191
2203
  for (let i = 0; i < SPIN_STRIDE; i++) if (ready(id)) return true;
@@ -2203,7 +2215,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2203
2215
  return;
2204
2216
  }
2205
2217
  for (; ; ) {
2206
- const published = capturedAtomics.load(header, SAB_I_PUB);
2218
+ const published = sabLoad(header, SAB_I_PUB);
2207
2219
  if (ready(id)) {
2208
2220
  settled2(start2);
2209
2221
  return;
@@ -2214,7 +2226,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2214
2226
  }
2215
2227
  }
2216
2228
  return {
2217
- call(asked, timeoutMs2, label, given = []) {
2229
+ call(asked, timeoutMs2, label, given = [], sink) {
2218
2230
  if (deps.memory) publishMemory(sab, deps.memory());
2219
2231
  const { req, transfer } = exactBody(asked, given);
2220
2232
  const id = ++seq;
@@ -2222,10 +2234,10 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2222
2234
  let out = null;
2223
2235
  let status2 = 0;
2224
2236
  let offset = 0;
2225
- capturedAtomics.store(header, SAB_I_REQ, id);
2237
+ sabStore(header, SAB_I_REQ, id);
2226
2238
  try {
2227
2239
  for (; ; ) {
2228
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_PENDING);
2240
+ sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
2229
2241
  const msg = offset === 0 ? { type: SYNC_SAB_REQ_MSG, id, req } : { type: SYNC_SAB_NEXT_MSG, id, offset };
2230
2242
  try {
2231
2243
  if (offset === 0 && transfer.length > 0) port3.postMessage(msg, transfer);
@@ -2235,28 +2247,34 @@ function createSyncSabTransport(sab, port3, deps = {}) {
2235
2247
  }
2236
2248
  awaitReady(id, now() + timeoutMs2, label);
2237
2249
  const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
2238
- const chunk = capturedAtomics.load(header, SAB_I_CHUNK);
2250
+ const chunk = sabLoad(header, SAB_I_CHUNK);
2239
2251
  const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
2240
2252
  if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
2241
2253
  throw syncError("EIO", label);
2242
2254
  }
2243
2255
  if (out === null) {
2244
- status2 = capturedAtomics.load(header, SAB_I_STATUS);
2245
- out = new capturedUint8Array(total);
2256
+ status2 = sabLoad(header, SAB_I_STATUS);
2257
+ out = landing(status2, total, sink);
2246
2258
  }
2247
- out.set(window.subarray(0, chunk), offset);
2259
+ copyWindow(out, window, chunk, offset);
2248
2260
  offset += chunk;
2249
2261
  if (offset >= total) break;
2250
2262
  if (chunk === 0) throw syncError("EIO", label);
2251
2263
  }
2252
2264
  } finally {
2253
- capturedAtomics.store(header, SAB_I_REQ, 0);
2254
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_IDLE);
2265
+ sabStore(header, SAB_I_REQ, 0);
2266
+ sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
2255
2267
  }
2256
2268
  return decodeSabResult(status2, out);
2257
2269
  }
2258
2270
  };
2259
2271
  }
2272
+ function landing(status2, total, sink) {
2273
+ if (!sink || status2 !== SAB_STATUS_BYTES || total > lengthOf.call(sink)) {
2274
+ return new capturedUint8Array(total);
2275
+ }
2276
+ return new capturedUint8Array(bufferOf.call(sink), offsetOf.call(sink), total);
2277
+ }
2260
2278
  function errnoError(code2, path, direct) {
2261
2279
  const err = syncError(code2, `sync-sab bridge, '${path}'`);
2262
2280
  return direct ? capturedObject.assign(err, { direct }) : err;
@@ -2448,7 +2466,7 @@ function createSyncFsSabBridge(transport, opts = {}) {
2448
2466
  )
2449
2467
  };
2450
2468
  }
2451
- var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS;
2469
+ var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS, typed, getter, bufferOf, offsetOf, lengthOf;
2452
2470
  var init_sync_sab_bridge = __esm({
2453
2471
  "src/realm/sync-sab-bridge.ts"() {
2454
2472
  "use strict";
@@ -2466,6 +2484,11 @@ var init_sync_sab_bridge = __esm({
2466
2484
  SPIN_CORES = 4;
2467
2485
  spinning = (capturedGlobalThis.navigator?.hardwareConcurrency ?? 0) >= SPIN_CORES;
2468
2486
  SPIN_CAP_MS = 1;
2487
+ typed = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
2488
+ getter = (name2) => capturedObject.getOwnPropertyDescriptor(typed, name2)?.get;
2489
+ bufferOf = getter("buffer");
2490
+ offsetOf = getter("byteOffset");
2491
+ lengthOf = getter("length");
2469
2492
  }
2470
2493
  });
2471
2494
 
@@ -2480,8 +2503,8 @@ function createAsyncSabTransport(sab, port3, waitAsync = defaultWaitAsync) {
2480
2503
  let tail = capturedPromise.resolve();
2481
2504
  async function ready(id) {
2482
2505
  for (; ; ) {
2483
- const published = capturedAtomics.load(header, SAB_I_PUB);
2484
- if (capturedAtomics.load(header, SAB_I_STATE) === SAB_STATE_READY && capturedAtomics.load(header, SAB_I_SEQ) === id) {
2506
+ const published = sabLoad(header, SAB_I_PUB);
2507
+ if (sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id) {
2485
2508
  return;
2486
2509
  }
2487
2510
  await changed(header, SAB_I_PUB, published, waitAsync);
@@ -2493,31 +2516,31 @@ function createAsyncSabTransport(sab, port3, waitAsync = defaultWaitAsync) {
2493
2516
  let out = null;
2494
2517
  let status2 = 0;
2495
2518
  let offset = 0;
2496
- capturedAtomics.store(header, SAB_I_REQ, id);
2519
+ sabStore(header, SAB_I_REQ, id);
2497
2520
  try {
2498
2521
  for (; ; ) {
2499
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_PENDING);
2522
+ sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
2500
2523
  if (offset === 0) port3.postMessage({ type: SYNC_SAB_REQ_MSG, id, req }, transfer);
2501
2524
  else port3.postMessage({ type: SYNC_SAB_NEXT_MSG, id, offset });
2502
2525
  await ready(id);
2503
2526
  const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
2504
- const chunk = capturedAtomics.load(header, SAB_I_CHUNK);
2527
+ const chunk = sabLoad(header, SAB_I_CHUNK);
2505
2528
  const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
2506
2529
  if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
2507
2530
  return { ok: false, errno: "EIO", message: "sync-sab: torn reply" };
2508
2531
  }
2509
2532
  if (out === null) {
2510
- status2 = capturedAtomics.load(header, SAB_I_STATUS);
2533
+ status2 = sabLoad(header, SAB_I_STATUS);
2511
2534
  out = new capturedUint8Array(total);
2512
2535
  }
2513
- out.set(window.subarray(0, chunk), offset);
2536
+ copyWindow(out, window, chunk, offset);
2514
2537
  offset += chunk;
2515
2538
  if (offset >= total) break;
2516
2539
  if (chunk === 0) return { ok: false, errno: "EIO", message: "sync-sab: empty chunk" };
2517
2540
  }
2518
2541
  } finally {
2519
- capturedAtomics.store(header, SAB_I_REQ, 0);
2520
- capturedAtomics.store(header, SAB_I_STATE, SAB_STATE_IDLE);
2542
+ sabStore(header, SAB_I_REQ, 0);
2543
+ sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
2521
2544
  }
2522
2545
  return decodeSabResult(status2, out);
2523
2546
  }
@@ -2536,7 +2559,7 @@ var init_async_sab = __esm({
2536
2559
  init_captured_globals();
2537
2560
  init_sync_sab_bridge();
2538
2561
  init_sync_sab_wire();
2539
- defaultWaitAsync = (a, i, v) => capturedAtomics.waitAsync(a, i, v);
2562
+ defaultWaitAsync = (a, i, v) => sabWaitAsync(a, i, v);
2540
2563
  }
2541
2564
  });
2542
2565
 
@@ -7465,7 +7488,7 @@ var init_version = __esm({
7465
7488
  "src/version.ts"() {
7466
7489
  "use strict";
7467
7490
  init_captured_globals();
7468
- KERNEL_VERSION = true ? "1.166.3" : "0.0.0-dev";
7491
+ KERNEL_VERSION = true ? "1.166.5" : "0.0.0-dev";
7469
7492
  OS_RELEASE = "6.0.0-slicc";
7470
7493
  }
7471
7494
  });
@@ -10233,7 +10256,7 @@ function errnoOf(err) {
10233
10256
  const errno2 = err?.errno;
10234
10257
  return typeof errno2 === "number" ? errno2 : wasiErrno("EIO");
10235
10258
  }
10236
- function sizeOf(Fs, stream) {
10259
+ function sizeOf2(Fs, stream) {
10237
10260
  const st = Fs.fstat?.(stream.fd);
10238
10261
  return st?.size ?? 0;
10239
10262
  }
@@ -10264,7 +10287,7 @@ function refused2(kind, flags) {
10264
10287
  return kind === "write" && access === O_RDONLY || kind === "read" && access === O_WRONLY4;
10265
10288
  }
10266
10289
  function baseOf2(Fs, stream) {
10267
- return (whence) => whence === SEEK_CUR3 ? stream.position : whence === SEEK_END3 ? sizeOf(Fs, stream) : 0;
10290
+ return (whence) => whence === SEEK_CUR3 ? stream.position : whence === SEEK_END3 ? sizeOf2(Fs, stream) : 0;
10268
10291
  }
10269
10292
  function recordLock(fcntl, deps) {
10270
10293
  return (fd, cmd, varargs) => {
@@ -10687,7 +10710,7 @@ function syncFsync(imports, fs, glue) {
10687
10710
  };
10688
10711
  }
10689
10712
  }
10690
- function offsetOf(rest2) {
10713
+ function offsetOf2(rest2) {
10691
10714
  const at = rest2.length >= 3 ? capturedNumber(rest2[1]) * 2 ** 32 + (capturedNumber(rest2[0]) >>> 0) : capturedNumber(capturedBigInt.asIntN(64, capturedBigInt(rest2[0])));
10692
10715
  return at >= 0 && capturedNumber.isSafeInteger(at) ? at : void 0;
10693
10716
  }
@@ -10709,7 +10732,7 @@ function positioned(original, write2, deps) {
10709
10732
  if (kfd === void 0 || !memory || !(write2 ? deps.sys.pwrite : deps.sys.pread)) {
10710
10733
  return original(fd, iov, iovcnt, ...rest2);
10711
10734
  }
10712
- const at = offsetOf(rest2);
10735
+ const at = offsetOf2(rest2);
10713
10736
  if (at === void 0) return wasiErrno("EINVAL");
10714
10737
  const view = new capturedDataView(memory.buffer);
10715
10738
  let done = 0;
@@ -12559,13 +12582,17 @@ var init_js_run = __esm({
12559
12582
  });
12560
12583
 
12561
12584
  // src/process/js/js-sync.ts
12585
+ function viewOf(into, at, length) {
12586
+ return new capturedUint8Array(bufferOf2.call(into), offsetOf3.call(into) + at, length);
12587
+ }
12562
12588
  function laneOf(lane, silence = SYNC_FS_REQUEST_TIMEOUT_MS, open = createSyncSabTransport) {
12563
12589
  if (!lane) return noLane;
12564
12590
  const transport = open(lane.sab, lane.port);
12565
- return (req) => {
12566
- if (!READ_ONLY.has(req.op)) return transport.call(req, capturedNumber.POSITIVE_INFINITY, req.op);
12591
+ return (req, sink) => {
12592
+ if (!READ_ONLY.has(req.op))
12593
+ return transport.call(req, capturedNumber.POSITIVE_INFINITY, req.op, void 0, sink);
12567
12594
  try {
12568
- return transport.call(req, silence, req.op);
12595
+ return transport.call(req, silence, req.op, void 0, sink);
12569
12596
  } catch (err) {
12570
12597
  const errno2 = err?.code;
12571
12598
  return {
@@ -12731,10 +12758,17 @@ function syncFile(kernel, fd, path, append, forget) {
12731
12758
  live();
12732
12759
  const max = capturedMath.min(length - got, MAX_PREAD);
12733
12760
  if (max <= 0) break;
12734
- const chunk = kernel.bytes({ op: "fd-pread", fd, offset: position + got, max });
12761
+ const req = { op: "fd-pread", fd, offset: position + got, max };
12762
+ if (target) {
12763
+ const at = target.at + got;
12764
+ const n = kernel.bytesInto(req, viewOf(target.into, at, max));
12765
+ if (n === 0) break;
12766
+ got += n;
12767
+ continue;
12768
+ }
12769
+ const chunk = kernel.bytes(req);
12735
12770
  if (chunk.length === 0) break;
12736
- if (target) target.into.set(chunk, target.at + got);
12737
- else parts.push(chunk);
12771
+ parts.push(chunk);
12738
12772
  got += chunk.length;
12739
12773
  } while (got < length);
12740
12774
  return target ? got : joined(parts, got);
@@ -12863,7 +12897,7 @@ function syncPathOps(kernel, resolve2, statOf, open, clean) {
12863
12897
  }
12864
12898
  };
12865
12899
  }
12866
- var encoder4, noLane, READ_ONLY, JsSyncKernel;
12900
+ var encoder4, typed2, getter2, bufferOf2, offsetOf3, setInto, noLane, READ_ONLY, JsSyncKernel;
12867
12901
  var init_js_sync = __esm({
12868
12902
  "src/process/js/js-sync.ts"() {
12869
12903
  "use strict";
@@ -12878,6 +12912,11 @@ var init_js_sync = __esm({
12878
12912
  init_js_proc();
12879
12913
  init_js_rights();
12880
12914
  encoder4 = new capturedTextEncoder();
12915
+ typed2 = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
12916
+ getter2 = (name2) => capturedObject.getOwnPropertyDescriptor(typed2, name2)?.get;
12917
+ bufferOf2 = getter2("buffer");
12918
+ offsetOf3 = getter2("byteOffset");
12919
+ setInto = capturedUint8Array.prototype.set;
12881
12920
  noLane = () => ({ ok: false, errno: "ENOSYS", message: "no sync lane" });
12882
12921
  READ_ONLY = new capturedSet([...SYNC_FS_READ_ONLY, "fd-path-flush"]);
12883
12922
  JsSyncKernel = class {
@@ -12890,9 +12929,9 @@ var init_js_sync = __esm({
12890
12929
  this.kernel = kernel;
12891
12930
  this.unwind = unwind;
12892
12931
  }
12893
- raw(req) {
12932
+ raw(req, sink) {
12894
12933
  this.unwind();
12895
- const result = this.lane(req);
12934
+ const result = this.lane(req, sink);
12896
12935
  this.kernel.deliver();
12897
12936
  this.unwind();
12898
12937
  return result;
@@ -12910,6 +12949,15 @@ var init_js_sync = __esm({
12910
12949
  const result = this.call(req);
12911
12950
  return result.ok && result.kind === "bytes" ? result.bytes : new capturedUint8Array(0);
12912
12951
  }
12952
+ bytesInto(req, sink) {
12953
+ const result = this.raw(req, sink);
12954
+ if (!result.ok) throw callError(result, req.op);
12955
+ if (result.kind !== "bytes") return 0;
12956
+ const { bytes } = result;
12957
+ if (bufferOf2.call(bytes) !== bufferOf2.call(sink) || offsetOf3.call(bytes) !== offsetOf3.call(sink))
12958
+ setInto.call(sink, bytes);
12959
+ return bytes.length;
12960
+ }
12913
12961
  blocking(req) {
12914
12962
  for (; ; ) {
12915
12963
  const result = this.raw(req);
@@ -19097,7 +19145,7 @@ function fillMemory(memory, copy2) {
19097
19145
  if (pages2 > 0) memory.grow(pages2);
19098
19146
  new capturedUint8Array(memory.buffer).set(copy2);
19099
19147
  }
19100
- function sizeOf2(main) {
19148
+ function sizeOf3(main) {
19101
19149
  return () => main.memory?.buffer.byteLength ?? 0;
19102
19150
  }
19103
19151
  function memoryOf(instance, imported2) {
@@ -19326,7 +19374,7 @@ async function runWasiProcess(init, port3) {
19326
19374
  call: kernelCall,
19327
19375
  say,
19328
19376
  gate
19329
- } = kernelOf(init, port3, signals, sizeOf2(main));
19377
+ } = kernelOf(init, port3, signals, sizeOf3(main));
19330
19378
  const id = identify(transport, init);
19331
19379
  const stats = init.env.SLICC_WASI_STATS === "1" ? new WasiStats() : void 0;
19332
19380
  const call3 = stats ? timedCalls(stats, kernelCall) : kernelCall;
@@ -19388,7 +19436,7 @@ async function runWasiProcess(init, port3) {
19388
19436
  });
19389
19437
  restoreExportedMemory(instance, memory, init);
19390
19438
  main.memory = memoryOf(instance, memory);
19391
- publishMemory(init.sab, sizeOf2(main)());
19439
+ publishMemory(init.sab, sizeOf3(main)());
19392
19440
  port3.postMessage({ type: WASM_PROCESS_READY });
19393
19441
  signals.bind(instance.exports);
19394
19442
  if (importsSigactionHook(module)) signals.useHook();
@@ -19813,6 +19861,17 @@ function programScript(name2, hash) {
19813
19861
  }
19814
19862
  var SOURCE_NAMES = 4096;
19815
19863
  var sourceNames = new capturedSet();
19864
+ var setDelete = capturedSet.prototype.delete;
19865
+ var setValues = capturedSet.prototype.values;
19866
+ var sizeOf = capturedObject.getOwnPropertyDescriptor(capturedSet.prototype, "size")?.get;
19867
+ var nextOf = capturedObject.getPrototypeOf(new capturedSet().values()).next;
19868
+ function noteName(name2) {
19869
+ if (apply(setDelete, sourceNames, [name2]) !== true && apply(sizeOf, sourceNames, []) >= SOURCE_NAMES) {
19870
+ const oldest = apply(nextOf, apply(setValues, sourceNames, []), []);
19871
+ apply(setDelete, sourceNames, [oldest.value]);
19872
+ }
19873
+ apply(setAdd, sourceNames, [name2]);
19874
+ }
19816
19875
  function programName(name2) {
19817
19876
  return apply(startsWith, name2, ["data:"]) === true || apply(setHas, programNames, [name2]) === true || apply(setHas, sourceNames, [name2]) === true;
19818
19877
  }
@@ -19824,7 +19883,7 @@ function noteSourceUrls(trace) {
19824
19883
  if (typeof origin !== "string" || evalAt(origin)) continue;
19825
19884
  const name2 = apply(nameOf, site, []);
19826
19885
  if (typeof name2 !== "string" || apply(setHas, ownNames, [name2]) === true) continue;
19827
- if (sourceNames.size < SOURCE_NAMES) apply(setAdd, sourceNames, [name2]);
19886
+ noteName(name2);
19828
19887
  }
19829
19888
  }
19830
19889
  function rootOrigin(origin) {
@@ -20092,8 +20151,8 @@ function refuseModules() {
20092
20151
  const known = sources.get(url);
20093
20152
  if (known !== void 0) return { format: "module", source: known, shortCircuit: true };
20094
20153
  const payload = url.startsWith(BASE64_MODULE) ? url.slice(BASE64_MODULE.length) : "";
20095
- const typed = capturedObject.keys(context.importAttributes ?? {}).length > 0;
20096
- if (typed || payload.length % 4 !== 0 || !PLAIN_BASE64.test(payload))
20154
+ const typed3 = capturedObject.keys(context.importAttributes ?? {}).length > 0;
20155
+ if (typed3 || payload.length % 4 !== 0 || !PLAIN_BASE64.test(payload))
20097
20156
  return next2(url, context);
20098
20157
  const source = toText(fromBase64(payload, "base64"), "utf8");
20099
20158
  return { format: "module", source, shortCircuit: true };