diff options
author | Larry Hastings <larry@hastings.org> | 2015-08-25 21:21:59 (GMT) |
---|---|---|
committer | Larry Hastings <larry@hastings.org> | 2015-08-25 21:21:59 (GMT) |
commit | 45d1c0083115b11dff4acbc76232633262f7b1a8 (patch) | |
tree | 263010dc1d82ddc2283fd61671c22da129a40974 | |
parent | ccf426e7e77472b1ff1a919791aa3dd402836b83 (diff) | |
parent | 06a7d611da25fab11b7a7ab7a7f0bbce7d6a65fd (diff) | |
download | cpython-45d1c0083115b11dff4acbc76232633262f7b1a8.zip cpython-45d1c0083115b11dff4acbc76232633262f7b1a8.tar.gz cpython-45d1c0083115b11dff4acbc76232633262f7b1a8.tar.bz2 |
Merge from 3.5 (with 3.5.0rc2 changes) into default (3.6). Messy!
-rw-r--r-- | .hgtags | 1 | ||||
-rw-r--r-- | Lib/importlib/_bootstrap.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 198 | ||||
-rw-r--r-- | Python/clinic/import.c.h | 29 | ||||
-rw-r--r-- | Python/import.c | 69 | ||||
-rw-r--r-- | Python/importlib.h | 2 | ||||
-rw-r--r-- | README | 2 |
7 files changed, 211 insertions, 92 deletions
@@ -153,3 +153,4 @@ b4cbecbc0781e89a309d03b60a1f75f8499250e6 v3.4.3 0035fcd9b9243ae52c2e830204fd9c1f7d528534 v3.5.0b3 c0d64105463581f85d0e368e8d6e59b7fd8f12b1 v3.5.0b4 1a58b1227501e046eee13d90f113417b60843301 v3.5.0rc1 +cc15d736d860303b9da90d43cd32db39bab048df v3.5.0rc2 diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 931754e..6f62bb3 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -745,7 +745,7 @@ class BuiltinImporter: @classmethod def exec_module(self, module): """Exec a built-in module""" - _call_with_frames_removed(_imp.exec_dynamic, module) + _call_with_frames_removed(_imp.exec_builtin, module) @classmethod @_requires_builtin @@ -10,36 +10,19 @@ Release date: XXXX-XX-XX 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 argument list of a function declaration. For example, "def f(*, a = 3,): pass" is now legal. Patch from Mark Dickinson. -- Issue #24667: Resize odict in all cases that the underlying dict resizes. - Library ------- - 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 order they were defined rather than alphabetically. The ordering is 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 pickle more compact. @@ -49,9 +32,126 @@ Library - Issue #20059: urllib.parse raises ValueError on all invalid ports. Patch by Martin Panter. +- Issue #24360: Improve __repr__ of argparse.Namespace() for invalid + identifiers. Patch by Matthias Bussonnier. + +- Issue #23426: run_setup was broken in distutils. + Patch from Alexander Belopolsky. + +- Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond. + +- Issue #2091: open() accepted a 'U' mode string containing '+', but 'U' can + only be used with 'r'. Patch from Jeff Balogh and John O'Connor. + +- Issue #8585: improved tests for zipimporter2. Patch from Mark Lawrence. + +- Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely. + Patch from Nicola Palumbo and Laurent De Buyst. + +- Issue #24426: Fast searching optimization in regular expressions now works + for patterns that starts with capturing groups. Fast searching optimization + now can't be disabled at compile time. + +- Issue #23661: unittest.mock side_effects can now be exceptions again. This + was a regression vs Python 3.4. Patch from Ignacio Rossi + +- Issue #13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo + 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 + + +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. @@ -72,43 +172,20 @@ Library - Issue #23779: imaplib raises TypeError if authenticator tries to abort. Patch from Craig Holmquist. -- Issue #24360: Improve __repr__ of argparse.Namespace() for invalid - 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. - Patch from Alexander Belopolsky. +- 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 #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond. +- Issue #23812: Fix asyncio.Queue.get() to avoid loosing items on cancellation. + Patch by Gustavo J. A. M. Carneiro. -- Issue #2091: open() accepted a 'U' mode string containing '+', but 'U' can - only be used with 'r'. Patch from Jeff Balogh and John O'Connor. - -- Issue #8585: improved tests for zipimporter2. Patch from Mark Lawrence. - -- Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely. - Patch from Nicola Palumbo and Laurent De Buyst. - -- Issue #24426: Fast searching optimization in regular expressions now works - for patterns that starts with capturing groups. Fast searching optimization - now can't be disabled at compile time. - -- Issue #23661: unittest.mock side_effects can now be exceptions again. This - was a regression vs Python 3.4. Patch from Ignacio Rossi - -- Issue #13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo - functions. - -- Issue #24867: Fix Task.get_stack() for 'async def' coroutines +- Issue #24791: Fix grammar regression for call syntax: 'g(*a or b)'. IDLE ---- @@ -116,7 +193,7 @@ IDLE - Issue #23672: Allow Idle to edit and run files with astral chars in name. 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 font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman. @@ -129,15 +206,6 @@ IDLE 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. This includes removing the assumption that readers will be familiar with the 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 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). - Issue #22189: collections.UserString now supports __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable(), and maketrans(). 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. - Issue #23973: PEP 484: Add the typing module. @@ -600,26 +668,26 @@ Library - 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. -- Issue 24179: Support 'async for' for asyncio.StreamReader. +- Issue #24179: Support 'async for' for asyncio.StreamReader. 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. -- Issue 22547: Implement informative __repr__ for inspect.BoundArguments. +- Issue #22547: Implement informative __repr__ for inspect.BoundArguments. Contributed by Yury Selivanov. -- Issue 24190: Implement inspect.BoundArgument.apply_defaults() method. +- Issue #24190: Implement inspect.BoundArgument.apply_defaults() method. 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(). Contributed by Yury Selivanov. -- Issue 24248: Deprecate inspect.Signature.from_function() and +- Issue #24248: Deprecate inspect.Signature.from_function() and inspect.Signature.from_builtin(). - 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 19933: Provide default argument for ndigits in round. Patch by +- Issue #19933: Provide default argument for ndigits in round. Patch by Vajrasky Kok. - 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 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'. - Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale), diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h index 53b5b17..2477665 100644 --- a/Python/clinic/import.c.h +++ b/Python/clinic/import.c.h @@ -318,6 +318,33 @@ exit: #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 #define _IMP_CREATE_DYNAMIC_METHODDEF #endif /* !defined(_IMP_CREATE_DYNAMIC_METHODDEF) */ @@ -325,4 +352,4 @@ exit: #ifndef _IMP_EXEC_DYNAMIC_METHODDEF #define _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]*/ diff --git a/Python/import.c b/Python/import.c index 44aae80..edf030d 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1943,6 +1943,34 @@ _imp_is_frozen_impl(PyModuleDef *module, PyObject *name) 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 /*[clinic input] @@ -2014,35 +2042,29 @@ static int _imp_exec_dynamic_impl(PyModuleDef *module, PyObject *mod) /*[clinic end generated code: output=4b84f1301b22d4bd input=9fdbfcb250280d3a]*/ { - 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); + return exec_builtin_or_dynamic(mod); } #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] dump buffer [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/ @@ -2064,6 +2086,7 @@ static PyMethodDef imp_methods[] = { _IMP_IS_FROZEN_METHODDEF _IMP_CREATE_DYNAMIC_METHODDEF _IMP_EXEC_DYNAMIC_METHODDEF + _IMP_EXEC_BUILTIN_METHODDEF _IMP__FIX_CO_FILENAME_METHODDEF {NULL, NULL} /* sentinel */ }; diff --git a/Python/importlib.h b/Python/importlib.h index d5d3406..a4daf62 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -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, 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, - 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,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, @@ -166,7 +166,7 @@ http://www.python.org/dev/peps/. 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 |