@ai-ecoverse/wasm-gawk 5.4.1-2 → 5.4.1-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.
Files changed (3) hide show
  1. package/bin/gawk +43 -22
  2. package/bin/gawk.wasm +0 -0
  3. package/package.json +1 -1
package/bin/gawk CHANGED
@@ -1560,8 +1560,10 @@ async function createWasm() {
1560
1560
  path = FS.cwd() + '/' + path;
1561
1561
  }
1562
1562
 
1563
- // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
1564
- linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) {
1563
+ // limit max consecutive symlinks to 40 (SYMLOOP_MAX): pass 0 follows
1564
+ // none, so 40 follows take 41 passes and the 41st follow is ELOOP, as
1565
+ // on Linux (homescoop#461).
1566
+ linkloop: for (var nlinks = 0; nlinks <= 40; nlinks++) {
1565
1567
  // split the absolute path
1566
1568
  var parts = path.split('/').filter((p) => !!p);
1567
1569
 
@@ -3679,6 +3681,15 @@ async function createWasm() {
3679
3681
  }
3680
3682
  }
3681
3683
 
3684
+ var stringToUTF8 = (str, outPtr, maxBytesToWrite) => {
3685
+ return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
3686
+ };
3687
+ var ___syscall_uname = (buf) => {
3688
+ if (!buf) return -21;
3689
+ ['Emscripten', 'emscripten', '4.0.23', '#1', 'wasm32'].forEach((field, i) => stringToUTF8(field, buf + i * 65, 65));
3690
+ return 0;
3691
+ };
3692
+
3682
3693
  var __abort_js = () =>
3683
3694
  abort('');
3684
3695
 
@@ -3827,9 +3838,6 @@ async function createWasm() {
3827
3838
  return BigInt(ret);
3828
3839
  };
3829
3840
 
3830
- var stringToUTF8 = (str, outPtr, maxBytesToWrite) => {
3831
- return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
3832
- };
3833
3841
  var __tzset_js = (timezone, daylight, std_name, dst_name) => {
3834
3842
  // TODO: Use (malleable) environment variables instead of system settings.
3835
3843
  var currentYear = new Date().getFullYear();
@@ -4158,23 +4166,22 @@ async function createWasm() {
4158
4166
 
4159
4167
  /** @param {number=} offset */
4160
4168
  var doWritev = (stream, iov, iovcnt, offset) => {
4161
- var ret = 0;
4162
- for (var i = 0; i < iovcnt; i++) {
4163
- var ptr = HEAPU32[((iov)>>2)];
4164
- var len = HEAPU32[(((iov)+(4))>>2)];
4165
- iov += 8;
4166
- var curr = FS.write(stream, HEAP8, ptr, len, offset);
4167
- if (curr < 0) return -1;
4168
- ret += curr;
4169
- if (curr < len) {
4170
- // No more space to write.
4171
- break;
4172
- }
4173
- if (typeof offset != 'undefined') {
4174
- offset += curr;
4175
- }
4169
+ if (iovcnt == 1) {
4170
+ return FS.write(stream, HEAP8, HEAPU32[iov >> 2], HEAPU32[(iov + 4) >> 2], offset);
4176
4171
  }
4177
- return ret;
4172
+ var total = 0;
4173
+ for (var i = 0, p = iov; i < iovcnt; i++, p += 8) {
4174
+ total += HEAPU32[(p + 4) >> 2];
4175
+ }
4176
+ var view = new Uint8Array(total);
4177
+ var voff = 0;
4178
+ for (var i = 0; i < iovcnt; i++, iov += 8) {
4179
+ var ptr = HEAPU32[iov >> 2];
4180
+ var len = HEAPU32[(iov + 4) >> 2];
4181
+ view.set(HEAPU8.subarray(ptr, ptr + len), voff);
4182
+ voff += len;
4183
+ }
4184
+ return FS.write(stream, view, 0, total, offset);
4178
4185
  };
4179
4186
 
4180
4187
  function _fd_write(fd, iov, iovcnt, pnum) {
@@ -4276,6 +4283,10 @@ if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];
4276
4283
 
4277
4284
  // end include: postlibrary.js
4278
4285
 
4286
+ function slicc_cred_js(out) { const k = Module.sliccKernel; if (!k || !k.cred) return -52; const c = k.cred(); if (typeof c === 'number') return c; ['ruid', 'euid', 'suid', 'rgid', 'egid', 'sgid'].forEach((key, i) => { HEAPU32[(out >> 2) + i] = c[key] >>> 0; }); return 0; }
4287
+ function slicc_groups_js(list,cap) { const k = Module.sliccKernel; if (!k || !k.cred) return -52; const c = k.cred(); if (typeof c === 'number') return c; if (cap === 0) return c.groups.length; if (cap < c.groups.length) return -28; c.groups.forEach((g, i) => { HEAPU32[(list >> 2) + i] = g >>> 0; }); return c.groups.length; }
4288
+ function slicc_setcred_js(ruid,euid,suid,rgid,egid,sgid) { const k = Module.sliccKernel; if (!k || !k.setcred) return -52; const change = {}; const ids = { ruid, euid, suid, rgid, egid, sgid }; for (const key in ids) if (ids[key] !== -1) change[key] = ids[key] >>> 0; const r = k.setcred(change); return typeof r === 'number' ? r : 0; }
4289
+ function slicc_setgroups_js(list,n) { const k = Module.sliccKernel; if (!k || !k.setcred) return -52; const groups = []; for (let i = 0; i < n; i++) groups.push(HEAPU32[(list >> 2) + i]); const r = k.setcred({ groups }); return typeof r === 'number' ? r : 0; }
4279
4290
  function slicc_net_ready() { return Module.sliccKernel && Module.sliccKernel.net ? 1 : 0; }
4280
4291
  function slicc_socket_js(unix_domain,nonblock,cloexec) { return Module.sliccKernel.net.socket(unix_domain ? 'unix' : 'inet', !!nonblock, !!cloexec); }
4281
4292
  function slicc_socketpair_js(unix_domain,nonblock,cloexec,fds) { const r = Module.sliccKernel.net.socketpair(unix_domain ? 'unix' : 'inet', !!nonblock, !!cloexec); if (typeof r === 'number') return r; HEAP32[fds >> 2] = r[0]; HEAP32[(fds >> 2) + 1] = r[1]; return 0; }
@@ -4304,7 +4315,8 @@ function slicc_poll_js(fds,n,timeout_ms) { const IN = 0x001 | 0x040; const OUT =
4304
4315
  function slicc_jobs_js(op,a,b) { const k = Module.sliccKernel; if (!k || !k.setpgid) return -0x40000000; switch (op) { case 0: return k.setpgid(a, b); case 1: return k.getpgid(a); case 2: return k.getsid(a); case 3: return k.setsid(); case 4: return k.tcgetpgrp(a); case 5: return k.tcsetpgrp(a, b); } return -52; }
4305
4316
 
4306
4317
  // Imports from the Wasm binary.
4307
- var _fflush,
4318
+ var _slicc_cred_euid,
4319
+ _fflush,
4308
4320
  _main,
4309
4321
  _slicc_sigpipe,
4310
4322
  _slicc_raise,
@@ -4321,6 +4333,7 @@ var _fflush,
4321
4333
 
4322
4334
 
4323
4335
  function assignWasmExports(wasmExports) {
4336
+ _slicc_cred_euid = Module['_slicc_cred_euid'] = wasmExports['slicc_cred_euid'];
4324
4337
  _fflush = wasmExports['fflush'];
4325
4338
  _main = Module['_main'] = wasmExports['__main_argc_argv'];
4326
4339
  _slicc_sigpipe = Module['_slicc_sigpipe'] = wasmExports['slicc_sigpipe'];
@@ -4365,6 +4378,8 @@ var wasmImports = {
4365
4378
  /** @export */
4366
4379
  __syscall_stat64: ___syscall_stat64,
4367
4380
  /** @export */
4381
+ __syscall_uname: ___syscall_uname,
4382
+ /** @export */
4368
4383
  _abort_js: __abort_js,
4369
4384
  /** @export */
4370
4385
  _emscripten_runtime_keepalive_clear: __emscripten_runtime_keepalive_clear,
@@ -4433,6 +4448,8 @@ var wasmImports = {
4433
4448
  /** @export */
4434
4449
  slicc_bind_js,
4435
4450
  /** @export */
4451
+ slicc_cred_js,
4452
+ /** @export */
4436
4453
  slicc_default_getpid_js,
4437
4454
  /** @export */
4438
4455
  slicc_default_getppid_js,
@@ -4443,6 +4460,8 @@ var wasmImports = {
4443
4460
  /** @export */
4444
4461
  slicc_execve_js,
4445
4462
  /** @export */
4463
+ slicc_groups_js,
4464
+ /** @export */
4446
4465
  slicc_in_emulated_fork,
4447
4466
  /** @export */
4448
4467
  slicc_jobs_js,
@@ -4453,6 +4472,8 @@ var wasmImports = {
4453
4472
  /** @export */
4454
4473
  slicc_net_ready,
4455
4474
  /** @export */
4475
+ slicc_pause_js,
4476
+ /** @export */
4456
4477
  slicc_poll_js,
4457
4478
  /** @export */
4458
4479
  slicc_recv_js,
package/bin/gawk.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/wasm-gawk",
3
- "version": "5.4.1-2",
3
+ "version": "5.4.1-3",
4
4
  "description": "GNU awk for slicc (WASM / emscripten, SLICC homescoop)",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": {