@ai-ecoverse/wasix-python 3.14.2-15 → 3.14.2-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.
package/README.md CHANGED
@@ -18,6 +18,24 @@ 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-16 (wasix-sysroot -22: the `slicc.libc` marker, no exported
22
+ itimer helper):
23
+ - ctypes calls variadic C functions (`printf`, `snprintf`, `sscanf`,
24
+ `open(path, flags, mode)`, `fcntl`, `ioctl`, …): our libffi passes the
25
+ variadic arguments the way the wasm32 C ABI does
26
+ (`patches/libffi-wasix-varargs.patch`). As on Apple arm64, set `argtypes` to
27
+ the **fixed** parameters (e.g. `[c_char_p]` for `printf`) and pass the rest
28
+ as typed ctypes values (`c_int`, `c_double`, …); without `argtypes` every
29
+ argument is taken as fixed, which is wrong for a variadic function on wasm32.
30
+ Pass `c_double` for `%f`: ctypes does not promote, and a variadic `c_float`
31
+ raises `RuntimeError: ffi_prep_cif_var failed` (libffi rejects it, as on
32
+ every platform).
33
+ - Signals during blocking calls follow PEP 475 on slicc-kernel ≥ 1.53.3, which
34
+ answers -22-marked programs with EINTR: a signal whose handler returns does
35
+ not shorten `time.sleep`/`select`/`poll`, and ^C raises `KeyboardInterrupt`
36
+ at once (`cert/signals.mjs`).
37
+ 3.14.2-15 could not call them at all ("ffi_prep_cif_var failed").
38
+
21
39
  Since 3.14.2-15:
22
40
  - `ctypes` / `_ctypes` (wasix-org/libffi) — needs slicc-kernel ≥ 1.51.0 (#306 /
23
41
  #316: `call_dynamic`, `closure_{allocate,prepare,free}`, POSIX `dlopen(NULL)` /
@@ -12,8 +12,8 @@ bin/python.wasm statically links:
12
12
  | SQLite | 3.53.4 | public domain | sqlite.org |
13
13
  | GNU Readline | 8.3 | GPL-3.0-or-later | gnu.org/software/readline |
14
14
  | ncurses (tinfo) | 6.5 | X11 | invisible-island.net/ncurses |
15
- | libffi | 3.5.1 | MIT | github.com/wasix-org/libffi |
16
- | wasix-libc | wasix-sysroot 2025.9.30-21 | Apache-2.0 WITH LLVM-exception, MIT | @ai-ecoverse/wasix-sysroot |
15
+ | libffi | 3.5.1 (wasix-org 09cbf7d + patches/libffi-wasix-varargs.patch) | MIT | github.com/wasix-org/libffi |
16
+ | wasix-libc | wasix-sysroot 2025.9.30-22 | Apache-2.0 WITH LLVM-exception, MIT | @ai-ecoverse/wasix-sysroot |
17
17
  | libc++, libc++abi, libunwind | wasix-libc v2026-07-03.1 sysroot-ehpic | Apache-2.0 WITH LLVM-exception | github.com/wasix-org/wasix-libc |
18
18
 
19
19
  lib/python3.14/site-packages/pip is pip (MIT), from CPython's ensurepip bundle.
package/bin/python.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/wasix-python",
3
- "version": "3.14.2-15",
3
+ "version": "3.14.2-16",
4
4
  "description": "CPython 3.14 for slicc WASIX (commands python, python3; cross-built in CI on wasix-sysroot)",
5
5
  "license": "PSF-2.0 AND GPL-3.0-or-later",
6
6
  "engines": {