diff options
author | Andrew Clayton <a.clayton@nginx.com> | 2022-11-17 21:56:58 +0000 |
---|---|---|
committer | Andrew Clayton <a.clayton@nginx.com> | 2022-12-06 02:51:03 +0000 |
commit | 491d0f700f5690eba0f1fcf2124f3a37ef73eb1a (patch) | |
tree | 2b841e1443e2cd14080f2d8378a438d8ab084681 /docs/changes.xml | |
parent | dfededabdc47caa548c7d7bd62133e0d4df2f0fa (diff) | |
download | unit-491d0f700f5690eba0f1fcf2124f3a37ef73eb1a.tar.gz unit-491d0f700f5690eba0f1fcf2124f3a37ef73eb1a.tar.bz2 |
Python: Added support for Python 3.11.
Python 3.8 added a new Python initialisation configuration API[0].
Python 3.11 marked the old API as deprecated resulting in the following
compiler warnings which we treat as errors, failing the build
src/python/nxt_python.c: In function ‘nxt_python_start’:
src/python/nxt_python.c:130:13: error: ‘Py_SetProgramName’ is deprecated [-Werror=deprecated-declarations]
130 | Py_SetProgramName(nxt_py_home);
| ^~~~~~~~~~~~~~~~~
In file included from /opt/python-3.11/include/python3.11/Python.h:94,
from src/python/nxt_python.c:7:
/opt/python-3.11/include/python3.11/pylifecycle.h:37:38: note: declared here
37 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
| ^~~~~~~~~~~~~~~~~
src/python/nxt_python.c:134:13: error: ‘Py_SetPythonHome’ is deprecated [-Werror=deprecated-declarations]
134 | Py_SetPythonHome(nxt_py_home);
| ^~~~~~~~~~~~~~~~
/opt/python-3.11/include/python3.11/pylifecycle.h:40:38: note: declared here
40 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *);
| ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
We actually have a few config scenarios: Python < 3, Python >= 3.0 < 3.8
and for Python 3 we have two configs where we select one based on
virtual environment setup.
Factor out the Python 3 config initialisation into its own function. We
actually create two functions, one for Python 3.8+ and one for older
Python 3. We pick the right function to use at build time.
The new API also has error checking (where the old API doesn't) which we
handle.
[0]: https://peps.python.org/pep-0587/
Closes: <https://github.com/nginx/unit/issues/710>
[ Andrew: Expanded upon patch from @sandeep-gh ]
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
Diffstat (limited to 'docs/changes.xml')
-rw-r--r-- | docs/changes.xml | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/docs/changes.xml b/docs/changes.xml index 0c52c628..2dd1b472 100644 --- a/docs/changes.xml +++ b/docs/changes.xml @@ -45,6 +45,12 @@ prefer system crypto policy, instead of hardcoding a default. <change type="feature"> <para> +compatibility with Python 3.11. +</para> +</change> + +<change type="feature"> +<para> njs support with the basic syntax of JS template literals. </para> </change> |