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.
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
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.
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.
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.
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.
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.
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.
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.
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
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 [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 [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:
Victor Stinner [Wed, 8 Feb 2017 11:06:00 +0000 (12:06 +0100)]
Issue #29306: Fix usage of Py_EnterRecursiveCall()
* *PyCFunction_*Call*() functions now call Py_EnterRecursiveCall().
* PyObject_Call() now calls directly _PyFunction_FastCallDict() and
PyCFunction_Call() to avoid calling Py_EnterRecursiveCall() twice per
function call
Victor Stinner [Mon, 6 Feb 2017 15:06:49 +0000 (16:06 +0100)]
Optimize deque index, insert and rotate() methods
Issue #29452: Use METH_FASTCALL calling convention for index(), insert() and
rotate() methods of collections.deque to avoid the creation a temporary tuple
to pass position arguments. Speedup on deque methods:
Victor Stinner [Mon, 6 Feb 2017 11:42:00 +0000 (12:42 +0100)]
regrtest: don't fail immediately if a child does crash
Issue #29362: Catch a crash of a worker process as a normal failure and
continue to run next tests. It allows to get the usual test summary: single
line result (OK/FAIL), total duration, etc.