@ai-ecoverse/wasix-python 3.14.2-18 → 3.14.2-19

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/README.md CHANGED
@@ -4,9 +4,9 @@ CPython 3.14 for slicc WASIX (`commands` `python` / `python3`).
4
4
 
5
5
  ## Features
6
6
 
7
- - PIE dynamic-main (`dylink.0`) on wasix-sysroot 2025.9.30-27's `sysroot-ehpic` (legacy wasm EH), SOABI `cpython-314-wasm32-wasix`; native side modules (py-numpy, py-scipy, py-pandas, …) load by `dlopen`
7
+ - PIE dynamic-main (`dylink.0`) on wasix-sysroot 2025.9.30-28's `sysroot-ehpic` (legacy wasm EH), SOABI `cpython-314-wasm32-wasix`; native side modules (py-numpy, py-scipy, py-pandas, …) load by `dlopen`
8
8
  - **File modes** (3.14.2-12, on slicc-kernel ≥ 1.35.1; older kernels keep the no-op modes): `os.umask`, `open()`/`os.mkdir` create modes, `os.chmod`, `tempfile.mkstemp` 600 / `mkdtemp` 700, pip console scripts 755
9
- - Built in: `ssl`/`hashlib` (OpenSSL 3.5.9, `@ai-ecoverse/wasix-openssl`), `zlib` 1.3.1, `bz2`, `lzma` (xz 5.8.4), `sqlite3` (3.53.4; FTS5, JSON, math, R*Tree; no WAL, no extensions), `readline` 8.3 (ncurses 6.5 terminfo compiled in: xterm, screen, tmux, vt100, linux), `ctypes` / `_ctypes` (wasix-org/libffi; needs slicc-kernel#306 step 1 for `call_dynamic` + `closure_{allocate,free}`), `mmap`, `fcntl`, `termios`, `resource`, `pwd`, `grp`, `select`
9
+ - Built in: `ssl`/`hashlib` (OpenSSL 3.5.9, `@ai-ecoverse/wasix-openssl`), `zlib` 1.3.1, `bz2`, `lzma` (xz 5.8.4), `sqlite3` (3.54.0; FTS5, JSON, math, R*Tree; no WAL, no extensions), `readline` 8.3 (ncurses 6.5 terminfo compiled in: xterm, screen, tmux, vt100, linux), `ctypes` / `_ctypes` (wasix-org/libffi; needs slicc-kernel#306 step 1 for `call_dynamic` + `closure_{allocate,free}`), `mmap`, `fcntl`, `termios`, `resource`, `pwd`, `grp`, `select`
10
10
  - No `fork`/`vfork`; `subprocess` via `os.posix_spawn` (`proc_spawn2`/`3`)
11
11
  - `os.getuid()`/`getgid()`/`getgroups()` and `pwd`/`grp` come from slicc-kernel's process credentials and its `/etc/passwd`/`/etc/group` (3.14.2-13, wasix-sysroot -20; slicc-kernel ≥ 1.44.0, no fallback: ids are -1 on older kernels). Root is uid 0 with home `/root`.
12
12
  - Advisory file locks (`flock`, `fcntl` F_SETLK*, `lockf`) are no-ops (Emscripten parity)
@@ -18,6 +18,18 @@ CPython 3.14 for slicc WASIX (`commands` `python` / `python3`).
18
18
 
19
19
  Since 3.14.2-12 the package is cross-built from source in CI (`build.sh`); see `THIRD-PARTY-NOTICES.md` for the statically linked libraries.
20
20
 
21
+ Since 3.14.2-19 (wasix-sysroot -28):
22
+ - signal masks are real: `signal.pthread_sigmask` blocks and unblocks
23
+ through slicc-kernel (≥ 1.88.0), a blocked signal stays pending
24
+ (`signal.sigpending()`) without running its handler or interrupting
25
+ `time.sleep`, and its handler runs once when it is unblocked. Up to
26
+ 3.14.2-18 `pthread_sigmask` raised `OSError(0, 'Error')`. Kernels
27
+ before 1.88.0 take wasix-sysroot -28's ENOSYS fallback (its README).
28
+ `signal.sigtimedwait`/`sigwaitinfo`/`sigwait` raise ENOSYS (slicc-kernel#520);
29
+ - `sqlite3` (3.54.0 since this release, 3.53.4 before) keeps its compile options; `PRAGMA compile_options` adds `MAX_SCHEMA=10000000`;
30
+ - `THIRD-PARTY-NOTICES.md` carries the licence text of every statically
31
+ linked component (see the license paragraph below).
32
+
21
33
  Since 3.14.2-18:
22
34
  - `ctypes.CDLL(None)` has no `fork` (nor `_Fork`, `__wasi_proc_fork`, …):
23
35
  python.wasm no longer exports them (homescoop#296). In 3.14.2-17 calling
@@ -106,8 +118,16 @@ Since 3.14.2-14 (wasix-sysroot -21):
106
118
  a byte), and `os.get_terminal_size` and `isatty` answer per descriptor
107
119
  (slicc-kernel ≥ 1.48.0; older kernels keep the previous behaviour).
108
120
 
109
- The license is `PSF-2.0 AND GPL-3.0-or-later`, because GNU Readline is linked
110
- statically. Since 3.14.2-13, `time.tzset()` exists and honours POSIX `TZ` rules.
121
+ The license is `PSF-2.0 AND GPL-3.0-or-later`, because GNU Readline
122
+ (GPL-3.0-or-later) is linked statically: `bin/python.wasm` as a whole is a
123
+ combined work distributed under the GPL-3.0-or-later. CPython's PSF-2.0 and
124
+ the other linked components' licences are GPL-compatible. If you redistribute
125
+ `python.wasm`, or an application that bundles it, the GPL-3.0's terms apply to
126
+ it: redistributors pass on the Corresponding Source, which is the homescoop
127
+ repository at the release's commit plus the sha256-pinned upstream archives
128
+ its recipe lists; homescoop keeps those available. Since 3.14.2-19,
129
+ `THIRD-PARTY-NOTICES.md` has every linked component's licence text, not just a
130
+ table. Since 3.14.2-13, `time.tzset()` exists and honours POSIX `TZ` rules.
111
131
  The sysconfig records (`_sysconfigdata*`, `_sysconfig_vars*.json`) carry no
112
132
  build-machine paths, host compilers or private stub archives.
113
133