Ivan Levkivskyi [Fri, 24 Feb 2017 03:03:28 +0000 (04:03 +0100)]
Update to typing: treat subscripted generics as proxies (#265)
Steve Dower [Thu, 23 Feb 2017 22:11:36 +0000 (14:11 -0800)]
bpo-29624: Adds purge step and layout test after uploading files. (#258)
INADA Naoki [Thu, 23 Feb 2017 17:48:17 +0000 (02:48 +0900)]
bpo-29622: Make AST constructor to accept less than enough number of positional arguments (GH-249)
bpo-29463 added optional "docstring" field to 4 AST types.
While it is optional, it breaks backward compatibility because AST constructor
requires number of positional argument is same to number of fields.
AST types accepts empty arguments, and incomplete keyword arguments.
But it's not big problem because field can be filled after creation, and checked when compiling.
So stop requiring complete set of fields for positional arguments too.
Victor Stinner [Thu, 23 Feb 2017 17:26:43 +0000 (18:26 +0100)]
Document why functools.partial() must copy kwargs (#253)
Add a comment to prevent further attempts to avoid a copy for
optimization.
Arne de Laat [Thu, 23 Feb 2017 14:57:25 +0000 (15:57 +0100)]
bpo-28911: Clarify the behaviour of assert_called_once_with. (#251)
Martijn Pieters [Thu, 23 Feb 2017 13:38:04 +0000 (13:38 +0000)]
bpo-28598: Support __rmod__ for RHS subclasses of str in % string formatting operations (#51)
When you use `'%s' % SubClassOfStr()`, where `SubClassOfStr.__rmod__` exists, the reverse operation is ignored as normally such string formatting operations use the `PyUnicode_Format()` fast path. This patch tests for subclasses of `str` first and picks the slow path in that case.
Patch by Martijn Pieters.
Benjamin Peterson [Thu, 23 Feb 2017 06:38:48 +0000 (22:38 -0800)]
mark various test data binary (#233)
INADA Naoki [Wed, 22 Feb 2017 15:31:59 +0000 (00:31 +0900)]
bpo-29463: Add docstring field to some AST nodes. (#46)
* bpo-29463: Add docstring field to some AST nodes.
ClassDef, ModuleDef, FunctionDef, and AsyncFunctionDef has docstring
field for now. It was first statement of there body.
* fix document. thanks travis!
* doc fixes
Matthias Bussonnier [Wed, 22 Feb 2017 15:06:50 +0000 (07:06 -0800)]
bpo-29546: Improve from-import error message with location (#103)
bpo-29546: Improve from-import error message with location
Christian Heimes [Wed, 22 Feb 2017 11:12:00 +0000 (12:12 +0100)]
Add sockaddr_alg to sock_addr_t (#234)
sock_addr_t is used to define the minimum size of any socket address on
the stack. Let's make sure that an AF_ALG address always fits. Coverity
complains because in theory, AF_ALG might be larger than any of the other
structs. In practice it already fits.
Closes Coverity CID
1398948,
1398949,
1398950
Signed-off-by: Christian Heimes <christian@python.org>
Anthony Zhang [Wed, 22 Feb 2017 07:23:30 +0000 (02:23 -0500)]
bpo-29110: Fix file object leak in `aifc.open` when given invalid AIFF file. (GH-162)
Matthias Bussonnier [Wed, 22 Feb 2017 05:45:51 +0000 (21:45 -0800)]
bpo-28814: Undeprecate inadvertently deprecated inspect functions. (#122)
Nick Coghlan said on bpo-28814:
> inspect.getargvalues() and inspect.formatargvalues() were deprecated
> in Python 3.5 as part of implementing bpo-20438
> This is incorrect, as these are *frame* introspection related functions,
> not callable introspection ones. The documentation and implementation
> layout is confusing though, as they're interleaved with the callable
> introspection operation
This commit undeprecates these functions and adds a note to ignore
previous deprecation notices.
Xiang Zhang [Wed, 22 Feb 2017 04:32:30 +0000 (12:32 +0800)]
bpo-27660: remove unnecessary overflow checks in list_resize (GH-189)
INADA Naoki [Tue, 21 Feb 2017 14:57:25 +0000 (23:57 +0900)]
bpo-29509: skip redundant intern (GH-197)
PyObject_GetAttrString intern temporary key string.
It's completely redudant.
Matthieu Dartiailh [Tue, 21 Feb 2017 13:25:22 +0000 (14:25 +0100)]
bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX (#202)
INADA Naoki [Tue, 21 Feb 2017 12:51:46 +0000 (21:51 +0900)]
doc: fix compile error on "shoddy" example extension (GH-215)
INADA Naoki [Tue, 21 Feb 2017 09:39:41 +0000 (18:39 +0900)]
.gitattribute -> .gitattributes (GH-213)
INADA Naoki [Tue, 21 Feb 2017 09:17:06 +0000 (18:17 +0900)]
Reduce conflict on Misc/NEWS (GH-212)
use "union" merge strategy for Misc/NEWS.
Jim Fasarakis-Hilliard [Tue, 21 Feb 2017 06:20:23 +0000 (08:20 +0200)]
bpo-29453: Remove reference to undefined dictionary ordering in Tutorial (GH-140)
As of Python 3.6 **kwargs are ordered, thus, remove the paragraph stating that
ordering is undefined and change snippet to remove the unecessary sorted call.
* Add sentence mentioning guaranteed output order of kwargs
Matthias Bussonnier [Tue, 21 Feb 2017 05:30:00 +0000 (21:30 -0800)]
bpo-29554: Improve docs for pstat module and profile. (#88)
Clarify that methods take a string which is interpreted as a regex,
not a regex object.
Also clarify what the old `-1`, `0`, `1` and `2` options were.
Mark Dickinson [Mon, 20 Feb 2017 20:28:15 +0000 (20:28 +0000)]
bpo-29602: fix signed zero handling in complex constructor. (#203)
* Fix incorrect handling of signed zeros for complex-related classes.
* Add Misc/NEWS entry.
INADA Naoki [Mon, 20 Feb 2017 13:48:10 +0000 (22:48 +0900)]
bpo-24274: fix erroneous comment in dictobject.c (GH-196)
lookdict_unicode() and lookdict_unicode_nodummy() may raise exception
when key is not unicode.
Paul Schreiber [Mon, 20 Feb 2017 13:08:59 +0000 (08:08 -0500)]
README: OS X -> macOS (GH-55)
Serhiy Storchaka [Mon, 20 Feb 2017 12:04:30 +0000 (14:04 +0200)]
bpo-29532: Altering a kwarg dictionary passed to functools.partial() (#190)
no longer affects a partial object after creation.
Xiang Zhang [Mon, 20 Feb 2017 04:25:16 +0000 (12:25 +0800)]
bpo-29347: Fix possibly dereferencing undefined pointers when creating weakref objects (#128)
INADA Naoki [Mon, 20 Feb 2017 01:22:28 +0000 (10:22 +0900)]
bpo-29520: doc: add missing dot (GH-182)
3eea8c6 missed dot at the end of paragraph.
Vinay Sajip [Mon, 20 Feb 2017 00:16:33 +0000 (00:16 +0000)]
Fixed bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64. (#168)
* Fixed bpo-29565: Corrected ctypes passing of large structs by value.
Added code and test to check that when a structure passed by value
is large enough to need to be passed by reference, a copy of the
original structure is passed. The callee updates the passed-in value,
and the test verifies that the caller's copy is unchanged. A similar
change was also added to the test added for bpo-20160 (that test was
passing, but the changes should guard against regressions).
* Reverted unintended whitespace changes.
INADA Naoki [Sun, 19 Feb 2017 17:07:32 +0000 (02:07 +0900)]
bpo-29520: doc: fix deprecation warning from 'defindex' template (GH-165)
Berker Peksag [Sun, 19 Feb 2017 00:17:35 +0000 (03:17 +0300)]
Tweak PEP 519 documentation in stdlib (#163)
* Drop duplicate work 'object' in lzma docs
* Fix typo in os docs: fpr -> for
Steve Dower [Sun, 19 Feb 2017 00:12:02 +0000 (16:12 -0800)]
bpo-29579: Removes readme.txt from the installer. (#160)
Barry Warsaw [Sat, 18 Feb 2017 20:45:49 +0000 (15:45 -0500)]
bpo-22807: Expose platform UUID generation safety information. (#138)
bpo-22807: Expose platform UUID generation safety information.
Nick Coghlan [Sat, 18 Feb 2017 09:31:22 +0000 (15:01 +0530)]
bpo-29571: Use correct locale encoding in test_re (#149)
``local.getlocale(locale.LC_CTYPE)`` and
``locale.getpreferredencoding(False)`` may give different answers
in some cases (such as the ``en_IN`` locale).
``re.LOCALE`` uses the latter, so update the test case to match.
Nick Coghlan [Sat, 18 Feb 2017 06:31:47 +0000 (12:01 +0530)]
Make devguide link in README more prominent (#145)
Senthil Kumaran [Thu, 16 Feb 2017 15:18:42 +0000 (07:18 -0800)]
Change some mercurial/ hg.python.org references. (#8)
matejcik [Thu, 16 Feb 2017 13:41:31 +0000 (14:41 +0100)]
update test_socket AEAD test for kernel 4.9 and up (#133)
Eric Appelt [Thu, 16 Feb 2017 10:00:45 +0000 (05:00 -0500)]
bpo-29026: Clarify documentation of time.time (#34)
* bpo-29026: Clarity documentation of time.time
Clarify the documentation of time.time by more
precisely defining what is meant by "seconds since
the epoch" on most platforms. Additionally explain
how gmtime and localtime may be used to extract
calendar components and convert to a more common
date format.
* bpo-29026: Minor improvements for time.time doc
* bpo-29026: Consistency fixes for time.time doc
Matthias Bussonnier [Thu, 16 Feb 2017 02:00:32 +0000 (18:00 -0800)]
bpo-29576: add explicit deprecation for importlib.abc.find_loader() and find_module() (GH-32)
INADA Naoki [Thu, 16 Feb 2017 00:26:01 +0000 (09:26 +0900)]
bpo-29548: Fix some inefficient call API usage (GH-97)
Yen Chi Hsuan [Wed, 15 Feb 2017 23:34:30 +0000 (07:34 +0800)]
bpo-29556: Remove unused #include <langinfo.h> (#98)
bltinmodule.c: Added in
b744ba1 and no longer necessary since
d64e8a7
posixmodule.c: Added in
d1cd4d4 and no longer necessary since
efb00c0
pythonrun.c: Added in
73d538b and no longer necessary since
d600951
sysmodule.c: Added in
5467d4c and no longer necessary since
a2c17c5
Mariatta [Wed, 15 Feb 2017 23:16:24 +0000 (15:16 -0800)]
bpo-29521 update Misc/ACKS (#106)
Roger [Wed, 15 Feb 2017 22:54:05 +0000 (17:54 -0500)]
Rename Doc/README.txt to Doc/README.rst and add formatting (#104)
* Reformat Doc/README.txt to Doc/README.rst
* Update mention of Doc/README.rst
* Update mention of README.txt to README.rst
* Make line fold
* rstlint ignore Doc/README.rst
* conf.py ignore Doc/README.rst
* Update issue tracker url in Docs/README.rst
Victor Stinner [Wed, 15 Feb 2017 22:36:08 +0000 (23:36 +0100)]
Doc/Makefile: set PYTHON to python3 (#124)
rstlint.py run by "make check" doesn't support Python 2.
"make venv" runs "$(PYTHON) -m venv", whereas Python 2 doens't
provide the venv module: it's a module of Python 3 standard library.
Zachary Ware [Wed, 15 Feb 2017 22:18:03 +0000 (16:18 -0600)]
More Travis docs build tweaks (GH-113)
- Return to always building the docs, it's a relatively cheap operation,
the check had a bug, and the docs build depends on other files.
- Add `make suspicious`
- Do all three checks as one `make check suspicious html` invocation for
earliest possible exit in case of issues.
Mariatta [Wed, 15 Feb 2017 19:37:18 +0000 (11:37 -0800)]
bpo-29481: add versionadded 3.6.1 to typing.Deque docs (#107)
Hiroki Noda [Wed, 15 Feb 2017 09:04:43 +0000 (18:04 +0900)]
Update URL of Mersenne Twister Home Page (#20)
Donald Stufft [Wed, 15 Feb 2017 01:21:32 +0000 (20:21 -0500)]
Only run Travis tests on master and X.Y branches (GH-102)
If someone pushes a branch to python/cpython and then creates a PR
it will cause Travis to run tests needlessly, once for the PR and
once for the push. This will limit the branches that Travis will
run tests for to the `master` branch and branches that match the regex
`^\d\.\d$`.
This will have the effect that if someone purposely makes another branch
they won't get tests to run, but in that rare case they can adjust this
themselves.
Brett Cannon [Wed, 15 Feb 2017 00:37:15 +0000 (16:37 -0800)]
Have Travis consider a pull request as passing as soon as required tests complete (#101)
Without this flag, the coverage test will hold up the status of the pull request.
Matthias Bussonnier [Wed, 15 Feb 2017 00:05:25 +0000 (16:05 -0800)]
bpo-29546: Set 'path' on ImportError for ``from ... import ...`` (GH-91)
Maximilian Hils [Tue, 14 Feb 2017 22:46:08 +0000 (23:46 +0100)]
Remove double definition of IPPROTO_IPV6 (#100)
IPPROTO_IPV6 is already defined further above in the same way.
David Wilemski [Tue, 14 Feb 2017 22:37:49 +0000 (14:37 -0800)]
bpo-29557: Remove ambiguous line in binhex docs (#90)
"appears to not work in all cases" does not inspire confidence in this
module. I can find no context for what bug this was referencing so it
should be removed.
Mark Dickinson [Tue, 14 Feb 2017 19:18:54 +0000 (19:18 +0000)]
Issue #29534: move Misc/NEWS entry to correct section; add Misc/ACS entry for Andrew Nester. (#99)
Andrew Nester [Tue, 14 Feb 2017 18:22:55 +0000 (21:22 +0300)]
Fixed #29534 - _decimal difference with _pydecimal (#65)
Berker Peksag [Tue, 14 Feb 2017 14:19:34 +0000 (17:19 +0300)]
Use 'make check' instead of 'python3 tools/rstlint.py' (#96)
Berker Peksag [Tue, 14 Feb 2017 09:57:26 +0000 (12:57 +0300)]
Only run CI checks when appropriate files have changed (#74)
Closes python/core-workflow#14
Berker Peksag [Tue, 14 Feb 2017 09:56:13 +0000 (12:56 +0300)]
Tweak .codedoc.yml to make it more useful (#71)
Zachary Ware [Tue, 14 Feb 2017 04:01:03 +0000 (22:01 -0600)]
Various updates to README.rst (#21)
These include spelling/grammar fixes, removing some outdated prose,
updating some superseded prose, and adding/cleaning up some links.
Also rewraps the entire file at 79 columns.
Ivan Levkivskyi [Mon, 13 Feb 2017 21:50:14 +0000 (22:50 +0100)]
bpo-28556: Various updates to typing (#28)
various updates from upstream python/typing repo:
- Added typing.Counter and typing.ChainMap generics
- More flexible typing.NamedTuple
- Improved generic ABC caching
- More tests
- Bugfixes
- Other updates
* Add Misc/NEWS entry
* Add issue number
Ned Batchelder [Mon, 13 Feb 2017 17:05:47 +0000 (12:05 -0500)]
A few README tweaks (#73)
* Add a paragraph at the top for users, not builders, of Python.
* Use nicer rst url syntax to avoid borking paragraphs in the plain text.
Victor Stinner [Mon, 13 Feb 2017 15:57:30 +0000 (16:57 +0100)]
Add Travis CI and Codecov badges to README (#70)
Badges are small images which gives the status of the Travis CI and
the coverage percentage of Codecode. It helps to check the status of
the Travis CI and to get the link to Travis CI.
See also https://shields.io/
Victor Stinner [Mon, 13 Feb 2017 14:30:05 +0000 (15:30 +0100)]
Travis CI: run rstlint.py in the docs job (#68)
Currently, http://buildbot.python.org/all/buildslaves/ware-docs
buildbot is only run as post-commit. For example, bpo-29521 (PR#41)
introduced two warnings, unnotified by the Travis CI docs job.
Modify the docs job to run toosl/rstlint.py.
Fix also the two minor warnings which causes the buildbot slave to
fail.
Jim DeLaHunt [Mon, 13 Feb 2017 13:57:13 +0000 (05:57 -0800)]
bpo-29521 Fix two minor documentation build warnings (#41)
Much of bpo-29521 was fixed in parallel with commit
e7ffb99 . This cleans up the rest.
Apply parallel change to Doc/make.bat to read
"set SPHINXOPTS=-D latex_elements.papersize="
I don't have a Windows system on which to observe the warning,
but it should be necessary.
The warning:
.../workspace/cpython_github/Doc/faq/windows.rst:303:
WARNING: unknown option: -t
In the Windows FAQ, `How do I keep editors from inserting tabs
into my Python source?`, contained a reference to a Python -t
option. In Python 2.x, this caused Python to issue warnings
about lines with mixed spaces and tabs, but as of Python 3.6
it does nothing.
Per discussion at http://bugs.python.org/issue29387, take
their wording. Python [3] raises an IndentationError or
TabError. Tabnanny is now a module.
Zachary Ware [Mon, 13 Feb 2017 04:21:19 +0000 (22:21 -0600)]
Allow up to a 0.01% drop in coverage (#30)
Victor Stinner [Sun, 12 Feb 2017 22:42:02 +0000 (23:42 +0100)]
bpo-29176: Fix name of the _curses.window class (#52)
Set name to "_curses.window" instead of "_curses.curses window" (with
a space!?).
MRMillon [Sun, 12 Feb 2017 22:10:48 +0000 (04:10 +0600)]
getpass: update docstrings (#49)
EasyDialogs was removed in 3.x. fallback_getpass will always be the answer here.
ff47a133e1eee9dab60b86fb0d56ccd1022f841a
Mariatta [Sun, 12 Feb 2017 21:07:05 +0000 (13:07 -0800)]
bpo-28929: Link the documentation to its source file on GitHub (#35)
* bpo-28929: Link the documentation to its source file on GitHub
Change the documentation's `Show Source` link on the left menu
to GitHub source file.
* change version to master
Victor Stinner [Sun, 12 Feb 2017 18:27:05 +0000 (19:27 +0100)]
bpo-29524: Add Objects/call.c file (#12)
* Move all functions to call objects in a new Objects/call.c file.
* Rename fast_function() to _PyFunction_FastCallKeywords().
* Copy null_error() from Objects/abstract.c
* Inline type_error() in call.c to not have to copy it, it was only
called once.
* Export _PyEval_EvalCodeWithName() since it is now called
from call.c.
Mariatta [Sun, 12 Feb 2017 16:17:50 +0000 (08:17 -0800)]
bpo-29474: Improve documentation for weakref.WeakValueDictionary (#10)
There were some grammatical errors in weakref.WeakValueDictionary
documentation.
Nathaniel J. Smith [Sun, 12 Feb 2017 11:37:24 +0000 (03:37 -0800)]
bpo-27122: Fix comment to point to correct issue number (#47)
It took me quite a bit to figure out what this was referring to,
since the given issue number is wrong, and the original commit
message I found through git blame lists a different, also wrong
issue number... see https://bugs.python.org/issue27122#msg279449
INADA Naoki [Sun, 12 Feb 2017 04:51:30 +0000 (13:51 +0900)]
bpo-29438: fixed use-after-free in key sharing dict (#17)
Ryan Gonzalez [Sat, 11 Feb 2017 04:47:37 +0000 (22:47 -0600)]
Fix some sphinx warnings (#9)
* Fix some deprecation warnings in Doc/conf.py
* Fix an rst error in Misc/NEWS
Zachary Ware [Sat, 11 Feb 2017 03:02:18 +0000 (21:02 -0600)]
Make Travis docs build more lenient (#16)
Victor Stinner [Sat, 11 Feb 2017 01:21:38 +0000 (02:21 +0100)]
Rename README to README.rst and enhance formatting (#2)
Update also the Release Schedule to Python 3.7.
Donald Stufft [Sat, 11 Feb 2017 00:58:34 +0000 (19:58 -0500)]
Fix bpo-29528 Use a secure variable to stop spam (#13)
If the IRC notification is stored in plaintext, then anyone who forks
the repository and also adds it to travis will send notifications to
the IRC channel for their fork by default. Since the secure variable
is encrypted using a repository specific key, this will only work when
it is being built using the correct repository.
Victor Stinner [Sat, 11 Feb 2017 00:26:07 +0000 (01:26 +0100)]
Don't treat warnings as error in Travis docs job (#7)
bpo-29527.
Brett Cannon [Fri, 10 Feb 2017 23:10:13 +0000 (15:10 -0800)]
Support "bpo-" in Misc/NEWS (#1)
Brett Cannon [Fri, 10 Feb 2017 22:34:58 +0000 (14:34 -0800)]
Fix formatting issue with Codecov badge
Brett Cannon [Fri, 10 Feb 2017 22:33:55 +0000 (14:33 -0800)]
Add the Codecov badge for master
Brett Cannon [Fri, 10 Feb 2017 22:31:08 +0000 (14:31 -0800)]
Add a Travis badge for the master branch
Brett Cannon [Fri, 10 Feb 2017 22:24:16 +0000 (14:24 -0800)]
Add a codecov configuration file
Brett Cannon [Fri, 10 Feb 2017 22:21:15 +0000 (14:21 -0800)]
Add a Travis configuration file
Brett Cannon [Fri, 10 Feb 2017 22:09:18 +0000 (14:09 -0800)]
Delete old pull request template
Brett Cannon [Fri, 10 Feb 2017 22:08:55 +0000 (14:08 -0800)]
Add a CONTRIBUTING file
This file will be displayed to contributors when they create a pull request in any branch (hence why it is not written in a branch-specific way).
Victor Stinner [Fri, 10 Feb 2017 13:19:36 +0000 (14:19 +0100)]
Backed out changeset
f23fa1f7b68f
Sorry, I didn't want to push this change before the review :-( I was pushing a
change into the 2.7 branch.
Victor Stinner [Fri, 10 Feb 2017 12:32:29 +0000 (13:32 +0100)]
Issue #29465: Add Objects/call.c file
* Move all functions to call objects in a new Objects/call.c file.
* Rename fast_function() to _PyFunction_FastCallKeywords().
* Copy null_error() from Objects/abstract.c
* Inline type_error() in call.c to not have to copy it, it was only
called once.
* Export _PyEval_EvalCodeWithName() since it is now called
from call.c.
Victor Stinner [Fri, 10 Feb 2017 11:38:02 +0000 (12:38 +0100)]
Merge 3.6
Victor Stinner [Fri, 10 Feb 2017 11:37:21 +0000 (12:37 +0100)]
Fix test_datetime on Windows
Issue #29100: On Windows, datetime.datetime.fromtimestamp(min_ts) fails with an
OSError in test_timestamp_limits().
Victor Stinner [Fri, 10 Feb 2017 10:45:28 +0000 (11:45 +0100)]
Merge 3.6
Victor Stinner [Fri, 10 Feb 2017 10:45:14 +0000 (11:45 +0100)]
Fix test_datetime on system with 32-bit time_t
Issue #29100: Catch OverflowError in the new test_timestamp_limits() test.
Victor Stinner [Fri, 10 Feb 2017 09:34:37 +0000 (10:34 +0100)]
Merge 3.6
Victor Stinner [Fri, 10 Feb 2017 09:34:02 +0000 (10:34 +0100)]
Fix datetime.fromtimestamp(): check bounds
Issue #29100: Fix datetime.fromtimestamp() regression introduced in Python
3.6.0: check minimum and maximum years.
Łukasz Langa [Fri, 10 Feb 2017 08:20:16 +0000 (00:20 -0800)]
Merge 3.6 (fix #29519)
Łukasz Langa [Fri, 10 Feb 2017 08:16:10 +0000 (00:16 -0800)]
Merge 3.5 (fix #29519)
Łukasz Langa [Fri, 10 Feb 2017 08:14:55 +0000 (00:14 -0800)]
Fix #29519: weakref spewing exceptions during interp finalization
Benjamin Peterson [Fri, 10 Feb 2017 06:35:38 +0000 (22:35 -0800)]
merge 3.6
Benjamin Peterson [Fri, 10 Feb 2017 06:31:17 +0000 (22:31 -0800)]
massage English for -X descriptions a bit
Victor Stinner [Thu, 9 Feb 2017 23:41:06 +0000 (00:41 +0100)]
Issue #29507: Fix _PyObject_CallFunctionVa()
is_size_t test was reversed. Bug spotted by INADA Naoki.
Victor Stinner [Thu, 9 Feb 2017 22:49:50 +0000 (23:49 +0100)]
Issue #29507: Update test_exceptions
test_unraisable() of test_exceptions expects that PyErr_WriteUnraisable(method)
fails on repr(method).
Before the previous change (
7b8df4a5d81d), slot_tp_finalize() called
PyErr_WriteUnraisable() with a PyMethodObject. In this case, repr(method) calls
repr(self) which is BrokenRepr.__repr__() and the calls raises a new exception.
After the previous change, slot_tp_finalize() uses an unbound method: repr() is
called on a regular __del__() method which doesn't call repr(self). repr()
doesn't fail anymore.
PyErr_WriteUnraisable() doesn't call __repr__() anymore, so remove BrokenRepr
unit test.
Victor Stinner [Thu, 9 Feb 2017 21:53:47 +0000 (22:53 +0100)]
Optimize slots: avoid temporary PyMethodObject
Issue #29507: Optimize slots calling Python methods. For Python methods, get
the unbound Python function and prepend arguments with self, rather than
calling the descriptor which creates a temporary PyMethodObject.
Add a new _PyObject_FastCall_Prepend() function used to call the unbound Python
method with self. It avoids the creation of a temporary tuple to pass
positional arguments.
Avoiding temporary PyMethodObject and avoiding temporary tuple makes Python
slots up to 1.46x faster. Microbenchmark on a __getitem__() method implemented
in Python:
Median +- std dev: 121 ns +- 5 ns -> 82.8 ns +- 1.0 ns: 1.46x faster (-31%)
Co-Authored-by: INADA Naoki <songofacandy@gmail.com>
Serhiy Storchaka [Thu, 9 Feb 2017 18:07:15 +0000 (20:07 +0200)]
Null merge
Serhiy Storchaka [Thu, 9 Feb 2017 18:05:51 +0000 (20:05 +0200)]
Issue #29513: Fix outdated comment and remove redundand code is os.scandir().