This change adds lang/python313 and the corresponding flavor (py313) to
the ports tree. This target version chosen was 3.13.4, as it was the
latest 3.13.x release.
This release makes several changes compared to the prior series (3.13.x)
as noted in the "What Changed" page [1].
Some highlights are:
- Better interactive interpreter support/error messaging.
- Some module import times have improved by refactoring the relevant
modules.
Important module changes:
- Removal of several "dead batteries" modules, e.g., cgi, crypt, nis,
etc.
- ssl: ssl.VERIFY_X509_PARTIAL_CHAIN and ssl.VERIFY_X509_STRICT are now
set by default.
- Removal of lib2to3, et al.
-- This can break some packages which rely on lib2to3 like devel/py-future,
devel/py-six, etc.
- ctypes was refactored.
-- Code which relied on `__new__` to initialize certain behaviors/properties
will now need to use `__init__`.
- dbm now has a corresponding sqlite3 module.
- importlib: several functions previously marked deprecated were
"undeprecated".
- pathlib: various improvements have been added in the recursive globbing
space and new exceptions have been added to refine error handling.
- pdb: evaluation order is changed of certain operations, making calls
like `breakpoint()` function in a more intuitive manner.
- subprocess: `posix_spawn(3)` is used more liberally.
- typing: various new objects have been added to the module and
semantics have similarly been improved.
The following features are not enabled, but may become options in later
versions of the port:
- "Free Threaded Python": a no GIL (Global Interpreter Lock) mode.
- Experimental JIT compiler.
PR: 287408