You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: peps/pep-NNNN.rst
+13-7Lines changed: 13 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,11 @@ There is roughly an annual release cadence for new WASI versions while there's n
29
29
Agreeing on which WASI and WASI SDK versions to support allows for clear targeting of the CPython code base towards those versions.
30
30
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.
31
31
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.
33
37
34
38
35
39
Rationale
@@ -38,7 +42,7 @@ Rationale
38
42
[What do we have to consider when coming up with a spec?]
39
43
40
44
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.
42
46
As such, it's important to set support expectations for a specific WASI SDK version in CPython.
43
47
Historically, the support difference between WASI SDK versions for CPython have involved settings in the ``config.site`` file that is maintained for WASI.
44
48
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
62
66
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.
63
67
64
68
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.
65
71
66
72
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.
67
73
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
77
83
====== ==== ========
78
84
Python WASI WASI SDK
79
85
====== ==== ========
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
84
90
====== ==== ========
85
91
86
92
@@ -93,7 +99,7 @@ The version support for those versions is based on what was supported when this
93
99
WASI was a tier 3 platform according to :pep:`11` for Python 3.11 and 3.12.
94
100
WASI became a tier 2 platform starting with Python 3.13.
95
101
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.
97
103
This is based on a recommendation from the `Bytecode Alliance`_.
98
104
99
105
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