Victor Stinner [Fri, 23 Nov 2018 16:00:00 +0000 (17:00 +0100)]
bpo-35134: Create Include/cpython/ subdirectory (GH-10624)
Include/*.h should be the "portable Python API", whereas
Include/cpython/*.h should be the "CPython API": CPython
implementation details.
Changes:
* Create Include/cpython/ subdirectory
* "make install" now creates $prefix/include/cpython and copy
Include/cpython/* to $prefix/include/cpython
* Create Include/cpython/objimpl.h: move objimpl.h code
surrounded by "#ifndef Py_LIMITED_API" to cpython/objimpl.h.
* objimpl.h now includes cpython/objimpl.h
* Windows installer (MSI) now also install Include/ subdirectories:
Include/cpython/ and Include/internal/.
nierob [Fri, 23 Nov 2018 15:46:12 +0000 (16:46 +0100)]
bpo-35189: Retry fnctl calls on EINTR (GH-10413)
Modify the following fnctl function to retry if interrupted by a signal
(EINTR): flock, lockf, fnctl.
Victor Stinner [Fri, 23 Nov 2018 15:30:12 +0000 (16:30 +0100)]
bpo-35296: make install now installs the internal API (GH-10665)
make install now also installs the internal API: Include/internal/*.h
header files.
Mathieu Dupuy [Fri, 23 Nov 2018 14:35:07 +0000 (15:35 +0100)]
Doc: Delete "how do I emulate os.kill" section in Windows FAQ (GH-10487)
That section is a tip on how to kill process on Windows for Python prior to 2.7 and 3.2.
3.1 end of support was April 2012 and 2.6 was October 2013, so that hasn't been need for supported versions of Python for more than 5 years. Beside not being needed anymore for a long time, when I read it with the eyes of a Python profane, it makes Python looks bad, like a language from the parts with warts you need to circumvent.
Let's delete that :)
Victor Stinner [Fri, 23 Nov 2018 14:05:15 +0000 (15:05 +0100)]
bpo-35081: add NEWS entry for new Include/internal/pycore_*.h files (GH-10666)
Victor Stinner [Fri, 23 Nov 2018 13:27:38 +0000 (14:27 +0100)]
bpo-35059: PyObject_INIT() casts to PyObject* (GH-10674)
PyObject_INIT() and PyObject_INIT_VAR() now cast their first argument
to PyObject*, as done in Python 3.7.
Revert partially commit
b4435e20a92af474f117b78b98ddc6f515363af5.
Victor Stinner [Fri, 23 Nov 2018 12:08:26 +0000 (13:08 +0100)]
bpo-34523: Fix C locale coercion on FreeBSD CURRENT (GH-10672)
bpo-34523, bpo-35290: C locale coercion now resets the Python
internal "force ASCII" mode. This change fix the filesystem encoding
on FreeBSD CURRENT, which has a new "C.UTF-8" locale, when
the UTF-8 mode is disabled.
Add _Py_ResetForceASCII(): _Py_SetLocaleFromEnv() now calls it.
Victor Stinner [Fri, 23 Nov 2018 11:34:35 +0000 (12:34 +0100)]
bpo-35059: NEWS entry for macros converted to inline funcs (GH-10671)
Victor Stinner [Fri, 23 Nov 2018 11:30:40 +0000 (12:30 +0100)]
bpo-35081: Add new internal headers to Makefile (GH-10670)
Add pycore_fileutils.h and pycore_object.h to Makefile.pre.in and to
the pythoncore project of PCbuild/.
Victor Stinner [Thu, 22 Nov 2018 17:38:38 +0000 (18:38 +0100)]
bpo-35177, Python-ast.h: Fix "Yield" compiler warning (GH-10664)
Partially revert commit
5f2df88b63e50d23914e97ec778861a52abdeaad:
add "#undef Yield" to .c files after including Python-ast.h.
Fix the warning:
winbase.h(102): warning C4005: 'Yield': macro redefinition
Victor Stinner [Thu, 22 Nov 2018 15:32:57 +0000 (16:32 +0100)]
bpo-9263: Fix _PyObject_Dump() for freed object (#10661)
If _PyObject_Dump() detects that the object is freed, don't try to
dump it (exit immediately).
Enhance also _PyObject_IsFreed(): it now detects if the pointer
itself looks like freed memory.
Victor Stinner [Thu, 22 Nov 2018 14:03:40 +0000 (15:03 +0100)]
bpo-24658: os.read() reuses _PY_READ_MAX (GH-10657)
os_read_impl() now also truncates the size to _PY_READ_MAX
on macOS, to avoid to allocate a larger buffer even if _Py_read() is
limited to _PY_READ_MAX bytes (ex: INT_MAX on macOS).
Victor Stinner [Thu, 22 Nov 2018 13:45:16 +0000 (14:45 +0100)]
bpo-18407: ast.c uses Py_ssize_t for asdl_seq_LEN() iterator (GH-10655)
When iterating using asdl_seq_LEN(), use 'Py_ssize_t' type instead of
'int' for the iterator variable, to avoid downcast on 64-bit platforms.
_Py_asdl_int_seq_new() now also ensures that the index is greater than
or equal to 0.
Victor Stinner [Thu, 22 Nov 2018 13:43:07 +0000 (14:43 +0100)]
bpo-18407: win32_urandom() uses PY_DWORD_MAX (GH-10656)
CryptGenRandom() maximum size is PY_DWORD_MAX, not INT_MAX.
Use DWORD type for the 'chunk' variable
Co-Authored-By: Jeremy Kloth <jeremy.kloth@gmail.com>
Victor Stinner [Thu, 22 Nov 2018 12:21:43 +0000 (13:21 +0100)]
bpo-9566: Fix compiler warnings in pyexpat.c (GH-10654)
Explicit cast a pointer difference (intptr_t) to int to fix
two warnings on 64-bit Windows:
Modules\pyexpat.c(1181): warning C4244: 'initializing':
conversion from '__int64' to 'int', possible loss of data
Modules\pyexpat.c(1192): warning C4244: 'initializing':
conversion from '__int64' to 'int', possible loss of data
Victor Stinner [Thu, 22 Nov 2018 09:25:46 +0000 (10:25 +0100)]
cjkcodecs: Fix compiler warning (GH-10651)
Fixed the following compiler warning in multibytecodec.c:
warning C4244: '=': conversion from 'Py_ssize_t'
to 'unsigned char', possible loss of data
Cast Py_ssize_t to unsigned char: the maximum value is checked
on the previous line.
Victor Stinner [Thu, 22 Nov 2018 09:25:22 +0000 (10:25 +0100)]
bpo-35059: Cast void* to PyObject* (GH-10650)
Don't pass void* to Python macros: use _PyObject_CAST().
Victor Stinner [Thu, 22 Nov 2018 02:37:50 +0000 (03:37 +0100)]
bpo-35059: Cleanup usage of Python macros (GH-10648)
Don't pass complex expressions but regular variables to Python
macros.
* _datetimemodule.c: split single large "if" into two "if"
in date_new(), time_new() and datetime_new().
* _pickle.c, load_extension(): flatten complex "if" expression into
more regular C code.
* _ssl.c: addbool() now uses a temporary bool_obj to only evaluate
the value once.
* weakrefobject.c: replace "Py_INCREF(result = proxy);"
with "result = proxy; Py_INCREF(result);"
Victor Stinner [Thu, 22 Nov 2018 01:57:29 +0000 (02:57 +0100)]
bpo-35059: Add _PyObject_CAST() macro (GH-10645)
Add _PyObject_CAST() and _PyVarObject_CAST() macros to cast argument
to PyObject* and PyVarObject* properly.
Victor Stinner [Thu, 22 Nov 2018 00:02:54 +0000 (01:02 +0100)]
bpo-35059: Convert _PyObject_GC_TRACK() to inline function (GH-10643)
* Add _PyObject_ASSERT_FROM() and _PyObject_ASSERT_FAILED_MSG()
macros.
* PyObject_GC_Track() now calls _PyObject_ASSERT_FAILED_MSG(),
instead of Py_FatalError(), if the object is already tracked, to
dump more information on error.
* _PyObject_GC_TRACK() no longer checks if the object is already
tracked at runtime, use an assertion instead for best performances;
PyObject_GC_Track() still checks at runtime.
* pycore_object.h now includes pycore_pystate.h.
* Convert _PyObject_GC_TRACK() and _PyObject_GC_UNTRACK() macros to
inline functions.
Victor Stinner [Wed, 21 Nov 2018 22:53:44 +0000 (23:53 +0100)]
bpo-35059: Enhance _PyObject_AssertFailed() (GH-10642)
Enhance _PyObject_AssertFailed()
* Exchange 'expr' and 'msg' parameters
* 'expr' and 'func' arguments can now be NULL
Victor Stinner [Wed, 21 Nov 2018 21:27:47 +0000 (22:27 +0100)]
bpo-35081: Add Include/internal/pycore_object.h (GH-10640)
Move _PyObject_GC_TRACK() and _PyObject_GC_UNTRACK() from
Include/objimpl.h to Include/internal/pycore_object.h.
Victor Stinner [Wed, 21 Nov 2018 15:33:13 +0000 (16:33 +0100)]
bpo-35189: Fix eintr_tester.py (GH-10637)
Call setitimer() before each test method, instead of once per test
case, to ensure that signals are sent in each test method.
Previously, only the first method of a testcase class got signals.
Changes:
* Replace setUpClass() with setUp() and replace tearDownClass() with
tearDown().
* tearDown() now ensures that at least one signal has been sent.
* Replace support.run_unittest() with unittest.main() which has
a nicer CLI and automatically discover test cases.
Zhiming Wang [Wed, 21 Nov 2018 12:41:07 +0000 (07:41 -0500)]
bpo-35035: Rename email.utils documentation to email.utils.rst (GH-10023)
I'll watch for 404 on the old URL and will setup an HTTP redirection if needed.
Victor Stinner [Wed, 21 Nov 2018 11:21:25 +0000 (12:21 +0100)]
bpo-35290: Add debug info to test_c_locale_coercion (GH-10631)
In verbose mode, test_c_locale_coercion now dumps global variables at
startup.
Julien Palard [Wed, 21 Nov 2018 08:40:05 +0000 (09:40 +0100)]
bpo-35221: Additional hint that the placeholder is to be replaced. (GH-10604)
Victor Stinner [Tue, 20 Nov 2018 23:43:09 +0000 (00:43 +0100)]
bpo-35081: Move _PyGC_FINALIZED() back to C API (GH-10626)
Partially revert commit
1a6be91e6fd65ce9cb88cbbbb193db7e92ec6076,
move back PyGC API from the internal API to the C API:
* _PyGCHead_NEXT(g), _PyGCHead_SET_NEXT(g, p)
* _PyGCHead_PREV(g), _PyGCHead_SET_PREV(g, p)
* _PyGCHead_FINALIZED(g), _PyGCHead_SET_FINALIZED(g)
* _PyGC_FINALIZED(o), _PyGC_SET_FINALIZED(o)
* _PyGC_PREV_MASK_FINALIZED
* _PyGC_PREV_MASK_COLLECTING
* _PyGC_PREV_SHIFT
* _PyGC_PREV_MASK
_PyObject_GC_TRACK(o) and _PyObject_GC_UNTRACK(o) remain in the
internal API.
Brendan Gerrity [Tue, 20 Nov 2018 21:28:27 +0000 (13:28 -0800)]
bpo-34532: Fixed exit code for py.exe list versions arg (GH-9039)
Serhiy Storchaka [Tue, 20 Nov 2018 18:45:40 +0000 (20:45 +0200)]
bpo-25750: Fix a compiler warning introduced in GH-9084. (GH-10234)
Serhiy Storchaka [Tue, 20 Nov 2018 18:41:09 +0000 (20:41 +0200)]
bpo-35021: Fix assertion failures in _datetimemodule.c. (GH-10039)
Fixes assertion failures in _datetimemodule.c
introduced in the previous fix (see bpo-31752).
Rather of trying to handle an int subclass as exact int,
let it to use overridden special methods, but check the
result of divmod().
Serhiy Storchaka [Tue, 20 Nov 2018 17:27:16 +0000 (19:27 +0200)]
bpo-35169: Improve error messages for forbidden assignments. (GH-10342)
Serhiy Storchaka [Tue, 20 Nov 2018 17:26:09 +0000 (19:26 +0200)]
bpo-9842: Add references for using "..." as a placeholder to the index. (GH-10330)
Julien Palard [Tue, 20 Nov 2018 16:18:30 +0000 (17:18 +0100)]
bpo-31146: Don't fallback switcher to english on not-yet pusblished languages. (GH-10558)
Victor Stinner [Tue, 20 Nov 2018 15:20:16 +0000 (16:20 +0100)]
bpo-28604: Fix localeconv() for different LC_MONETARY (GH-10606)
locale.localeconv() now sets temporarily the LC_CTYPE locale to the
LC_MONETARY locale if the two locales are different and monetary
strings are non-ASCII. This temporary change affects other threads.
Changes:
* locale.localeconv() can now set LC_CTYPE to LC_MONETARY to decode
monetary fields.
* Add LocaleInfo.grouping_buffer: copy localeconv() grouping string
since it can be replaced anytime if a different thread calls
localeconv().
* _Py_GetLocaleconvNumeric() now requires a "struct lconv *"
structure, so locale.localeconv() now longer calls localeconv()
twice. Moreover, the function now requires all arguments to be
non-NULL.
* Rename STATIC_LOCALE_INFO_INIT to LocaleInfo_STATIC_INIT.
* Move _Py_GetLocaleconvNumeric() definition from fileutils.h
to pycore_fileutils.h. pycore_fileutils.h now includes locale.h.
* The _locale module is now built with Py_BUILD_CORE defined.
Sanyam Khurana [Tue, 20 Nov 2018 11:10:49 +0000 (16:40 +0530)]
bpo-18859: Document --with-valgrind option in README.valgrind (#10591)
Donald Stufft [Mon, 19 Nov 2018 12:41:52 +0000 (07:41 -0500)]
Upgrade pip to 18.1 and setuptools to 40.6.2 (#10598)
Zackery Spytz [Sun, 18 Nov 2018 16:45:57 +0000 (09:45 -0700)]
bpo-35269: Fix a possible segfault involving a newly-created coroutine (GH-10585)
coro->cr_origin wasn't initialized if compute_cr_origin() failed in
PyCoro_New(), which would cause a crash during the coroutine's
deallocation.
https://bugs.python.org/issue35269
Steve Dower [Sun, 18 Nov 2018 04:41:48 +0000 (20:41 -0800)]
bpo-34725: Adds _Py_SetProgramFullPath so embedders may override sys.executable (GH-9860)
Windson yang [Sat, 17 Nov 2018 19:16:51 +0000 (03:16 +0800)]
bpo-25438: document what codec PyMemberDef T_STRING decodes the char * as (GH-10580)
Source of T_STRING: https://github.com/python/cpython/blob/
e42b705188271da108de42b55d9344642170aa2b/Python/structmember.c#L51
Source of PyUnicode_FromString
https://github.com/python/cpython/blob/master/Include/unicodeobject.h#L702
https://bugs.python.org/issue25438
Steve Dower [Sat, 17 Nov 2018 12:14:36 +0000 (04:14 -0800)]
Add --tempdir option for test run (GH-10322)
bpo-35202: Remove more unused imports in idlelib (GH-10573)
Stefano Rivera [Fri, 16 Nov 2018 23:52:52 +0000 (15:52 -0800)]
bpo-28401: prevent Py_DEBUG builds from trying to import limited ABI modules (GH-1766)
[Issue 28401](https://bugs.python.org/issue28401): Don't attempt to import the stable API extensions, they are not supported in PyDEBUG builds (which don't implement that ABI).
https://bugs.python.org/issue28401
Zackery Spytz [Fri, 16 Nov 2018 15:58:55 +0000 (08:58 -0700)]
Add a missed PyErr_NoMemory() in symtable_new(). (GH-10576)
This missed PyErr_NoMemory() could cause a SystemError when calling
_symtable.symtable().
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Fri, 16 Nov 2018 15:32:58 +0000 (21:02 +0530)]
bpo-35202: Remove unused imports in tests. (GH-10561)
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Fri, 16 Nov 2018 13:28:51 +0000 (18:58 +0530)]
bpo-35250: Correct argument name "num" -> "btn" in turtle docs. (GH-10565)
wim glenn [Fri, 16 Nov 2018 11:58:19 +0000 (05:58 -0600)]
Fix outdated info in datamodel about dicts (GH-9807)
Andrés Delfino [Fri, 16 Nov 2018 11:41:55 +0000 (08:41 -0300)]
bpo-33816: Remove outdated metaclass example (GH-7566)
Victor Stinner [Fri, 16 Nov 2018 10:55:35 +0000 (11:55 +0100)]
bpo-35239: _PySys_EndInit() copies module_search_path (GH-10532)
* The _PySys_EndInit() function now copies the
config->module_search_path list, so config is longer modified when
sys.path is updated.
* config->warnoptions list and config->xoptions dict are also copied
* test_embed: InitConfigTests now also tests
main_config['module_search_path']
* Fix _Py_InitializeMainInterpreter(): don't use config->warnoptions
but sys.warnoptions to decide if the warnings module should
be imported at startup.
Terry Jan Reedy [Thu, 15 Nov 2018 18:15:13 +0000 (13:15 -0500)]
bpo-35213: Where appropriate, use 'macOS' in idlelib. (#10478)
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Thu, 15 Nov 2018 12:59:19 +0000 (18:29 +0530)]
bpo-35202: Remove unused imports in Lib directory (GH-10450)
Sebastián Ramírez [Thu, 15 Nov 2018 05:51:56 +0000 (09:51 +0400)]
Fix typo in asynchronous generator iterator documentation (GH-10542)
Remove an unnecessary "that":
... will execute that the body ... -> ... will execute the body ...
Pablo Galindo [Thu, 15 Nov 2018 02:03:57 +0000 (02:03 +0000)]
bpo-34784: Implement correct cleanup in PyStructSequence new implementation (GH-10536)
PyTuple_Pack can fail and return NULL. If this happens, then PyType_FromSpecWithBases will incorrectly create a new type without bases. Also, it will crash on the Py_DECREF that follows. Also free members and type in error conditions.
Zackery Spytz [Wed, 14 Nov 2018 22:39:01 +0000 (15:39 -0700)]
Fix a possible reference leak in _socket.getaddrinfo(). (GH-10543)
"single" needs to be decrefed if PyList_Append() fails.
Victor Stinner [Wed, 14 Nov 2018 16:39:45 +0000 (17:39 +0100)]
bpo-35233: InitConfigTests tests more config vars (GH-10541)
test_embed.InitConfigTests tests more configuration variables.
Changes:
* InitConfigTests tests more core configuration variables:
* base_exec_prefix
* base_prefix
* exec_prefix
* home
* legacy_windows_fs_encoding
* legacy_windows_stdio
* module_search_path_env
* prefix
* "_testembed init_from_config" tests more variables:
* argv
* warnoptions
* xoptions
* InitConfigTests: add check_global_config(), check_core_config() and
check_main_config() subfunctions to cleanup the code. Move also
constants at the class level (ex: COPY_MAIN_CONFIG).
* Fix _PyCoreConfig_AsDict(): don't set stdio_encoding twice
* Use more macros in _PyCoreConfig_AsDict() and
_PyMainInterpreterConfig_AsDict() to reduce code duplication.
* Other minor cleanups.
Julien Palard [Wed, 14 Nov 2018 15:22:27 +0000 (16:22 +0100)]
bpo-32613: Update window FAQ (GH-5552)
INADA Naoki [Wed, 14 Nov 2018 09:39:27 +0000 (18:39 +0900)]
bpo-35230: dict: Remove some macros (GH-10513)
Remove _Py_REF_DEBUG_COMMA, DK_DEBUG_INCREF, and DK_DEBUG_DECREF.
Convert DK_INCREF and DK_DECREF to static inline functions.
Andrés Delfino [Wed, 14 Nov 2018 00:40:44 +0000 (21:40 -0300)]
Grammar corrections in abc.rst (GH-10525)
Andrés Delfino [Wed, 14 Nov 2018 00:29:57 +0000 (21:29 -0300)]
Link to property built-in in abc.rst (GH-10526)
l-n-s [Wed, 14 Nov 2018 00:13:12 +0000 (00:13 +0000)]
Fix doc typo: Window -> Windows (GH-10508)
Victor Stinner [Tue, 13 Nov 2018 23:24:28 +0000 (00:24 +0100)]
bpo-35233: Rewrite test_embed.InitConfigTests (GH-10524)
* Fix _PyCoreConfig_SetGlobalConfig(): set also Py_FrozenFlag
* Fix _PyCoreConfig_AsDict(): export also xoptions
* Add _Py_GetGlobalVariablesAsDict() and _testcapi.get_global_config()
* test.pythoninfo: dump also global configuration variables
* _testembed now serializes global, core and main configurations
using JSON to reuse _Py_GetGlobalVariablesAsDict(),
_PyCoreConfig_AsDict() and _PyMainInterpreterConfig_AsDict(),
rather than duplicating code.
* test_embed.InitConfigTests now test much more configuration
variables
Gregory P. Smith [Tue, 13 Nov 2018 21:16:54 +0000 (13:16 -0800)]
bpo-35214: Fix OOB memory access in unicode escape parser (GH-10506)
Discovered using clang's MemorySanitizer when it ran python3's
test_fstring test_misformed_unicode_character_name.
An msan build will fail by simply executing: ./python -c 'u"\N"'
Victor Stinner [Tue, 13 Nov 2018 18:59:26 +0000 (19:59 +0100)]
bpo-35233: Fix _PyMainInterpreterConfig_Copy() (GH-10519)
* Fix _PyMainInterpreterConfig_Copy():
copy 'install_signal_handlers' attribute
* Add _PyMainInterpreterConfig_AsDict()
* Add unit tests on the main interpreter configuration
to test_embed.InitConfigTests
* test.pythoninfo: log also main_config
Victor Stinner [Tue, 13 Nov 2018 14:14:58 +0000 (15:14 +0100)]
bpo-29564:_PyMem_DumpTraceback() suggests enabling tracemalloc (GH-10510)
If tracemalloc is not tracing Python memory allocations,
_PyMem_DumpTraceback() now suggests to enable tracemalloc
to get the traceback where the memory block has been allocated.
Eddie Elizondo [Tue, 13 Nov 2018 12:09:31 +0000 (04:09 -0800)]
bpo-34784: Fix PyStructSequence_NewType with heap-allocated StructSequence (GH-9665)
Victor Stinner [Tue, 13 Nov 2018 11:52:18 +0000 (12:52 +0100)]
bpo-35081: Make some _PyGC macros internal (GH-10507)
* Move "GC" macros together:
* PyObject_IS_GC()
* _Py_AS_GC()
* _PyObject_GC_IS_TRACKED()
* _PyObject_GC_MAY_BE_TRACKED()
* Mark other GC macros as internal (#ifdef Py_BUILD_CORE):
* _PyGCHead_NEXT(g), _PyGCHead_SET_NEXT(g, p)
* _PyGCHead_PREV(g), _PyGCHead_SET_PREV(g, p)
* _PyGCHead_FINALIZED(g), _PyGCHead_SET_FINALIZED(g)
* _PyGC_FINALIZED(o), _PyGC_SET_FINALIZED(o)
* _PyObject_GC_TRACK(o), _PyObject_GC_UNTRACK(o)
* _PyGC_PREV_MASK_FINALIZED
* _PyGC_PREV_MASK_COLLECTING
* _PyGC_PREV_SHIFT
* _PyGC_PREV_MASK
* Replace _PyGC_generation0 with _PyRuntime.gc.generation0
* _queuemodule.c: replace _PyObject_GC_UNTRACK()
with with PyObject_GC_UnTrack()
* Document that _PyObject_GC_TRACK() _PyObject_GC_UNTRACK() macros
have been removed from the public C API.
Paul Ganssle [Tue, 13 Nov 2018 08:02:25 +0000 (03:02 -0500)]
bpo-35081: Remove Py_BUILD_CORE from datetime.h (GH-10416)
Datetime macros like PyDate_Check() have two implementations, one using
the C API capsule and one using direct access to the datetime type
symbols defined in _datetimemodule.c. Since the direct access versions
of the macros are only used in _datetimemodule.c, they have been moved
out of "datetime.h" and into _datetimemodule.c.
The _PY_DATETIME_IMPL macro is currently necessary in order to avoid
both duplicate definitions of these macros in _datetimemodule.c and
unnecessary declarations of C API capsule-related macros and varibles in
datetime.h.
Co-Authored-By: Victor Stinner <vstinner@redhat.com>
Gregory P. Smith [Tue, 13 Nov 2018 06:01:22 +0000 (22:01 -0800)]
bpo-35214: Add _Py_ prefix to MEMORY_SANITIZER def. (GH-10503)
Rename our new MEMORY_SANITIZER define to _Py_MEMORY_SANITIZER.
Project based C Preprocessor namespacing at its finest. :P
Windson yang [Tue, 13 Nov 2018 03:56:25 +0000 (11:56 +0800)]
Fix a couple documentation typos. (GH-10498)
reproduciblity -> reproducibility
PyPA are the group -> PyPA is the group
Gregory P. Smith [Tue, 13 Nov 2018 03:47:13 +0000 (19:47 -0800)]
Disable getc_unlocked() with MemorySanitizer. (GH-10499)
clang's MemorySanitizer understand getc() but does not understand
getc_unlocked(). Workaround: Don't use it on msan builds.
Victor Stinner [Tue, 13 Nov 2018 01:41:00 +0000 (02:41 +0100)]
bpo-29564: warnings suggests to enable tracemalloc (GH-10486)
The warnings module now suggests to enable tracemalloc if the source
is specified, tracemalloc module is available, but tracemalloc is not
tracing memory allocations.
Gregory P. Smith [Mon, 12 Nov 2018 20:07:14 +0000 (12:07 -0800)]
bpo-35214: Initial clang MemorySanitizer support (GH-10479)
Adds configure flags for msan and ubsan builds to make it easier to enable.
These also encode the detail that address sanitizer and memory sanitizer
should disable pymalloc.
Define MEMORY_SANITIZER when appropriate at build time and adds workarounds
to existing code to mark things as initialized where the sanitizer is otherwise unable to
determine that. This lets our build succeed under the memory sanitizer. not all tests
pass without sanitizer failures yet but we're in pretty good shape after this.
Windson yang [Mon, 12 Nov 2018 17:42:38 +0000 (01:42 +0800)]
Improve grammar in Glossary. (GH-10474)
a asynchronous generator -> an asynchronous generator
Andrés Delfino [Mon, 12 Nov 2018 17:24:00 +0000 (14:24 -0300)]
Correct grammar mistake in stdtypes.rst (GH-10481)
Andrew Svetlov [Mon, 12 Nov 2018 17:00:22 +0000 (19:00 +0200)]
bpo-30064: Refactor sock_* asyncio API (#10419)
Andrés Delfino [Mon, 12 Nov 2018 16:31:57 +0000 (13:31 -0300)]
Linkify PEP 8 in unix.rst (GH-10482)
Victor Stinner [Mon, 12 Nov 2018 15:53:38 +0000 (16:53 +0100)]
bpo-35081: Rename internal headers (GH-10275)
Rename Include/internal/ headers:
* pycore_hash.h -> pycore_pyhash.h
* pycore_lifecycle.h -> pycore_pylifecycle.h
* pycore_mem.h -> pycore_pymem.h
* pycore_state.h -> pycore_pystate.h
Add missing headers to Makefile.pre.in and PCbuild:
* pycore_condvar.h.
* pycore_hamt.h
* pycore_pyhash.h
Giampaolo Rodola [Mon, 12 Nov 2018 14:18:15 +0000 (06:18 -0800)]
bpo-33695 shutil.copytree() + os.scandir() cache (#7874)
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Mon, 12 Nov 2018 04:06:18 +0000 (09:36 +0530)]
Minor grammar improvement to io documentation. (GH-10329)
Independently of -> Independent of
Jakub Stasiak [Mon, 12 Nov 2018 03:40:42 +0000 (04:40 +0100)]
Update subprocess.Popen documentation wrt universal_newlines arg (GH-10337)
* universal_newlines defaulting to False would suggest, that not
specifying universal_newlines explicitly and setting text to True
should cause an error, which is not the case.
* The run function didn't have the universal_newlines parameter
documented
* The check_output function didn't have its text parameter documented
Julien Palard [Sun, 11 Nov 2018 23:59:39 +0000 (00:59 +0100)]
bpo-33878: Doc: Fix missing case by simplifying. (GH-7762)
The documentation was not covering multiple targets enclosed by
parenthesis nor multiple targets enclosed by brackets, adding them all
would be heavy, an else cover them all and is lighter to read.
Victor Stinner [Sun, 11 Nov 2018 23:56:19 +0000 (00:56 +0100)]
bpo-35177: Add dependencies between header files (GH-10361)
* ast.h now includes Python-ast.h and node.h
* parsetok.h now includes node.h and grammar.h
* symtable.h now includes Python-ast.h
* Modify asdl_c.py to enhance Python-ast.h:
* Add #ifndef/#define Py_PYTHON_AST_H to be able to include the header
twice
* Add "extern { ... }" for C++
* Undefine "Yield" macro conflicting with winbase.h
* Remove "#undef Yield" from C files, it's now done in Python-ast.h
* Remove now useless includes in C files
Alexey Izbyshev [Sun, 11 Nov 2018 23:14:51 +0000 (02:14 +0300)]
closes bpo-35204: Disable thread and memory sanitizers for address_in_range(). (GH-10442)
This function may access memory which is mapped but is considered
free by libc allocator. It behaves so by design, therefore we
need to suppress sanitizer reports.
GCC doesn't support MSan, so disable only TSan for it.
Raymond Hettinger [Sun, 11 Nov 2018 22:35:47 +0000 (14:35 -0800)]
Neaten the code without any algorithmic change. (GH-10466)
Remove unneeded assertion (we already know so is a PySetObject *).
Andrés Delfino [Sun, 11 Nov 2018 19:33:51 +0000 (16:33 -0300)]
bpo-33699: Describe try's else clause with the rest of the try clause (GH-7252)
https://bugs.python.org/issue33699
Andrés Delfino [Sun, 11 Nov 2018 16:56:47 +0000 (13:56 -0300)]
dict insertion order is guaranteed since 3.7 (GH-10431)
Terry Jan Reedy [Sun, 11 Nov 2018 04:26:31 +0000 (23:26 -0500)]
bpo-34864: Document two IDLE on MacOS issues. (GH-10456)
The System Preferences Dock "prefer tabs always" setting disables some
IDLE features. Menus are a bit different than as described for Windows
and Linux.
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Sat, 10 Nov 2018 07:22:02 +0000 (12:52 +0530)]
bpo-35202: Remove unused imports in Lib directory. (GH-10446)
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Sat, 10 Nov 2018 06:45:31 +0000 (12:15 +0530)]
bpo-35202: Remove unused imports in idlelib (GH-10438)
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) [Sat, 10 Nov 2018 05:45:28 +0000 (11:15 +0530)]
bpo-35202: Remove unused imports in Lib directory. (GH-10445)
David Kleuker [Sat, 10 Nov 2018 03:45:40 +0000 (04:45 +0100)]
Doc: Simplify Copyright line in README (GH-10287)
This also makes it consistent with other places like:
- https://docs.python.org/dev/copyright.html
- https://www.python.org/ footer
- https://github.com/python/cpython/blob/
e42b705188271da108de42b55d9344642170aa2b/Python/getcopyright.c#L7
Géry Ogam [Fri, 9 Nov 2018 19:34:54 +0000 (20:34 +0100)]
Correct a typo in the Unittest documentation (GH-10397)
Co-Authored-By: maggyero <gery.ogam@gmail.com>
Victor Stinner [Fri, 9 Nov 2018 15:56:48 +0000 (16:56 +0100)]
bpo-35199: Add an internal _PyTuple_ITEMS() macro (GH-10434)
* _PyTuple_ITEMS() gives access to the tuple->ob_item field and cast the
first argument to PyTupleObject*. This internal macro is only usable if
Py_BUILD_CORE is defined.
* Replace &PyTuple_GET_ITEM(ob, 0) with _PyTuple_ITEMS(ob).
* Replace PyTuple_GET_ITEM(op, 1) with &_PyTuple_ITEMS(ob)[1].
Victor Stinner [Fri, 9 Nov 2018 12:03:37 +0000 (13:03 +0100)]
bpo-35081: Internal headers require Py_BUILD_CORE (GH-10363)
* All internal header files now require Py_BUILD_CORE or
Py_BUILD_CORE_BUILTIN to be defined.
* _json.c is now compiled with Py_BUILD_CORE_BUILTIN to access
pycore_accu.h header.
* Add an example to Modules/Setup to show how to build _json
as a built-in module; it requires non trivial compiler options.
Raymond Hettinger [Fri, 9 Nov 2018 10:39:50 +0000 (02:39 -0800)]
Hoist the float conversion out of the inner loop. (GH-10430)
Currently, the *n* and *total* variables get converted to floats each time they are multiplied by random(). This minor tweak does the conversion just once and gets a small speedup (approx 3%).
Raymond Hettinger [Fri, 9 Nov 2018 10:31:56 +0000 (02:31 -0800)]
Optimize set.pop() to advance a pointer instead of indexing. (GH-10429)
Gives approx 20% speed-up using clang depending on the number of elements in the set (the less dense the set, the more the speed-up).
Uses the same entry++ logic used elsewhere in the setobject.c code.
Raymond Hettinger [Fri, 9 Nov 2018 09:19:33 +0000 (01:19 -0800)]
Cleanup and improve the regex tokenizer example. (GH-10426)
1) Convert weird field name "typ" to the more standard "type".
2) For the NUMBER type, convert the value to an int() or float().
3) Simplify ``group(kind)`` to the shorter and faster ``group()`` call.
4) Simplify logic go a single if-elif chain to make this easier to extend.
5) Reorder the tests to match the order the tokens are specified.
This isn't necessary for correctness but does make the example
easier to follow.
6) Move the "column" calculation before the if-elif chain so that
users have the option of using this value in error messages.
Raymond Hettinger [Fri, 9 Nov 2018 09:06:02 +0000 (01:06 -0800)]
Fixing wording in comment. (GH-10425)
Since the n==1 case just returns *max*, it cannot be larger
than the magnitude of the vector entry.
Alexey Izbyshev [Fri, 9 Nov 2018 07:12:06 +0000 (10:12 +0300)]
bpo-35194: Fix a wrong constant in cp932 codec (GH-10420)
This typo doesn't affect the result because wrong bits are discarded
on implicit conversion to unsigned char, but it trips UBSan
with -fsanitize=implicit-integer-truncation.
https://bugs.python.org/issue35194
Lisa Roach [Fri, 9 Nov 2018 02:34:33 +0000 (18:34 -0800)]
bpo-24412: Adds cleanUps for setUpClass and setUpModule. (GH-9190)
Gregory P. Smith [Fri, 9 Nov 2018 01:55:07 +0000 (17:55 -0800)]
bpo-35193: Fix an off by one error in the RETURN_VALUE case. (GH-10418)
Fix an off by one error in the peephole optimizer when checking for unreachable code beyond a return.
Do a bounds check within find_op so it can return before going past the end as a safety measure.
https://github.com/python/cpython/commit/
7db3c488335168993689ddae5914a28e16188447#diff-
a33329ae6ae0bb295d742f0caf93c137
introduced this off by one error while fixing another one nearby.
This bug was shipped in all Python 3.6 and 3.7 releases.
The included unittest won't fail unless you do a clang msan build.