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's New in Python 3.13 page.
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