Commit Graph

98638 Commits

Author SHA1 Message Date
Victor Stinner 05e218c37d Merge 3.6 2017-02-10 10:34:37 +01:00
Victor Stinner b67f096738 Fix datetime.fromtimestamp(): check bounds
Issue #29100: Fix datetime.fromtimestamp() regression introduced in Python
3.6.0: check minimum and maximum years.
2017-02-10 10:34:02 +01:00
Łukasz Langa 40ee824d1d Merge 3.6 (fix #29519) 2017-02-10 00:20:16 -08:00
Łukasz Langa 57fe245e8c Merge 3.5 (fix #29519) 2017-02-10 00:16:10 -08:00
Łukasz Langa 9cd7e17640 Fix #29519: weakref spewing exceptions during interp finalization 2017-02-10 00:14:55 -08:00
Benjamin Peterson e5f2cc67be merge 3.6 2017-02-09 22:35:38 -08:00
Benjamin Peterson 35a1f7f62d massage English for -X descriptions a bit 2017-02-09 22:31:17 -08:00
Victor Stinner fe4ff83049 Issue #29507: Fix _PyObject_CallFunctionVa()
is_size_t test was reversed. Bug spotted by INADA Naoki.
2017-02-10 00:41:06 +01:00
Victor Stinner 331bbe6aaa 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.
2017-02-09 23:49:50 +01:00
Victor Stinner 516b98161a 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>
2017-02-09 22:53:47 +01:00
Serhiy Storchaka c42c65574d Null merge 2017-02-09 20:07:15 +02:00
Serhiy Storchaka 095ef73492 Issue #29513: Fix outdated comment and remove redundand code is os.scandir(). 2017-02-09 20:05:51 +02:00
Serhiy Storchaka d43ab05916 Issue #29513: Fixed a reference leak in os.scandir() added in issue #29034. 2017-02-09 20:02:37 +02:00
Nick Coghlan c7a24a7330 Merge issue #26355 fix from 3.6 2017-02-09 16:09:03 +01:00
Nick Coghlan e1857579f8 Merge issue #26355 fix from Python 3.5 2017-02-09 16:08:17 +01:00
Nick Coghlan e66244521c Issue #26355: Specify canonical URLs in docs pages
Add canonical header link on each page to corresponding major
version of the documentation.

Patch by Matthias Bussonnier.
2017-02-09 16:03:59 +01:00
Victor Stinner 12c5838dae Fix PyCFunction_Call() performance issue
Issue #29259, #29465: PyCFunction_Call() doesn't create anymore a redundant
tuple to pass positional arguments for METH_VARARGS.

Add a new cfunction_call() subfunction.
2017-02-09 02:01:37 +01:00
Victor Stinner 3722f1f483 support: temp_dir() and change_cwd() uses repr() in error message
Serhiy Storshaka pointed me that str(path) can emit a BytesWarning: use
repr(path) instead.
2017-02-08 15:49:10 +01:00
Victor Stinner 620580f280 Fix refleaks if Py_EnterRecursiveCall() fails
Issue #29306: Destroy argstuple and kwdict if Py_EnterRecursiveCall() fails.
2017-02-08 12:57:09 +01:00
Victor Stinner 17a63e2169 Fix regrtest -j0 -R output
Write also dots into stderr, instead of stdout.
2017-02-08 13:06:08 +01:00
Victor Stinner 04054d9ac2 Update test_support for my temp_dir/change_cwd changes 2017-02-08 12:49:02 +01:00
Victor Stinner edb4881441 support: add more info on temp_dir() and change_cwd() failure
Log the OSError exception message.
2017-02-08 12:25:00 +01:00
Victor Stinner 7399a05965 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
2017-02-08 12:06:00 +01:00
Berker Peksag ee0ee9ae8e Issue #29441: Merge from 3.6 2017-02-07 11:28:19 +03:00
Berker Peksag 088507644e Issue #29441: Merge from 3.5 2017-02-07 11:27:48 +03:00
Berker Peksag f59286794b Issue #29441: Update examples to use async and await keywords in asyncio-task.rst 2017-02-07 11:27:09 +03:00
Mariatta Wijaya 189413dcfe Issue #29314: Merge with 3.6 2017-02-06 22:06:04 -08:00
Mariatta Wijaya 6138432e59 Issue #29314: Merge with 3.5 2017-02-06 22:05:10 -08:00
Mariatta Wijaya 4e7ff8b1a3 Issue #29314: Set the stacklevel to two in asyncio.async() Deprecation Warning 2017-02-06 22:03:00 -08:00
Mariatta Wijaya 743376f45e Issue #29371: merge with 3.6 2017-02-06 20:18:39 -08:00
Mariatta Wijaya e39262ccc3 Issue #29371: merge with 3.5 2017-02-06 20:16:58 -08:00
Mariatta Wijaya 81b8977349 Issue #29371: Clarify bitwise OR operation in doctest option flags. 2017-02-06 20:15:01 -08:00
Steve Dower 18d2c934e3 Issue #28164: Improves test on Windows 7 2017-02-06 14:53:21 -08:00
Steve Dower 2dfa6cb9ff Issue #28164: Improves test on Windows 7 2017-02-06 14:50:17 -08:00
Steve Dower d947e4da5d Includes ensurepip and venv packages in nuget package. 2017-02-06 14:12:57 -08:00
Steve Dower f007b49eb9 Includes ensurepip and venv packages in nuget package. 2017-02-06 14:12:19 -08:00
Steve Dower 5288477cfd Includes ensurepip and venv packages in nuget package. 2017-02-06 14:11:34 -08:00
Raymond Hettinger 0fa47469a9 merge 2017-02-06 07:15:57 -08:00
Raymond Hettinger d0b9158666 Substitute a more readable f-string 2017-02-06 07:15:31 -08:00
Victor Stinner dd407d5006 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:

* d.rotate(): 1.10x faster
* d.rotate(1): 1.24x faster
* d.insert(): 1.18x faster
* d.index(): 1.24x faster
2017-02-06 16:06:49 +01:00
Victor Stinner 193ee0a0e8 Prohibit implicit C function declarations
Issue #27659: use -Werror=implicit-function-declaration when possible (GCC and
Clang, but it depends on the compiler version).

Patch written by Chi Hsuan Yen.
2017-02-06 14:24:00 +01:00
Victor Stinner 5bad70def6 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.
2017-02-06 12:42:00 +01:00
Berker Peksag 7b620a448e Merge from 3.6 2017-02-06 13:37:45 +03:00
Berker Peksag d93c4de522 Fix usage of data directive 2017-02-06 13:37:19 +03:00
Serhiy Storchaka 68a001dd59 Issue #29460: _PyArg_NoKeywords(), _PyArg_NoStackKeywords() and
_PyArg_NoPositional() now are macros.
2017-02-06 10:41:46 +02:00
Xiang Zhang 6aee6fbce8 Issue #29405: Make total calculation in _guess_delimiter more accurate. 2017-02-06 10:50:09 +08:00
Serhiy Storchaka 97353845f8 Issue #20186: Regenerated Argument Clinic. 2017-02-05 22:58:46 +02:00
Steve Dower 8c67fdd24b Merge from 3.6 2017-02-04 17:37:00 -08:00
Steve Dower a7e164881e Adds precheck for console filename to fix Windows 7. 2017-02-04 17:36:47 -08:00
Berker Peksag d2f4404bbb Issue #28489: Merge from 3.6 2017-02-05 04:33:11 +03:00