Skip to content

Commit 23ce960

Browse files
committed
docs: 4.3.5 changelogs for the Android subinterpreter fix
Detailed entries in serious_python (umbrella) and serious_python_android for the PEP 734 subinterpreter fix (the previous commit); aligning "no changes" notes in darwin / windows / linux / platform_interface, matching the lockstep versioning of the previous releases. No runtime changes (Python 3.12.13/3.13.14/3.14.6, dart_bridge 1.5.0 unchanged from 4.3.4); pubspec version bumps land with the release.
1 parent 9760cdc commit 23ce960

6 files changed

Lines changed: 25 additions & 0 deletions

File tree

src/serious_python/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 4.3.5
2+
3+
* **Android:** PEP 734 subinterpreters (Python 3.14's `concurrent.interpreters` / `InterpreterPoolExecutor`) now work in built apps. Previously the main interpreter could import them, but every *subinterpreter* failed to import any relocated C extension (`ModuleNotFoundError: _struct` / `_interpqueues` / ...) — which broke the whole feature (its cross-interpreter transport pickles → `_struct`, and its queues need `_interpqueues`). The native-module finder lives on `sys.meta_path`, which is per-interpreter, and was installed only in the main interpreter. See `serious_python_android` 4.3.5.
4+
* No runtime changes: bundled Python versions (**3.12.13 / 3.13.14 / 3.14.6**) and `dart_bridge` (**1.5.0**) are unchanged from 4.3.4.
5+
16
## 4.3.4
27

38
* **Windows/Linux:** desktop apps on Python **3.14** no longer crash at startup with `ModuleNotFoundError: No module named '_pyrepl'` when the app (or a dependency, e.g. NLTK) imports `pydoc` or `pdb`. `_pyrepl` was pruned from the desktop stdlib as a dev-only module, but 3.14's `pydoc`/`pdb` import it at module load. See `serious_python_windows` / `serious_python_linux` 4.3.4 and flet-dev/serious-python#236.

src/serious_python_android/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 4.3.5
2+
3+
* **PEP 734 subinterpreters now work** (Python 3.14 `concurrent.interpreters` / `InterpreterPoolExecutor`) — enabling true multi-core CPU parallelism inside a single process, which `multiprocessing` cannot provide on Android. Previously the main interpreter imported the machinery fine, but every subinterpreter raised `ModuleNotFoundError` for `_struct` / `_interpqueues` / any other C extension, so `InterpreterPoolExecutor` and the low-level API were unusable. Cause: Android relocates C extensions (native-mmap packaging) and resolves them through `_SorefFinder` on `sys.meta_path`; `sys.meta_path` is per-interpreter, and `install()` only ran in the main interpreter, so a freshly created subinterpreter had a `meta_path` without the finder. Fix: `_sp_bootstrap.install()` now also wraps `concurrent.interpreters.create()` so every new interpreter installs the finder before use. The install runs via `Interpreter.exec()` — a source string, which is pickle-free (unlike `Interpreter.call()`), so it works *before* `_struct` is importable in the child. Because `InterpreterPoolExecutor` builds its workers via `concurrent.interpreters.create()`, the pool is fixed transparently with no user-code change. A no-op before 3.14; iOS/desktop were unaffected.
4+
15
## 4.3.4
26

37
* Re-pins the bundled python-build snapshot to **20260719** (previously 20260714). The snapshot un-prunes `_pyrepl` on Windows/Linux desktop only; Android already shipped `_pyrepl` (un-pruned in 4.3.2), so these runtimes are byte-identical to 20260714.

src/serious_python_darwin/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 4.3.5
2+
3+
* Version bump aligning with the `serious_python_*` 4.3.5 release (an Android subinterpreter fix). No Apple-affecting changes.
4+
15
## 4.3.4
26

37
* Re-pins the bundled python-build snapshot to **20260719** (previously 20260714). The snapshot un-prunes `_pyrepl` on Windows/Linux desktop (fixing a 3.14 `pydoc`/`pdb` crash — see `serious_python_windows` / `serious_python_linux` 4.3.4); iOS/macOS already shipped `_pyrepl` (un-pruned in 4.3.2), so these runtimes are byte-identical to 20260714. No iOS/macOS-affecting changes.

src/serious_python_linux/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 4.3.5
2+
3+
* Version bump aligning with the `serious_python_*` 4.3.5 release (an Android subinterpreter fix). No Linux-affecting changes.
4+
15
## 4.3.4
26

37
* **Fix `ModuleNotFoundError: No module named '_pyrepl'` on Python 3.14.** `_pyrepl` was pruned from the bundled Linux stdlib as a dev-only / interactive-REPL module, but CPython 3.14's `pydoc` (and `pdb`) import it at module load — so any app importing `pydoc`/`pdb`/`pytest`, or a dependency that does (e.g. NLTK → `pydoc`), crashed at startup. `_pyrepl` is no longer pruned. Re-pins the bundled python-build snapshot to **20260719** (previously 20260714). ([flet-dev/serious-python#236](https://github.com/flet-dev/serious-python/issues/236))

src/serious_python_platform_interface/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 4.3.5
2+
3+
* Version bump aligning with the `serious_python_*` 4.3.5 release (an Android subinterpreter fix). No interface changes.
4+
15
## 4.3.4
26

37
* Version bump aligning with the `serious_python_*` 4.3.4 release (desktop `_pyrepl` fix + Android `flet debug` cache fix). No interface changes.

src/serious_python_windows/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 4.3.5
2+
3+
* Version bump aligning with the `serious_python_*` 4.3.5 release (an Android subinterpreter fix). No Windows-affecting changes.
4+
15
## 4.3.4
26

37
* **Fix `ModuleNotFoundError: No module named '_pyrepl'` on Python 3.14.** `_pyrepl` was pruned from the bundled Windows stdlib as a dev-only / interactive-REPL module, but CPython 3.14's `pydoc` (and `pdb`) import it at module load — so any app importing `pydoc`/`pdb`/`pytest`, or a dependency that does (e.g. NLTK → `pydoc`), crashed at startup. `_pyrepl` is no longer pruned. Re-pins the bundled python-build snapshot to **20260719** (previously 20260714). ([flet-dev/serious-python#236](https://github.com/flet-dev/serious-python/issues/236))

0 commit comments

Comments
 (0)