Skip to content

Commit c14ccce

Browse files
committed
Updates based on feedback
1 parent 9e3781a commit c14ccce

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

peps/pep-NNNN.rst

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ There is roughly an annual release cadence for new WASI versions while there's n
2929
Agreeing on which WASI and WASI SDK versions to support allows for clear targeting of the CPython code base towards those versions.
3030
This lets the community set appropriate expectations as to what will (not) be considered a bug if it only manifests itself under a different WASI or WASI SDK version.
3131
It also provides the community an overall target for WASI and WASI SDK for any specific Python version when building other software like libraries.
32-
This is important as WASI SDK is NOT forwards- or backwards-compatible in the ABI it produces, making broad coordination important so code works together.
32+
This is important as WASI SDK is NOT forwards- or backwards-compatible due to the ABI of wasi-libc not making any compatibility guarantees, making broad coordination important so code works together.
33+
34+
This coordination and recording around version targets can be important in situations where the selected versions is non-obvious.
35+
For example, WASI SDK 26 and 27 have a `bug <https://github.com/WebAssembly/wasi-libc/issues/617>`__ which cause CPython to hang in certain situations (including exiting the REPL).
36+
Because the bug is in thread support code it wouldn't necessarily be obvious to others in the community that CPython will not target those versions and thus 3rd-party code shouldn't bother with those versions as well.
3337

3438

3539
Rationale
@@ -38,7 +42,7 @@ Rationale
3842
[What do we have to consider when coming up with a spec?]
3943

4044
While technically separate, CPython cannot support a version of WASI until WASI SDK supports it.
41-
WASI versions are considered backwards-compatible with each other, but WASI SDK is NOT compatible forwards or backwards in terms of the ABI it produces.
45+
WASI versions are considered backwards-compatible with each other, but WASI SDK is NOT compatible forwards or backwards thanks to wasi-libc not having ABI compatibility guarantees.
4246
As such, it's important to set support expectations for a specific WASI SDK version in CPython.
4347
Historically, the support difference between WASI SDK versions for CPython have involved settings in the ``config.site`` file that is maintained for WASI.
4448
Support issues have come up due to bugs in WASI SDK itself.
@@ -62,6 +66,8 @@ The WASI and WASI SDK version supported by a CPython version in CI or its stable
6266
If there is a discrepancy between CI and the Buildbot builder for some reason, the WASI maintainers as specified by :pep:`11` will choose which sets of versions will be designated as the versions to support.
6367

6468
The WASI version and WASI SDK version supported for a Python version MUST be recorded in this PEP as an official record.
69+
If for some reason a supported version needs to change after being recorded, a note will be made as to when and why the change was made.
70+
Such a change is at the discretion of the maintainers of WASI support as listed in :pep:`11` and does not require steering council approval.
6571

6672
Any updates to :pep:`11` to reflect the appropriate WASI version for the target triple for the main branch MUST be made as needed, but it does NOT require steering council approval to update.
6773
The steering council is spared needing to approve such an update as it does not constitute a new platform and is more in line with a new OS release which currently does not require steering council approval.
@@ -77,10 +83,10 @@ Subsequently, this PEP only records the major version of WASI SDK until such tim
7783
====== ==== ========
7884
Python WASI WASI SDK
7985
====== ==== ========
80-
3.14 p1 24
81-
3.13 p1 24
82-
3.12 p1 16
83-
3.11 p1 16
86+
3.14 0.1 24
87+
3.13 0.1 24
88+
3.12 0.1 16
89+
3.11 0.1 16
8490
====== ==== ========
8591

8692

@@ -93,7 +99,7 @@ The version support for those versions is based on what was supported when this
9399
WASI was a tier 3 platform according to :pep:`11` for Python 3.11 and 3.12.
94100
WASI became a tier 2 platform starting with Python 3.13.
95101

96-
WASI 0.2 support has been skipped due to lack of time until it was deemed better to go straight to WASI 0.3 instead.
102+
WASI 0.2 support has been skipped due to lack of time, to the point that it was deemed better to go straight to WASI 0.3 instead.
97103
This is based on a recommendation from the `Bytecode Alliance`_.
98104

99105
WASI SDK 26 and 27 have a `bug <https://github.com/WebAssembly/wasi-libc/issues/617>`__ which causes CPython to hang in certain situations, and so they have been skipped.

0 commit comments

Comments
 (0)