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

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.
package/PRESTAGE.md CHANGED
@@ -1,6 +1,6 @@
1
- # wasix-ruby 3.4.11-13
1
+ # wasix-ruby 3.4.11-14
2
2
 
3
- Built against wasix-sysroot **2025.9.30-28**. **No epoll**: SLICC returns ENOSYS (52)
3
+ Built against wasix-sysroot **2025.9.30-30**. **No epoll**: SLICC returns ENOSYS (52)
4
4
  for `epoll_create`; MRI is compiled with `USE_MN_THREADS=0` and
5
5
  `HAVE_SYS_EPOLL_H=0` (also kqueue/eventfd/timerfd off) so it uses poll()/timer-thread.
6
6
 
@@ -18,7 +18,8 @@ linked against /home/runner/work/homescoop/homescoop/packages/wasix-ruby/work/de
18
18
 
19
19
  ## Relocation / RUBYLIB
20
20
  - Stdlib under `lib/ruby/<API>` (e.g. **3.4.0**), arch `…/wasm32-wasi/rbconfig.rb`.
21
- - `RUBYLIB` = site_ruby + vendor_ruby + api (+ each `/wasm32-wasi`), all `${package}/…`.
21
+ - `RUBYLIB` = api + `/wasm32-wasi` (and site_ruby, vendor_ruby when they hold files;
22
+ npm packs no empty directory), all `${package}/…`.
22
23
  - **Certify only** at `/shared/lib/node_modules/@ai-ecoverse/wasix-ruby` with
23
24
  manifest env. Never at `/ruby` (hides missing RUBYLIB — -3 false pass).
24
25
 
package/README.md CHANGED
@@ -37,6 +37,28 @@ 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-14: wasix-sysroot 2025.9.30-30
41
+
42
+ - POSIX record locks: `require "fcntl"` now defines `Fcntl::F_GETLK`,
43
+ `F_SETLK`, `F_SETLKW` and `F_RDLCK`/`F_WRLCK`/`F_UNLCK` (up to 3.4.11-13
44
+ they were missing: `NameError`), and `IO#fcntl` passes them to slicc-kernel
45
+ (≥ 1.100.0), which keeps the locks per process, as Linux does. A
46
+ `Process.spawn`ed ruby asking for a write lock on a range another process
47
+ holds gets `Errno::EAGAIN`, `F_SETLKW` waits for the unlock, and `F_GETLK`
48
+ 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,
50
+ pid].pack("s s x4 q q l x4")` (32 bytes). `File#flock` is unchanged: an
51
+ advisory no-op that succeeds (`bundle install` and `gem install` lock
52
+ their files with it).
53
+ - `RUBYLIB` names only the package's library directories that exist,
54
+ `lib/ruby/3.4.0` and its `wasm32-wasi`. Up to 3.4.11-13 it also named
55
+ `site_ruby` and `vendor_ruby` (and their `wasm32-wasi`), which npm never
56
+ packs because they are empty, so every require of the standard library
57
+ first probed four missing directories. `ruby -rirb -e 1` makes about 16%
58
+ fewer file-system calls (slicc-kernel#774).
59
+ - wasix-sysroot -29 and -30 also bring `poll` with `events` 0 and named
60
+ semaphores (no Ruby API uses them).
61
+
40
62
  ## 3.4.11-13: wasix-sysroot 2025.9.30-28
41
63
 
42
64
  A rebuild on wasix-sysroot -28, whose libc keeps real signal masks through
@@ -236,7 +236,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
236
236
  SOFTWARE.
237
237
  ```
238
238
 
239
- ## wasix-libc (@ai-ecoverse/wasix-sysroot 2025.9.30-28; files from tag v2025-09-02.1)
239
+ ## wasix-libc (@ai-ecoverse/wasix-sysroot 2025.9.30-30; files from tag v2025-09-02.1)
240
240
 
241
241
  ```text
242
242
  wasi-libc as a whole is multi-licensed under the
package/bin/ruby CHANGED
Binary file
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/wasix-ruby",
3
- "version": "3.4.11-13",
4
- "description": "MRI Ruby for slicc WASIX (no epoll; asyncify spill 65536; date_core; wasix-sysroot 2025.9.30-28: user ids, traps and times from slicc-kernel)",
3
+ "version": "3.4.11-14",
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
6
  "slicc-kernel": ">=1.44.0"
7
7
  },
8
8
  "license": "Ruby",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/ai-ecoverse/homescoop.git",
12
+ "directory": "packages/wasix-ruby/package"
13
+ },
9
14
  "files": [
10
15
  "README.md",
11
16
  "LICENSE",
@@ -34,7 +39,7 @@
34
39
  "wasm": "bin/ruby",
35
40
  "env": {
36
41
  "PATH": "${HOME}/.local/share/gem/ruby/3.4.0/bin:${package}/bin:${PATH}",
37
- "RUBYLIB": "${package}/lib/ruby/site_ruby/3.4.0:${package}/lib/ruby/site_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/vendor_ruby/3.4.0:${package}/lib/ruby/vendor_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
42
+ "RUBYLIB": "${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
38
43
  "GEM_HOME": "${HOME}/.local/share/gem/ruby/3.4.0",
39
44
  "GEM_PATH": "${HOME}/.local/share/gem/ruby/3.4.0:${package}/lib/ruby/gems/3.4.0"
40
45
  }
@@ -46,7 +51,7 @@
46
51
  ],
47
52
  "env": {
48
53
  "PATH": "${HOME}/.local/share/gem/ruby/3.4.0/bin:${package}/bin:${PATH}",
49
- "RUBYLIB": "${package}/lib/ruby/site_ruby/3.4.0:${package}/lib/ruby/site_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/vendor_ruby/3.4.0:${package}/lib/ruby/vendor_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
54
+ "RUBYLIB": "${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
50
55
  "GEM_HOME": "${HOME}/.local/share/gem/ruby/3.4.0",
51
56
  "GEM_PATH": "${HOME}/.local/share/gem/ruby/3.4.0:${package}/lib/ruby/gems/3.4.0"
52
57
  }
@@ -58,7 +63,7 @@
58
63
  ],
59
64
  "env": {
60
65
  "PATH": "${HOME}/.local/share/gem/ruby/3.4.0/bin:${package}/bin:${PATH}",
61
- "RUBYLIB": "${package}/lib/ruby/site_ruby/3.4.0:${package}/lib/ruby/site_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/vendor_ruby/3.4.0:${package}/lib/ruby/vendor_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
66
+ "RUBYLIB": "${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
62
67
  "GEM_HOME": "${HOME}/.local/share/gem/ruby/3.4.0",
63
68
  "GEM_PATH": "${HOME}/.local/share/gem/ruby/3.4.0:${package}/lib/ruby/gems/3.4.0"
64
69
  }
@@ -70,7 +75,7 @@
70
75
  ],
71
76
  "env": {
72
77
  "PATH": "${HOME}/.local/share/gem/ruby/3.4.0/bin:${package}/bin:${PATH}",
73
- "RUBYLIB": "${package}/lib/ruby/site_ruby/3.4.0:${package}/lib/ruby/site_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/vendor_ruby/3.4.0:${package}/lib/ruby/vendor_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
78
+ "RUBYLIB": "${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
74
79
  "GEM_HOME": "${HOME}/.local/share/gem/ruby/3.4.0",
75
80
  "GEM_PATH": "${HOME}/.local/share/gem/ruby/3.4.0:${package}/lib/ruby/gems/3.4.0"
76
81
  }
@@ -82,7 +87,7 @@
82
87
  ],
83
88
  "env": {
84
89
  "PATH": "${HOME}/.local/share/gem/ruby/3.4.0/bin:${package}/bin:${PATH}",
85
- "RUBYLIB": "${package}/lib/ruby/site_ruby/3.4.0:${package}/lib/ruby/site_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/vendor_ruby/3.4.0:${package}/lib/ruby/vendor_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
90
+ "RUBYLIB": "${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
86
91
  "GEM_HOME": "${HOME}/.local/share/gem/ruby/3.4.0",
87
92
  "GEM_PATH": "${HOME}/.local/share/gem/ruby/3.4.0:${package}/lib/ruby/gems/3.4.0"
88
93
  }
@@ -94,7 +99,7 @@
94
99
  ],
95
100
  "env": {
96
101
  "PATH": "${HOME}/.local/share/gem/ruby/3.4.0/bin:${package}/bin:${PATH}",
97
- "RUBYLIB": "${package}/lib/ruby/site_ruby/3.4.0:${package}/lib/ruby/site_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/vendor_ruby/3.4.0:${package}/lib/ruby/vendor_ruby/3.4.0/wasm32-wasi:${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
102
+ "RUBYLIB": "${package}/lib/ruby/3.4.0:${package}/lib/ruby/3.4.0/wasm32-wasi",
98
103
  "GEM_HOME": "${HOME}/.local/share/gem/ruby/3.4.0",
99
104
  "GEM_PATH": "${HOME}/.local/share/gem/ruby/3.4.0:${package}/lib/ruby/gems/3.4.0"
100
105
  }