8d62df6 | Daniel Hillier | 30 November 2019, 08:30:47 UTC | bpo-37523: Raise ValueError for I/O operations on a closed zipfile.ZipExtFile. (GH-14658) Raises ValueError when calling the following on a closed zipfile.ZipExtFile: read, readable, seek, seekable, tell. | 30 November 2019, 08:30:47 UTC |
1df65f7 | Brett Cannon | 29 November 2019, 23:37:08 UTC | Fix old mention of virtualenv (GH-17417) Automerge-Triggered-By: @brettcannon | 29 November 2019, 23:37:08 UTC |
bea33f5 | Steve Dower | 28 November 2019, 16:46:11 UTC | bpo-38920: Add audit hooks for when sys.excepthook and sys.unraisable hooks are invoked (GH-17392) Also fixes some potential segfaults in unraisable hook handling. | 28 November 2019, 16:46:11 UTC |
02519f7 | Tal Einat | 28 November 2019, 05:22:09 UTC | bpo-38524: clarify example a bit and improve formatting (GH-17406) | 28 November 2019, 05:22:09 UTC |
d9aa216 | Tzu-ping Chung | 27 November 2019, 20:25:23 UTC | bpo-38927: Use python -m pip to upgrade venv deps (GH-17403) I suggest you add `bpo-NNNNN: ` as a prefix for the first commit for future PRs. Thanks! | 27 November 2019, 20:25:23 UTC |
045d4e2 | Tzu-ping Chung | 27 November 2019, 20:21:48 UTC | bpo-38928: Fix versionadded for venv's upgrade_deps function (GH-17404) | 27 November 2019, 20:21:48 UTC |
ea9835c | Inada Naoki | 27 November 2019, 13:22:06 UTC | bpo-26730: Fix SpooledTemporaryFile data corruption (GH-17400) SpooledTemporaryFile.rollback() might cause data corruption when it is in text mode. Co-Authored-By: Serhiy Storchaka <storchaka@gmail.com> | 27 November 2019, 13:22:06 UTC |
1bddf89 | Florian Dahlitz | 27 November 2019, 08:46:40 UTC | bpo-38524: document implicit and explicit calling of descriptors' __set_name__ (GH-17364) | 27 November 2019, 08:46:40 UTC |
ce4b7a2 | Yoni Lavi | 27 November 2019, 05:08:50 UTC | Show the differing module names for readlink() (GH-17395) This was very confusing with the text for both being just `readlink()`. | 27 November 2019, 05:08:50 UTC |
1ef4c32 | Anthony Sottile | 27 November 2019, 04:54:46 UTC | Be more specific about the `.so` gitignore patterns (GH-17328) In GH-15823 the pattern was changed from `libpython*.so*` to `*.so*` which matches a bit too greedily for some packagers. For instance this trips up `debian/README.source`. A more specific pattern fixes this issue. | 27 November 2019, 04:54:46 UTC |
9bbcbc9 | Bruno P. Kinoshita | 27 November 2019, 01:10:37 UTC | bpo-38688, shutil.copytree: consume iterator and create list of entries to prevent infinite recursion (GH-17098) | 27 November 2019, 01:10:37 UTC |
c7c01ab | Steve Dower | 27 November 2019, 00:27:50 UTC | bpo-38922: Raise code.__new__ audit event when code object replace() is called (GH-17394) | 27 November 2019, 00:27:50 UTC |
0b41a92 | HongWeipeng | 26 November 2019, 22:36:02 UTC | bpo-38045: Improve the performance of _decompose() in enum.py (GH-16483) * Improve the performance of _decompose() in enum.py Co-Authored-By: Brandt Bucher <brandtbucher@gmail.com> | 26 November 2019, 22:36:02 UTC |
e563a15 | Terry Jan Reedy | 26 November 2019, 17:07:48 UTC | bpo-38892: Improve docs for audit event (GH-17361) | 26 November 2019, 17:07:48 UTC |
bc441ed | Karl Dubost | 26 November 2019, 16:38:41 UTC | bpo-22377: Fixes documentation for %Z in datetime (GH-16507) This fixes the issue discussed in https://bugs.python.org/issue22377 and fixes it according to the comments made by Paul Ganssle @pganssle * It clarifies which values are acceptable in the table * It extends the note with a clearer information on the valid values https://bugs.python.org/issue22377 | 26 November 2019, 16:38:41 UTC |
036fe85 | HongWeipeng | 26 November 2019, 07:54:49 UTC | bpo-27145: small_ints[x] could be returned in long_add and long_sub (GH-15716) | 26 November 2019, 07:54:49 UTC |
386d00c | David Coles | 26 November 2019, 06:31:09 UTC | Remove use of deprecated `array.fromstring` method (GH-17332) | 26 November 2019, 06:31:09 UTC |
6dd9b64 | Brandt Bucher | 26 November 2019, 06:16:53 UTC | bpo-38328: Speed up the creation time of constant list and set display. (GH-17114) | 26 November 2019, 06:16:53 UTC |
e4db1f0 | Eddie Elizondo | 26 November 2019, 03:07:37 UTC | closes bpo-38803: Fix leak in posixmodule. (GH-17373) | 26 November 2019, 03:07:37 UTC |
f8a6316 | Sanchit Khurana | 25 November 2019, 22:17:59 UTC | bpo-21063: Improve module synopsis for distutils (GH-17363) | 25 November 2019, 22:17:59 UTC |
c6a7bdb | Stefan Behnel | 25 November 2019, 15:36:25 UTC | bpo-20928: support base-URL and recursive includes in etree.ElementInclude (#5723) * bpo-20928: bring elementtree's XInclude support en-par with the implementation in lxml by adding support for recursive includes and a base-URL. * bpo-20928: Support xincluding the same file multiple times, just not recursively. * bpo-20928: Add 'max_depth' parameter to xinclude that limits the maximum recursion depth to 6 by default. * Add news entry for updated ElementInclude support | 25 November 2019, 15:36:25 UTC |
ded8888 | Pablo Galindo | 25 November 2019, 11:49:17 UTC | bpo-38870: Remove dependency on contextlib to avoid performance regression on import (GH-17376) https://bugs.python.org/issue38870 Automerge-Triggered-By: @pablogsal | 25 November 2019, 11:49:17 UTC |
e11f25d | Pablo Galindo | 25 November 2019, 11:16:39 UTC | Fix typo in Doc/whatsnew/3.9.rst (GH-17372) | 25 November 2019, 11:16:39 UTC |
27fc3b6 | Pablo Galindo | 24 November 2019, 23:02:40 UTC | bpo-38870: Expose a function to unparse an ast object in the ast module (GH-17302) Add ast.unparse() as a function in the ast module that can be used to unparse an ast.AST object and produce a string with code that would produce an equivalent ast.AST object when parsed. | 24 November 2019, 23:02:40 UTC |
6bf644e | Terry Jan Reedy | 24 November 2019, 21:29:29 UTC | bpo-38862: IDLE Strip Trailing Whitespace fixes end newlines (GH-17366) Extra newlines are removed at the end of non-shell files. If the file only has newlines after stripping other trailing whitespace, all are removed, as is done by patchcheck.py. | 24 November 2019, 21:29:29 UTC |
6f03b23 | Claudiu Popa | 24 November 2019, 19:15:08 UTC | bpo-38876: Raise pickle.UnpicklingError when loading an item from memo for invalid input (GH-17335) The previous code was raising a `KeyError` for both the Python and C implementation. This was caused by the specified index of an invalid input which did not exist in the memo structure, where the pickle stores what objects it has seen. The malformed input would have caused either a `BINGET` or `LONG_BINGET` load from the memo, leading to a `KeyError` as the determined index was bogus. https://bugs.python.org/issue38876 https://bugs.python.org/issue38876 | 24 November 2019, 19:15:08 UTC |
e407646 | Batuhan Taşkaya | 24 November 2019, 16:46:18 UTC | Remove unnecessary variable definition (GH-17368) | 24 November 2019, 16:46:18 UTC |
665ad3d | Zac Hatfield-Dodds | 24 November 2019, 10:48:48 UTC | Better runtime TypedDict (GH-17214) This patch enables downstream projects inspecting a TypedDict subclass at runtime to tell which keys are optional. This is essential for generating test data with Hypothesis or validating inputs with typeguard or pydantic. | 24 November 2019, 10:48:48 UTC |
041d8b4 | Raymond Hettinger | 23 November 2019, 10:22:13 UTC | bpo-38881: choices() raises ValueError when all weights are zero (GH-17362) | 23 November 2019, 10:22:13 UTC |
84b1ff6 | Brett Cannon | 23 November 2019, 07:32:27 UTC | bpo-38899: virtual environment activation for fish should use `source` (GH-17359) The previously documented use of `.` is considered deprecated (https://fishshell.com/docs/current/commands.html#source). https://bugs.python.org/issue38899 Automerge-Triggered-By: @brettcannon | 23 November 2019, 07:32:27 UTC |
d68b592 | Victor Stinner | 23 November 2019, 01:30:32 UTC | bpo-38896: Remove PyUnicode_ClearFreeList() function (GH-17354) Remove PyUnicode_ClearFreeList() function: the Unicode free list has been removed in Python 3.3. | 23 November 2019, 01:30:32 UTC |
14a89c4 | PypeBros | 22 November 2019, 23:19:08 UTC | bpo-38686: fix HTTP Digest handling in request.py (#17045) * fix HTTP Digest handling in request.py There is a bug triggered when server replies to a request with `WWW-Authenticate: Digest` where `qop="auth,auth-int"` rather than mere `qop="auth"`. Having both `auth` and `auth-int` is legitimate according to the `qop-options` rule in §3.2.1 of [[https://www.ietf.org/rfc/rfc2617.txt|RFC 2617]]: > qop-options = "qop" "=" <"> 1#qop-value <"> > qop-value = "auth" | "auth-int" | token > **qop-options**: [...] If present, it is a quoted string **of one or more** tokens indicating the "quality of protection" values supported by the server. The value `"auth"` indicates authentication; the value `"auth-int"` indicates authentication with integrity protection This is description confirmed by the definition of the [//n//]`#`[//m//]//rule// extended-BNF pattern defined in §2.1 of [[https://www.ietf.org/rfc/rfc2616.txt|RFC 2616]] as 'a comma-separated list of //rule// with at least //n// and at most //m// items'. When this reply is parsed by `get_authorization`, request.py only tests for identity with `'auth'`, failing to recognize it as one of the supported modes the server announced, and claims that `"qop 'auth,auth-int' is not supported"`. * 📜🤖 Added by blurb_it. * bpo-38686 review fix: remember why. * fix trailing space in Lib/urllib/request.py Co-Authored-By: Brandt Bucher <brandtbucher@gmail.com> | 22 November 2019, 23:19:08 UTC |
3ae38cc | Ethan Furman | 22 November 2019, 22:28:41 UTC | Update CODEOWNERS (#17356) Add Ethan Furman for enum, cgi, and cgitb. | 22 November 2019, 22:28:41 UTC |
2ec1a1b | Victor Stinner | 22 November 2019, 20:54:33 UTC | bpo-38858: new_interpreter() uses pycore_init_import_warnings() (GH-17353) | 22 November 2019, 20:54:33 UTC |
2582d46 | Victor Stinner | 22 November 2019, 18:24:49 UTC | bpo-38858: new_interpreter() reuses pycore_init_builtins() (GH-17351) new_interpreter() now calls _PyBuiltin_Init() to create the builtins module and calls _PyImport_FixupBuiltin(), rather than using _PyImport_FindBuiltin(tstate, "builtins"). pycore_init_builtins() is now responsible to initialize intepr->builtins_copy: inline _PyImport_Init() and remove this function. | 22 November 2019, 18:24:49 UTC |
82c83bd | Victor Stinner | 22 November 2019, 17:52:27 UTC | bpo-38858: _PyImport_FixupExtensionObject() handles subinterpreters (GH-17350) If _PyImport_FixupExtensionObject() is called from a subinterpreter, leave extensions unchanged and don't copy the module dictionary into def->m_base.m_copy. | 22 November 2019, 17:52:27 UTC |
42bc60e | Callum Ward | 22 November 2019, 16:57:14 UTC | closes bpo-29275: Remove Y2K reference from time module docs (GH-17321) The Y2K reference is not needed as it only points out that Python's use of C standard functions doesn't generally suffer from Y2K issues; the point regarding conventions for conversion of 2-digit years in :func:`strptime` is still valid. | 22 November 2019, 16:57:14 UTC |
b005136 | Victor Stinner | 22 November 2019, 16:52:42 UTC | bpo-38858: Add init_interp_main() subfunction (GH-17347) Fix new_interpreter() error handling: undo it all if status is an exception. | 22 November 2019, 16:52:42 UTC |
e0c9ab8 | Victor Stinner | 22 November 2019, 15:19:14 UTC | bpo-38858: Add init_set_builtins_open() subfunction (GH-17346) | 22 November 2019, 15:19:14 UTC |
1b779bf | bcaller | 22 November 2019, 14:22:11 UTC | bpo-38804: Fix REDoS in http.cookiejar (GH-17157) The regex http.cookiejar.LOOSE_HTTP_DATE_RE was vulnerable to regular expression denial of service (REDoS). LOOSE_HTTP_DATE_RE.match is called when using http.cookiejar.CookieJar to parse Set-Cookie headers returned by a server. Processing a response from a malicious HTTP server can lead to extreme CPU usage and execution will be blocked for a long time. The regex contained multiple overlapping \s* capture groups. Ignoring the ?-optional capture groups the regex could be simplified to \d+-\w+-\d+(\s*\s*\s*)$ Therefore, a long sequence of spaces can trigger bad performance. Matching a malicious string such as LOOSE_HTTP_DATE_RE.match("1-c-1" + (" " * 2000) + "!") caused catastrophic backtracking. The fix removes ambiguity about which \s* should match a particular space. You can create a malicious server which responds with Set-Cookie headers to attack all python programs which access it e.g. from http.server import BaseHTTPRequestHandler, HTTPServer def make_set_cookie_value(n_spaces): spaces = " " * n_spaces expiry = f"1-c-1{spaces}!" return f"b;Expires={expiry}" class Handler(BaseHTTPRequestHandler): def do_GET(self): self.log_request(204) self.send_response_only(204) # Don't bother sending Server and Date n_spaces = ( int(self.path[1:]) # Can GET e.g. /100 to test shorter sequences if len(self.path) > 1 else 65506 # Max header line length 65536 ) value = make_set_cookie_value(n_spaces) for i in range(99): # Not necessary, but we can have up to 100 header lines self.send_header("Set-Cookie", value) self.end_headers() if __name__ == "__main__": HTTPServer(("", 44020), Handler).serve_forever() This server returns 99 Set-Cookie headers. Each has 65506 spaces. Extracting the cookies will pretty much never complete. Vulnerable client using the example at the bottom of https://docs.python.org/3/library/http.cookiejar.html : import http.cookiejar, urllib.request cj = http.cookiejar.CookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) r = opener.open("http://localhost:44020/") The popular requests library was also vulnerable without any additional options (as it uses http.cookiejar by default): import requests requests.get("http://localhost:44020/") * Regression test for http.cookiejar REDoS If we regress, this test will take a very long time. * Improve performance of http.cookiejar.ISO_DATE_RE A string like "444444" + (" " * 2000) + "A" could cause poor performance due to the 2 overlapping \s* groups, although this is not as serious as the REDoS in LOOSE_HTTP_DATE_RE was. | 22 November 2019, 14:22:11 UTC |
4e205b7 | Alex | 22 November 2019, 13:48:14 UTC | Fix quoted signature of setattrofunc (GH-17251) setattrofunc returns `int`, not `PyObject *`. | 22 November 2019, 13:48:14 UTC |
138e7bb | jacksonriley | 22 November 2019, 12:51:58 UTC | bpo-38866: Remove asyncore from test_pyclbr.py (GH-17316) Co-Authored-By: Kyle Stanley <aeros167@gmail.com> | 22 November 2019, 12:51:58 UTC |
3d48334 | Victor Stinner | 22 November 2019, 11:27:50 UTC | bpo-38858: Call _PyUnicode_Fini() in Py_EndInterpreter() (GH-17330) Py_EndInterpreter() now clears the filesystem codec. | 22 November 2019, 11:27:50 UTC |
310e2d2 | Victor Stinner | 22 November 2019, 09:58:00 UTC | bpo-36854: Fix refleak in subinterpreter (GH-17331) finalize_interp_clear() now explicitly clears the codec registry and then trigger a GC collection to clear all references. | 22 November 2019, 09:58:00 UTC |
91daa9d | Siwon Kang | 22 November 2019, 09:13:05 UTC | bpo-38863: Improve is_cgi() in http.server (GH-17312) is_cgi() function of http.server library does not currently handle a cgi script if one of the cgi_directories is located at the sub-directory of given path. Since is_cgi() in CGIHTTPRequestHandler class separates given path into (dir, rest) based on the first seen '/', multi-level directories like /sub/dir/cgi-bin/hello.py is divided into head=/sub, rest=dir/cgi-bin/hello.py then check whether '/sub' exists in cgi_directories = [..., '/sub/dir/cgi-bin']. This patch makes the is_cgi() keep expanding dir part to the next '/' then checking if that expanded path exists in the cgi_directories. Signed-off-by: Siwon Kang <kkangshawn@gmail.com> https://bugs.python.org/issue38863 | 22 November 2019, 09:13:05 UTC |
b4e5eea | Raymond Hettinger | 22 November 2019, 06:51:45 UTC | Defer import of shutil which only needed for help and usage (GH-17334) | 22 November 2019, 06:51:45 UTC |
65444cf | Claudiu Popa | 21 November 2019, 21:23:13 UTC | bpo-38526: Fix zipfile.Path method name to be the correct one (#17317) | 21 November 2019, 21:23:13 UTC |
0aca3a3 | benedwards14 | 21 November 2019, 17:24:58 UTC | bpo-37838: get_type_hints for wrapped functions with forward reference (GH-17126) https://bugs.python.org/issue37838 | 21 November 2019, 17:24:58 UTC |
82f897b | Mark Shannon | 21 November 2019, 14:47:49 UTC | Correct release version to 3.9 for RERAISE and WITH_EXCEPT_START bytecodes. (#17318) bpo-33387 Corrects commit fee5526 | 21 November 2019, 14:47:49 UTC |
3ab479a | Victor Stinner | 21 November 2019, 11:54:54 UTC | bpo-38692: Skip test_posix.test_pidfd_open() on EPERM (GH-17290) Skip the test_posix.test_pidfd_open() test if os.pidfd_open() fails with a PermissionError. This situation can happen in a Linux sandbox using a syscall whitelist which doesn't allow the pidfd_open() syscall yet (like systemd-nspawn). | 21 November 2019, 11:54:54 UTC |
0127bb1 | Victor Stinner | 21 November 2019, 11:54:02 UTC | bpo-38875: test_capi: trashcan tests require cpu resource (GH-17314) test_capi: trashcan tests now require the test "cpu" resource. | 21 November 2019, 11:54:02 UTC |
5c534da | Giampaolo Rodola | 21 November 2019, 09:38:51 UTC | CODEOWNERS: add myself for asyncore/chat, ftplib and shutil modules (#17313) | 21 November 2019, 09:38:51 UTC |
fee5526 | Mark Shannon | 21 November 2019, 09:11:43 UTC | Produce cleaner bytecode for 'with' and 'async with' by generating separate code for normal and exceptional paths. (#6641) Remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY and POP_FINALLY bytecodes. Implement finally blocks by code duplication. Reimplement frame.lineno setter using line numbers rather than bytecode offsets. | 21 November 2019, 09:11:43 UTC |
5dcc06f | Victor Stinner | 21 November 2019, 07:51:59 UTC | bpo-38858: Allocate small integers on the heap (GH-17301) Allocate small Python integers (small_ints of longobject.c) on the heap, rather than using static objects. | 21 November 2019, 07:51:59 UTC |
d672791 | Géry Ogam | 21 November 2019, 02:10:19 UTC | Update functions.rst (GH-16468) This PR will make the following changes to the [_Built-in Functions_](https://docs.python.org/3/library/functions.html) chapter of the library documentation: - improve hyperlinks in Sphinx roles (trailing 's' belong to hyperlinks). Automerge-Triggered-By: @csabella | 21 November 2019, 02:10:19 UTC |
9391f6c | Dave Nguyen | 21 November 2019, 01:49:15 UTC | bpo-36277: Add document for pdb debug and retval commands (GH-12872) https://bugs.python.org/issue36277 Automerge-Triggered-By: @csabella | 21 November 2019, 01:49:15 UTC |
6db2fb7 | Jules Lasne (jlasne) | 21 November 2019, 01:30:05 UTC | Removed capital letter in parameter in stdtypes.rst (GH-17218) Automerge-Triggered-By: @csabella | 21 November 2019, 01:30:05 UTC |
06ca2a2 | Aveheuzed | 21 November 2019, 01:19:00 UTC | Fixed an incorrect sentence in the docs (GH-17205) Fixed an incorrect sentence in Doc/c-api/mapping.rst I fell on while translating the file. skip issue Automerge-Triggered-By: @csabella | 21 November 2019, 01:19:00 UTC |
046442d | Jason Fried | 21 November 2019, 00:27:51 UTC | bpo-38857: AsyncMock fix for awaitable values and StopIteration fix [3.8] (GH-17269) | 21 November 2019, 00:27:51 UTC |
e5d1f73 | Brandt Bucher | 21 November 2019, 00:17:03 UTC | bpo-38823: Clean up _xxtestfuzz initialization. (GH-17216) https://bugs.python.org/issue38823 | 21 November 2019, 00:17:02 UTC |
559bad1 | xdegaye | 20 November 2019, 20:02:07 UTC | bpo-38841: Skip asyncio test_create_datagram_endpoint_existing_sock_unix (GH-17294) on platforms lacking a functional bind() for named unix domain sockets https://bugs.python.org/issue38841 Automerge-Triggered-By: @asvetlov | 20 November 2019, 20:02:07 UTC |
b93f31f | Victor Stinner | 20 November 2019, 17:39:12 UTC | bpo-38858: Fix Py_Finalize() when called from a subinterpreter (GH-17297) Use _Py_IsMainInterpreter() in Py_Initialize() and Py_Finalize() to detect if the current interpreter is the main interpreter or not. | 20 November 2019, 17:39:12 UTC |
de148f2 | Steve Dower | 20 November 2019, 17:30:47 UTC | bpo-33125: Add support for building and releasing Windows ARM64 packages (GH-16828) Note that the support is not actually enabled yet, and so we won't be publishing these packages. However, for those who want to build it themselves (even by reusing the Azure Pipelines definition), it's now relatively easy to enable. | 20 November 2019, 17:30:47 UTC |
abce2d9 | Segev Finer | 20 November 2019, 17:25:45 UTC | Add Python 3.8 to py based search in find_python.bat (GH-17188) | 20 November 2019, 17:25:45 UTC |
fff7bbf | Victor Stinner | 20 November 2019, 16:34:39 UTC | bpo-38858: Add _Py_IsMainInterpreter(tstate) (GH-17293) | 20 November 2019, 16:34:39 UTC |
db7925a | Steve Dower | 20 November 2019, 16:21:14 UTC | Update information about publishing a new version to the Microsoft Store (GH-17262) | 20 November 2019, 16:21:14 UTC |
be5c79e | Federico Bond | 20 November 2019, 13:29:29 UTC | bpo-38821: Fix crash in argparse when using gettext (GH-17192) | 20 November 2019, 13:29:29 UTC |
4dedd0f | Victor Stinner | 20 November 2019, 11:59:12 UTC | bpo-37340: Remove PyMethod_ClearFreeList() and PyCFunction_ClearFreeList() (GH-17284) Remove PyMethod_ClearFreeList() and PyCFunction_ClearFreeList() functions: the free lists of bound method objects have been removed. Remove also _PyMethod_Fini() and _PyCFunction_Fini() functions. | 20 November 2019, 11:59:12 UTC |
7247407 | Victor Stinner | 20 November 2019, 11:25:50 UTC | bpo-36854: Move _PyRuntimeState.gc to PyInterpreterState (GH-17287) * Rename _PyGC_InitializeRuntime() to _PyGC_InitState() * finalize_interp_clear() now also calls _PyGC_Fini() in subinterpreters (clear the GC state). | 20 November 2019, 11:25:50 UTC |
488d02a | Victor Stinner | 20 November 2019, 11:17:09 UTC | bpo-38835: Exclude PyFPE macros from the stable API (GH-17228) Exclude PyFPE_START_PROTECT() and PyFPE_END_PROTECT() macros of pyfpe.h from Py_LIMITED_API (stable API). | 20 November 2019, 11:17:09 UTC |
e7e699e | Victor Stinner | 20 November 2019, 11:08:13 UTC | bpo-38858: Fix reference leak in pycore_init_types() (GH-17286) Only call _PyGC_Init(), _PyExc_Init() and _PyErr_Init() in new_interpreter(). | 20 November 2019, 11:08:13 UTC |
67e0de6 | Victor Stinner | 20 November 2019, 10:48:18 UTC | bpo-36854: gcmodule.c gets its state from tstate (GH-17285) * Add GCState type for readability * gcmodule.c now gets its gcstate from tstate * _PyGC_DumpShutdownStats() now expects tstate rather than runtime * Rename "state" to "gcstate" for readability: to avoid confusion between "state" and "tstate" for example. * collect() now only expects tstate: it gets gcstate from tstate. * Pass tstate to _PyErr_xxx() functions | 20 November 2019, 10:48:18 UTC |
9da7430 | Victor Stinner | 20 November 2019, 10:17:17 UTC | bpo-36854: Clear the current thread later (GH-17279) Clear the current thread later in the Python finalization. * The PyInterpreterState_Delete() function is now responsible to call PyThreadState_Swap(NULL). * The tstate_delete_common() function is now responsible to clear the "autoTSSKey" thread local storage and it only clears it once the thread state is fully cleared. It allows to still get the current thread from TSS in tstate_delete_common(). | 20 November 2019, 10:17:17 UTC |
d51a363 | Brandt Bucher | 20 November 2019, 10:00:31 UTC | bpo-38823: Fix refleak in _tracemalloc init error handling (GH-17235) | 20 November 2019, 10:00:31 UTC |
7eee5be | Victor Stinner | 20 November 2019, 09:38:34 UTC | bpo-38858: Factorize Py_EndInterpreter() code (GH-17273) * Factorize code in common between Py_FinalizeEx() and Py_EndInterpreter(). * Py_EndInterpreter() now also calls _PyWarnings_Fini(). * Call _PyExc_Fini() and _PyGC_Fini() later in the finalization. | 20 November 2019, 09:38:34 UTC |
b846247 | Terry Jan Reedy | 20 November 2019, 06:18:39 UTC | bpo-38636: Fix IDLE tab toggle and file indent width (GH-17008) These Format menu functions (default shortcuts Alt-T and Alt-U) were mistakenly disabled in 3.7.5 and 3.8.0. | 20 November 2019, 06:18:39 UTC |
7483451 | Benjamin Peterson | 20 November 2019, 04:39:14 UTC | closes bpo-38712: Add signal.pidfd_send_signal. (GH-17070) This exposes a Linux-specific syscall for sending a signal to a process identified by a file descriptor rather than a pid. For simplicity, we don't support the siginfo_t parameter to the syscall. This parameter allows implementing a pidfd version of rt_sigqueueinfo(2), which Python also doesn't support. | 20 November 2019, 04:39:14 UTC |
be143ec | Victor Stinner | 20 November 2019, 01:51:30 UTC | bpo-38835: Don't use PyFPE_START_PROTECT and PyFPE_END_PROTECT (GH-17231) The PyFPE_START_PROTECT() and PyFPE_END_PROTECT() macros are empty: they have been doing nothing for the last year (since commit 735ae8d139a673b30b321dc10acfd3d14f0d633b), so stop using them. | 20 November 2019, 01:51:30 UTC |
01b1cc1 | Victor Stinner | 20 November 2019, 01:27:56 UTC | bpo-36710: Add PyInterpreterState.runtime field (GH-17270) Add PyInterpreterState.runtime field: reference to the _PyRuntime global variable. This field exists to not have to pass runtime in addition to tstate to a function. Get runtime from tstate: tstate->interp->runtime. Remove "_PyRuntimeState *runtime" parameter from functions already taking a "PyThreadState *tstate" parameter. _PyGC_Init() first parameter becomes "PyThreadState *tstate". | 20 November 2019, 01:27:56 UTC |
eb1cbbf | Łukasz Langa | 20 November 2019, 01:06:33 UTC | Post 3.9.0a1 | 20 November 2019, 01:06:33 UTC |
1c5a71a | Łukasz Langa | 20 November 2019, 01:05:28 UTC | Merge tag 'v3.9.0a1' | 20 November 2019, 01:05:28 UTC |
33b671e | Brandt Bucher | 20 November 2019, 00:59:32 UTC | bpo-38823: Fix refleak in marshal init error path (GH-17260) | 20 November 2019, 00:59:32 UTC |
2e96906 | Victor Stinner | 20 November 2019, 00:49:32 UTC | bpo-36710: Pass tstate parameter to GC collect() (GH-17267) Pass tstate parameter (PyThreadState) to GC collect() function and other GC subfunctions. | 20 November 2019, 00:49:32 UTC |
279d8df | John Belmonte | 20 November 2019, 00:30:43 UTC | bpo-38753: AsyncMock added in version 3.8 (GH-17102) | 20 November 2019, 00:30:43 UTC |
444b39b | Victor Stinner | 20 November 2019, 00:18:11 UTC | bpo-38631: Avoid Py_FatalError() in handle_legacy_finalizers() (GH-17266) * Rename _PyGC_Initialize() to _PyGC_InitializeRuntime() * Add _PyGC_Init(): initialize _PyRuntime.gc.garbage list * Call _PyGC_Init() before _PyTypes_Init() | 20 November 2019, 00:18:11 UTC |
e0cd8aa | Pablo Galindo | 19 November 2019, 23:46:49 UTC | bpo-37957: Allow regrtest to receive a file with test (and subtests) to ignore (GH-16989) When building Python in some uncommon platforms there are some known tests that will fail. Right now, the test suite has the ability to ignore entire tests using the -x option and to receive a filter file using the --matchfile filter. The problem with the --matchfile option is that it receives a file with patterns to accept and when you want to ignore a couple of tests and subtests, is too cumbersome to lists ALL tests that are not the ones that you want to accept and he problem with -x is that is not easy to ignore just a subtests that fail and the whole test needs to be ignored. For these reasons, add a new option to allow to ignore a list of test and subtests for these situations. | 19 November 2019, 23:46:49 UTC |
ef5aa9a | Victor Stinner | 19 November 2019, 23:38:03 UTC | bpo-38858: Reorganize pycore_init_types() (GH-17265) * Call _PyLong_Init() and _PyExc_Init() earlier * new_interpreter() reuses pycore_init_types() | 19 November 2019, 23:38:03 UTC |
ac22354 | Brandt Bucher | 19 November 2019, 23:13:05 UTC | bpo-38823: Fix refleaks in faulthandler init error path on Windows (GH-17250) | 19 November 2019, 23:13:05 UTC |
293dd23 | Pablo Galindo | 19 November 2019, 21:34:03 UTC | Remove binding of captured exceptions when not used to reduce the chances of creating cycles (GH-17246) Capturing exceptions into names can lead to reference cycles though the __traceback__ attribute of the exceptions in some obscure cases that have been reported previously and fixed individually. As these variables are not used anyway, we can remove the binding to reduce the chances of creating reference cycles. See for example GH-13135 | 19 November 2019, 21:34:03 UTC |
c6b20be | Jake Tesler | 19 November 2019, 19:50:12 UTC | bpo-38707: Fix for multiprocessing.Process MainThread.native_id (GH-17088) This PR implements a fix for `multiprocessing.Process` objects; the error occurs when Processes are created using either `fork` or `forkserver` as the `start_method`. In these instances, the `MainThread` of the newly created `Process` object retains all attributes from its parent's `MainThread` object, including the `native_id` attribute. The resulting behavior is such that the new process' `MainThread` captures an incorrect/outdated `native_id` (the parent's instead of its own). This change forces the Process object to update its `native_id` attribute during the bootstrap process. cc @vstinner https://bugs.python.org/issue38707 Automerge-Triggered-By: @pitrou | 19 November 2019, 19:50:12 UTC |
892221b | Adam Johnson | 19 November 2019, 19:45:20 UTC | bpo-38839: Fix some unused functions in tests (GH-17189) | 19 November 2019, 19:45:20 UTC |
54b32c9 | Brandt Bucher | 19 November 2019, 19:16:29 UTC | bpo-38823: Clean up refleak in fcntl module initialization. (GH-17236) | 19 November 2019, 19:16:29 UTC |
8e0de2a | Vincent Michel | 19 November 2019, 13:53:52 UTC | bpo-35409: Ignore GeneratorExit in async_gen_athrow_throw (GH-14755) Ignore `GeneratorExit` exceptions when throwing an exception into the `aclose` coroutine of an asynchronous generator. https://bugs.python.org/issue35409 | 19 November 2019, 13:53:52 UTC |
f25875a | Jules Lasne (jlasne) | 19 November 2019, 12:14:53 UTC | Added missing coma after end of list in subprocess.rst (GH-17217) Automerge-Triggered-By: @csabella | 19 November 2019, 12:14:53 UTC |
b1f160a | Jules Lasne (jlasne) | 19 November 2019, 12:05:45 UTC | Add missing comma and period in unittest docs (GH-17211) Automerge-Triggered-By: @csabella | 19 November 2019, 12:05:45 UTC |
fd75708 | Łukasz Langa | 19 November 2019, 11:17:21 UTC | Python 3.9.0a1 | 19 November 2019, 11:17:21 UTC |
24555ce | Batuhan Taşkaya | 19 November 2019, 08:16:46 UTC | bpo-21767: explicitly mention abc support in functools.singledispatch docs (#17171) | 19 November 2019, 08:16:46 UTC |
9960230 | Dong-hee Na | 19 November 2019, 08:12:42 UTC | bpo-22367: Update test_fcntl.py for spawn process mode (#17154) | 19 November 2019, 08:12:42 UTC |
79e18ec | Brandt Bucher | 19 November 2019, 07:16:23 UTC | Clean up module initialization. (GH-17215) | 19 November 2019, 07:16:23 UTC |
fe75b62 | Tomás Farías | 19 November 2019, 05:54:00 UTC | bpo-38807: Add os.PathLike to exception message raised by _check_arg_types (#17160) | 19 November 2019, 05:54:00 UTC |