forked from pool/python313
Major new features of the 3.13 series, compared to 3.12
Some of the new major new features and changes in Python 3.13 are:
- New features
- A new and improved interactive interpreter, based on
PyPy's, featuring multi-line editing and color support, as
well as colorized exception tracebacks.
- An experimental free-threaded build mode, which disables
the Global Interpreter Lock, allowing threads to run
more concurrently. The build mode is available as an
experimental feature in the Windows and macOS installers as
well.
- A preliminary, experimental JIT, providing the ground work
for significant performance improvements.
- The locals() builtin function (and its C equivalent)
now has well-defined semantics when mutating the
returned mapping, which allows debuggers to operate more
consistently.
- A modified version of mimalloc is now included, optional
but enabled by default if supported by the platform, and
required for the free-threaded build mode.
- Docstrings now have their leading indentation stripped,
reducing memory use and the size of .pyc files. (Most tools
handling docstrings already strip leading indentation.)
- The dbm module has a new dbm.sqlite3 backend that is used
by default when creating new files.
- WASI is now a Tier 2 supported platform. Emscripten is
no longer an officially supported platform (but Pyodide
continues to support Emscripten).
- Typing
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=56
33 lines
1.3 KiB
Diff
33 lines
1.3 KiB
Diff
---
|
|
Lib/test/test_compile.py | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
--- a/Lib/test/test_compile.py
|
|
+++ b/Lib/test/test_compile.py
|
|
@@ -21,6 +21,9 @@ from test.support import (script_helper,
|
|
from test.support.bytecode_helper import instructions_with_positions
|
|
from test.support.os_helper import FakePath
|
|
|
|
+IS_SLE_15_6 = os.environ.get("SLE_VERSION", "") == "0150700"
|
|
+IS_32bit = hasattr(os, "uname") and os.uname().machine in ["i386", "i486", "i586", "i686"]
|
|
+
|
|
class TestSpecifics(unittest.TestCase):
|
|
|
|
def compile_single(self, source):
|
|
@@ -117,6 +120,7 @@ class TestSpecifics(unittest.TestCase):
|
|
self.assertEqual(d['z'], 12)
|
|
|
|
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
|
|
+ @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586")
|
|
def test_extended_arg(self):
|
|
repeat = int(get_c_recursion_limit() * 0.9)
|
|
longexpr = 'x = x or ' + '-x' * repeat
|
|
@@ -701,6 +705,7 @@ class TestSpecifics(unittest.TestCase):
|
|
|
|
@support.cpython_only
|
|
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
|
|
+ @unittest.skipIf(IS_SLE_15_6 and IS_32bit, "fails on 15.6 i586")
|
|
def test_compiler_recursion_limit(self):
|
|
# Expected limit is Py_C_RECURSION_LIMIT
|
|
limit = get_c_recursion_limit()
|