Merge from 3.5 (with 3.5.0rc2 changes) into default (3.6). Messy!

This commit is contained in:
Larry Hastings 2015-08-25 14:21:59 -07:00
commit 45d1c00831
7 changed files with 217 additions and 98 deletions

View file

@ -153,3 +153,4 @@ b4cbecbc0781e89a309d03b60a1f75f8499250e6 v3.4.3
0035fcd9b9243ae52c2e830204fd9c1f7d528534 v3.5.0b3 0035fcd9b9243ae52c2e830204fd9c1f7d528534 v3.5.0b3
c0d64105463581f85d0e368e8d6e59b7fd8f12b1 v3.5.0b4 c0d64105463581f85d0e368e8d6e59b7fd8f12b1 v3.5.0b4
1a58b1227501e046eee13d90f113417b60843301 v3.5.0rc1 1a58b1227501e046eee13d90f113417b60843301 v3.5.0rc1
cc15d736d860303b9da90d43cd32db39bab048df v3.5.0rc2

View file

@ -745,7 +745,7 @@ class BuiltinImporter:
@classmethod @classmethod
def exec_module(self, module): def exec_module(self, module):
"""Exec a built-in module""" """Exec a built-in module"""
_call_with_frames_removed(_imp.exec_dynamic, module) _call_with_frames_removed(_imp.exec_builtin, module)
@classmethod @classmethod
@_requires_builtin @_requires_builtin

210
Misc/NEWS
View file

@ -10,36 +10,19 @@ Release date: XXXX-XX-XX
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #21167: NAN operations are now handled correctly when python is
compiled with ICC even if -fp-model strict is not specified.
- Issue #9232: Modify Python's grammar to allow trailing commas in the - Issue #9232: Modify Python's grammar to allow trailing commas in the
argument list of a function declaration. For example, "def f(*, a = argument list of a function declaration. For example, "def f(*, a =
3,): pass" is now legal. Patch from Mark Dickinson. 3,): pass" is now legal. Patch from Mark Dickinson.
- Issue #24667: Resize odict in all cases that the underlying dict resizes.
Library Library
------- -------
- Issue #24633: site-packages/README -> README.txt. - Issue #24633: site-packages/README -> README.txt.
- Issue #20362: Honour TestCase.longMessage correctly in assertRegex.
Patch from Ilia Kurenkov.
- Issue #24764: cgi.FieldStorage.read_multi() now ignores the Content-Length
header in part headers. Patch written by Peter Landry and reviewed by Pierre
Quentel.
- Issue #24879: help() and pydoc can now list named tuple fields in the - Issue #24879: help() and pydoc can now list named tuple fields in the
order they were defined rather than alphabetically. The ordering is order they were defined rather than alphabetically. The ordering is
determined by the _fields attribute if present. determined by the _fields attribute if present.
- Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu.
- Issue #21159: Improve message in configparser.InterpolationMissingOptionError.
Patch from Łukasz Langa.
- Issue #24874: Improve speed of itertools.cycle() and make its - Issue #24874: Improve speed of itertools.cycle() and make its
pickle more compact. pickle more compact.
@ -49,45 +32,12 @@ Library
- Issue #20059: urllib.parse raises ValueError on all invalid ports. - Issue #20059: urllib.parse raises ValueError on all invalid ports.
Patch by Martin Panter. Patch by Martin Panter.
- Issue #24824: Signatures of codecs.encode() and codecs.decode() now are
compatible with pydoc.
- Issue #4395: Better testing and documentation of binary operators.
Patch by Martin Panter.
- Issue #23973: Update typing.py from GitHub repo.
- Issue #23004: mock_open() now reads binary data correctly when the type of
read_data is bytes. Initial patch by Aaron Hill.
- Issue #23888: Handle fractional time in cookie expiry. Patch by ssh.
- Issue #23652: Make it possible to compile the select module against the
libc headers from the Linux Standard Base, which do not include some
EPOLL macros. Patch by Matt Frank.
- Issue #22932: Fix timezones in email.utils.formatdate.
Patch from Dmitry Shachnev.
- Issue #23779: imaplib raises TypeError if authenticator tries to abort.
Patch from Craig Holmquist.
- Issue #24360: Improve __repr__ of argparse.Namespace() for invalid - Issue #24360: Improve __repr__ of argparse.Namespace() for invalid
identifiers. Patch by Matthias Bussonnier. identifiers. Patch by Matthias Bussonnier.
- Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
written by Matthieu Gautier.
- Issue #19450: Update Windows and OS X installer builds to use SQLite 3.8.11.
- Issue #23254: Document how to close the TCPServer listening socket.
Patch from Martin Panter.
- Issue #23426: run_setup was broken in distutils. - Issue #23426: run_setup was broken in distutils.
Patch from Alexander Belopolsky. Patch from Alexander Belopolsky.
- Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
- Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond. - Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond.
- Issue #2091: open() accepted a 'U' mode string containing '+', but 'U' can - Issue #2091: open() accepted a 'U' mode string containing '+', but 'U' can
@ -108,15 +58,142 @@ Library
- Issue #13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo - Issue #13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo
functions. functions.
Documentation
-------------
Tests
-----
What's New in Python 3.5.1
==========================
Release date: TBA
Core and Builtins
-----------------
Library
-------
- Issue #24764: cgi.FieldStorage.read_multi() now ignores the Content-Length
header in part headers. Patch written by Peter Landry and reviewed by Pierre
Quentel.
- Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu.
- Issue #21159: Improve message in configparser.InterpolationMissingOptionError.
Patch from Łukasz Langa.
- Issue #20362: Honour TestCase.longMessage correctly in assertRegex.
Patch from Ilia Kurenkov.
- Issue #23572: Fixed functools.singledispatch on classes with falsy
metaclasses. Patch by Ethan Furman.
Documentation
-------------
- Issue #23725: Overhaul tempfile docs. Note deprecated status of mktemp.
Patch from Zbigniew Jędrzejewski-Szmek.
- Issue #24808: Update the types of some PyTypeObject fields. Patch by
Joseph Weston.
- Issue #22812: Fix unittest discovery examples.
Patch from Pam McA'Nulty.
What's New in Python 3.5.0 release candidate 2?
===============================================
Release date: 2015-08-25
Core and Builtins
-----------------
- Issue #24769: Interpreter now starts properly when dynamic loading
is disabled. Patch by Petr Viktorin.
- Issue #21167: NAN operations are now handled correctly when python is
compiled with ICC even if -fp-model strict is not specified.
- Issue #24492: A "package" lacking a __name__ attribute when trying to perform
a ``from .. import ...`` statement will trigger an ImportError instead of an
AttributeError.
Library
-------
- Issue #24847: Removes vcruntime140.dll dependency from Tcl/Tk.
- Issue #24839: platform._syscmd_ver raises DeprecationWarning
- Issue #24867: Fix Task.get_stack() for 'async def' coroutines - Issue #24867: Fix Task.get_stack() for 'async def' coroutines
What's New in Python 3.5.0 release candidate 1?
===============================================
Release date: 2015-08-09
Core and Builtins
-----------------
- Issue #24667: Resize odict in all cases that the underlying dict resizes.
Library
-------
- Issue #24824: Signatures of codecs.encode() and codecs.decode() now are
compatible with pydoc.
- Issue #24634: Importing uuid should not try to load libc on Windows
- Issue #24798: _msvccompiler.py doesn't properly support manifests
- Issue #4395: Better testing and documentation of binary operators.
Patch by Martin Panter.
- Issue #23973: Update typing.py from GitHub repo.
- Issue #23004: mock_open() now reads binary data correctly when the type of
read_data is bytes. Initial patch by Aaron Hill.
- Issue #23888: Handle fractional time in cookie expiry. Patch by ssh.
- Issue #23652: Make it possible to compile the select module against the
libc headers from the Linux Standard Base, which do not include some
EPOLL macros. Patch by Matt Frank.
- Issue #22932: Fix timezones in email.utils.formatdate.
Patch from Dmitry Shachnev.
- Issue #23779: imaplib raises TypeError if authenticator tries to abort.
Patch from Craig Holmquist.
- Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
written by Matthieu Gautier.
- Issue #23254: Document how to close the TCPServer listening socket.
Patch from Martin Panter.
- Issue #19450: Update Windows and OS X installer builds to use SQLite 3.8.11.
- Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
- Issue #23812: Fix asyncio.Queue.get() to avoid loosing items on cancellation.
Patch by Gustavo J. A. M. Carneiro.
- Issue #24791: Fix grammar regression for call syntax: 'g(*a or b)'.
IDLE IDLE
---- ----
- Issue #23672: Allow Idle to edit and run files with astral chars in name. - Issue #23672: Allow Idle to edit and run files with astral chars in name.
Patch by Mohd Sanad Zaki Rizvi. Patch by Mohd Sanad Zaki Rizvi.
- Issue 24745: Idle editor default font. Switch from Courier to - Issue #24745: Idle editor default font. Switch from Courier to
platform-sensitive TkFixedFont. This should not affect current customized platform-sensitive TkFixedFont. This should not affect current customized
font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg
and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman. and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman.
@ -129,15 +206,6 @@ IDLE
Documentation Documentation
------------- -------------
- Issue #24808: Update the types of some PyTypeObject fields. Patch by
Joseph Weston.
- Issue #22812: Fix unittest discovery examples.
Patch from Pam McA'Nulty.
- Issue #23725: Overhaul tempfile docs. Note deprecated status of mktemp.
Patch from Zbigniew Jędrzejewski-Szmek.
- Issue #24129: Clarify the reference documentation for name resolution. - Issue #24129: Clarify the reference documentation for name resolution.
This includes removing the assumption that readers will be familiar with the This includes removing the assumption that readers will be familiar with the
name resolution scheme Python used prior to the introduction of lexical name resolution scheme Python used prior to the introduction of lexical
@ -455,14 +523,14 @@ Library
- Issue #14373: Added C implementation of functools.lru_cache(). Based on - Issue #14373: Added C implementation of functools.lru_cache(). Based on
patches by Matt Joiner and Alexey Kachayev. patches by Matt Joiner and Alexey Kachayev.
- Issue 24230: The tempfile module now accepts bytes for prefix, suffix and dir - Issue #24230: The tempfile module now accepts bytes for prefix, suffix and dir
parameters and returns bytes in such situations (matching the os module APIs). parameters and returns bytes in such situations (matching the os module APIs).
- Issue #22189: collections.UserString now supports __getnewargs__(), - Issue #22189: collections.UserString now supports __getnewargs__(),
__rmod__(), casefold(), format_map(), isprintable(), and maketrans(). __rmod__(), casefold(), format_map(), isprintable(), and maketrans().
Patch by Joe Jevnik. Patch by Joe Jevnik.
- Issue 24244: Prevents termination when an invalid format string is - Issue #24244: Prevents termination when an invalid format string is
encountered on Windows in strftime. encountered on Windows in strftime.
- Issue #23973: PEP 484: Add the typing module. - Issue #23973: PEP 484: Add the typing module.
@ -600,26 +668,26 @@ Library
- asyncio: async() function is deprecated in favour of ensure_future(). - asyncio: async() function is deprecated in favour of ensure_future().
- Issue 24178: asyncio.Lock, Condition, Semaphore, and BoundedSemaphore - Issue #24178: asyncio.Lock, Condition, Semaphore, and BoundedSemaphore
support new 'async with' syntax. Contributed by Yury Selivanov. support new 'async with' syntax. Contributed by Yury Selivanov.
- Issue 24179: Support 'async for' for asyncio.StreamReader. - Issue #24179: Support 'async for' for asyncio.StreamReader.
Contributed by Yury Selivanov. Contributed by Yury Selivanov.
- Issue 24184: Add AsyncIterator and AsyncIterable ABCs to - Issue #24184: Add AsyncIterator and AsyncIterable ABCs to
collections.abc. Contributed by Yury Selivanov. collections.abc. Contributed by Yury Selivanov.
- Issue 22547: Implement informative __repr__ for inspect.BoundArguments. - Issue #22547: Implement informative __repr__ for inspect.BoundArguments.
Contributed by Yury Selivanov. Contributed by Yury Selivanov.
- Issue 24190: Implement inspect.BoundArgument.apply_defaults() method. - Issue #24190: Implement inspect.BoundArgument.apply_defaults() method.
Contributed by Yury Selivanov. Contributed by Yury Selivanov.
- Issue 20691: Add 'follow_wrapped' argument to - Issue #20691: Add 'follow_wrapped' argument to
inspect.Signature.from_callable() and inspect.signature(). inspect.Signature.from_callable() and inspect.signature().
Contributed by Yury Selivanov. Contributed by Yury Selivanov.
- Issue 24248: Deprecate inspect.Signature.from_function() and - Issue #24248: Deprecate inspect.Signature.from_function() and
inspect.Signature.from_builtin(). inspect.Signature.from_builtin().
- Issue #23898: Fix inspect.classify_class_attrs() to support attributes - Issue #23898: Fix inspect.classify_class_attrs() to support attributes
@ -721,7 +789,7 @@ Library
- Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari - Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari
- Issue 19933: Provide default argument for ndigits in round. Patch by - Issue #19933: Provide default argument for ndigits in round. Patch by
Vajrasky Kok. Vajrasky Kok.
- Issue #23193: Add a numeric_owner parameter to - Issue #23193: Add a numeric_owner parameter to
@ -2537,7 +2605,7 @@ Library
- Issue #13936: Remove the ability of datetime.time instances to be considered - Issue #13936: Remove the ability of datetime.time instances to be considered
false in boolean contexts. false in boolean contexts.
- Issue 18931: selectors module now supports /dev/poll on Solaris. - Issue #18931: selectors module now supports /dev/poll on Solaris.
Patch by Giampaolo Rodola'. Patch by Giampaolo Rodola'.
- Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale), - Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale),

View file

@ -318,6 +318,33 @@ exit:
#endif /* defined(HAVE_DYNAMIC_LOADING) */ #endif /* defined(HAVE_DYNAMIC_LOADING) */
PyDoc_STRVAR(_imp_exec_builtin__doc__,
"exec_builtin($module, mod, /)\n"
"--\n"
"\n"
"Initialize a built-in module.");
#define _IMP_EXEC_BUILTIN_METHODDEF \
{"exec_builtin", (PyCFunction)_imp_exec_builtin, METH_O, _imp_exec_builtin__doc__},
static int
_imp_exec_builtin_impl(PyModuleDef *module, PyObject *mod);
static PyObject *
_imp_exec_builtin(PyModuleDef *module, PyObject *mod)
{
PyObject *return_value = NULL;
int _return_value;
_return_value = _imp_exec_builtin_impl(module, mod);
if ((_return_value == -1) && PyErr_Occurred())
goto exit;
return_value = PyLong_FromLong((long)_return_value);
exit:
return return_value;
}
#ifndef _IMP_CREATE_DYNAMIC_METHODDEF #ifndef _IMP_CREATE_DYNAMIC_METHODDEF
#define _IMP_CREATE_DYNAMIC_METHODDEF #define _IMP_CREATE_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_CREATE_DYNAMIC_METHODDEF) */ #endif /* !defined(_IMP_CREATE_DYNAMIC_METHODDEF) */
@ -325,4 +352,4 @@ exit:
#ifndef _IMP_EXEC_DYNAMIC_METHODDEF #ifndef _IMP_EXEC_DYNAMIC_METHODDEF
#define _IMP_EXEC_DYNAMIC_METHODDEF #define _IMP_EXEC_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
/*[clinic end generated code: output=0f1059766dd58f88 input=a9049054013a1b77]*/ /*[clinic end generated code: output=32324a5e46cdfc4b input=a9049054013a1b77]*/

View file

@ -1943,6 +1943,34 @@ _imp_is_frozen_impl(PyModuleDef *module, PyObject *name)
return PyBool_FromLong((long) (p == NULL ? 0 : p->size)); return PyBool_FromLong((long) (p == NULL ? 0 : p->size));
} }
/* Common implementation for _imp.exec_dynamic and _imp.exec_builtin */
static int
exec_builtin_or_dynamic(PyObject *mod) {
PyModuleDef *def;
void *state;
if (!PyModule_Check(mod)) {
return 0;
}
def = PyModule_GetDef(mod);
if (def == NULL) {
if (PyErr_Occurred()) {
return -1;
}
return 0;
}
state = PyModule_GetState(mod);
if (PyErr_Occurred()) {
return -1;
}
if (state) {
/* Already initialized; skip reload */
return 0;
}
return PyModule_ExecDef(mod, def);
}
#ifdef HAVE_DYNAMIC_LOADING #ifdef HAVE_DYNAMIC_LOADING
/*[clinic input] /*[clinic input]
@ -2014,34 +2042,28 @@ static int
_imp_exec_dynamic_impl(PyModuleDef *module, PyObject *mod) _imp_exec_dynamic_impl(PyModuleDef *module, PyObject *mod)
/*[clinic end generated code: output=4b84f1301b22d4bd input=9fdbfcb250280d3a]*/ /*[clinic end generated code: output=4b84f1301b22d4bd input=9fdbfcb250280d3a]*/
{ {
PyModuleDef *def; return exec_builtin_or_dynamic(mod);
void *state;
if (!PyModule_Check(mod)) {
return 0;
}
def = PyModule_GetDef(mod);
if (def == NULL) {
if (PyErr_Occurred()) {
return -1;
}
return 0;
}
state = PyModule_GetState(mod);
if (PyErr_Occurred()) {
return -1;
}
if (state) {
/* Already initialized; skip reload */
return 0;
}
return PyModule_ExecDef(mod, def);
} }
#endif /* HAVE_DYNAMIC_LOADING */ #endif /* HAVE_DYNAMIC_LOADING */
/*[clinic input]
_imp.exec_builtin -> int
mod: object
/
Initialize a built-in module.
[clinic start generated code]*/
static int
_imp_exec_builtin_impl(PyModuleDef *module, PyObject *mod)
/*[clinic end generated code: output=215e99876a27e284 input=7beed5a2f12a60ca]*/
{
return exec_builtin_or_dynamic(mod);
}
/*[clinic input] /*[clinic input]
dump buffer dump buffer
[clinic start generated code]*/ [clinic start generated code]*/
@ -2064,6 +2086,7 @@ static PyMethodDef imp_methods[] = {
_IMP_IS_FROZEN_METHODDEF _IMP_IS_FROZEN_METHODDEF
_IMP_CREATE_DYNAMIC_METHODDEF _IMP_CREATE_DYNAMIC_METHODDEF
_IMP_EXEC_DYNAMIC_METHODDEF _IMP_EXEC_DYNAMIC_METHODDEF
_IMP_EXEC_BUILTIN_METHODDEF
_IMP__FIX_CO_FILENAME_METHODDEF _IMP__FIX_CO_FILENAME_METHODDEF
{NULL, NULL} /* sentinel */ {NULL, NULL} /* sentinel */
}; };

View file

@ -1304,7 +1304,7 @@ const unsigned char _Py_M__importlib[] = {
0,1,100,1,0,83,41,2,122,22,69,120,101,99,32,97, 0,1,100,1,0,83,41,2,122,22,69,120,101,99,32,97,
32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101, 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
78,41,3,114,65,0,0,0,114,57,0,0,0,90,12,101, 78,41,3,114,65,0,0,0,114,57,0,0,0,90,12,101,
120,101,99,95,100,121,110,97,109,105,99,41,2,114,19,0, 120,101,99,95,98,117,105,108,116,105,110,41,2,114,19,0,
0,0,114,89,0,0,0,114,10,0,0,0,114,10,0,0, 0,0,114,89,0,0,0,114,10,0,0,0,114,10,0,0,
0,114,11,0,0,0,114,139,0,0,0,233,2,0,0,115, 0,114,11,0,0,0,114,139,0,0,0,233,2,0,0,115,
2,0,0,0,0,3,122,27,66,117,105,108,116,105,110,73, 2,0,0,0,0,3,122,27,66,117,105,108,116,105,110,73,

2
README
View file

@ -166,7 +166,7 @@ http://www.python.org/dev/peps/.
Release Schedule Release Schedule
---------------- ----------------
See PEP 478 for release details: http://www.python.org/dev/peps/pep-0478/ See PEP 494 for release details: http://www.python.org/dev/peps/pep-0494/
Copyright and License Information Copyright and License Information