diff --git a/Python-3.13.0a5.tar.xz b/Python-3.13.0a5.tar.xz deleted file mode 100644 index 58d825a..0000000 --- a/Python-3.13.0a5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e89b5355183e7c898a5a01b2f601728fe49fdb89d9c9781f13360847aaefa62 -size 20734172 diff --git a/Python-3.13.0a5.tar.xz.asc b/Python-3.13.0a5.tar.xz.asc deleted file mode 100644 index 6159103..0000000 --- a/Python-3.13.0a5.tar.xz.asc +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmXwtydfFIAAAAAALgAo -aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx -Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6 -YwXYFg//fo4lguUKXI4D7dZ644UNElDlXFP5mb+XUfBK5K+x2PkCbyyN8dpFmz2r -4PjFkg9HlijLkq9gSZRxD/pKOY1UgcosBe3aeRcMNe++fIk3PLIOGf+42t1Id0eE -myXXmZwLGvl+uT1H8VvjgMJgYQ/EI8uAR3sFaqEqZRWTuNqROd/OsssYdP9sWQCf -JjtYPGckJGmaK5+TXS0FtbM0sqEfrdZP6QdOw2y33r1NcV7MPce7OkMhPBdUBn1L -9vmUZMAQCi9Mn3JQcWqRnhJMDPiG4rRbAzzdXvRK87H7k04o6F/ao5wec46j3VQa -RIwY7tXen/FAES46wege/+/IQu37Ny+oGkXA2XzSu8s3SYdKq95iurPpGfvRnWaM -OJzV+S9xVdHvl7dZNv8WGYx2OQwQclZV3hP0vWIRBLzV4aP6EXulzX8Ym7lnRigi -poDPMr+kyHqMXbHVuIskEGoWx1eGueaPyqIJ50tHsp04/HCer+gVsqVaJ8Swq3hI -6x4aBm+sJ4L1OsaWaSpOYnZ/7PMKDHkbi3itJs4tkqPE9t4rMkrhfeFiaDCYXSiu -8DF7c1f5jHVDP/hlF3oK+j3QIcYBB0rPa7gM4BmP44kMCYgIYRFdQR/VBZoLZ6aD -x2pJRfNN2dzgxnzf5iM9ukDK61sOZiRaVfGUQRS00Lnjh6n7qQo= -=+psT ------END PGP SIGNATURE----- diff --git a/Python-3.13.0b1.tar.xz b/Python-3.13.0b1.tar.xz new file mode 100644 index 0000000..1ad5dad --- /dev/null +++ b/Python-3.13.0b1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba716ac56b039b545ad4a90ce586a57aa97869364553746ef2445728ceec198e +size 21054240 diff --git a/Python-3.13.0b1.tar.xz.asc b/Python-3.13.0b1.tar.xz.asc new file mode 100644 index 0000000..38a1231 --- /dev/null +++ b/Python-3.13.0b1.tar.xz.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNATURE----- + +iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmY7VzpfFIAAAAAALgAo +aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx +Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6 +YwUGrQ/6ArSGPmmq8qbEk+/XTZd0XulLxayLrx571dvTKqqZ5PlneNlhwuZHvCQg +fhCK6ALZDyJD2aSrBo7bR3tZF2+GZltr/KJIrWUBl1ZeO6e91XNMHBkHphnOuE8o +ATVcR1wejleLckjdj5CU1Q1iBojEBpLs8kqqTbnox5qj/QzoZbs0Jp5mV7BhVKrP +cjd4Fq7OBzA0jkmqovLTB7vq6YwTORSar/QksqM/rpDDvp1DteJiO3p5TjbUMswS +JgLLGrltvR1J3raA6DFogEbvwsBQTBzcZO+nlcRAx6c/40XTFqTJq4yLJm+ckfp4 +jVneiQbP9IoJCldLf/dGOCESnalPph1OXkjRZcpPlCJVrT4NPYj4b3c6jeTuSx9h +Ucv9ZlNSfWgLqS+Y6RPL13CPcKZ4myYcpboW5i1ztxV+BtG6gixTg5jONznJ9DFp +2YUmTAlweIlJLIc8HKOXVscnDDwcElns6y7IjA0CvUpc97OChjedbXXwx2lgJ9oO +ydkyTAk6KlfAtijvSvs8QdAoo775ybwgmNh5tBfekc+Z5fRn2Mi7ZVqc+JypUq+J +QaLT7+MJEBiaOqOZEtuOM1em0LP+k6i1q4DaFNiHO9M2wS7nedzA8jNYrFzserSs +eApkreY/kEWiYDeeIoO9f/dHehgDfPaM6A0ZzcCQQIwLAKhvdPE= +=IVHC +-----END PGP SIGNATURE----- diff --git a/python313.changes b/python313.changes index 6175f59..47e750a 100644 --- a/python313.changes +++ b/python313.changes @@ -1,3 +1,833 @@ +------------------------------------------------------------------- +Thu May 9 08:18:00 UTC 2024 - Daniel Garcia + +- Update to 3.13.0b1: + - Security + - gh-116741: Update bundled libexpat to 2.6.2 + - gh-117233: Detect BLAKE2, SHA3, Shake, & truncated SHA512 support + in the OpenSSL-ish libcrypto library at build time. This allows + hashlib to be used with libraries that do not to support every + algorithm that upstream OpenSSL does. + - Core and Builtins + - gh-118414: Add instrumented opcodes to YIELD_VALUE assertion for + tracing cases. + - gh-117953: When a builtin or extension module is imported for + the first time, while a subinterpreter is active, the module’s + init function is now run by the main interpreter first before + import continues in the subinterpreter. Consequently, + single-phase init modules now fail in an isolated subinterpreter + without the init function running under that interpreter, + whereas before it would run under the subinterpreter before + failing, potentially leaving behind global state and callbacks + and otherwise leaving the module in an inconsistent state. + - gh-117549: Don’t use designated initializer syntax in inline + functions in internal headers. They cause problems for C++ or + MSVC users who aren’t yet using the latest C++ standard (C++20). + While internal, pycore_backoff.h, is included (indirectly, via + pycore_code.h) by some key 3rd party software that does so for + speed. + - gh-95382: Improve performance of json.dumps() and json.dump() + when using the argument indent. Depending on the data the + encoding using json.dumps() with indent can be up to 2 to 3 + times faster. + - gh-116322: In --disable-gil builds, the GIL will be enabled + while loading C extension modules. If the module indicates that + it supports running without the GIL, the GIL will be disabled + once loading is complete. Otherwise, the GIL will remain enabled + for the remainder of the interpreter’s lifetime. This behavior + does not apply if the GIL has been explicitly enabled or + disabled with PYTHON_GIL or -Xgil. + - gh-118513: Fix incorrect UnboundLocalError when two + comprehensions in the same function both reference the same + name, and in one comprehension the name is bound while in the + other it’s an implicit global. + - gh-118518: Allow the Linux perf support to work without frame + pointers using perf’s advanced JIT support. The feature is + activated when using the PYTHON_PERF_JIT_SUPPORT environment + variable or when running Python with -Xperf_jit. Patch by Pablo + Galindo. + - gh-117514: Add sys._is_gil_enabled() function that returns + whether the GIL is currently enabled. In the default build it + always returns True because the GIL is always enabled. In the + free-threaded build, it may return True or False. + - gh-118164: Break a loop between the Python implementation of the + decimal module and the Python code for integer to string + conversion. Also optimize integer to string conversion for + values in the range from 9_000 to 135_000 decimal digits. + - gh-118473: Fix sys.set_asyncgen_hooks() not to be partially set + when raising TypeError. + - gh-118465: Compiler populates the new __firstlineno__ field on a + class with the line number of the first line of the class + definition. + - gh-118492: Fix an issue where the type cache can expose a + previously accessed attribute when a finalizer is run. + - gh-117714: update async_generator.athrow().close() and + async_generator.asend().close() to close their section of the + underlying async generator + - gh-111201: The interactive interpreter is now implemented in + Python, which allows for a number of new features like colors, + multiline input, history viewing, and paste mode. Contributed by + Pablo Galindo, Łukasz Langa and Lysandros Nikolaou based on code + from the PyPy project. + - gh-74929: Implement PEP 667: converted FrameType.f_locals and + PyFrame_GetLocals() to return a write-through proxy object when + the frame refers to a function or comprehension. + - gh-116767: Fix crash in compiler on ‘async with’ that has many + context managers. + - gh-118335: Change how to use the tier 2 interpreter. Instead of + running Python with -X uops or setting the environment variable + PYTHON_UOPS=1, this choice is now made at build time by + configuring with --enable-experimental-jit=interpreter. + - Beware! This changes the environment variable to enable or + disable micro-ops to PYTHON_JIT. The old PYTHON_UOPS is no + longer used. + - gh-118306: Update JIT compilation to use LLVM 18 + - gh-118160: Annotation scopes within classes can now contain + comprehensions. However, such comprehensions are not inlined + into their parent scope at runtime. Patch by Jelle Zijlstra. + - gh-118272: Fix bug where generator.close does not free the + generator frame’s locals. + - gh-118216: Don’t consider __future__ imports with dots before + the module name. + - gh-118074: Make sure that the Executor objects in the COLD_EXITS + array aren’t assumed to be GC-able (which would access bytes + outside the object). + - gh-107674: Lazy load frame line number to improve performance of + tracing + - gh-118082: Improve SyntaxError message for imports without + names, like in from x import and import cases. It now points out + to users that import expects at least one name after it. + - gh-118090: Improve SyntaxError message for empty type param + brackets. + - gh-102511: Speed up os.path.splitroot() with a native + implementation. + - gh-117958: Added a get_jit_code() method to access JIT compiled + machine code from the UOp Executor when the experimental JIT is + enabled. Patch by Anthony Shaw. + - gh-117901: Add option for compiler’s codegen to save nested + instruction sequences for introspection. + - gh-116622: Redirect stdout and stderr to system log when + embedded in an Android app. + - gh-109118: annotation scope within class scopes can now contain + lambdas. + - gh-117894: Prevent agen.aclose() objects being re-used after + .throw(). + - gh-117881: prevent concurrent access to an async generator via + athrow().throw() or asend().throw() + - gh-115874: Fixed a possible segfault during garbage collection + of _asyncio.FutureIter objects + - gh-117536: Fix a RuntimeWarning when calling + agen.aclose().throw(Exception). + - gh-117755: Fix mimalloc allocator for huge memory allocation + (around 8,589,934,592 GiB) on s390x. Patch by Victor Stinner. + - gh-117750: Fix issue where an object’s dict would get out of + sync with the object’s internal values when being cleared. + obj.__dict__.clear() now clears the internal values, but leaves + the dict attached to the object. + - gh-117431: Improve the performance of the following bytes and + bytearray methods by adapting them to the METH_FASTCALL calling + convention: + count() + find() + index() + rfind() + rindex() + - gh-117709: Speed up calls to str() with positional-only + argument, by using the PEP 590 vectorcall calling convention. + Patch by Erlend Aasland. + - gh-117680: Give _PyInstructionSequence a Python interface and + use it in tests. + - gh-115776: Statically allocated objects are, by definition, + immortal so must be marked as such regardless of whether they + are in extension modules or not. + - gh-117641: Speedup os.path.commonpath() on Unix. + - gh-117636: Speedup os.path.join(). + - gh-117607: Speedup os.path.relpath(). + - gh-117385: Remove unhandled PY_MONITORING_EVENT_BRANCH and + PY_MONITORING_EVENT_EXCEPTION_HANDLED events from + sys.settrace(). + - gh-116322: Extension modules may indicate to the runtime that + they can run without the GIL. Multi-phase init modules do so by + calling providing Py_MOD_GIL_NOT_USED for the Py_mod_gil slot, + while single-phase init modules call + PyUnstable_Module_SetGIL(mod, Py_MOD_GIL_NOT_USED) from their + init function. + - gh-116129: Implement PEP 696, adding support for defaults on + type parameters. Patch by Jelle Zijlstra. + - gh-93502: Add two new functions to the C-API, + PyRefTracer_SetTracer() and PyRefTracer_GetTracer(), that allows + to track object creation and destruction the same way the + tracemalloc module does. Patch by Pablo Galindo + - gh-107674: Improved the performance of sys.settrace() + significantly + - gh-95754: Improve the error message when a script shadowing a + module from the standard library causes AttributeError to be + raised. Similarly, improve the error message when a script + shadowing a third party module attempts to access an attribute + from that third party module while still initialising. + - gh-99180: Elide uninformative traceback indicators in return and + simple assignment statements. Patch by Pablo Galindo. + - gh-105879: Allow the globals and locals arguments to exec() and + eval() to be passed as keywords. + - Library + - gh-118418: A DeprecationWarning is now emitted if you fail to + pass a value to the new type_params parameter of + typing._eval_type() or typing.ForwardRef._evaluate(). (Using + either of these private and undocumented functions is + discouraged to begin with, but failing to pass a value to the + type_params parameter may lead to incorrect behaviour on Python + 3.12 or newer.) + - gh-118660: Add an optional second type parameter to + typing.ContextManager and typing.AsyncContextManager, + representing the return types of __exit__() and __aexit__() + respectively. This parameter defaults to bool | None. + - gh-118650: The enum module allows method named _repr_* to be + defined on Enum types. + - gh-118648: Add type parameter defaults to typing.Generator and + typing.AsyncGenerator. + - gh-101137: Mime type text/x-rst is now supported by mimetypes. + - gh-118164: The Python implementation of the decimal module could + appear to hang in relatively small power cases (like 2**117) if + context precision was set to a very high value. A different + method to check for exactly representable results is used now + that doesn’t rely on computing 10**precision (which could be + effectively too large to compute). + - gh-111744: breakpoint() and pdb.set_trace() now enter the + debugger immediately after the call rather than before the next + line is executed. + - gh-118500: Add pdb support for zipapps + - gh-118406: Add signature for sqlite3.Connection objects. + - gh-101732: Use a Y2038 compatible openssl time function when + available. + - gh-118404: Fix inspect.signature() for non-comparable callables. + - gh-118402: Fix inspect.signature() for the result of the + functools.cmp_to_key() call. + - gh-116622: On Android, sysconfig.get_platform now returns the + format specified by PEP 738. + - gh-118285: Allow to specify the signature of custom callable + instances of extension type by the __text_signature__ attribute. + Specify signatures of operator.attrgetter, operator.itemgetter, + and operator.methodcaller instances. + - gh-118314: Fix an edge case in binascii.a2b_base64() strict + mode, where excessive padding is not detected when no padding is + necessary. + - gh-118271: Add the PhotoImage methods read() to read an image + from a file and data() to get the image data. Add background and + grayscale parameters to PhotoImage method write(). + - gh-118225: Add the PhotoImage method copy_replace() to copy a + region from one image to other image, possibly with pixel + zooming and/or subsampling. Add from_coords parameter to + PhotoImage methods copy(), zoom() and subsample(). Add zoom and + subsample parameters to PhotoImage method copy(). + - gh-118221: Fix a bug where sqlite3.Connection.iterdump() could + fail if a custom row factory was used. Patch by Erlend Aasland. + - gh-118013: Fix regression introduced in gh-103193 that meant + that calling inspect.getattr_static() on an instance would cause + a strong reference to that instance’s class to persist in an + internal cache in the inspect module. This caused unexpected + memory consumption if the class was dynamically created, the + class held strong references to other objects which took up a + significant amount of memory, and the cache contained the sole + strong reference to the class. The fix for the regression leads + to a slowdown in getattr_static(), but the function should still + be significantly faster than it was in Python 3.11. Patch by + Alex Waygood. + - gh-118218: Speed up itertools.pairwise() in the common case by + up to 1.8x. + - gh-117486: Improve the behavior of user-defined subclasses of + ast.AST. Such classes will now require no changes in the usual + case to conform with the behavior changes of the ast module in + Python 3.13. Patch by Jelle Zijlstra. + - gh-90848: Fixed unittest.mock.create_autospec() to configure + parent mock with keyword arguments. + - gh-118168: Fix incorrect argument substitution when + typing.Unpack is used with the builtin tuple. typing.Unpack now + raises TypeError when used with certain invalid types. Patch by + Jelle Zijlstra. + - gh-118131: Add command-line interface for the random module. + Patch by Hugo van Kemenade. + - gh-118107: Fix zipimport reading of ZIP64 files with file + entries that are too big or offset too far. + - gh-117535: Change the unknown filename of warnings from sys to + to clarify that it’s not a real filename. + - gh-114053: Fix erroneous NameError when calling + typing.get_type_hints() on a class that made use of PEP 695 type + parameters in a module that had from __future__ import + annotations at the top of the file. Patch by Alex Waygood. + - gh-116931: Add parameter fileobj check for + tarfile.TarFile.addfile() + - gh-117995: Don’t raise DeprecationWarning when a sequence of + parameters is used to bind indexed, nameless placeholders. See + also gh-100668. + - gh-80361: Fix TypeError in email.Message.get_payload() when the + charset is RFC 2231 encoded. + - gh-86650: Fix IndexError when parse some emails with invalid + Message-ID (including one-off addresses generated by Microsoft + Outlook). + - gh-117691: Improve the error messages emitted by tarfile + deprecation warnings relating to PEP 706. If a filter argument + is not provided to extract() or extractall, the deprecation + warning now points to the line in the user’s code where the + relevant function was called. Patch by Alex Waygood. + - gh-115060: Speed up pathlib.Path.glob() by omitting an initial + is_dir() call. As a result of this change, glob() can no longer + raise OSError. + - gh-77102: site module now parses .pth file with UTF-8 first, and + locale encoding if UnicodeDecodeError happened. It supported + only locale encoding before. + - gh-76785: We’ve exposed the low-level _interpreters module for + the sake of the PyPI implementation of PEP 734. It was sometimes + available as the _xxsubinterpreters module and was formerly used + only for testing. For the most part, it should be considered an + internal module, like _thread and _imp. See + https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26. + - gh-115060: Speed up pathlib.Path.glob() by not scanning + directories for non-wildcard pattern segments. + - gh-117727: Speed up pathlib.Path.iterdir() by using os.scandir() + internally. + - gh-117586: Speed up pathlib.Path.walk() by working with strings + internally. + - gh-117722: Change the new multi-separator support in + asyncio.Stream.readuntil() to only accept tuples of separators + rather than arbitrary iterables. + - gh-117692: Fixes a bug when doctest.DocTestFinder was failing on + wrapped builtin_function_or_method. + - gh-117348: Largely restored import time performance of + configparser by avoiding dataclasses. + - gh-117663: Fix _simple_enum to detect aliases when multiple + arguments are present but only one is the member value. + - gh-117618: Support package.module as filename for break command + of pdb + - gh-102247: the status codes enum with constants in + http.HTTPStatus are updated to include the names from RFC9110. + This RFC includes some HTTP statuses previously only used for + WEBDAV and assigns more generic names to them. + - The old constants are preserved for backwards compatibility. + - gh-117586: Speed up pathlib.Path.glob() by working with strings + internally. + - gh-117225: Add colour to doctest output. Patch by Hugo van + Kemenade. + - gh-117566: ipaddress.IPv6Address.is_loopback() will now return + True for IPv4-mapped loopback addresses, i.e. addresses in the + ::ffff:127.0.0.0/104 address space. + - gh-117546: Fix issue where os.path.realpath() stopped resolving + symlinks after encountering a symlink loop on POSIX. + - gh-116720: Improved behavior of asyncio.TaskGroup when an + external cancellation collides with an internal cancellation. + For example, when two task groups are nested and both experience + an exception in a child task simultaneously, it was possible + that the outer task group would misbehave, because its internal + cancellation was swallowed by the inner task group. + - In the case where a task group is cancelled externally and also + must raise an ExceptionGroup, it will now call the parent task’s + cancel() method. This ensures that a asyncio.CancelledError will + be raised at the next await, so the cancellation is not lost. + - An added benefit of these changes is that task groups now + preserve the cancellation count (asyncio.Task.cancelling()). + - In order to handle some corner cases, asyncio.Task.uncancel() + may now reset the undocumented _must_cancel flag when the + cancellation count reaches zero. + - gh-117516: Add typing.TypeIs, implementing PEP 742. Patch by + Jelle Zijlstra. + - gh-117503: Fix support of non-ASCII user names in bytes paths in + os.path.expanduser() on Posix. + - gh-117394: os.path.ismount() is now 2-3 times faster if the user + has permissions. + - gh-117313: Only treat '\n', '\r' and '\r\n' as line separators + in re-folding the email messages. Preserve control characters + '\v', '\f', '\x1c', '\x1d' and '\x1e' and Unicode line + separators '\x85', '\u2028' and '\u2029' as is. + - gh-117142: Convert _ctypes to multi-phase initialisation (PEP + 489). + - gh-66543: Add the mimetypes.guess_file_type() function which + works with file path. Passing file path instead of URL in + guess_type() is soft deprecated. + - gh-68583: webbrowser CLI: replace getopt with argparse, add long + options. Patch by Hugo van Kemenade. + - gh-116871: Name suggestions for AttributeError and ImportError + now only include underscored names if the original name was + underscored. + - gh-116023: Don’t show empty fields (value None or []) in + ast.dump() by default. Add show_empty=False parameter to + optionally show them. + - gh-115961: Added name and mode attributes for compressed and + archived file-like objects in modules bz2, lzma, tarfile and + zipfile. The value of the mode attribute of gzip.GzipFile was + changed from integer (1 or 2) to string ('rb' or 'wb'). The + value of the mode attribute of the readable file-like object + returned by zipfile.ZipFile.open() was changed from 'r' to 'rb'. + - gh-82062: Fix inspect.signature() to correctly handle parameter + defaults on methods in extension modules that use names defined + in the module namespace. + - gh-83856: Honor atexit for all multiprocessing start methods + - gh-113081: Print colorized exception just like built-in + traceback in pdb + - gh-112855: Speed up pickling of pathlib.PurePath objects. Patch + by Barney Gale. + - gh-111744: Support opcode events in bdb + - gh-109617: ncurses: fixed a crash that could occur on macOS 13 + or earlier when Python was built with Apple Xcode 15’s SDK. + - gh-83151: Enabled arbitrary statements and evaluations in pdb + shell to access the local variables of the current frame, which + made it possible for multi-scope code like generators or nested + function to work. + - gh-110209: Add __class_getitem__() to types.GeneratorType and + types.CoroutineType for type hinting purposes. Patch by James + Hilton-Balfe. + - gh-108191: The types.SimpleNamespace now accepts an optional + positional argument which specifies initial values of attributes + as a dict or an iterable of key-value pairs. + - gh-62090: Fix assertion errors caused by whitespace in metavars + or SUPPRESS-ed groups in argparse by simplifying usage + formatting. Patch by Ali Hamdan. + - gh-102402: Adjust logging.LogRecord to use time.time_ns() and + fix minor bug related to floating point math. + - gh-100242: Bring pure Python implementation + functools.partial.__new__ more in line with the C-implementation + by not just always checking for the presence of the attribute + 'func' on the first argument of partial. Instead, both the + Python version and the C version perform an isinstance(func, + partial) check on the first argument of partial. + - gh-99730: HEAD requests are no longer upgraded to GET request + during redirects in urllib. + - gh-66410: Callbacks registered in the tkinter module now take + arguments as various Python objects (int, float, bytes, tuple), + not just str. To restore the previous behavior set tkinter + module global wantobject to 1 before creating the Tk object or + call the wantobject() method of the Tk object with argument 1. + Calling it with argument 2 restores the current default + behavior. + - bpo-40943: Fix several IndexError when parse emails with + truncated Message-ID, address, routes, etc, e.g. example@. + - bpo-39324: Add mime type mapping for .md <-> text/markdown + - bpo-18108: shutil.chown() now supports dir_fd and + follow_symlinks keyword arguments. + - bpo-30988: Fix parsing of emails with invalid address headers + having a leading or trailing dot. Patch by tsufeki. + - bpo-32839: Add the after_info() method for Tkinter widgets. + - Documentation + - gh-117928: The minimum Sphinx version required for the + documentation is now 6.2.1. + - Build + - gh-118734: Fixes Windows build when invoked directly (not + through the build.bat script) without specifying a value for + UseTIER2. + - gh-115119: The configure option --with-system-libmpdec now + defaults to yes. The bundled copy of libmpdecimal will be + removed in Python 3.15. + - gh-117845: Fix building against recent libedit versions by + detecting readline hook signatures in configure. + - gh-116622: A testbed project was added to run the test suite on + Android. + - gh-117645: Increase WASI stack size from 512 KiB to 8 MiB and + the initial memory from 10 MiB to 20 MiB. Patch by Victor + Stinner. + - gh-115119: configure now uses pkg-config to detect decimal + dependencies if the --with-system-libmpdec option is given. + - Windows + - gh-115119: Update Windows installer to use libmpdecimal 4.0.0. + - gh-118486: os.mkdir() now accepts mode of 0o700 to restrict the + new directory to the current user. + - gh-118347: Fixes launcher updates not being installed. + - gh-118293: The multiprocessing module now passes the + STARTF_FORCEOFFFEEDBACK flag when spawning processes to tell + Windows not to change the mouse cursor. + - gh-115009: Update Windows installer to use SQLite 3.45.3. + - gh-90329: Suppress the warning displayed on virtual environment + creation when the requested and created paths differ only by a + short (8.3 style) name. Warnings will continue to be shown if a + junction or symlink in the path caused the venv to be created in + a different location than originally requested. + - gh-117786: Fixes virtual environments not correctly launching + when created from a Store install. + - macOS + - gh-115119: Update macOS installer to use libmpdecimal 4.0.0. + - gh-114099: iOS preprocessor symbol usage was made compatible + with older macOS SDKs. + - gh-115009: Update macOS installer to use SQLite 3.45.3. + - gh-91629: Use ~/.config/fish/conf.d configs and fish_add_path to + set PATH when installing for the Fish shell. + - IDLE + - bpo-34774: Use user-selected color theme for Help => IDLE Doc. + - C API + - gh-118124: Fix Py_BUILD_ASSERT and Py_BUILD_ASSERT_EXPR for + non-constant expressions: use static_assert() on C11 and newer. + Patch by Victor Stinner. + - gh-110850: Add “Raw” variant of PyTime functions + PyTime_MonotonicRaw() + PyTime_PerfCounterRaw() + PyTime_TimeRaw() + Patch by Victor Stinner. + - gh-117987: Restore functions removed in Python 3.13 alpha 1: + Py_SetPythonHome() + Py_SetProgramName() + PySys_SetArgvEx() + PySys_SetArgv() + Patch by Victor Stinner. + - gh-117929: Restore removed PyEval_InitThreads() function. Patch + by Victor Stinner. + - gh-117534: Improve validation logic in the C implementation of + datetime.datetime.fromisoformat() to better handle invalid + years. Patch by Vlad Efanov. + - gh-68114: Fixed skipitem()’s handling of the old ‘w’ and ‘w#’ + formatters. These are no longer supported and now raise an + exception if used. + - gh-111997: Add a C-API for firing monitoring events. + +- Python 3.13.0 alpha 6: + - Core and Builtins + - gh-117648: Improve performance of os.path.join() and + os.path.expanduser(). + - gh-117584: Raise TypeError for non-paths in posixpath.relpath(). + - gh-117494: Refactored the instruction sequence data structure + out of compile.c into instruction_sequence.c. + - gh-116968: Introduce a unified 16-bit backoff counter type + (_Py_BackoffCounter), shared between the Tier 1 adaptive + specializer and the Tier 2 optimizer. The API used for adaptive + specialization counters is changed but the behavior is (supposed + to be) identical. + - The behavior of the Tier 2 counters is changed: + There are no longer dynamic thresholds (we never varied these). + All counters now use the same exponential backoff. + The counter for JUMP_BACKWARD starts counting down from 16. + The temperature in side exits starts counting down from 64. + - gh-117431: Improve the performance of the following bytes and + bytearray methods by adapting them to the METH_FASTCALL calling + convention: + endswith() + startswith() + - gh-117431: Improve the performance of the following str methods + by adapting them to the METH_FASTCALL calling convention: + count() + endswith() + find() + index() + rfind() + rindex() + startswith() + - gh-117411: Move PyFutureFeatures to an internal header and make + it private. + - gh-109120: Added handle of incorrect star expressions, e.g f(3, + *). Patch by Grigoryev Semyon + - gh-117381: Fix error message for ntpath.commonpath(). + - gh-117349: Optimise several functions in os.path. + - gh-117335: Raise TypeError for non-sequences for + ntpath.commonpath(). + - gh-117266: Fix crashes for certain user-created subclasses of + ast.AST. Such classes are now expected to set the _field_types + attribute. + - gh-99108: Updated the hashlib built-in HACL* project C code from + upstream that we use for many implementations when they are not + present via OpenSSL in a given build. This also avoids the rare + potential for a C symbol name one definition rule linking issue. + - gh-117108: Change the old space bit of objects in the young + generation from 0 to gcstate->visited, so that any objects + created during GC will have the old bit set correctly if they + get moved into the old generation. + - gh-117108: The cycle GC now chooses the size of increments based + on the total heap size, instead of the rate of object creation. + This ensures that it can keep up with growing heaps. + - gh-117114: Make os.path.isdevdrive() available on all platforms. + For those that do not offer Dev Drives, it will always return + False. + - gh-116735: For INSTRUMENTED_CALL_FUNCTION_EX, set arg0 to + sys.monitoring.MISSING instead of None for CALL event. + - gh-113964: Starting new threads and process creation through + os.fork() are now only prevented once all non-daemon threads + exit. + - gh-116626: Ensure INSTRUMENTED_CALL_FUNCTION_EX always emits + CALL + - gh-116554: list.sort() now exploits more cases of partial + ordering, particularly those with long descending runs with + sub-runs of equal values. Those are recognized as single runs + now (previously, each block of repeated values caused a new run + to be created). + - gh-114099: Added a Loader that can discover extension modules in + an iOS-style Frameworks folder. + - gh-115775: Compiler populates the new __static_attributes__ + field on a class with the names of attributes of this class + which are accessed through self.X from any function in its body. + - gh-115776: The array of values, the PyDictValues struct is now + embedded in the object during allocation. This provides better + performance in the common case, and does not degrade as much + when the object’s __dict__ is materialized. + - gh-108362: Implement an incremental cyclic garbage collector. By + collecting the old generation in increments, there is no need + for a full heap scan. This can hugely reduce maximum pause time + for programs with large heaps. + - Reduce the number of generations from three to two. The old + generation is split into two spaces, “visited” and “pending”. + - Collection happens in two steps:: * An increment is formed from + the young generation and a small part of the pending space. * + This increment is scanned and the survivors moved to the end of + the visited space. + - When the collecting space becomes empty, the two spaces are + swapped. + - gh-109870: Dataclasses now calls exec() once per dataclass, + instead of once per method being added. This can speed up + dataclass creation by up to 20%. + - gh-97901: Mime type text/rtf is now supported by mimetypes. + - bpo-24612: Improve the SyntaxError that happens when ‘not’ + appears after an operator. Patch by Pablo Galindo + - Library + - gh-117467: Preserve mailbox ownership when rewriting in + mailbox.mbox.flush(). Patch by Tony Mountifield. + - gh-114848: Raise FileNotFoundError when getcwd() returns + ‘(unreachable)’, which can happen on Linux >= 2.6.36 with glibc + < 2.27. + - gh-117459: asyncio.asyncio.run_coroutine_threadsafe() now keeps + the traceback of CancelledError, TimeoutError and + InvalidStateError which are raised in the coroutine. + - gh-117337: Deprecate undocumented glob.glob0() and glob.glob1() + functions. Use glob.glob() and pass a directory to its root_dir + argument instead. + - gh-117348: Refactored configparser.RawConfigParser._read() to + reduce cyclometric complexity and improve comprehensibility. + - gh-66449: configparser.ConfigParser now accepts unnamed sections + before named ones, if configured to do so. + - gh-88014: In documentation of gzip.GzipFile in module gzip, + explain data type of optional constructor argument mtime, and + recommend mtime = 0 for generating deterministic streams. + - gh-117310: Fixed an unlikely early & extra Py_DECREF triggered + crash in ssl when creating a new _ssl._SSLContext if CPython was + built implausibly such that the default cipher list is empty or + the SSL library it was linked against reports a failure from its + C SSL_CTX_set_cipher_list() API. + - gh-117294: A DocTestCase now reports as skipped if all examples + in the doctest are skipped. + - gh-98966: In subprocess, raise a more informative message when + stdout=STDOUT. + - gh-117225: doctest: only print “and X failed” when non-zero, + don’t pluralise “1 items”. Patch by Hugo van Kemenade. + - gh-117205: Speed up compileall.compile_dir() by 20% when using + multiprocessing by increasing chunksize. + - gh-117178: Fix regression in lazy loading of self-referential + modules, introduced in gh-114781. + - gh-112383: Fix dis module’s handling of ENTER_EXECUTOR + instructions. + - gh-117182: Lazy-loading of modules that modify their own + __class__ no longer reverts the __class__ to types.ModuleType. + - gh-117084: Fix zipfile extraction for directory entries with the + name containing backslashes on Windows. + - gh-117110: Fix a bug that prevents subclasses of typing.Any to + be instantiated with arguments. Patch by Chris Fu. + - gh-109653: Deferred select imports in importlib.metadata and + importlib.resources for a 14% speedup. + - gh-70647: Start the deprecation period for the current behavior + of datetime.datetime.strptime() and time.strptime() which always + fails to parse a date string with a ValueError involving a day + of month such as strptime("02-29", "%m-%d") when a year is not + specified and the date happen to be February 29th. This should + help avoid users finding new bugs every four years due to a + natural mistaken assumption about the API when parsing partial + date values. + - gh-116987: Fixed inspect.findsource() for class code objects. + - gh-114099: Modify standard library to allow for iOS platform + differences. + - gh-90872: On Windows, subprocess.Popen.wait() no longer calls + WaitForSingleObject() with a negative timeout: pass 0 ms if the + timeout is negative. Patch by Victor Stinner. + - gh-116957: configparser: Don’t leave ConfigParser values in an + invalid state (stored as a list instead of a str) after an + earlier read raised DuplicateSectionError or + DuplicateOptionError. + - gh-115538: _io.WindowsConsoleIO now emit a warning if a boolean + value is passed as a filedescriptor argument. + - gh-90095: Ignore empty lines and comments in .pdbrc + - gh-106531: Refreshed zipfile._path from zipp 3.18, providing + better compatibility for PyPy, better glob performance for + deeply nested zipfiles, and providing internal access to + CompleteDirs.inject for use in other tests (like + importlib.resources). + - gh-63207: On Windows, time.time() now uses the + GetSystemTimePreciseAsFileTime() clock to have a resolution + better than 1 us, instead of the GetSystemTimeAsFileTime() clock + which has a resolution of 15.6 ms. Patch by Victor Stinner. + - gh-116764: Restore support of None and other false values in + urllib.parse functions parse_qs() and parse_qsl(). Also, they + now raise a TypeError for non-zero integers and non-empty + sequences. + - gh-116811: In PathFinder.invalidate_caches, delegate to + MetadataPathFinder.invalidate_caches. + - gh-116647: Fix recursive child in dataclasses + - gh-113171: Fixed various false positives and false negatives in + ipaddress.IPv4Address.is_private (see these docs for details) + ipaddress.IPv4Address.is_global + ipaddress.IPv6Address.is_private + ipaddress.IPv6Address.is_global + - Also in the corresponding ipaddress.IPv4Network and + ipaddress.IPv6Network attributes. + - gh-63283: In encodings.idna, any capitalization of the the ACE + prefix (xn--) is now acceptable. Patch by Pepijn de Vos and + Zackery Spytz. + - gh-71042: Add platform.android_ver(), which provides device and + OS information on Android. + - gh-73468: Added new math.fma() function, wrapping C99’s fma() + operation: fused multiply-add function. Patch by Mark Dickinson + and Victor Stinner. + - gh-116608: The importlib.resources functions is_resource(), + open_binary(), open_text(), path(), read_binary(), and + read_text() are un-deprecated, and support subdirectories via + multiple positional arguments. The contents() function also + allows subdirectories, but remains deprecated. + - gh-116484: Change automatically generated tkinter.Checkbutton + widget names to avoid collisions with automatically generated + tkinter.ttk.Checkbutton widget names within the same parent + widget. + - gh-114314: In ctypes, ctype data is now stored in type objects + directly rather than in a dict subclass. This is an internal + change that should not affect usage. + - gh-116401: Fix blocking os.fwalk() and shutil.rmtree() on + opening named pipe. + - gh-71052: Implement ctypes.util.find_library() on Android. + - gh-90535: Fix support of interval values > 1 in + logging.TimedRotatingFileHandler for when='MIDNIGHT' and + when='Wx'. + - gh-113308: Remove some internal protected parts from uuid: + _has_uuid_generate_time_safe, _netbios_getnode, + _ipconfig_getnode, and _load_system_functions. They were unused. + - gh-115627: Fix the ssl module error handling of connection + terminate by peer. It now throws an OSError with the appropriate + error code instead of an EOFError. + - gh-114847: Speed up os.path.realpath() on non-Windows platforms. + - gh-114271: Fix a race in threading.Thread.join(). + - threading._MainThread now always represents the main thread of + the main interpreter. + - PyThreadState.on_delete and PyThreadState.on_delete_data have + been removed. + - gh-113538: Add asyncio.Server.close_clients() and + asyncio.Server.abort_clients() methods which allow to more + forcefully close an asyncio server. + - gh-85287: Changes Unicode codecs to return UnicodeEncodeError or + UnicodeDecodeError, rather than just UnicodeError. + - gh-113548: pdb now allows CLI arguments to pdb -m. + - gh-112948: Make completion of pdb similar to Python REPL + - gh-105866: Fixed _get_slots bug which caused error when defining + dataclasses with slots and a weakref_slot. + - gh-96471: Add asyncio.Queue termination with shutdown() method. + - gh-89739: The zipimport module can now read ZIP64 files. + - bpo-33533: asyncio.as_completed() now returns an object that is + both an asynchronous iterator and plain iterator. The new + asynchronous iteration pattern allows for easier correlation + between prior tasks and their completed results. This is a + closer match to concurrent.futures.as_completed()’s iteration + pattern. Patch by Justin Arthur. + - bpo-27578: inspect.getsource() (and related functions) work with + empty module files, returning '\n' (or reasonable equivalent) + instead of raising OSError. Patch by Kernc. + - bpo-37141: Accept an iterable of separators in + asyncio.StreamReader.readuntil(), stopping when one of them is + encountered. + - gh-66543: Make mimetypes.guess_type() properly parsing of URLs + with only a host name, URLs containing fragment or query, and + filenames with only a UNC sharepoint on Windows. Based on patch + by Dong-hee Na. + - bpo-15010: unittest.TestLoader.discover() now saves the original + value of unittest.TestLoader._top_level_dir and restores it at + the end of the call. + - Documentation + - gh-115977: Remove compatibilty references to Emscripten. + - gh-114099: Add an iOS platform guide, and flag modules not + available on iOS. + - gh-91565: Changes to documentation files and config outputs to + reflect the new location for reporting bugs - i.e. GitHub rather + than bugs.python.org. + - Tests + - gh-83434: Disable JUnit XML output (--junit-xml=FILE command + line option) in regrtest when hunting for reference leaks (-R + option). Patch by Victor Stinner. + - gh-117187: Fix XML tests for vanilla Expat <2.6.0. + - gh-116333: Tests of TLS related things (error codes, etc) were + updated to be more lenient about specific error message strings + and behaviors as seen in the BoringSSL and AWS-LC forks of + OpenSSL. + - gh-117089: Consolidated tests for importlib.metadata in their + own metadata package. + - gh-115979: Update test_importlib so that it passes under WASI + SDK 21. + - gh-112536: Add –tsan to test.regrtest for running TSAN tests in + reasonable execution times. Patch by Donghee Na. + - gh-116307: Added import helper isolated_modules as CleanImport + does not remove modules imported during the context. Use it in + importlib.resources tests to avoid leaving mod around to impede + importlib.metadata tests. + - Build + - gh-114736: Have WASI builds use WASI SDK 21. + - gh-115983: Skip building test modules that must be built as + shared under WASI. + - gh-71052: Add Android build script and instructions. + - Windows + - gh-117267: Ensure DirEntry.stat().st_ctime behaves consistently + with os.stat() during the deprecation period of st_ctime by + containing the same value as st_birthtime. After the deprecation + period, st_ctime will be the metadata change time (or + unavailable through DirEntry), and only st_birthtime will + contain the creation time. + - gh-116195: Improves performance of os.getppid() by using an + alternate system API when available. Contributed by vxiiduu. + - gh-88494: On Windows, time.monotonic() now uses the + QueryPerformanceCounter() clock to have a resolution better than + 1 us, instead of the GetTickCount64() clock which has a + resolution of 15.6 ms. Patch by Victor Stinner. + - gh-116773: Fix instances of <_overlapped.Overlapped object at + 0xXXX> still has pending operation at deallocation, the process + may crash. + - gh-91227: Fix the asyncio ProactorEventLoop implementation so + that sending a datagram to an address that is not listening does + not prevent receiving any more datagrams. + - gh-115119: Switched from vendored libmpdecimal code to a + separately-hosted external package in the cpython-source-deps + repository when building the _decimal module. + - C API + - gh-117642: Fix PEP 737 implementation for %#T and %#N. + - gh-87193: _PyBytes_Resize() can now be called for bytes objects + with reference count > 1, including 1-byte bytes objects. It + creates a new bytes object and destroys the old one if it has + reference count > 1. + - gh-117021: Fix integer overflow in PyLong_AsPid() on non-Windows + 64-bit platforms. + - gh-115756: PyCode_GetFirstFree() is an ustable API now and has + been renamed to PyUnstable_Code_GetFirstFree(). (Contributed by + Bogdan Romanyuk in gh-115781) + - gh-116869: Add test_cext test: build a C extension to check if + the Python C API emits C compiler warnings. Patch by Victor + Stinner. + - gh-116869: Make the C API compatible with + -Werror=declaration-after-statement compiler flag again. Patch + by Victor Stinner. + - gh-116936: Add PyType_GetModuleByDef() to the limited C API. + Patch by Victor Stinner. + - gh-116809: Restore removed private _PyErr_ChainExceptions1() + function. Patch by Victor Stinner. + - gh-115754: In the limited C API version 3.13, getting Py_None, + Py_False, Py_True, Py_Ellipsis and Py_NotImplemented singletons + is now implemented as function calls at the stable ABI level to + hide implementation details. Getting these constants still + return borrowed references. Patch by Victor Stinner. + - gh-115754: Add Py_GetConstant() and Py_GetConstantBorrowed() + functions to get constants. For example, + Py_GetConstant(Py_CONSTANT_ZERO) returns a strong reference to + the constant zero. Patch by Victor Stinner. + - gh-111696: Add support for %T, %T#, %N and %N# formats to + PyUnicode_FromFormat(): format the fully qualified name of an + object type and of a type: call PyType_GetModuleName(). See PEP + 737 for more information. Patch by Victor Stinner. + - gh-111696: Add PyType_GetModuleName() function to get the type’s + module name. Equivalent to getting the type.__module__ + attribute. Patch by Eric Snow and Victor Stinner. + - gh-111696: Add PyType_GetFullyQualifiedName() function to get + the type’s fully qualified name. Equivalent to + f"{type.__module__}.{type.__qualname__}", or type.__qualname__ + if type.__module__ is not a string or is equal to "builtins". + Patch by Victor Stinner. + - gh-85283: The fcntl, grp, pwd, termios, _statistics and + _testconsole C extensions are now built with the limited C API. + Patch by Victor Stinner. + - gh-111140: Add additional flags to PyLong_AsNativeBytes() and + PyLong_FromNativeBytes() to allow the caller to determine how to + handle edge cases around values that fill the entire buffer. + - gh-113024: Add PyObject_GenericHash() function. + ------------------------------------------------------------------- Wed Mar 20 05:08:29 UTC 2024 - Matej Cepl diff --git a/python313.spec b/python313.spec index 25e5e08..8a3f3e4 100644 --- a/python313.spec +++ b/python313.spec @@ -36,6 +36,8 @@ %bcond_without general %endif +%bcond_without experimental_jit + %define python_pkg_name python313 %if "%{python_pkg_name}" == "%{primary_python}" %define primary_interpreter 1 @@ -105,7 +107,7 @@ %define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so %bcond_without profileopt Name: %{python_pkg_name}%{psuffix} -Version: 3.13.0a5 +Version: 3.13.0b1 Release: 0 Summary: Python 3 Interpreter License: Python-2.0 @@ -208,6 +210,10 @@ BuildRequires: update-desktop-files BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(tk) BuildRequires: pkgconfig(x11) +%if %{with experimental_jit} +BuildRequires: clang => 18 +BuildRequires: llvm => 18 +%endif Requires: %{python_pkg_name}-base = %{version} Provides: %{python_pkg_name}-readline Provides: %{python_pkg_name}-sqlite3 @@ -500,6 +506,9 @@ export CFLAGS="%{optflags} -IVendor/" %endif %if %{with mpdecimal} --with-system-libmpdec \ +%endif +%if %{with experimental_jit} + --enable-experimental-jit=yes-off \ %endif --enable-loadable-sqlite-extensions @@ -627,9 +636,10 @@ for library in \ _statistics _struct syslog termios _testbuffer _testimportmultiple \ _testmultiphase unicodedata zlib _ctypes_test _testinternalcapi _testcapi \ _testclinic _testclinic_limited xxlimited xxlimited_35 _testexternalinspection \ - _testlimitedcapi _xxtestfuzz _xxsubinterpreters _elementtree pyexpat _md5 _sha1 \ + _testlimitedcapi _xxtestfuzz _elementtree pyexpat _md5 _sha1 \ + _interpchannels _interpqueues _interpreters \ _sha2 _blake2 _sha3 _uuid _zoneinfo \ - _testsinglephase _xxinterpchannels _xxinterpqueues xxsubtype + _testsinglephase xxsubtype do eval rm "%{buildroot}%{sitedir}/lib-dynload/$library.*" done @@ -786,6 +796,7 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo %dir %{sitedir}/lib-dynload %{sitedir}/sqlite3 %{sitedir}/pathlib +%{sitedir}/_pyrepl %{dynlib readline} %{dynlib _sqlite3} @@ -872,8 +883,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo %{dynlib _testsinglephase} %{dynlib _testexternalinspection} %{dynlib _testlimitedcapi} -%{dynlib _xxinterpchannels} -%{dynlib _xxinterpqueues} %{dynlib _xxtestfuzz} # workaround for missing packages %dir %{sitedir}/sqlite3 @@ -924,6 +933,9 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo %{dynlib grp} %{dynlib _hashlib} %{dynlib _heapq} +%{dynlib _interpchannels} +%{dynlib _interpqueues} +%{dynlib _interpreters} %{dynlib _json} %{dynlib _lsprof} %{dynlib _lzma} @@ -950,7 +962,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo %{dynlib _uuid} %{dynlib xxlimited} %{dynlib xxlimited_35} -%{dynlib _xxsubinterpreters} %{dynlib xxsubtype} %{dynlib zlib} %{dynlib _zoneinfo}