@ai-ecoverse/wasix-ruby 3.4.11-14 → 3.4.11-16

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 (2) hide show
  1. package/README.md +24 -1
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -37,6 +37,29 @@ fails. `io/console` is built, so `irb` and reline work.
37
37
 
38
38
  `TZ` is ignored: wasix-libc's localtime is UTC only (homescoop#193).
39
39
 
40
+ ## 3.4.11-16: the engines floor, and bundle exec
41
+
42
+ The `engines` floor (slicc-kernel ≥ 1.100.0, below) is enforced from
43
+ slicc-kernel 1.106.2 on: its command catalog refuses a package whose
44
+ `engines.slicc-kernel` the running kernel doesn't meet
45
+ (ai-ecoverse/slicc-kernel#797). Older kernels install the package without a
46
+ warning, and there `fcntl` record locks aren't real: use slicc-kernel ≥
47
+ 1.100.0 (homescoop#651).
48
+
49
+ From slicc-kernel 1.106.2 the commands' `/usr/bin` entries are real files
50
+ (slicc-kernel#762), so `bundle exec ruby …` no longer warns
51
+ `/usr/bin/ruby is empty` (homescoop#379). Older kernels print that warning,
52
+ and the command still runs.
53
+
54
+ ## 3.4.11-15: needs slicc-kernel ≥ 1.100.0
55
+
56
+ A packaging-only release of 3.4.11-14 (the same files): `engines` now asks
57
+ for slicc-kernel ≥ 1.100.0, the first kernel with `slicc.fcntl_lock`. On an
58
+ older kernel the libc grants every `IO#fcntl` record lock locally, so two
59
+ processes could both hold a write lock on the same bytes and lose data;
60
+ refusing to install there is the honest answer (homescoop#552). Up to -14
61
+ `engines` said ≥ 1.44.0.
62
+
40
63
  ## 3.4.11-14: wasix-sysroot 2025.9.30-30
41
64
 
42
65
  - POSIX record locks: `require "fcntl"` now defines `Fcntl::F_GETLK`,
@@ -46,7 +69,7 @@ fails. `io/console` is built, so `irb` and reline work.
46
69
  `Process.spawn`ed ruby asking for a write lock on a range another process
47
70
  holds gets `Errno::EAGAIN`, `F_SETLKW` waits for the unlock, and `F_GETLK`
48
71
  names the holder. On an older kernel every lock is granted locally and
49
- `F_GETLK` answers `F_UNLCK`. The struct is `[type, whence, start, len,
72
+ `F_GETLK` answers `F_UNLCK` (hence -15's `engines` floor). The struct is `[type, whence, start, len,
50
73
  pid].pack("s s x4 q q l x4")` (32 bytes). `File#flock` is unchanged: an
51
74
  advisory no-op that succeeds (`bundle install` and `gem install` lock
52
75
  their files with it).
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/wasix-ruby",
3
- "version": "3.4.11-14",
3
+ "version": "3.4.11-16",
4
4
  "description": "MRI Ruby for slicc WASIX (no epoll; asyncify spill 65536; date_core; wasix-sysroot 2025.9.30-30: user ids, traps and times from slicc-kernel)",
5
5
  "engines": {
6
- "slicc-kernel": ">=1.44.0"
6
+ "slicc-kernel": ">=1.100.0"
7
7
  },
8
8
  "license": "Ruby",
9
9
  "repository": {