Previous major version update
Though #5078 has lots of changes, the core part of version update is importlib, site and ensurepip which have hard-coded python version or binary. test.support is not necessary, but usually need to be either updated or manually fixed to be compatible to new importlib.
In #5078, I tried to update importlib and resolve every following issues. site and ensurepip is done separately.
The first step is #5482, the easy part as it is. Changing CI CPython version to 3.13. It shows what behavior is changed in new version and what to prepare to cover it.
The second step is #5483. I found a few challanges in this update, but this is not the full list of them
__doc__ is changed. It now trims left whitespaces.
_opcode is added. This is _opcode.c in CPython source code. This could be temporarily ignored or replaced by python version.
match statement is now being used more and more. RustPython doesn't implement match statement yet. For 3.12, I rewrote a few match statement in standard library using if statement. 2 options. Implementing match or rewriting it without match.
- remove dead batteries in https://peps.python.org/pep-0594/
Previous major version update
Though #5078 has lots of changes, the core part of version update is
importlib,siteandensurepipwhich have hard-coded python version or binary.test.supportis not necessary, but usually need to be either updated or manually fixed to be compatible to new importlib.In #5078, I tried to update importlib and resolve every following issues.
siteandensurepipis done separately.The first step is #5482, the easy part as it is. Changing CI CPython version to 3.13. It shows what behavior is changed in new version and what to prepare to cover it.
The second step is #5483. I found a few challanges in this update, but this is not the full list of them
__doc__is changed. It now trims left whitespaces._opcodeis added. This is_opcode.cin CPython source code. This could be temporarily ignored or replaced by python version.matchstatement is now being used more and more. RustPython doesn't implement match statement yet. For 3.12, I rewrote a few match statement in standard library using if statement. 2 options. Implementing match or rewriting it without match.