bpo-29553: Fixed ArgumentParses format_usage for mutually exclusive groups by andrewnester · Pull Request #117 · python/cpython
berkerpeksag
changed the title
bpo-29553 - Fixed ArgumentParses format_usage for mutually exclusive groups
bpo-29553: Fixed ArgumentParses format_usage for mutually exclusive groups
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017…heduling.c to stacklesseval.c This change makes a few functions "static". This improves the readability of the code. (grafted from b04162d33bed4125633dbaca6c2f9a8ec13edb4f)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017… in slp_eval_frame_*() This change simplifies the code, that prevents the link optimiser to optimise away the identical functions slp_eval_frame_*(). The new code is simpler, faster and makes the overall reference counting less hard to understand. (grafted from 72d9447daf24f9441289784714c307f4e1d5e79f)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017Fix two reference leaks in the C-implementation of tasklet.__setstate__(). This fix depends on the previous commit. Without the new frame reference counting logic, it could lead to a negative reference count. Probably issue python#117 is now completely fixed. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from a89093b495d7d9a7c2420001f674077fb6c586d1)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017…h C-Python Exception handling now follows suit the code of sys.exc_clear() and ceval.c set_exc_info(). This change helps to rule out reference leaks caused by inappropriate handling of traceback objects. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from 36fc9e84a48999378a73173c179ba6beeabcf821)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017…n code This feature makes it possible to write tests for leaks caused by the watchdog list. The feature is intentionally undocumented, because it depends on implementation details. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from 926f8eb7666730436799f19923852a7d16ae83ed)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017This commit adds tests to detect resources leaks and changes of global state. Additionally it adds utility functions for debugging and tests, which inevitably leak references. - StacklessTestCase now tests for watchdog list leaks. The setUp() and tearDown() method now assert that the watchdog list of all threads is empty. Fortunately, this new test didn't reveal unknown problems. - StacklessTestCase tearDown now kills blocked tasklets with C-state. Such tasklets may be kept alive by a reference to a transient bound-method object, which referenced by a C-function. - StacklessTestCase tearDown now checks that the switch-trap level is 0 and resets the level, if it was different. - StacklessTestCase now checks that no error-handler is registered at the end of a test and eventually removes the error handler. - Add a decorator for tests, which leak references. A test case, which creates a C-stack without a thread, inevitably leak all references hold by local C-variables in this stack slice. The decorator skips decorated test-cases during "huntrleaks"-runs (option "-R:"). Debugging additions: - StacklessTestCase got two (experimental) methods to trace tasklet switching. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from b2fc5542b34542abb275f8d1bc33691b0113bcaf)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017- channelobject.c: Fix two reference leaks in the C-implementations of channel.send_throw() and channel.send_exception(). - stacklessmodule.c: Fix a reference leak in PyStackless_CallErrorHandler(), if Stackless runs a user defined error-handler. - ceval.c: Fix a reference leak in PyEval_EvalFrameEx_slp(), if a profile or trace function fails. - prickelpit.c and test_pickle.py: Fix reference leaks, if stackless._wrap.frame.__setstate__() fails, due to an invalid state. Add a test case. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from f5d4ba8df893949daa6938b7161786783fb0c149)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017This commit fixes problems in the Stackless test suite at Python level. It does not fix failures caused by reference leaks. - Fix failures, which occurred during a second or further run of the test. - Mark test-cases, which inevitably leak references. These tests leave a C-stack without thread. No chance to clean the references. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from 7ae818842aa4783eb33be6a6085535ba18db97bc)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017Stackless used to leak references to frames / C-frames, if a tasklet didn't run to its end, or various other conditions. This part of the fix changes the Stackless reference counting for frames to follow the general rules for Python objects. The concept of an "execute reference" no longer exists. Frames no longer eat their reference. See Stackless/core/stackless_impl.h for a detailed explanation. This patch adds a special frame reference counting debug mode, which can be enabled in stackless_tstate.h. https://bitbucket.org/stackless-dev/stackless/issues/117 (grafted from 9e9a2cea45059e87d025a1867beb8b0e3369262d)
akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis pushed a commit to akruis/cpython that referenced this pull request
Sep 9, 2017akruis added a commit to akruis/cpython that referenced this pull request
Nov 1, 2018…ute() I missed the C-fame case, when I changed the frame-function ref counting in Stackless issue python#117.
aeros
mentioned this pull request
This was referenced
Feb 11, 2025This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters