forked from pool/python314
Python 3.14 is the latest stable release of the Python
programming language, with a mix of changes to the language,
the implementation, and the standard library. The biggest
changes include template string literals, deferred evaluation
of annotations, and support for subinterpreters in the standard
library.
The library changes include significantly improved capabilities
for introspection in asyncio, support for Zstandard via a new
compression.zstd module, syntax highlighting in the REPL, as
well as the usual deprecations and removals, and improvements
in user-friendliness and correctness.
- Interpreter improvements:
- PEP 649 and PEP 749: Deferred evaluation of annotations
- PEP 734: Multiple interpreters in the standard library
- PEP 750: Template strings
- PEP 758: Allow except and except* expressions without
brackets
- PEP 765: Control flow in finally blocks
- PEP 768: Safe external debugger interface for CPython
- A new type of interpreter
- Free-threaded mode improvements
- Improved error messages
- Incremental garbage collection
- Significant improvements in the standard library:
- PEP 784: Zstandard support in the standard library
- Asyncio introspection capabilities
- Concurrent safe warnings control
- Syntax highlighting in the default interactive shell, and
color output in several standard library CLIs
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=104
31 lines
1.4 KiB
Diff
31 lines
1.4 KiB
Diff
From 4bb41b28d5bac09bccd636d8c5fefe1a462f63a7 Mon Sep 17 00:00:00 2001
|
|
From: Alm <alon.menczer@gmail.com>
|
|
Date: Mon, 25 Aug 2025 08:56:38 +0300
|
|
Subject: [PATCH 1/4] Exclude .pyc files from the computed digest in the jit
|
|
stencils
|
|
|
|
---
|
|
Tools/jit/_targets.py | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
Index: Python-3.14.0rc2/Tools/jit/_targets.py
|
|
===================================================================
|
|
--- Python-3.14.0rc2.orig/Tools/jit/_targets.py
|
|
+++ Python-3.14.0rc2/Tools/jit/_targets.py
|
|
@@ -69,6 +69,9 @@ class _Target(typing.Generic[_S, _R]):
|
|
hasher.update(PYTHON_EXECUTOR_CASES_C_H.read_bytes())
|
|
hasher.update((self.pyconfig_dir / "pyconfig.h").read_bytes())
|
|
for dirpath, _, filenames in sorted(os.walk(TOOLS_JIT)):
|
|
+ # Exclude cache files from digest computation to ensure reproducible builds.
|
|
+ if dirpath.endswith("__pycache__"):
|
|
+ continue
|
|
for filename in filenames:
|
|
hasher.update(pathlib.Path(dirpath, filename).read_bytes())
|
|
return hasher.hexdigest()
|
|
Index: Python-3.14.0rc2/Misc/NEWS.d/next/Build/2025-08-27-09-52-45.gh-issue-138061.fMVS9w.rst
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ Python-3.14.0rc2/Misc/NEWS.d/next/Build/2025-08-27-09-52-45.gh-issue-138061.fMVS9w.rst
|
|
@@ -0,0 +1 @@
|
|
+Ensure reproducible builds by making JIT stencil header generation deterministic.
|