Commit Graph

3027 Commits

Author SHA1 Message Date
Ned Deily be4bbc3a90 Post release updates 2019-06-18 23:38:36 -04:00
Ned Deily b26441ee1f 3.7.4rc1 2019-06-18 17:02:54 -04:00
Inada Naoki 8766cb74e1 [3.7] bpo-27987: align PyGC_Head to alignof(long double) (GH-13335) (GH-13581)
This reverts commit 2156fec1f7.

Now that 1b85f4ec45 is in, this change makes sense.
2019-06-02 18:51:31 -07:00
Gregory P. Smith 2156fec1f7
[3.7] Revert "align PyGC_Head to alignof(long double) (GH-13335)" (GH-13569)
This reverts commit ea2b76bdc5.
See the bug for discussion.

https://bugs.python.org/issue27987
2019-05-25 10:05:01 -07:00
Inada Naoki ea2b76bdc5
bpo-27987: align PyGC_Head to alignof(long double) (GH-13335) 2019-05-25 21:13:33 +09:00
Victor Stinner 8a9a6b443c
[3.7] bpo-9566: Fix compiler warnings on Windows (GH-12920)
* bpo-9566: Fix compiler warnings in gcmodule.c (GH-11010)

Change PyDTrace_GC_DONE() argument type from int to Py_ssize_t.

(cherry picked from commit edad38e3e0)

* bpo-30465: Fix C downcast warning on Windows in ast.c (#6593)

ast.c: fstring_fix_node_location() downcasts a pointer difference to
a C int. Replace int with Py_ssize_t to fix the compiler warning.

(cherry picked from commit fb7e7992be)

* bpo-9566: Fix compiler warnings in peephole.c (GH-10652)

(cherry picked from commit 028f0ef4f3)

* bpo-27645, sqlite: Fix integer overflow on sleep (#6594)

Use the _PyTime_t type and round away from zero (ROUND_UP,
_PyTime_ROUND_TIMEOUT) the sleep duration, when converting a Python
object to seconds and then to milliseconds. Raise an OverflowError in
case of overflow.

Previously the (int)double conversion rounded towards zero
(ROUND_DOWN).

(cherry picked from commit ca405017d5)
2019-04-23 10:26:11 +02:00
Victor Stinner 9e23f0a27c
[3.7] bpo-36389: _PyObject_IsFreed() now also detects uninitialized memory (GH-12770) (GH-12788)
* bpo-36389: _PyObject_IsFreed() now also detects uninitialized memory (GH-12770)

Replace _PyMem_IsFreed() function with _PyMem_IsPtrFreed() inline
function. The function is now way more efficient, it became a simple
comparison on integers, rather than a short loop. It detects also
uninitialized bytes and "forbidden bytes" filled by debug hooks
on memory allocators.

Add unit tests on _PyObject_IsFreed().

(cherry picked from commit 2b00db6855)

* bpo-36389: Change PyMem_SetupDebugHooks() constants (GH-12782)

Modify CLEANBYTE, DEADDYTE and FORBIDDENBYTE constants: use 0xCD,
0xDD and 0xFD, rather than 0xCB, 0xBB and 0xFB, to use the same byte
patterns than Windows CRT debug malloc() and free().

(cherry picked from commit 4c409beb4c)
2019-04-11 22:30:31 +02:00
Ned Deily bc8c26325d bump to 3.7.3+ 2019-03-25 19:31:06 -04:00
Ned Deily 3a1f71d6d7 Python 3.7.3
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEDZbfTUEQ5cQ/v7F/LTR+pqplQh0FAlyZOEwACgkQLTR+pqpl
 Qh3UFRAAy9afwI0Jb6Q8drjDXJCRRpx9msSQ5V0vdN+nrs3DawH+y/4yHDCurwc/
 RbM5gwMXWU+Upy3rcCw/0gbNk6QAXrbL+D4hxMtLd4F2OVAKsrb/Hh5F+lPCPyiV
 lEK1dkr1I22ZixR1wY2jqp2QV1e2FMlyOD2cOD0fDYsKDb58ZsmMYuMxKnWQHOcf
 7d6db1UfKOgiJ2DIu86ZRVB+UdSNqkfzMFSV+c3+zcIkGTN7UM95lBA3XsVWPSSJ
 g80f2M951UczWy1zHGU52rZ5OphAGAL7voJ3hHEFzO0gf6EwDnu3RFP6Gn+2rVMO
 PW+TKloE2DBEmY7bl6PLFfBOHisFbWrR5TEd8xvLco/COnSyGhf+lL27CamqG0SD
 dlVIQgoUL5Xj0H8clcokXPU94u7VQioEW9/Na45JICaxV9V9uuJUpJ2Rvq4hNnd8
 8Ul4aFff/N7plnNN/TsetZmv1N8nKTBjy79bT7HxK6zx7oLaLwyMAne0XG0CRskX
 PSfz8vaWMGAlmXTXR56vc7INZizJzWptF8N5q43Hx55lV9ZK62ykWBZlbJPeg+1z
 qwEwg9i9H6SNq7G1lbniwr2gec37e9pQ1DOEY5F08eK7rbjHQ5A5uVx+zKKp1vCd
 wYwbBQAzVKSXC9ez5u7snFL51vjzffALwtUWB+tXKCINwlst2W0=
 =a5jU
 -----END PGP SIGNATURE-----

Merge tag 'v3.7.3' into 3.7
2019-03-25 19:28:53 -04:00
Ned Deily ef4ec6ed12 3.7.3 2019-03-25 16:21:05 -04:00
Victor Stinner f7959a9fe7
bpo-36236: Handle removed cwd at Python init (GH-12450)
At Python initialization, the current directory is no longer
prepended to sys.path if it has been removed.
2019-03-20 00:30:45 +01:00
Victor Stinner 935250d6f3
bpo-36356: pymain_free() calls _PyRuntime_Finalize() (GH-12436)
Ensure that _PyRuntime_Finalize() is always call. This change fix a
few memory leaks when running "python3 -V".
2019-03-19 15:08:17 +01:00
Rémi Lapeyre 67294f6425 bpo-36317: Fix typo in _PyObject_FastCallDict documentation (GH-12383) (GH-12402)
(cherry picked from commit b4b97af8be)
2019-03-18 12:51:23 +01:00
Ned Deily 822952c14e bump to 3.7.3rc1+ 2019-03-12 18:09:08 -04:00
Ned Deily 69785b2127 3.7.3rc1 2019-03-12 15:14:21 -04:00
Miss Islington (bot) a144feeb7e bpo-28503: Use crypt_r() when available instead of crypt() (GH-11373) (GH-11376)
Use crypt_r() when available instead of crypt() in the crypt module.

As a nice side effect: This also avoids a memory sanitizer flake as clang msan doesn't know about crypt's internal libc allocated buffer.
(cherry picked from commit 387512c7ec)

Co-authored-by: Gregory P. Smith <greg@krypto.org> [Google]
2018-12-30 17:59:52 -08:00
Ned Deily 4cb468d3a7 Post release bump 2018-12-24 04:29:05 -05:00
Ned Deily 9a3ffc0492 3.7.2final 2018-12-23 16:37:36 -05:00
Miss Islington (bot) ffc106c596 bpo-35259: Limit `Py_FinalizeEx()` to `Py_LIMITED_API >= 0x03060000`. (GH-10620)
(cherry picked from commit 3e8f962e63)

Co-authored-by: Arthur Neufeld <aneufeld@seinesoftware.ca>
2018-12-23 15:46:57 -05:00
Ned Deily 75a402a217 3.7.2rc1 2018-12-11 16:46:13 -05:00
Serhiy Storchaka 3cae16d2e9
bpo-35444: Fix error handling when fail to look up builtin "getattr". (GH-11047) (GH-11107)
(cherry picked from commit bb86bf4c4e)
2018-12-11 10:51:27 +02:00
Victor Stinner 6f5fa1b4be
bpo-33954: Fix _PyUnicode_InsertThousandsGrouping() (GH-10623) (GH-10718)
Fix str.format(), float.__format__() and complex.__format__() methods
for non-ASCII decimal point when using the "n" formatter.

Rewrite _PyUnicode_InsertThousandsGrouping(): it now requires
a _PyUnicodeWriter object for the buffer and a Python str object
for digits.

(cherry picked from commit 59423e3ddd)
2018-11-26 14:17:01 +01:00
Victor Stinner f6e323ce32
bpo-34523: Fix C locale coercion on FreeBSD CURRENT (GH-10672) (GH-10673)
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.

(cherry picked from commit 353933e712)
2018-11-23 13:37:42 +01:00
Victor Stinner 95036ea25d
[3.7] bpo-9263: _PyObject_Dump() detects freed memory (GH-10061) (GH-10662)
* bpo-9263: _PyObject_Dump() detects freed memory (GH-10061)

_PyObject_Dump() now uses an heuristic to check if the object memory
has been freed: log "<freed object>" in that case.

The heuristic rely on the debug hooks on Python memory allocators
which fills the memory with DEADBYTE (0xDB) when memory is
deallocated. Use PYTHONMALLOC=debug to always enable these debug
hooks.

(cherry picked from commit 82af0b63b0)

* 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.

(cherry picked from commit 2cf5d32fd9)
2018-11-22 17:15:37 +01:00
Steve Dower e851049e0e
bpo-34725: Adds _Py_SetProgramFullPath so embedders may override sys.executable (GH-9861) 2018-11-17 20:42:08 -08:00
Victor Stinner 9ee1d42f01
bpo-35233: InitConfigTests tests more config vars (GH-10541) (GH-10546)
test_embed.InitConfigTests tests more configuration variables.

Changes:

* InitConfigTests tests more core configuration variables:

  * base_exec_prefix
  * base_prefix
  * exec_prefix
  * home
  * module_search_path_env
  * prefix

* "_testembed init_from_config" tests more variables:

  * argv
  * warnoptions
  * xoptions

* Py_HasFileSystemDefaultEncoding value is no longer tested since it
  depends on the LC_CTYPE locale and the platform.
* 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).
* Use more macros in _PyCoreConfig_AsDict() and
  _PyMainInterpreterConfig_AsDict() to reduce code duplication.
* Other minor cleanups.

(cherry picked from commit 01de89cb59)
2018-11-14 18:58:01 +01:00
Victor Stinner 35c28d562e
[3.7] bpo-35233: Rewrite test_embed.InitConfigTests (GH-10524) (GH-10529)
* Add C functions:

  * _Py_GetGlobalVariablesAsDict()
  * _PyCoreConfig_AsDict()
  * _PyMainInterpreterConfig_AsDict()

* Add new _testcapi methods:

  * get_global_config()
  * get_core_config()
  * get_main_config()

* test.pythoninfo: get global, core and main configuration
* _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
2018-11-14 02:01:52 +01:00
Miss Islington (bot) f6602f9266
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
(cherry picked from commit 3015fb8ce4)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2018-11-12 22:20:21 -08:00
Gregory P. Smith 5f4d05d83f
[3.7] bpo-35214: Initial clang MemorySanitizer support (GH-10479) (GH-10492)
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.

(cherry picked from commit 1584a00815)

Co-authored-by: Gregory P. Smith <greg@krypto.org> [Google LLC]
2018-11-12 13:48:24 -08:00
Alexey Izbyshev a9122d183b [3.7] bpo-35147: Fix _Py_NO_RETURN for GCC (GH-10300) (GH-10301)
Use `__GNUC__` instead of non-existing `__GNUC_MAJOR__`.

(cherry picked from commit e2ed5adcb5)


https://bugs.python.org/issue35147
2018-11-02 18:30:11 -07:00
Victor Stinner 21220bbe65
bpo-34403: Fix initfsencoding() for ASCII (GH-10233)
* Add _Py_GetForceASCII(): check if Python forces the usage of ASCII
  in Py_DecodeLocale() and Py_EncodeLocale().
* initfsencoding() now uses ASCII if _Py_GetForceASCII() is true.
2018-10-30 12:59:20 +01:00
Ned Deily a5f6882be0 Post release bump 2018-10-20 12:56:38 -04:00
Ned Deily 08eae4fa4c Python 3.7.1
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEDZbfTUEQ5cQ/v7F/LTR+pqplQh0FAlvKxbwACgkQLTR+pqpl
 Qh1gIxAAs6/Ry7GirNwzVrKv6HG/GYFB61OaqmO2BMRRuFB226iQjdM1Amaw5I3m
 Dbe4rPrQWXPaI7UIMrbA/oK1BH5AZgpKcVr5YbXF3uAb3AN05E9iNGVbR+qQMlsd
 +3ydWrDcKzRJnVZxaUlLVZdEpaDXsAkAJTfOBNvwdfncBtPXa1+tbuT0SY6yGFwb
 NNq+BvYZJJKuWQ3s10zv5dnUiUlLJMLiVP0pZjwVS2d/gG2gs/rEzz2fBJKygjYR
 TTGhS69KGpqYOLq9USmUzI7DJNts7YeNhhiwF/X7qOx4y2n2dRz721SGlG+Nkxt6
 kvRv3LaLRKsBlPjoVHFyRwIlr4uc3JfwFL3ngswfUNgChrqxkEZgV4oouxeSVQ5o
 Yi/GGBA+c9xvdgufnaKgt8Ep30XRS7vfQZ8KeFwH2xWNCIglVHdBffwwlbwUWft5
 t3/udHDXdeUu7Yb7hfamaA5pafH5lwoQMlbSwOl9gg94sNNuERhocoi8IpMDhzDs
 cI7Jw8sAPWipn6F7k2rn8Z8RFWZEJr4XtgZs/+jTxS3DVfuV3EDYIlM2V/4SXK/b
 KCJ/4NqDjGEFyrSZ0/d5GnmE3dvWrYztUebotFvv2q2aPEv9u8n66BxH/pSLNFTJ
 CtITqOsRwU8IdeOIET0246Oi8Ha4ZU/qQdnPqv5bktD69qAxSOQ=
 =qLkl
 -----END PGP SIGNATURE-----

Merge tag 'v3.7.1' into 3.7
2018-10-20 12:54:48 -04:00
Ned Deily 260ec2c36a 3.7.1final 2018-10-20 02:04:19 -04:00
Miss Islington (bot) 178d1c0777
bpo-24658: Fix read/write greater than 2 GiB on macOS (GH-1705)
On macOS, fix reading from and writing into a file with a size larger than 2 GiB.
(cherry picked from commit 74a8b6ea7e)

Co-authored-by: Stéphane Wirtel <stephane@wirtel.be>
2018-10-17 23:58:40 -07:00
Ned Deily 6a1238cb44 Post release bump 2018-10-13 16:45:49 -04:00
Ned Deily 6c06ef7dc3 3.7.1rc2 2018-10-13 03:01:13 -04:00
Ned Deily 2bdba6b429 Post release bump 2018-09-26 20:12:10 -04:00
Ned Deily 2064bcf6ce 3.7.1rc1 2018-09-26 02:16:09 -04:00
Miss Islington (bot) 187f2dd256
bpo-34762: Fix contextvars C API to use PyObject* pointer types. (GH-9473)
(cherry picked from commit 2ec872b31e)

Co-authored-by: Yury Selivanov <yury@magic.io>
2018-09-21 12:48:10 -07:00
Victor Stinner 95cc3ee00c
Revert "[3.7] bpo-34589: Add -X coerce_c_locale option; C locale coercion off by default (GH-9379)" (GH-9416)
This reverts commit 144f1e2c6f.
2018-09-19 12:01:52 -07:00
Miss Islington (bot) 470a435f3b
bpo-34623: Use XML_SetHashSalt in _elementtree (GH-9146)
The C accelerated _elementtree module now initializes hash randomization
salt from _Py_HashSecret instead of libexpat's default CPRNG.

Signed-off-by: Christian Heimes <christian@python.org>

https://bugs.python.org/issue34623
(cherry picked from commit cb5778f00c)

Co-authored-by: Christian Heimes <christian@python.org>
2018-09-18 06:11:09 -07:00
Victor Stinner 144f1e2c6f
[3.7] bpo-34589: Add -X coerce_c_locale option; C locale coercion off by default (GH-9379)
* bpo-34589: Make _PyCoreConfig.coerce_c_locale private (GH-9371)

_PyCoreConfig:

* Rename coerce_c_locale to _coerce_c_locale
* Rename coerce_c_locale_warn to _coerce_c_locale_warn

These fields are now private (name prefixed by "_").

(cherry picked from commit 188ebfa475)

* bpo-34589: C locale coercion off by default (GH-9073)

Py_Initialize() and Py_Main() cannot enable the C locale coercion
(PEP 538) anymore: it is always disabled. It can now only be enabled
by the Python program ("python3).

test_embed: get_filesystem_encoding() doesn't have to set PYTHONUTF8
nor PYTHONCOERCECLOCALE, these variables are already set in the
parent.

(cherry picked from commit 7a0791b699)

* bpo-34589: Add -X coerce_c_locale command line option (GH-9378)

Add a new -X coerce_c_locale command line option to control C locale
coercion (PEP 538).

(cherry picked from commit dbdee0073c)
2018-09-17 18:01:39 -07:00
Victor Stinner 0c90d6f759
[3.7] bpo-34247: Fix Python 3.7 initialization (#8659)
* -X dev: it is now possible to override the memory allocator using
  PYTHONMALLOC even if the developer mode is enabled.
* Add _Py_InitializeFromConfig()
* Add _Py_Initialize_ReadEnvVars() to set global configuration
  variables from environment variables
* Fix the code to initialize Python: Py_Initialize() now also reads
  environment variables
* _Py_InitializeCore() can now be called twice: the second call
  only replaces the configuration.
* Write unit tests on Py_Initialize() and the different ways to
  configure Python
* The isolated mode now always sets Py_IgnoreEnvironmentFlag and
  Py_NoUserSiteDirectory to 1.
* pymain_read_conf() now saves/restores the configuration
  if the encoding changed
2018-08-05 12:31:59 +02:00
Miss Islington (bot) c919252a28
Fix redundant declaration of _PyImport_AddModuleObject (GH-7992)
(cherry picked from commit f874bd1f06)

Co-authored-by: Jeremy Cline <jeremy@jcline.org>
2018-06-29 16:03:07 -07:00
Ned Deily 4f69a297a9 start 3.7.0+ 2018-06-27 18:29:26 -04:00
Ned Deily 1bf9cc5093 3.7.0 final 2018-06-26 23:07:35 -04:00
Ned Deily dfad352267 3.7.0rc1 2018-06-12 00:46:50 -04:00
Ned Deily d8bc353aa1 Bump to 3.7.0b5+ 2018-05-30 20:53:43 -04:00
Ned Deily abb8802389 3.7.0b5 2018-05-30 19:50:49 -04:00