Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
301 commits
Select commit Hold shift + click to select a range
0243f97
gh-135661: Fix parsing start and end tags in HTMLParser according to …
serhiy-storchaka Jul 3, 2025
b499105
Clarify some details regarding `sys.monitoring` (#133981)
brettcannon Jul 3, 2025
48cb9b6
gh-133982: Test _pyio.BytesIO in free-threaded tests (gh-136218)
cmaloney Jul 4, 2025
85f092f
gh-115999: remove redundant check in free-threading from `_STORE_ATTR…
kumaraditya303 Jul 4, 2025
b582d75
gh-129824: fix data races in subinterpreters under TSAN (#135794)
kumaraditya303 Jul 4, 2025
8ac7613
gh-102555: Fix comment parsing in HTMLParser according to the HTML5 s…
serhiy-storchaka Jul 4, 2025
93263d4
gh-135773: have pyvenv.cfg without home key anchor a venv and deduce …
rickeylev Jul 4, 2025
ade1988
Docs: Move "or" outside monospace syntax in `tarfile.rst` (GH-136263)
rffontenelle Jul 4, 2025
d1d5dce
gh-136288: Fix error message in `_testcapi/vectorcall.c` (GH-136258)
wsfulton Jul 4, 2025
5de7e3f
gh-136297: Test all `pickle` protocols in `test_zoneinfo_property.py`…
sobolevn Jul 5, 2025
f0c7344
gh-101100: Fix references in `http.cookiejar` docs (GH-136238)
LamentXU123 Jul 5, 2025
5b56daa
gh-130870: Preserve `GenericAlias` subclasses in `typing.get_type_hin…
Viicos Jul 5, 2025
887e5c8
gh-136047: Allow typing._allow_reckless_class_checks to check `_py_ab…
youknowone Jul 5, 2025
5dac137
gh-136315: Fix skipped multithreading test in test_zstd (#136320)
emmatyping Jul 5, 2025
1953713
gh-136032: Fix `argparse.BooleanOptionalAction` doc (#136133)
mattwang44 Jul 5, 2025
06e347b
gh-136285: Improve `pickle` protocol testing in `test_interpreters` (…
sobolevn Jul 6, 2025
d22e073
gh-109700: fix memory error handling in `PyDict_SetDefault` (#136338)
kumaraditya303 Jul 6, 2025
77a8bd2
gh-109070: Document that get_context in multiprocessing have side eff…
aisk Jul 6, 2025
c89f76e
gh-136021: Make `type_params` a required parameter for `typing._eval_…
sobolevn Jul 6, 2025
9312702
gh-136316: Make typing.evaluate_forward_ref better at evaluating nest…
JelleZijlstra Jul 6, 2025
85b817d
gh-136289: Fix test_sqlite3 on platforms with strict UTF-8 filesystem…
serhiy-storchaka Jul 7, 2025
0c3e3da
gh-109700: fix interpreter finalization while handling memory error (…
kumaraditya303 Jul 7, 2025
90a5b44
gh-87790: support thousands separators for formatting fractional part…
skirpichev Jul 7, 2025
3e849d7
gh-87790: support thousands separators for formatting fractional part…
skirpichev Jul 7, 2025
d05423a
gh-94503: Update logging cookbook with an example of uniformly handli…
vsajip Jul 7, 2025
cb99d99
gh-127502: Remove XML vulnerability table (GH-135294)
vstinner Jul 7, 2025
2468aaf
gh-135755: Document __future__.* and CO_* as proper Sphinx objects (G…
encukou Jul 7, 2025
0a33221
gh-101100: Fix sphinx warnings in `whatsnew/3.9` (#136163)
sobolevn Jul 7, 2025
9aac5a3
gh-131591: Document Py_REMOTE_DEBUG (GH-135929)
encukou Jul 7, 2025
11f074b
gh-86682: Add versionadded for sys._getframemodulename (#136325)
asottile Jul 7, 2025
73e1207
gh-135913: Document ob_refcnt, ob_type, ob_size (GH-135914)
encukou Jul 7, 2025
b7aa2a4
gh-124486: Fix test_whichdb_ndbm in test_dbm on NetBSD (GH-136335)
serhiy-storchaka Jul 7, 2025
c45da6a
gh-136155: Docs: only add custom OpenGraph protocol meta tags for HTM…
m-aciek Jul 7, 2025
fb170cf
gh-120713: Make _Py_NORMALIZE_CENTURY private (GH-135933)
encukou Jul 7, 2025
0b62523
gh-101100: Fix Sphinx warnings in library/email.compat32-message.rst …
LamentXU123 Jul 7, 2025
fe187fa
gh-135906: Use `_PyObject_CAST` in internal headers (GH-135892)
clin1234 Jul 7, 2025
0240ef4
gh-98388: add tests for happy eyeballs (#136368)
kumaraditya303 Jul 7, 2025
fbef0c1
gh-102567: Add missing newline to `--help-all` (GH-136391)
hugovk Jul 8, 2025
5b78c85
gh-101100: Fix sphinx warnings in `whatsnew/3.11.rst` (#136402)
LamentXU123 Jul 8, 2025
89f06a3
gh-134043: use `_PyObject_GetMethodStackRef` in pattern matching (#13…
kumaraditya303 Jul 8, 2025
5193400
gh-117657: enable `test_capi` under TSAN (#136269)
kumaraditya303 Jul 8, 2025
db699db
gh-136297: Fix `hypothesis` and `subTest` usage in `test_zoneinfo_pro…
sobolevn Jul 8, 2025
0152df5
gh-101100: Fix sphinx warnings in `Doc/library/exceptions.rst` (#136309)
Jul 8, 2025
ba9c198
gh-136186: Fix race condition in test_external_inspection.test_only_a…
pablogsal Jul 8, 2025
490eea0
gh-136380: Fix import behavior for `concurrent.futures.InterpreterPoo…
aisk Jul 8, 2025
6c81e8c
gh-136156: Allow using linkat() with TemporaryFile (#136281)
vstinner Jul 8, 2025
bc9bc07
Update bytecode magic number in tests for the 3.14 release candidate …
hugovk Jul 8, 2025
b6b99bf
GH-91636: Clear weakrefs created by finalizers. (GH-136401)
nascheme Jul 8, 2025
ffd7f2f
gh-136162: Document `encodings` package functions (#136164)
StanFromIreland Jul 8, 2025
a6566e4
gh-92536: Fix comment about number of unicode string types (#136439)
senyai Jul 8, 2025
77d25e5
gh-91048: Revert the memory cache removal for remote debugging (#136440)
pablogsal Jul 9, 2025
6ea4258
gh-136229: Remove Platform Emscripten is not supported warning (#136230)
hoodmane Jul 9, 2025
f9932f5
gh-119109: improve `functools.partial` vectorcall with keywords (#124…
dg-pb Jul 9, 2025
301b29d
gh-94503: Update logging cookbook example with info on addressing log…
vsajip Jul 9, 2025
f1dcf3c
gh-53243: Document `codecs.readbuffer_encode()` (#136284)
StanFromIreland Jul 9, 2025
797abd1
gh-134657: Remove newly added private names from asyncio.__all__ (#13…
JelleZijlstra Jul 9, 2025
77fa7a4
gh-136447: Use `self.loop` instead of global `loop` variable in async…
injust Jul 9, 2025
3c43df4
Docs: unittest.enterModuleContext is not a classmethod (#136464)
geofft Jul 9, 2025
6a6cd3c
gh-131825: Fix `sqlite3` timezone-naive adapter recipe (GH-136270)
NekrodNIK Jul 9, 2025
591abcc
gh-81520: Document unexpected `os.path.ismount` behaviour with btrfs …
bionade24 Jul 9, 2025
798f791
Minor edit: Move comments closer to the code they describe (gh-136477)
rhettinger Jul 9, 2025
c49dc3b
GH-115802: Optimize JIT stencils for size (GH-136393)
brandtbucher Jul 9, 2025
e697f5e
Add Diego Russo as code owner of the JIT (#136460)
diegorusso Jul 9, 2025
92f392a
gh-136145: Define 'standard library' and 'stdlib' in the glossary (GH…
zware Jul 9, 2025
92b33c9
gh-136156: Skip test_tempfile.test_link_tmpfile() on Android (#136430)
vstinner Jul 9, 2025
9c4d287
gh-102740: Clarify time.monotonic() "system-wide" in the doc (#136431)
vstinner Jul 9, 2025
ea45a2f
gh-136476: Show the full stack in get_async_stack_trace in _remote_de…
pablogsal Jul 9, 2025
61dd9fd
gh-135846: Add zstd dependency to Android build script (#136253)
emmatyping Jul 9, 2025
b44316a
gh-136476: Remove creation of unused list (GH-136494)
encukou Jul 10, 2025
c176543
gh-136438: Make sure `test_builtins` pass with all optimization level…
sobolevn Jul 10, 2025
85bc89f
gh-136209: Add .. c:var:: declarations for C exception types (GH-136210)
encukou Jul 10, 2025
d754f75
gh-82088: Improve performance of PyLong_As*() for multi-digit ints (#…
eendebakpt Jul 10, 2025
f519918
gh-136394: Fix race condition in test_zstd (GH-136432)
Rogdham Jul 10, 2025
f1b8d01
gh-132661: Add default value (of `""`) for `Interpolation.expression`…
davepeck Jul 10, 2025
4b41b20
gh-82663: Clarify `codecs.iterdecode/encode` docs (#136497)
StanFromIreland Jul 10, 2025
35e2c35
gh-52876: Implement missing parameter in `codecs.StreamReaderWriter` …
StanFromIreland Jul 10, 2025
59acdba
gh-135953: Implement sampling tool under profile.sample (#135998)
lkollar Jul 10, 2025
c560df9
gh-136517: Print uncollectable objects if DEBUG_UNCOLLECTABLE mode wa…
sergey-miryanov Jul 10, 2025
56c6f04
Omit `Python/perf_jit_trampoline.c` from the `**/*jit*` CODEOWNERS ru…
brandtbucher Jul 10, 2025
49365bd
gh-107538: [Enum] fix handling of inverted/negative values (GH-132273)
ethanfurman Jul 10, 2025
515b3d1
gh-101100: Fix sphinx warnings in `library/email.parser.rst` (#136475)
LamentXU123 Jul 11, 2025
975b57d
gh-76637: Note that `undefined` Codec is for testing (#136531)
StanFromIreland Jul 11, 2025
3343fce
gh-136434: Fix docs generation of `UnboundItem` in subinterpreters (#…
sobolevn Jul 11, 2025
7de8ea7
gh-136300: Modify C tests to conform to PEP-737 (GH-136301)
wsfulton Jul 11, 2025
236f733
gh-136541: Fix several problems of perf trampolines in x86_64 and aar…
pablogsal Jul 11, 2025
cbf007b
gh-136156: Remove tempfile test_link_tmpfile() (#136534)
vstinner Jul 11, 2025
2c9a801
gh-135906: Test the internal C API in test_cext (#136247)
vstinner Jul 11, 2025
252e2f7
gh-101100: Fix sphinx warnings in Doc/library/functools.rst (GH-136424)
LamentXU123 Jul 11, 2025
561212a
Doc: More duplicate word fixes (GH-136299)
LamentXU123 Jul 11, 2025
7f1e66a
Minor edit: Improve comment readability and ordering (gh-136557)
rhettinger Jul 11, 2025
db47f4d
gh-135401: Test AWS-LC as a cryptography library in CI (GH-135402)
WillChilds-Klein Jul 11, 2025
c7d24b8
gh-111506: Add _Py_OPAQUE_PYOBJECT to hide PyObject layout & related …
encukou Jul 12, 2025
83d04a2
gh-136565: Improve and amend `hashlib.__doc__` (#136566)
picnixz Jul 12, 2025
2301cdb
gh-135853: add `math.fmax` and `math.fmin` (#135888)
picnixz Jul 12, 2025
c564847
gh-89083: Add CLI tests for `UUIDv{6,7,8}` (#136548)
LamentXU123 Jul 12, 2025
dda70fa
gh-99631: Add custom `loads` and `dumps` support for the `shelve` mod…
furkanonder Jul 12, 2025
5a20e79
gh-99813: Start using `SSL_sendfile` when available (#99907)
illia-v Jul 12, 2025
25335d2
gh-134759: fix `UnboundLocalError` in `email.message.Message.get_payl…
skv0zsneg Jul 12, 2025
5e1e21d
gh-91153: prevent a crash in `bytearray.__setitem__(ind, ...)` when `…
bast0006 Jul 12, 2025
be2c3d2
gh-136549: Fix signature of threading.excepthook() (GH-136559)
serhiy-storchaka Jul 12, 2025
9be3649
gh-136591: avoid using deprecated features for OpenSSL 3.0+ (#136592)
picnixz Jul 12, 2025
47b01da
gh-101100: Fix sphinx warnings in Doc/library/platform.rst (GH-136562)
LamentXU123 Jul 12, 2025
42b251b
gh-134939: Correct `concurrent.interpreters` source code link (#136564)
StanFromIreland Jul 13, 2025
171de05
gh-136523: Fix wave.Wave_write emitting an unraisable when open raise…
inventshah Jul 13, 2025
46707d2
gh-132969: update ACKS file (gh-133222) (#136144)
ogbiggles Jul 13, 2025
609d5ad
gh-134833: improve docs for `del s[i:j]` in `Mutable Sequence Types` …
Yzi-Li Jul 13, 2025
0d4fd10
Docs: Fix and improve the `PyUnstable_Object_EnableDeferredRefcount` …
ZeroIntensity Jul 13, 2025
9e5cebd
gh-136547: allow to temporarily disable hash algorithms in tests (#13…
picnixz Jul 13, 2025
3dbe02c
gh-132346: Docs: Clarify that reference counts aren't stable between …
ZeroIntensity Jul 13, 2025
e18829a
gh-132629: Deprecate accepting out-of-range values for unsigned integ…
serhiy-storchaka Jul 13, 2025
a93d9aa
gh-42237: Link to complete list of codec aliases (#136625)
StanFromIreland Jul 13, 2025
85ec3b3
gh-127971: fix off-by-one read beyond the end of a string during sear…
duaneg Jul 13, 2025
da699ed
gh-121914: Change the names of the symbol tables for lambda and genex…
serhiy-storchaka Jul 13, 2025
283b050
gh-127146: Emscripten: Fix test_open_undecodable_uri by setting `-sTE…
hoodmane Jul 13, 2025
b74fb8e
gh-135256: Simplify parsing parameters in Argument Clinic (GH-135257)
serhiy-storchaka Jul 13, 2025
cd3e7ac
gh-67341: fix a typo in `Include/fileutils.h` (#136049)
moreal Jul 14, 2025
5bbf30e
Partially revert "gh-101100: Fix sphinx warnings in `library/email.pa…
hugovk Jul 14, 2025
75e2c5d
gh-134567: Move unittest What’s New entry (#136630)
garry-cairns Jul 14, 2025
a68ddea
gh-90733: improve `hashlib.scrypt` interface (#136100)
picnixz Jul 14, 2025
3d8c38f
GH-135904: Improve the JIT's performance on macOS (GH-136528)
brandtbucher Jul 14, 2025
d995922
gh-136396: Include instrumentation when creating new copies of the by…
mpage Jul 14, 2025
9363703
gh-116738: Make grp module thread-safe (#135434)
yoney Jul 14, 2025
db20324
Fix a minor indentation error (#136661)
gaogaotiantian Jul 15, 2025
e4654e0
gh-136663: fix signatures of PyFloat_Pack/Unpack in docs (#136664)
skirpichev Jul 15, 2025
f320c95
gh-131189: Fix "msvcrt" import warning on Linux when "_ctypes" is not…
plashchynski Jul 15, 2025
c89a66f
GH-133711: Enable UTF-8 mode by default (PEP 686) (#133712)
AA-Turner Jul 15, 2025
5b969fd
GH-132661: Add ``string.templatelib.convert()`` (#135217)
AA-Turner Jul 15, 2025
a02cf19
gh-72570: mention the incompatibility of XOFs with HMAC (#136676)
picnixz Jul 15, 2025
624bf52
gh-136155: Docs: check for EPUB fatal errors in CI (#134074)
m-aciek Jul 15, 2025
7e10a10
gh-136682: Remove incorrect statement that `os.path.samestat` accepts…
bluetech Jul 15, 2025
a8f42e6
gh-111968: remove redundant fetching of interpreter state in `dict` i…
kumaraditya303 Jul 15, 2025
be02e68
gh-72327: Suggest using system terminal for pip install in PyREPL (#1…
ichard26 Jul 15, 2025
2500eb9
gh-135909: Assert incoming `refcnt != 0` for the free threaded GC (GH…
andrewreds Jul 15, 2025
7689407
Fix index entry and anchor for module.__test__ (GH-136674)
serhiy-storchaka Jul 15, 2025
cb59eae
Fix the doctest.testmod() docstring (GH-136675)
serhiy-storchaka Jul 15, 2025
e81c4e8
gh-127146: Report uid in Emscripten + node as native uid (#136509)
hoodmane Jul 16, 2025
e89923d
fix grammar typo in `logging.rst` (#136584)
wjandrea Jul 16, 2025
ef66fb5
gh-135148: Correctly handle f/t strings with comments and debug expre…
pablogsal Jul 16, 2025
8e2f4b4
Improved venv docs to indicate that isolation is the default. (#136698)
facundobatista Jul 16, 2025
12e52ca
gh-127146: Emscripten: Make os.umask() actually work (#136706)
hoodmane Jul 16, 2025
c730952
gh-127146: Emscripten: more regular stack overflow skips (#136708)
hoodmane Jul 16, 2025
2f0db9b
Add `.gram` file to the `.editorconfig` (#136680)
sobolevn Jul 16, 2025
bde808a
gh-136710: Fix bad indentation in `os.chdir` docstring (GH-136709)
haampie Jul 16, 2025
dcd27aa
gh-127146: Emscripten: Don't need to avoid unpaired surrogate anymore…
hoodmane Jul 16, 2025
69d8fe5
gh-126548: Add a thread-unsafety warning for `importlib.reload()` (GH…
johnslavik Jul 16, 2025
b7d7225
gh-136669: build `_asyncio` as static module (#136670)
kumaraditya303 Jul 16, 2025
180b3eb
fix traceback.FrameSummary docstring by adding end_lineno, colno, and…
olehermanse Jul 16, 2025
22af5d3
gh-127146: Emscripten: Set umask to zero in python.sh (#136740)
hoodmane Jul 17, 2025
eddc8c0
gh-116738: Make pwd module thread-safe (#136695)
yoney Jul 17, 2025
28937d3
gh-136697: Use the standard audit event format for sys.monitoring doc…
gaogaotiantian Jul 17, 2025
03017a8
gh-136438: Make sure `test_ast` pass with all optimization levels (#1…
efimov-mikhail Jul 18, 2025
09ac8e0
Fix typo: "occured" =>"occurred" (#134928)
GameRoMan Jul 19, 2025
f520f22
parser_generator.py typo - keywods -> keywords (#135014)
chemelnucfin Jul 19, 2025
60146f4
Fix typo in `Lib/test/test_ast/test_ast.py` (#136767)
hunterhogan Jul 19, 2025
3eecc72
Docs: Improve example for ``itertools.batched()`` (#136775)
RafaelWO Jul 19, 2025
263e451
gh-74598: document that `fnmatch.filterfalse` is affected by cache li…
gergely-elias Jul 19, 2025
acefb97
gh-136769: Include fixed-width integers in the fundamental data types…
SZeltaat Jul 19, 2025
eb8ac4c
gh-122450: Indicate that `Fraction` denominators are always positive …
nacind Jul 19, 2025
d19bb44
Doc/c-api/memory.rst: extend --without-pymalloc doc with ASan informa…
disconnect3d Jul 19, 2025
f575588
gh-135730: Clarify multiprocessing.Queue close() documentation (#136803)
aggshruti99 Jul 19, 2025
6a1c93a
gh-136764: improve comment in enum.verify.__call__ (GH-136774)
damngamerz Jul 19, 2025
3a64844
gh-136801: Fix PyREPL syntax highlightning on match cases after multi…
olgarithms Jul 19, 2025
8ffc3ef
gh-54732: Make argparse error caused by empty rows in option files ex…
jdunter Jul 19, 2025
57acd65
gh-135468: Improve ``BaseHandler.http_error_default()`` parameter des…
vgiane Jul 19, 2025
6293d8a
gh-136752: Clarify documentation for ``IPv{N}Address.is_reserved`` (#…
mlnrt Jul 19, 2025
1ba2324
gh-136793: Update the sampling rate in the documentation (#136829)
Slavaqq Jul 19, 2025
7ae4749
gh-124621: Emscripten: Add support for async input devices (GH-136822)
hoodmane Jul 19, 2025
67036f1
gh-133875: Remove deprecated `pathlib.PurePath.is_reserved` (#133876)
sobolevn Jul 19, 2025
69ea1b3
gh-136839: Refactor simple dict.update calls (#136811)
disconnect3d Jul 19, 2025
800d37f
gh-124621: Emscripten: Fix regression in use-after-close error handli…
hoodmane Jul 19, 2025
6be49ee
gh-136787: improve exception messages for invalid hash algorithms (#1…
picnixz Jul 20, 2025
588d9fb
gh-136438: Make sure `test_remote_pdb` pass with all optimization lev…
olp-cs Jul 20, 2025
dda9d00
gh-108362: Retarget incremental GC changes to 3.14 (#125453)
hugovk Jul 20, 2025
9c2f91c
gh-136854: Exit on error in `make venv` (#136856)
nachocab Jul 20, 2025
c6e6fe9
gh-130655: gettext: Add fallback testcase (#136857)
GovernmentPlates Jul 20, 2025
cc81b4e
gh-86608: Improve and restructure tarfile examples (#121771)
GovernmentPlates Jul 20, 2025
c504f62
gh-136547: fix `hashlib_helper` for blocking and requesting digests (…
picnixz Jul 20, 2025
4a151ca
gh-134531: prefer using `_hashlib` module state instead of module obj…
picnixz Jul 20, 2025
18a7f5d
gh-127598: Improve ModuleNotFoundError when -S is passed (GH-136821)
MonadChains Jul 20, 2025
958657b
gh-131724: Add a new max_response_headers param to HTTP/HTTPSConnecti…
aeurielesn Jul 20, 2025
e24c66d
gh-91349: Adjust default compression level to 6 (down from 9) in gzip…
morotti Jul 20, 2025
8f59fbb
gh-136492: Add `FrameLocalsProxyType` to `types` (GH-136546)
ZeroIntensity Jul 20, 2025
65d2c51
GH-111758: Merge TSan and UBSan reusable GHA workflows (#136820)
webknjaz Jul 20, 2025
acbe896
GH-130645: Default to color help in argparse (#136809)
pablogsal Jul 20, 2025
aec7f5f
gh-136852: Emscripten: Add PYTHON_NODE_VERSION environment variable (…
hoodmane Jul 20, 2025
246be21
gh-136470: Correct InterpreterPoolExecutor's default thread name (GH-…
aisk Jul 20, 2025
c5e77af
gh-132661: Disallow `Template`/`str` concatenation after PEP 750 spec…
davepeck Jul 21, 2025
5798348
gh-136428: amend UUIDv8 performance improvements (#136903)
picnixz Jul 21, 2025
1e67293
gh-136882: Update stale link in the basic logging tutorial. (#136885)
vsajip Jul 21, 2025
cf19b64
gh-134411: assert `PyLong_FromLong(x) != NULL` when `x` is known to b…
smurav Jul 21, 2025
9c7b2af
gh-136852: Emscripten: Fix bug in #136853 (#136909)
hoodmane Jul 21, 2025
d1d526a
gh-136251: Improvements to WASM demo REPL (GH-136252)
adqm Jul 21, 2025
09dfb50
gh-135621: Remove dependency on curses from PyREPL (GH-136758)
ambv Jul 21, 2025
dee6501
gh-135661: Fix parsing attributes with whitespaces around the "=" sep…
serhiy-storchaka Jul 21, 2025
28153fe
gh-135621: Simplify TermInfo (GH-136916)
encukou Jul 21, 2025
658599c
gh-121028: Soft-deprecate sys.api_version (GH-136463)
encukou Jul 21, 2025
58d305c
gh-136438: Make sure `test_generated_cases` pass with all optimizatio…
efimov-mikhail Jul 21, 2025
5f9e38f
gh-136859: Improve `StrEnum` docs (GH-136864)
nachocab Jul 21, 2025
65893c6
gh-116738: Make syslog module thread-safe (#136760)
yoney Jul 21, 2025
4b68289
Pedantic rewording of why relative importing doesn't work in main mod…
thejcannon Jul 21, 2025
80b2d60
GH-136874: `url2pathname()`: discard query and fragment components (#…
barneygale Jul 21, 2025
a109606
gh-136421: Load `_datetime` static types during interpreter initializ…
ZeroIntensity Jul 21, 2025
b5428bb
gh-136437: Document some `os.path` functions as requiring pos-only (#…
sobolevn Jul 21, 2025
3224429
gh-136437: Document `os.path.dirname` as accepting only pos-only (#13…
sobolevn Jul 21, 2025
f183996
gh-136870: fix data race in `PyThreadState_Clear` on `sys_tracing_thr…
kumaraditya303 Jul 21, 2025
89c220b
gh-133296: Publicly expose critical section API that accepts PyMutex …
ngoldbaum Jul 21, 2025
6bf1c0a
gh-136170: Revert adding `ZipFile.data_offset` (GH-136950)
emmatyping Jul 21, 2025
bbe589f
gh-133600: Move config.site-wasm32-emscripten into the emscripten fol…
hoodmane Jul 21, 2025
46cbdf9
gh-135228: When @dataclass(slots=True) replaces a dataclass, make the…
JelleZijlstra Jul 22, 2025
149bddc
gh-131531: Android test fixes (#136845)
mhsmith Jul 22, 2025
9a21df7
Fix 3 typos in "Next" News items (#136892)
corneliusroemer Jul 22, 2025
22c8658
gh-132661: Document t-strings and `templatelib` (#135229)
davepeck Jul 22, 2025
c933a6b
gh-124621: Emscripten: Support pyrepl in browser (GH-136931)
hoodmane Jul 22, 2025
4d02f31
gh-118350: Fix support of elements "textarea" and "title" in HTMLPars…
timonviola Jul 22, 2025
aafbdb5
gh-133742: Fix test_sysconfig and test_build_details for relocated di…
pablogsal Jul 22, 2025
12d2f37
gh-124621: Emscripten: Fix __syscall_ioctl patch (GH-136993)
hoodmane Jul 22, 2025
b31e5d6
gh-136437: Convert more ``os.path`` functions to positional-only in t…
sobolevn Jul 22, 2025
3a89dfe
Revert "gh-112068: C API: Add support of nullable arguments in PyArg_…
serhiy-storchaka Jul 22, 2025
c13cc4a
Fix code example in `annotationlib` documentation (#136972)
Viicos Jul 22, 2025
b6d3242
GH-136975: Emend a spelling error (algorthm -> algorithm) (#136999)
AA-Turner Jul 22, 2025
a667800
gh-136459: Add perf trampoline support for macOS (#136461)
canova Jul 22, 2025
d6cf05b
Fix tables in 'Using on Windows' for the text writer (#137012)
AA-Turner Jul 22, 2025
aafb143
Use `test.support.is_wasm32` flag for `is_emscripten` or `is_wasi` fo…
anistark Jul 22, 2025
b13a5df
gh-133296: Fix versionadded for C API functions that were backported …
ngoldbaum Jul 22, 2025
e41c1ce
gh-136459: Use platform-specific type in perf_jit_trampoline (GH-137031)
encukou Jul 23, 2025
99cdf1d
gh-136437: Make several functions in `os.path` pos-only (#136949)
sobolevn Jul 23, 2025
fac4964
gh-136516: Mention installation artifacts as de-facto resources (GH-1…
encukou Jul 23, 2025
80a7017
Fix typos in Doc/extending/extending.rst and Doc/library/shelve.rst (…
corneliusroemer Jul 23, 2025
38b936c
gh-137043: mention `PyList_GET_ITEM` as unsafe borrowed API in free-t…
crusaderky Jul 23, 2025
6a285f9
Revert "gh-135228: When @dataclass(slots=True) replaces a dataclass, …
JelleZijlstra Jul 23, 2025
777159f
gh-135676: Lexical analysis: Reword String literals and related secti…
encukou Jul 23, 2025
a10235e
gh-132983: Add missing references to Zstandard in shutil docstrings (…
Rogdham Jul 23, 2025
ec7fad7
Touch up `Setup.local` handling in `Tools/wasm/wasi` (GH-137051)
brettcannon Jul 23, 2025
dc27218
gh-136980: Remove unused C tracing code in bdb (#136981)
FredericDT Jul 24, 2025
ecb3f23
gh-136976: Emscripten: Add _decimal and libmpdec (#136997)
hoodmane Jul 24, 2025
ae4d27e
gh-124621: Emscripten: Add smoke test for using pyrepl in Chrome (#13…
hoodmane Jul 24, 2025
ec02db5
gh-136759: rename `lock.h` to `pylock.h` (#137041)
aisk Jul 24, 2025
e93c30d
gh-137054: remove obsolete counting of objects in young generation un…
sergey-miryanov Jul 24, 2025
d8fa40b
gh-132551: add missing critical sections on BytesIO methods (#137073)
kumaraditya303 Jul 24, 2025
2456715
Fix docs for Queue.shutdown (gh-137028)
rhettinger Jul 24, 2025
9a6b60a
gh-136870: fix data races in instrumentation of bytecode (#136994)
kumaraditya303 Jul 24, 2025
d5e75c0
Exclude _testclinic_depr.c.h from c-analyzer (GH-137086)
zware Jul 24, 2025
fece15d
gh-136914: Fix support of cached functions and properties in DocTest'…
dlax Jul 25, 2025
9b451fb
gh-137093: Fix race condition in `test_embed.test_bpo20891` (GH-137094)
ZeroIntensity Jul 25, 2025
d7db0ee
gh-137084: remove multiple calls to `get_gc_state` in `gc.c` (#137085)
sergey-miryanov Jul 25, 2025
280f79c
Add blurb.
ZeroIntensity Jul 25, 2025
52896bc
Add a test case.
ZeroIntensity Jul 25, 2025
ec0cd16
Merge branch 'main' into fix-issue-130522
ZeroIntensity Jul 25, 2025
ea06ae5
Fix Queue.shutdown docs for condition to unblock a join (gh-137088)
rhettinger Jul 25, 2025
e83aeee
Merge branch 'main' into fix-issue-130522
kumaraditya303 Jul 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
root = true

[*.{py,c,cpp,h,js,rst,md,yml,yaml}]
[*.{py,c,cpp,h,js,rst,md,yml,yaml,gram}]
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space

[*.{py,c,cpp,h}]
[*.{py,c,cpp,h,gram}]
indent_size = 4

[*.rst]
Expand Down
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ Modules/Setup* @erlend-aasland
**/*context* @1st1
**/*genobject* @markshannon
**/*hamt* @1st1
**/*jit* @brandtbucher @savannahostrowski
**/*jit* @brandtbucher @savannahostrowski @diegorusso
Python/perf_jit_trampoline.c # Exclude the owners of "**/*jit*", above.
Objects/set* @rhettinger
Objects/dict* @methane @markshannon
Objects/typevarobject.c @JelleZijlstra
Expand Down
116 changes: 97 additions & 19 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ jobs:
free-threading: ${{ matrix.free-threading }}
os: ${{ matrix.os }}

build-ubuntu-ssltests:
build-ubuntu-ssltests-openssl:
name: 'Ubuntu SSL tests with OpenSSL'
runs-on: ${{ matrix.os }}
timeout-minutes: 60
Expand Down Expand Up @@ -322,6 +322,81 @@ jobs:
- name: SSL tests
run: ./python Lib/test/ssltests.py

build-ubuntu-ssltests-awslc:
name: 'Ubuntu SSL tests with AWS-LC'
runs-on: ${{ matrix.os }}
timeout-minutes: 60
needs: build-context
if: needs.build-context.outputs.run-tests == 'true'
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
awslc_ver: [1.55.0]
env:
AWSLC_VER: ${{ matrix.awslc_ver}}
MULTISSL_DIR: ${{ github.workspace }}/multissl
OPENSSL_DIR: ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}/lib
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
- name: Register gcc problem matcher
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install dependencies
run: sudo ./.github/workflows/posix-deps-apt.sh
- name: Configure SSL lib env vars
run: |
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}" >> "$GITHUB_ENV"
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}/lib" >> "$GITHUB_ENV"
- name: 'Restore AWS-LC build'
id: cache-aws-lc
uses: actions/cache@v4
with:
path: ./multissl/aws-lc/${{ matrix.awslc_ver }}
key: ${{ matrix.os }}-multissl-aws-lc-${{ matrix.awslc_ver }}
- name: Install AWS-LC
if: steps.cache-aws-lc.outputs.cache-hit != 'true'
run: |
python3 Tools/ssl/multissltests.py \
--steps=library \
--base-directory "$MULTISSL_DIR" \
--awslc ${{ matrix.awslc_ver }} \
--system Linux
- name: Add ccache to PATH
run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: false
- name: Configure CPython
run: |
./configure CFLAGS="-fdiagnostics-format=json" \
--config-cache \
--enable-slower-safety \
--with-pydebug \
--with-openssl="$OPENSSL_DIR" \
--with-builtin-hashlib-hashes=blake2 \
--with-ssl-default-suites=openssl
- name: Build CPython
run: make -j
- name: Display build info
run: make pythoninfo
- name: Verify python is linked to AWS-LC
run: ./python -c 'import ssl; print(ssl.OPENSSL_VERSION)' | grep AWS-LC
- name: SSL tests
run: ./python Lib/test/ssltests.py

build-wasi:
name: 'WASI'
needs: build-context
Expand Down Expand Up @@ -510,31 +585,31 @@ jobs:
- name: Tests
run: xvfb-run make ci

build-tsan:
name: >-
Thread sanitizer
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
build-san:
name: >- # ${{ '' } is a hack to nest jobs under the same sidebar category
Sanitizers${{ '' }}
needs: build-context
if: needs.build-context.outputs.run-tests == 'true'
strategy:
fail-fast: false
matrix:
check-name:
- Thread
free-threading:
- false
- true
uses: ./.github/workflows/reusable-tsan.yml
sanitizer:
- TSan
include:
- check-name: Undefined behavior
sanitizer: UBSan
free-threading: false
uses: ./.github/workflows/reusable-san.yml
with:
sanitizer: ${{ matrix.sanitizer }}
config_hash: ${{ needs.build-context.outputs.config-hash }}
free-threading: ${{ matrix.free-threading }}

build-ubsan:
name: Undefined behavior sanitizer
needs: build-context
if: needs.build-context.outputs.run-tests == 'true'
uses: ./.github/workflows/reusable-ubsan.yml
with:
config_hash: ${{ needs.build-context.outputs.config-hash }}

cross-build-linux:
name: Cross build Linux
runs-on: ubuntu-latest
Expand Down Expand Up @@ -628,11 +703,12 @@ jobs:
- build-windows-msi
- build-macos
- build-ubuntu
- build-ubuntu-ssltests
- build-ubuntu-ssltests-awslc
- build-ubuntu-ssltests-openssl
- build-wasi
- test-hypothesis
- build-asan
- build-tsan
- build-san
- cross-build-linux
- cifuzz
if: always()
Expand All @@ -643,7 +719,8 @@ jobs:
with:
allowed-failures: >-
build-windows-msi,
build-ubuntu-ssltests,
build-ubuntu-ssltests-awslc,
build-ubuntu-ssltests-openssl,
test-hypothesis,
cifuzz,
allowed-skips: >-
Expand All @@ -661,11 +738,12 @@ jobs:
check-generated-files,
build-macos,
build-ubuntu,
build-ubuntu-ssltests,
build-ubuntu-ssltests-awslc,
build-ubuntu-ssltests-openssl,
build-wasi,
test-hypothesis,
build-asan,
build-tsan,
build-san,
cross-build-linux,
'
|| ''
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/jit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
- '**jit**'
- 'Python/bytecodes.c'
- 'Python/optimizer*.c'
- 'Python/executor_cases.c.h'
- 'Python/optimizer_cases.c.h'
- '!Python/perf_jit_trampoline.c'
- '!**/*.md'
- '!**/*.ini'
Expand All @@ -13,6 +15,8 @@ on:
- '**jit**'
- 'Python/bytecodes.c'
- 'Python/optimizer*.c'
- 'Python/executor_cases.c.h'
- 'Python/optimizer_cases.c.h'
- '!Python/perf_jit_trampoline.c'
- '!**/*.md'
- '!**/*.ini'
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/posix-deps-apt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ apt-get -yq install \
build-essential \
pkg-config \
ccache \
cmake \
gdb \
lcov \
libb2-dev \
Expand All @@ -25,3 +26,10 @@ apt-get -yq install \
uuid-dev \
xvfb \
zlib1g-dev

# Workaround missing libmpdec-dev on ubuntu 24.04:
# https://launchpad.net/~ondrej/+archive/ubuntu/php
# https://deb.sury.org/
sudo add-apt-repository ppa:ondrej/php
apt-get update
apt-get -yq install libmpdec-dev
14 changes: 13 additions & 1 deletion .github/workflows/reusable-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
run: |
set -Eeuo pipefail
# Build docs with the nit-picky option; write warnings to file
make -C Doc/ PYTHON=../python SPHINXOPTS="--quiet --nitpicky --fail-on-warning --warning-file sphinx-warnings.txt" html
make -C Doc/ PYTHON=../python SPHINXOPTS="--quiet --nitpicky --warning-file sphinx-warnings.txt" html
- name: 'Check warnings'
if: github.event_name == 'pull_request'
run: |
Expand All @@ -75,6 +75,18 @@ jobs:
--fail-if-regression \
--fail-if-improved \
--fail-if-new-news-nit
- name: 'Build EPUB documentation'
continue-on-error: true
run: |
set -Eeuo pipefail
make -C Doc/ PYTHON=../python SPHINXOPTS="--quiet" epub
pip install epubcheck
epubcheck Doc/build/epub/Python.epub &> Doc/epubcheck.txt
- name: 'Check for fatal errors in EPUB'
if: github.event_name == 'pull_request'
continue-on-error: true # until gh-136155 is fixed
run: |
python Doc/tools/check-epub.py

# Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release
doctest:
Expand Down
124 changes: 124 additions & 0 deletions .github/workflows/reusable-san.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Reusable Sanitizer

on:
workflow_call:
inputs:
sanitizer:
required: true
type: string
config_hash:
required: true
type: string
free-threading:
description: Whether to use free-threaded mode
required: false
type: boolean
default: false

env:
FORCE_COLOR: 1

jobs:
build-san-reusable:
name: >-
${{ inputs.sanitizer }}${{
inputs.free-threading
&& ' (free-threading)'
|| ''
}}
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.sanitizer }}-${{ inputs.config_hash }}
- name: Install dependencies
run: |
sudo ./.github/workflows/posix-deps-apt.sh
# Install clang
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh

if [ "${SANITIZER}" = "TSan" ]; then
sudo ./llvm.sh 17 # gh-121946: llvm-18 package is temporarily broken
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-17 100
sudo update-alternatives --set clang /usr/bin/clang-17
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-17 100
sudo update-alternatives --set clang++ /usr/bin/clang++-17
# Reduce ASLR to avoid TSan crashing
sudo sysctl -w vm.mmap_rnd_bits=28
else
sudo ./llvm.sh 20
fi

- name: Sanitizer option setup
run: |
if [ "${SANITIZER}" = "TSan" ]; then
echo "TSAN_OPTIONS=${SAN_LOG_OPTION} suppressions=${GITHUB_WORKSPACE}/Tools/tsan/suppressions${{
fromJSON(inputs.free-threading)
&& '_free_threading'
|| ''
}}.txt handle_segv=0" >> "$GITHUB_ENV"
else
echo "UBSAN_OPTIONS=${SAN_LOG_OPTION}" >> "$GITHUB_ENV"
fi
echo "CC=clang" >> "$GITHUB_ENV"
echo "CXX=clang++" >> "$GITHUB_ENV"
env:
SANITIZER: ${{ inputs.sanitizer }}
SAN_LOG_OPTION: log_path=${{ github.workspace }}/san_log
- name: Add ccache to PATH
run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: ${{ github.event_name == 'push' }}
max-size: "200M"
- name: Configure CPython
run: >-
./configure
--config-cache
${{
inputs.sanitizer == 'TSan'
&& '--with-thread-sanitizer'
|| '--with-undefined-behavior-sanitizer'
}}
--with-pydebug
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
- name: Build CPython
run: make -j4
- name: Display build info
run: make pythoninfo
- name: Tests
run: >-
./python -m test
${{ inputs.sanitizer == 'TSan' && '--tsan' || '' }}
-j4
- name: Parallel tests
if: >-
inputs.sanitizer == 'TSan'
&& fromJSON(inputs.free-threading)
run: ./python -m test --tsan-parallel --parallel-threads=4 -j4
- name: Display logs
if: always()
run: find "${GITHUB_WORKSPACE}" -name 'san_log.*' | xargs head -n 1000
- name: Archive logs
if: always()
uses: actions/upload-artifact@v4
with:
name: >-
${{ inputs.sanitizer }}-logs-${{
fromJSON(inputs.free-threading)
&& 'free-threading'
|| 'default'
}}
path: san_log.*
if-no-files-found: ignore
Loading
Loading