summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
...
* bpo-38304: PyConfig_InitPythonConfig() cannot fail anymore (GH-16509)Miss Islington (bot)2019-10-011-5/+1
| | | | | | | PyConfig_InitPythonConfig() and PyConfig_InitIsolatedConfig() no longer return PyStatus: they cannot fail anymore. (cherry picked from commit 8462a4936b3a551dc546a6adea04a70b0a07ca67) Co-authored-by: Victor Stinner <vstinner@redhat.com>
* bpo-38304: Remove PyConfig.struct_size (GH-16500)Victor Stinner2019-09-301-7/+2
| | | | | For now, we'll rely on the fact that the config structures aren't covered by the stable ABI. We may revisit this in the future if we further explore the idea of offering a stable embedding API.
* Clear weakrefs in garbage found by the GC (GH-16495) (#16499)Miss Islington (bot)2019-09-301-0/+17
| | | | | | | | Fix a bug due to the interaction of weakrefs and the cyclic garbage collector. We must clear any weakrefs in garbage in order to prevent their callbacks from executing and causing a crash. (cherry picked from commit bcda460baf25062ab68622b3f043f52b9db4d21d) Co-authored-by: Neil Schemenauer <nas-github@arctrix.com>
* [3.8] bpo-38270: More fixes for strict crypto policy (GH-16418) (#16437)Christian Heimes2019-09-301-1/+1
| | | | | | | | | | | | | | | | test_hmac and test_hashlib test built-in hashing implementations and OpenSSL-based hashing implementations. Add more checks to skip OpenSSL implementations when a strict crypto policy is active. Use EVP_DigestInit_ex() instead of EVP_DigestInit() to initialize the EVP context. The EVP_DigestInit() function clears alls flags and breaks usedforsecurity flag again. Signed-off-by: Christian Heimes <christian@python.org> https://bugs.python.org/issue38270. (cherry picked from commit 90558158093c0ad893102158fd3c2dd9f864e82e) Co-authored-by: Christian Heimes <christian@python.org>
* bpo-38304: Add PyConfig.struct_size (GH-16451) (GH-16453)Victor Stinner2019-09-281-1/+8
| | | | | | | | | | | | | | | | | | | Add a new struct_size field to PyPreConfig and PyConfig structures to allow to modify these structures in the future without breaking the backward compatibility. * Replace private _config_version field with public struct_size field in PyPreConfig and PyConfig. * Public PyPreConfig_InitIsolatedConfig() and PyPreConfig_InitPythonConfig() return type becomes PyStatus, instead of void. * Internal _PyConfig_InitCompatConfig(), _PyPreConfig_InitCompatConfig(), _PyPreConfig_InitFromConfig(), _PyPreConfig_InitFromPreConfig() return type becomes PyStatus, instead of void. * Remove _Py_CONFIG_VERSION * Update the Initialization Configuration documentation. (cherry picked from commit 441b10cf2855955c86565f8d59e72c2efc0f0a57)
* [3.8] bpo-38234: Backport init path config changes from master (GH-16423)Victor Stinner2019-09-261-76/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bpo-38234: Py_SetPath() uses the program full path (GH-16357) Py_SetPath() now sets sys.executable to the program full path (Py_GetProgramFullPath()), rather than to the program name (Py_GetProgramName()). Fix also memory leaks in pathconfig_set_from_config(). (cherry picked from commit 1ce152a42eaa917d7763bce93f1e1ca72530d7ca) * bpo-38234: Add tests for Python init path config (GH-16358) (cherry picked from commit bb6bf7d342b4503a6227fd209fac934905b6a1aa) * bpo-38234: test_embed: test pyvenv.cfg and pybuilddir.txt (GH-16366) Add test_init_pybuilddir() and test_init_pyvenv_cfg() to test_embed to test pyvenv.cfg and pybuilddir.txt configuration files. Fix sysconfig._generate_posix_vars(): pybuilddir.txt uses UTF-8 encoding, not ASCII. (cherry picked from commit 52ad33abbfb6637d74932617c7013bae0ccf6e32) * bpo-38234: Cleanup getpath.c (GH-16367) * search_for_prefix() directly calls reduce() if found is greater than 0. * Add calculate_pybuilddir() subfunction. * search_for_prefix(): add path string buffer for readability. * Fix some error handling code paths: release resources on error. * calculate_read_pyenv(): rename tmpbuffer to filename. * test.pythoninfo now also logs windows.dll_path (cherry picked from commit 221fd84703c545408bbb4a6e0b58459651331f5c) * bpo-38234: Fix test_embed pathconfig tests (GH-16390) bpo-38234: On macOS and FreeBSD, the temporary directory can be symbolic link. For example, /tmp can be a symbolic link to /var/tmp. Call realpath() to resolve all symbolic links. (cherry picked from commit 00508a7407d7d300b487532e2271534b20e378a7) * bpo-38234: Add test_init_setpath_config() to test_embed (GH-16402) * Add test_embed.test_init_setpath_config(): test Py_SetPath() with PyConfig. * test_init_setpath() and test_init_setpythonhome() no longer call Py_SetProgramName(), but use the default program name. * _PyPathConfig: isolated, site_import and base_executable fields are now only available on Windows. * If executable is set explicitly in the configuration, ignore calculated base_executable: _PyConfig_InitPathConfig() copies executable to base_executable. * Complete path config documentation. (cherry picked from commit 8bf39b606ef7b02c0279a80789f3c4824b0da5e9) * bpo-38234: Complete init config documentation (GH-16404) (cherry picked from commit 88feaecd46a8f427e30ef7ad8cfcddfe392a2402) * bpo-38234: Fix test_embed.test_init_setpath_config() on FreeBSD (GH-16406) Explicitly preinitializes with a Python preconfiguration to avoid Py_SetPath() implicit preinitialization with a compat preconfiguration. Fix also test_init_setpath() and test_init_setpythonhome() on macOS: use self.test_exe as the executable (and base_executable), rather than shutil.which('python3'). (cherry picked from commit 49d99f01e6e51acec5ca57a02e857f0796bc418b) * bpo-38234: Py_Initialize() sets global path configuration (GH-16421) * Py_InitializeFromConfig() now writes PyConfig path configuration to the global path configuration (_Py_path_config). * Add test_embed.test_get_pathconfig(). * Fix typo in _PyWideStringList_Join(). (cherry picked from commit 12f2f177fc483723406d7917194e7f655a20631b)
* [3.8] closes bpo-38174: Update vendored expat library to 2.2.8. (GH-16409)Benjamin Peterson2019-09-2619-4835/+3972
| | | | Fixes CVE-2019-15903. See full changelog at https://github.com/libexpat/libexpat/blob/R_2_2_8/expat/Changes. (cherry picked from commit 52b940803860e37bcc3f6096b2d24e7c20a0e807)
* [3.8] bpo-22273: Changed conditions for ctypes array-in-struct handling. ↵Vinay Sajip2019-09-251-7/+4
| | | | | (GH-16381) (GH-16401) (cherry picked from commit c64af8fad3c4f5751af624647fbb0ce023f525dc)
* bpo-38248: Fix inconsistent immediate asyncio.Task cancellation (GH-16330) ↵Miss Islington (bot)2019-09-251-7/+8
| | | | | | | (GH-16383) (cherry picked from commit edad4d89e357c92f70c0324b937845d652b20afd) Co-authored-by: Yury Selivanov <yury@edgedb.com>
* bpo-22273: Update ctypes to correctly handle arrays in small structur… ↵Miss Islington (bot)2019-09-252-0/+146
| | | | | (GH-15839) (GH-16370) (cherry picked from commit 12f209eccb1587e8c98057d9c5f865c21f4a16c1)
* bpo-38234: read_pth_file() now returns PyStatus (GH-16338)Miss Islington (bot)2019-09-231-79/+112
| | | | | | | | | | | | Refactor path configuration code: * read_pth_file() now returns PyStatus to report errors, rather than calling Py_FatalError(). * Move argv0_path and zip_path buffers out of PyCalculatePath structures. * On Windows, _PyPathConfig.home is now preferred over PyConfig.home. (cherry picked from commit 85ce0a7178801b538160cbb5cf9ef50a713c45bf) Co-authored-by: Victor Stinner <vstinner@redhat.com>
* bpo-38234: Fix _PyConfig_InitPathConfig() (GH-16335) (GH-16336)Victor Stinner2019-09-231-62/+78
| | | | | | | | | | | | | | | | | | * _PyConfig_InitPathConfig() now starts by copying the global path configuration, and then override values set in PyConfig. * _PyPathConfig_Calculate() implementations no longer override _PyPathConfig fields which are already computed. For example, if _PyPathConfig.prefix is not NULL, leave it unchanged. * If Py_SetPath() has been called, _PyConfig_InitPathConfig() doesn't call _PyPathConfig_Calculate() anymore. * _PyPathConfig_Calculate() no longer uses PyConfig, except to initialize PyCalculatePath structure. * pathconfig_calculate(): remove useless temporary "_PyPathConfig new_config" variable. * calculate_module_search_path(): remove hack to workaround memory allocation failure, call Py_FatalError() instead. * Fix get_program_full_path(): handle memory allocation failure. (cherry picked from commit 9c42f8cda552694f3b47d6388d4ae84d61731872)
* [3.8] bpo-38234: Fix PyConfig_Read() when Py_SetPath() was called (GH-16298) ↵Victor Stinner2019-09-211-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | (GH-16313) * bpo-38234: Remove _PyPathConfig.dll_path (GH-16307) The DLL path is not computed from any user configuration and cannot be configured by PyConfig. Instead, add a new _Py_dll_path global variable. Remove _PyConfig_SetPathConfig(): replaced with _PyPathConfig_Init(). Py_Initialize() now longer sets the "global path configuration", but only initialize _Py_dll_path. (cherry picked from commit c422167749f92d4170203e996a2c619c818335ea) * bpo-38234: Fix PyConfig_Read() when Py_SetPath() was called (GH-16298) * If Py_SetPath() has been called, _PyConfig_InitPathConfig() now uses its value. * Py_Initialize() now longer copies path configuration from PyConfig to the global path configuration (_Py_path_config). (cherry picked from commit e267793aa4101b2771ed0e66aaff5743d23f59af)
* bpo-38185: Fixed case-insensitive string comparison in sqlite3.Row indexing. ↵Miss Islington (bot)2019-09-171-31/+31
| | | | | | | (GH-16190) (cherry picked from commit f669581a9527afb0d2325f9845a86715c0ba365d) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-38175: Fix a memory leak in comparison of sqlite3.Row objects. (GH-16155)Miss Islington (bot)2019-09-171-5/+7
| | | | | (cherry picked from commit 8debfa50407107ff2329d01081cdc12d359f1d12) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-33936: Don't call obsolete init methods with OpenSSL 1.1.0+ (GH-16140)Miss Islington (bot)2019-09-161-1/+1
| | | | | | | | ``OPENSSL_VERSION_1_1`` was never defined in ``_hashopenssl.c``. https://bugs.python.org/issue33936 (cherry picked from commit 724f1a57231f9287c37255adf0e4364d12cf693d) Co-authored-by: Christian Heimes <christian@python.org>
* bpo-38153: detect shake independently from sha3 (GH-16143)Miss Islington (bot)2019-09-161-2/+11
| | | | | | | | XOF digests (SHAKE) are not available in OpenSSL 1.1.0 but SHA3 fixed-length digests are. Signed-off-by: Christian Heimes <christian@python.org> (cherry picked from commit eb2b0c694aef6122fdf95015abb24e0d095b6401) Co-authored-by: Christian Heimes <christian@python.org>
* [3.8] bpo-38153: Normalize hashlib algorithm names (GH-16083) (GH-16144)Christian Heimes2019-09-161-21/+146
| | | | | | Signed-off-by: Christian Heimes <christian@python.org> (cherry picked from commit 995b5d38e7cc24cac3de8dfd516115f86b0bcf80) Co-authored-by: Christian Heimes <christian@python.org>
* [3.8] bpo-38168: Fix a possbile refleak in setint() of mmapmodule.c ↵Miss Islington (bot)2019-09-161-1/+2
| | | | | | | | | | | | | | (GH-16136) (GH-16174) (cherry picked from commit 56a45142e70a1ccf3233d43cb60c47255252e89a) Co-authored-by: Hai Shi <shihai1992@gmail.com> https://bugs.python.org/issue38168 Automerge-Triggered-By: @zhangyangyu
* bpo-37798: Prevent undefined behavior in direct calls to the C helper ↵Miss Islington (bot)2019-09-151-1/+17
| | | | | | | function. (GH-16149) (GH-16160) (cherry picked from commit 6e27a0d77520bf2c4412e367496212510f81b983) Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
* [3.8] bpo-38005: Fixed comparing and creating of InterpreterID and ↵Serhiy Storchaka2019-09-141-85/+65
| | | | | | | | | | | | | | ChannelID. (GH-15652) (GH-16145) * Fix a crash in comparing with float (and maybe other crashes). * They are now never equal to strings and non-integer numbers. * Comparison with a large number no longer raises OverflowError. * Arbitrary exceptions no longer silenced in constructors and comparisons. * TypeError raised in the constructor contains now the name of the type. * Accept only ChannelID and int-like objects in channel functions. * Accept only InterpreterId, int-like objects and str in the InterpreterId constructor. * Accept int-like objects, not just int in interpreter related functions. (cherry picked from commit bf169915ecdd42329726104278eb723a7dda2736)
* [3.8] bpo-37206: Unrepresentable default values no longer represented as ↵Serhiy Storchaka2019-09-1426-202/+200
| | | | | | | | | | None. (GH-13933) (GH-16141) In ArgumentClinic, value "NULL" should now be used only for unrepresentable default values (like in the optional third parameter of getattr). "None" should be used if None is accepted as argument and passing None has the same effect as not passing the argument at all. (cherry picked from commit 279f44678c8b84a183f9eeb85e0b086228154497) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.8] bpo-38150: Fix refleak in the finalizer of a _testcapimodule type ↵Stéphane Wirtel2019-09-131-5/+13
| | | | | | | | | | | | (GH-16115) (GH-16118) The PyLong created in the finalizer was not being cleaned up https://bugs.python.org/issue38150 Automerge-Triggered-By: @matrixise (cherry picked from commit a67ac2f2d9550e5a36d28f9b6eeacf6575dda2d5) Co-authored-by: Eddie Elizondo <eelizondo@fb.com>
* [3.8] bpo-38137: Re-add OpenSSL 1.0.2 compat (GH-16051) (GH-16057)Stéphane Wirtel2019-09-121-0/+6
| | | | | | | | | | | | | | | | | The defines are required for OpenSSL 1.0.2 and LibreSSL. https://bugs.python.org/issue38134 Automerge-Triggered-By: @tiran (cherry picked from commit 9a4963b932a087b78596cca0b8394ac898faa490) Co-authored-by: Christian Heimes <christian@python.org> https://bugs.python.org/issue38137 Automerge-Triggered-By: @matrixise
* bpo-21872: fix lzma library decompresses data incompletely (GH-14048)Miss Islington (bot)2019-09-121-6/+22
| | | | | | | | | | * 1. add test case with wrong behavior * 2. fix bug when max_length == -1 * 3. allow b"" as valid input data for decompress_buf() * 4. when max_length >= 0, let needs_input mechanism works * add more asserts to test case (cherry picked from commit 4ffd05d7ec47cfd0d7fc95dce851633be9663255) Co-authored-by: animalize <animalize@users.noreply.github.com>
* bpo-38132: Check EVP_DigestUpdate for error (GH-16041)Miss Islington (bot)2019-09-121-6/+16
| | | | | (cherry picked from commit 8c74574e0aaf1a00719fbc9acbdc27a3923520aa) Co-authored-by: Christian Heimes <christian@python.org>
* bpo-38132: Simplify _hashopenssl code (GH-16023) (#16040)Miss Islington (bot)2019-09-122-122/+385
| | | | | | Signed-off-by: Christian Heimes <christian@python.org> (cherry picked from commit 5a4f82f457049b5b07b6fba4ca42bc1ecf597976) Co-authored-by: Christian Heimes <christian@python.org>
* bpo-38134: Remove PKBDF2_HMAC_fast from _hashopenssl (GH-16028)Miss Islington (bot)2019-09-122-123/+1
| | | | | | Signed-off-by: Christian Heimes <christian@python.org> (cherry picked from commit 64117e059b79236c7345bc9afc1cc707162411de) Co-authored-by: Christian Heimes <christian@python.org>
* bpo-38110: Use fdwalk for os.closerange() when available. (GH-15224)Miss Islington (bot)2019-09-121-0/+25
| | | | | | Use fdwalk() on platforms that support it to implement os.closerange(). (cherry picked from commit e20134f889a0cfcc37a46979f31a1c98b800de07) Co-authored-by: Jakub Kulík <Kulikjak@gmail.com>
* closes bpo-37405: Make socket.getsockname() always return a tuple for ↵Miss Islington (bot)2019-09-121-1/+1
| | | | | | | | AF_CAN. (GH-14392) (GH-16018) This fixes a regression from 3.5. In recent releases, `getsockname()` in the AF_CAN case has returned a string. (cherry picked from commit 954900a3f98a8c0dea14dd575490237f3f8626b3) Co-authored-by: bggardner <brent@ebrent.net>
* closes bpo-38127: _ctypes: PyObject_IsSubclass() should be checked for ↵Miss Islington (bot)2019-09-121-1/+5
| | | | | | | | failure. (GH-16011) An exception may occur during a PyObject_IsSubclass() call. (cherry picked from commit ea683deccc505a78bbbb1eb8c6a88b0835ad5151) Co-authored-by: Zackery Spytz <zspytz@gmail.com>
* [3.8] bpo-37879: Suppress subtype_dealloc decref when base type is a C heap ↵Petr Viktorin2019-09-121-0/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | type (GH-15323, GH-16004) (GH-15966) The instance destructor for a type is responsible for preparing an instance for deallocation by decrementing the reference counts of its referents. If an instance belongs to a heap type, the type object of an instance has its reference count decremented while for static types, which are permanently allocated, the type object is unaffected by the instance destructor. Previously, the default instance destructor searched the class hierarchy for an inherited instance destructor and, if present, would invoke it. Then, if the instance type is a heap type, it would decrement the reference count of that heap type. However, this could result in the premature destruction of a type because the inherited instance destructor should have already decremented the reference count of the type object. This change avoids the premature destruction of the type object by suppressing the decrement of its reference count when an inherited, non-default instance destructor has been invoked. Finally, an assertion on the Py_SIZE of a type was deleted. Heap types have a non zero size, making this into an incorrect assertion. https://github.com/python/cpython/pull/15323. (cherry picked from commit ff023ed36ea260ab64be5895f1f1f087c798987a) Fixup: https://github.com/python/cpython/pull/16004. (cherry picked from commit 5e9caeec76119a0d61c25f1466c27b7dbd5115bd) Co-authored-by: Eddie Elizondo <eduardo.elizondorueda@gmail.com>
* bpo-33166: Change os.cpu_count to return active (real) processors (GH-15949)Miss Islington (bot)2019-09-111-17/+3
| | | | | (cherry picked from commit aa929273caca2f4e24e3aa9e790272fd4458ad35) Co-authored-by: Steve Dower <steve.dower@python.org>
* Fix calling order of PyEval_InitThreads. (GH-15836)Miss Islington (bot)2019-09-101-1/+1
| | | | | | | As described in Doc/c-api/init.rst, PyEval_InitThreads() cannot be called before Py_Initialize() function. (cherry picked from commit 9e61066355b4b55c873d56f5f106a22463b56862) Co-authored-by: Kenta Murata <mrkn@users.noreply.github.com>
* bpo-35941: Fix performance regression in SSL certificate code (GH-12610)Steve Dower2019-09-101-29/+27
| | | | | | | | Accumulate certificates in a set instead of doing a costly list contain operation. A Windows cert store can easily contain over hundred certificates. The old code would result in way over 5,000 comparison operations Signed-off-by: Christian Heimes <christian@python.org>
* bpo-37649: Fix exec_prefix check (GH-14897)Miss Islington (bot)2019-09-091-1/+1
| | | | | (cherry picked from commit 09090d04ef8d2f4c94157b852d3d530a51e13d22) Co-authored-by: Orivej Desh <orivej@gmx.fr>
* bpo-38070: visit_decref() calls _PyObject_IsFreed() (GH-15782)Miss Islington (bot)2019-09-091-0/+2
| | | | | | | | | In debug mode, visit_decref() now calls _PyObject_IsFreed() to ensure that the object is not freed. If it's freed, the program fails with an assertion error and Python dumps informations about the freed object. (cherry picked from commit d91d4de31745fc1ed4c7e6c208917827c9c472b6) Co-authored-by: Victor Stinner <vstinner@redhat.com>
* bpo-38037: Fix reference counters in signal module (GH-15753)Miss Islington (bot)2019-09-091-8/+17
| | | | | (cherry picked from commit 77643c486fd22d8030e0d82c13012684b4ab6df1) Co-authored-by: animalize <animalize@users.noreply.github.com>
* bpo-37702: Fix SSL's certificate-store leak on Windows (GH-15632)Steve Dower2019-09-091-0/+1
| | | | | ssl_collect_certificates function in _ssl.c has a memory leak. Calling CertOpenStore() and CertAddStoreToCollection(), a store's refcnt gets incremented by 2. But CertCloseStore() is called only once and the refcnt leaves 1.
* bpo-37445: Include FORMAT_MESSAGE_IGNORE_INSERTS in FormatMessageW() calls ↵Miss Islington (bot)2019-09-092-2/+5
| | | | | | | | (GH-14462) If FormatMessageW() is passed the FORMAT_MESSAGE_FROM_SYSTEM flag without FORMAT_MESSAGE_IGNORE_INSERTS, it will fail if there are insert sequences in the message definition. (cherry picked from commit a6563650c835d50f7302971a5b145e94f9d0dc68) Co-authored-by: Zackery Spytz <zspytz@gmail.com>
* bpo-34410: Fix a crash in the tee iterator when re-enter it. (GH-15625)Miss Islington (bot)2019-09-091-0/+9
| | | | | | RuntimeError is now raised in this case. (cherry picked from commit 526a01467b3277f9fcf7f91e66c23321caa1245d) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-38030: Fix os.stat failures on block devices on Windows (GH-15681)Miss Islington (bot)2019-09-041-6/+13
| | | | | (cherry picked from commit 772ec0fad57412daa53d16d7019b6b2fe6e94942) Co-authored-by: Steve Dower <steve.dower@python.org>
* closes bpo-37966: Fully implement the UAX GH-15 quick-check algorithm. ↵Miss Islington (bot)2019-09-041-24/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (GH-15558) The purpose of the `unicodedata.is_normalized` function is to answer the question `str == unicodedata.normalized(form, str)` more efficiently than writing just that, by using the "quick check" optimization described in the Unicode standard in UAX GH-15. However, it turns out the code doesn't implement the full algorithm from the standard, and as a result we often miss the optimization and end up having to compute the whole normalized string after all. Implement the standard's algorithm. This greatly speeds up `unicodedata.is_normalized` in many cases where our partial variant of quick-check had been returning MAYBE and the standard algorithm returns NO. At a quick test on my desktop, the existing code takes about 4.4 ms/MB (so 4.4 ns per byte) when the partial quick-check returns MAYBE and it has to do the slow normalize-and-compare: $ build.base/python -m timeit -s 'import unicodedata; s = "\uf900"*500000' \ -- 'unicodedata.is_normalized("NFD", s)' 50 loops, best of 5: 4.39 msec per loop With this patch, it gets the answer instantly (58 ns) on the same 1 MB string: $ build.dev/python -m timeit -s 'import unicodedata; s = "\uf900"*500000' \ -- 'unicodedata.is_normalized("NFD", s)' 5000000 loops, best of 5: 58.2 nsec per loop This restores a small optimization that the original version of this code had for the `unicodedata.normalize` use case. With this, that case is actually faster than in master! $ build.base/python -m timeit -s 'import unicodedata; s = "\u0338"*500000' \ -- 'unicodedata.normalize("NFD", s)' 500 loops, best of 5: 561 usec per loop $ build.dev/python -m timeit -s 'import unicodedata; s = "\u0338"*500000' \ -- 'unicodedata.normalize("NFD", s)' 500 loops, best of 5: 512 usec per loop (cherry picked from commit 2f09413947d1ce0043de62ed2346f9a2b4e5880b) Co-authored-by: Greg Price <gnprice@gmail.com>
* bpo-38020: Fixes crash in os.readlink() on Windows (GH-15663)Miss Islington (bot)2019-09-031-2/+2
| | | | | (cherry picked from commit 993ac92418839427d4068d6ae8e618b06b5d9294) Co-authored-by: Steve Dower <steve.dower@python.org>
* bpo-37798: Fix _statistics module doc (GH-15546)Miss Islington (bot)2019-09-031-1/+4
| | | | | (cherry picked from commit 0cf832a9ef84be6e18aad02464814530d80b82b2) Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
* [3.8] bpo-37994: Fix silencing all errors if an attribute lookup fails. ↵Serhiy Storchaka2019-09-015-22/+28
| | | | | | | (GH-15630) (GH-15635) Only AttributeError should be silenced. (cherry picked from commit 41c57b335330ff48af098d47e379e0f9ba09d233)
* [3.8] bpo-37990: fix gc stats (GH-15626)Inada Naoki2019-08-311-2/+3
| | | (cherry picked from commit 013e52f)
* Fix typos mostly in comments, docs and test names (GH-15209)Miss Islington (bot)2019-08-308-11/+11
| | | | | (cherry picked from commit 39d87b54715197ca9dcb6902bb43461c0ed701a2) Co-authored-by: Min ho Kim <minho42@gmail.com>
* bpo-37140: Fix StructUnionType_paramfunc() (GH-15612)Miss Islington (bot)2019-08-301-14/+59
| | | | | | | | | | | | | | | Fix a ctypes regression of Python 3.8. When a ctypes.Structure is passed by copy to a function, ctypes internals created a temporary object which had the side effect of calling the structure finalizer (__del__) twice. The Python semantics requires a finalizer to be called exactly once. Fix ctypes internals to no longer call the finalizer twice. Create a new internal StructParam_Type which is only used by _ctypes_callproc() to call PyMem_Free(ptr) on Py_DECREF(argument). StructUnionType_paramfunc() creates such object. (cherry picked from commit 96b4087ce784ee7434dffdf69c475f5b40543982) Co-authored-by: Victor Stinner <vstinner@redhat.com>
* bpo-37976: Prevent shadowing of TypeError in zip() (GH-15592) (GH-15608)Miss Islington (bot)2019-08-301-4/+0
| | | | | (cherry picked from commit 6a650aaf7735e30636db2721247f317064c2cfd4) Co-authored-by: Sergey Fedoseev <fedoseev.sergey@gmail.com>