summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* bpo-30039: Don't run signal handlers while resuming a yield from stack (#1081)Nathaniel J. Smith2017-05-174-3/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have a chain of generators/coroutines that are 'yield from'ing each other, then resuming the stack works like: - call send() on the outermost generator - this enters _PyEval_EvalFrameDefault, which re-executes the YIELD_FROM opcode - which calls send() on the next generator - which enters _PyEval_EvalFrameDefault, which re-executes the YIELD_FROM opcode - ...etc. However, every time we enter _PyEval_EvalFrameDefault, the first thing we do is to check for pending signals, and if there are any then we run the signal handler. And if it raises an exception, then we immediately propagate that exception *instead* of starting to execute bytecode. This means that e.g. a SIGINT at the wrong moment can "break the chain" – it can be raised in the middle of our yield from chain, with the bottom part of the stack abandoned for the garbage collector. The fix is pretty simple: there's already a special case in _PyEval_EvalFrameEx where it skips running signal handlers if the next opcode is SETUP_FINALLY. (I don't see how this accomplishes anything useful, but that's another story.) If we extend this check to also skip running signal handlers when the next opcode is YIELD_FROM, then that closes the hole – now the exception can only be raised at the innermost stack frame. This shouldn't have any performance implications, because the opcode check happens inside the "slow path" after we've already determined that there's a pending signal or something similar for us to process; the vast majority of the time this isn't true and the new check doesn't run at all.
* Fixes encodings in vcxproj files and adds script to automatically do it. (#1631)Steve Dower2017-05-172-1/+37
|
* Adds lib.pyproj file to solution (#1633)Steve Dower2017-05-172-2/+1815
| | | | | | | | * Adds lib.pyproj file to solution so that VS with Python support can open all the files in the standard library. * Remove unexpected solution configuration. * Remove lib.pyproj from solution to avoid memory issues on VS 2015.
* bpo-30149: Fix partialmethod without explicit self parameter (#1308)Dong-hee Na2017-05-173-4/+48
|
* bpo-30387: Fix warning in test_threading (#1634)Victor Stinner2017-05-171-3/+5
| | | | | | | | | test_is_alive_after_fork() now joins directly the thread to avoid the following warning added by bpo-30357: Warning -- threading_cleanup() failed to cleanup 0 threads after 2 sec (count: 0, dangling: 21) Use also a different exit code to catch generic exit code 1.
* bpo-30301: Fix AttributeError when using SimpleQueue.empty() (#1601)Xiang Zhang2017-05-173-0/+40
| | | | | Under *spawn* and *forkserver* start methods, SimpleQueue.empty() could raise AttributeError due to not setting _poll in __setstate__.
* bpo-30211: bdb: add docstrings (#1350)csabella2017-05-161-18/+212
|
* bpo-30038: fix race condition in signal delivery + wakeup fd (#1082)Nathaniel J. Smith2017-05-161-7/+26
| | | | | | | | | | | | | | | | | | | Before, it was possible to get the following sequence of events (especially on Windows, where the C-level signal handler for SIGINT is run in a separate thread): - SIGINT arrives - trip_signal is called - trip_signal writes to the wakeup fd - the main thread wakes up from select()-or-equivalent - the main thread checks for pending signals, but doesn't see any - the main thread drains the wakeup fd - the main thread goes back to sleep - trip_signal sets is_tripped=1 and calls Py_AddPendingCall to notify the main thread the it should run the Python-level signal handler - the main thread doesn't notice because it's asleep This has been causing repeated failures in the Trio test suite: https://github.com/python-trio/trio/issues/119
* bpo-30380: Pin the version of Sphinx used to build the documentation (GH-1612)Mariatta2017-05-161-2/+4
|
* bpo-30380: Fix Sphinx 1.6.1 warnings. (#1613)Serhiy Storchaka2017-05-167-15/+14
| | | | | | | | * Use explicit numbering for footnotes referred by explicit number. * Restore missed footnote reference in stdtypes.rst. * Fix literal strings formatting in howto/urllib2.rst. * Update susp-ignored.csv for zipapp.rst. * Fix suspicious mark up in Misc/NEWS.
* Fix ModuleNotFoundError typo in import reference (#1606)Dominik Miedziński2017-05-161-1/+1
|
* bpo-30375: Correct the stacklevel of regex compiling warnings. (#1595)Serhiy Storchaka2017-05-163-13/+29
| | | | | | Warnings emitted when compile a regular expression now always point to the line in the user code. Previously they could point into inners of the re module if emitted from inside of groups or conditionals.
* bpo-29898: Fix incorrect env variable name (GH-1576)Berker Peksag2017-05-162-3/+3
| | | | It should read PYTHONLEGACYWINDOWSSTDIO as stated in section "Add legacy mode" in PEP 528.
* Remove unused variable in test_urllibnet. (#1598)Senthil Kumaran2017-05-161-1/+3
|
* bpo-29651 - Cover edge case of square brackets in urllib docs (#1128)Howie Benefiel2017-05-161-0/+6
|
* bpo-30339: test_multiprocessing_main_handling timeout (#1593)Victor Stinner2017-05-151-1/+1
| | | | | test_multiprocessing_main_handling: increase the test_source timeout from 10 seconds to 60 seconds, since the test fails randomly on busy buildbots.
* bpo-30357: test_thread now uses threading_cleanup() (#1592)Victor Stinner2017-05-153-0/+10
| | | | | | | test_thread: setUp() now uses support.threading_setup() and support.threading_cleanup() to wait until threads complete to avoid random side effects on following tests. Co-Authored-By: Grzegorz Grzywacz <grzegorz.grzywacz@nazwa.pl>
* bpo-30329: Catch Windows error 10022 on shutdown() (#1538)Victor Stinner2017-05-153-6/+16
| | | | | | Catch the Windows socket WSAEINVAL error (code 10022) in imaplib and poplib on shutdown(SHUT_RDWR): An invalid operation was attempted This error occurs sometimes on SSL connections.
* bpo-29196: Removed old-deprecated classes Plist, Dict and _InternalDict (#488)Serhiy Storchaka2017-05-155-100/+29
| | | | | in the plistlib module. Dict values in the result of functions readPlist() and readPlistFromBytes() are now exact dicts.
* bpo-9850: Document macpath deprecation in Misc/NEWS (#1590)Victor Stinner2017-05-151-0/+3
|
* bpo-9850: Deprecate the macpath module (#1540)Victor Stinner2017-05-154-1/+15
| | | Co-Authored-By: Chi Hsuan Yen <yan12125@gmail.com>.
* bpo-30242: resolve some undefined behaviours in struct (#1418)Xiang Zhang2017-05-151-5/+9
|
* bpo-30110: fix resource leak in test_asyncio.test_events (#1413)Xiang Zhang2017-05-151-1/+3
|
* bpo-30224: remove outdated checks in struct (#1374)Xiang Zhang2017-05-151-47/+15
|
* bpo-30354: Update data model documentation for super() (GH-1561)csabella2017-05-151-6/+6
| | | | | | | | | | The data model section of the language reference was written well before the zero-argument form of super() was added. To avoid giving the impression that they're doing something unusual, this updates the description of `__new__` and `__init__` to use the zero-argument form. Patch by Cheryl Sabella.
* bpo-29763: Clean up _pth tests (GH-954)Zachary Ware2017-05-141-46/+31
|
* bpo-30358: Document sort argument of profile.runctx() (GH-1566)csabella2017-05-141-2/+2
|
* bpo-30299: Display a bytecode when compile a regex in debug mode. (#1491)Serhiy Storchaka2017-05-143-1/+177
| | | | | `re.compile(..., re.DEBUG)` now displays the compiled bytecode in human readable form.
* bpo-30340: Enhanced regular expressions optimization. (#1542)Serhiy Storchaka2017-05-144-54/+95
| | | | This increased the performance of matching some patterns up to 25 times.
* Move Codecov's configuration file under .github (GH-1494)morrme2017-05-131-0/+0
|
* bpo-30178: Add Jim Fasarakis-Hilliard to Misc/ACKS (GH-1572)Mariatta2017-05-131-0/+1
|
* bpo-30178: Indent methods and attributes of MimeType class (GH-1306)Jim Fasarakis-Hilliard2017-05-131-43/+43
|
* bpo-28974: `object.__format__(x, '')` is now equivalent to `str(x)` (#506)Serhiy Storchaka2017-05-134-9/+12
| | | | rather than `format(str(self), '')`.
* bpo-30341: Improve _PyTrash_thread_destroy_chain() a little bit (#1545)Xiang Zhang2017-05-132-3/+16
| | | | | * add a comment about why we need to increase trash_delete_nesting * move increase and decrese outside of the loop
* PCbuild/build.bat: Add note about using msbuild response file. (#1551)Charles2017-05-121-1/+6
| | | | | | | | | | | | | | | | Using a response file will eliminate the headache associated with batch argument/quote processing. For example I unsucessfully compiled python with visualcpptools when specifying VSInstallDir in the batch file (cannot find vcruntime.h) ```batch build.bat -p x64 -e -M --no-tkinter "/p:VCInstallDir=%VCInstallDir%" ``` but it build successfully when specifying it in a response file msbuild.rsp: ``` /p:VCInstallDir=%VCInstallDir% ```
* bpo-30291 Changes to launcher so as to allow py -3-32, -2.7-64, 3.10, etc.Steve (Gadget) Barnes2017-05-121-40/+70
| | | bpo-30291 Changes to launcher so as to allow py -3-32, -2.7-64, 3.10, etc.
* Indented Handler sections for improved clarity. (#1554)Vinay Sajip2017-05-121-66/+67
| | | Indented parts of the Handler class documentation for improved presentation, analogous to a recent similar change for the Logger class.
* Comment as to why docs are built against Python 3.6 (#1550)Brett Cannon2017-05-111-0/+1
|
* bpo-30308: Code coverage for argument in random.shuffle (#1504)csabella2017-05-111-1/+11
| | | | | | | | * bpo-30308: Code coverage for argument in random.shuffle * bpo-30308: Code coverage for argument in random.shuffle * bpo-30308: Code coverage for argument in random.shuffle
* bpo-30048: asyncio: fix Task.cancel() was ignored. (GH-1097)INADA Naoki2017-05-114-1/+39
| | | | | | | | | | | | when there are no more `await` or `yield (from)` before return in coroutine, cancel was ignored. example: async def coro(): asyncio.Task.current_task().cancel() return 42 ... res = await coro() # should raise CancelledError
* #30190: fix invalid escape sequence warnings (#1534)Giampaolo Rodola2017-05-101-3/+3
|
* bpo-28787: Fix out of tree --with-dtrace builds (#135)stratakis2017-05-103-0/+5
| | | | | | | | * bpo-28787: Fix out of tree --with-dtrace builds * Unsilence directory creation * Add Misc/NEWS and Misc/ACKS entries
* bpo-30281: Fix the default value for stop in PySlice_Unpack() (#1480)Xiang Zhang2017-05-103-5/+7
|
* bpo-30298: Weaken the condition of deprecation warnings for inline ↵Serhiy Storchaka2017-05-103-21/+56
| | | | | | | | modifiers. (#1490) Now allowed several subsequential inline modifiers at the start of the pattern (e.g. '(?i)(?s)...'). In verbose mode whitespaces and comments now are allowed before and between inline modifiers (e.g. '(?x) (?i) (?s)...').
* bpo-30320: test_eintr now uses pthread_sigmask() (#1523)Victor Stinner2017-05-101-35/+26
| | | | | | | | | | | | Rewrite sigwaitinfo() and sigtimedwait() unit tests for EINTR using pthread_sigmask() to fix a race condition between the child and the parent process. Remove the pipe which was used as a weak workaround against the race condition. sigtimedwait() is now tested with a child process sending a signal instead of testing the timeout feature which is more unstable (especially regarding to clock resolution depending on the platform).
* PCbuild/build.bat: pass command line parameters when building PGO (#1510)Charles2017-05-091-1/+1
| | | Custom msbuild properties passed as command line need to be passed too when calling `Build` when doing PGO build.
* bpo-30285: Optimize case-insensitive matching and searching (#1482)Serhiy Storchaka2017-05-096-70/+215
| | | | of regular expressions.
* bpo-30024: Circular imports involving absolute imports with binding (#1264)Serhiy Storchaka2017-05-096-2/+17
| | | a submodule to a name are now supported.
* bpo-30273: update distutils.sysconfig for venv's created from Python (#1515)Jeremy Kloth2017-05-091-5/+2
| | | compiled out-of-tree (builddir != srcdir). (see also bpo-15366)
* bpo-30258: regrtest: Fix run_tests_multiprocess() (#1479)Victor Stinner2017-05-092-1/+3
| | | | | | If the child process exited with a non-zero code, don't strip the last line of stdout anymore. Add also a sanity check in accumulate_result().