- 10 Sep, 2019 5 commits
-
-
Jeroen Demeyer authored
-
Nikhil authored
-
Greg Price authored
This is the sort of `goto` that requires the reader to stare hard at the code to unpick what it's doing. On doing so, the answer is... not very much! * It jumps from the bottom of the loop to almost the top; the effect is to bypass the loop condition `s < end` and also the `if`-condition `*s != '\\'`, acting as if both are true. * We've just decremented `s`, after incrementing it in the `switch` condition. So it has the same value as when `s == end` failed. Before that was another increment... and before that we had `s < end`. So `s < end` true, then increment, then `s == end` false... that means `s < end` is still true. * Also this means `s` points to the same character as it did for the `switch` condition. And there was a `case '\\'`, which we didn't hit -- so `*s != '\\'` is also true. * That means this has no effect on the behavior! The most it might do is an optimization -- we get to skip those two checks, because (as just proven above) we know they're true. * But gosh, this is the *invalid escape sequence* path. This does not seem like the kind of code path that calls for extreme optimization tricks. So, take the `goto` and the label out. Perhaps the compiler will notice the exact same facts we showed above, and generate identical code. Or perhaps it won't! That'll be OK. But then, crucially, if some future edit to this loop causes the reasoning above to *stop* holding true... the compiler will adjust this jump accordingly. One of us fallible humans might not.
-
Vinay Sharma authored
-
Terry Jan Reedy authored
This only happened when initializing the subprocess to run a module. This recent bug only affected 3.7.4 and 3.8.0b2 to 3.8.0b4.
-
- 09 Sep, 2019 35 commits
-
-
Jean-François B authored
The "A4" pdfs were previously the wrong size due to a change in the options in Sphinx 1.5. See also sphinx-doc/sphinx#5235
-
Paul Monson authored
-
Sergey Fedoseev authored
-
Serhiy Storchaka authored
-
Lisa Roach authored
* bpo-351428: Updates documentation to reflect AsyncMock call_count after await. * Adds skip and fixes warning. * Removes extra >>>. * Adds ... in front of await mock().
-
Vinay Sharma authored
-
Greg Price authored
The link we have points to the version from Unicode 6.0.0, dated 2010. There have been numerous updates to it since then: https://www.unicode.org/reports/tr44/#Modifications Change the link to one that points to the current version. Also, use HTTPS.
-
Serhiy Storchaka authored
-
Sergey Fedoseev authored
-
Christian Heimes authored
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>
-
Orivej Desh authored
-
Hasan Ramezani authored
-
Anthony Sottile authored
Co-Authored-By: Ammar Askar <ammar_askar@hotmail.com>
-
Boris Verhovsky authored
-
Richard Sanger authored
bz2.open()'s default mode is rb, not r
-
Zackery Spytz authored
Co-Authored-By: David Wilson <dw@botanicus.net>
-
Victor Stinner authored
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.
-
Greg Price authored
Since PEP 393 in Python 3.3, this value is always 0x10ffff, the maximum codepoint in Unicode; there's no longer such a thing as a UCS-2 build of Python, which couldn't properly represent some characters. There are a couple of spots left where we still condition on the value of this constant. Take them out.
-
Anthony Sottile authored
-
Antoine authored
* Minor changes. * Update Doc/faq/library.rst Co-Authored-By: Kyle Stanley <aeros167@gmail.com> * Apply suggestions from aeros167. * Update Doc/faq/library.rst Co-Authored-By: Kyle Stanley <aeros167@gmail.com> * Apply suggestions from aeros167 + re-add a "a" that was accidentally deleted.
-
Victor Stinner authored
weakref.WeakValueDictionary defines a local remove() function used as callback for weak references. This function was created with a closure. Modify the implementation to avoid the closure.
-
Zeth authored
The Rot-13 codec is for educational use but does not have unit tests, dragging down test coverage. This adds a few very simple tests.
-
Mario Corchero authored
Update the docs as patch can now return an AsyncMock if the patched object is an async function.
-
Greg Price authored
This is the converse of GH-15353 -- in addition to plenty of scripts in the tree that are marked with the executable bit (and so can be directly executed), there are a few that have a leading `#!` which could let them be executed, but it doesn't do anything because they don't have the executable bit set. Here's a command which finds such files and marks them. The first line finds files in the tree with a `#!` line *anywhere*; the next-to-last step checks that the *first* line is actually of that form. In between we filter out files that already have the bit set, and some files that are meant as fragments to be consumed by one or another kind of preprocessor. $ git grep -l '^#!' \ | grep -vxFf <( \ git ls-files --stage \ | perl -lane 'print $F[3] if (!/^100644/)' \ ) \ | grep -ve '\.in$' -e '^Doc/includes/' \ | while read f; do head -c2 "$f" | grep -qxF '#!' \ && chmod a+x "$f"; \ done
-
Alan Yee authored
Constants added by the site module like exit() "should not be used in programs"
-
Jon Janzen authored
* Update documentation for plistlib - Update "Mac OS X" to "Apple" since plists are used more widely than just macOS - Re-add the UID class documentation (oops, removed in GH-15615)
-
Pablo Galindo authored
-
Naitree Zhu authored
* bpo-34596: Fallback to a default reason when @unittest.skip is uncalled * Change default reason to empty string * Fix rst formatting of NEWS entry
-
Vinay Sajip authored
-
animalize authored
-
Steve Dower authored
-
Mickaël Schoentgen authored
* bpo-26185: Fix repr() on empty ZipInfo object It was failing on AttributeError due to inexistant but required attributes file_size and compress_size. They are now initialized to 0 in ZipInfo.__init__(). * Remove useless hasattr() in ZipInfo._open_to_write() * Completely remove file_size setting in _open_to_write().
-
Ashwin Vishnu authored
-
neonene authored
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.
-
T. Wouters authored
The missing dependencies prevented incremental builds from working when you touched any of these files. Based on GH-14758 by @vemakereporter.
-