Commit Graph

5726 Commits

Author SHA1 Message Date
Serhiy Storchaka
d70c2a6894 bpo-33298: Wrap only constants with _PyCode_ConstantKey() in the compiler. (GH-6512) 2018-04-20 16:01:25 +03:00
Serhiy Storchaka
b7e1eff843 bpo-33299: Return an object itself for some types in _PyCode_ConstantKey(). (GH-6513) 2018-04-19 08:28:04 +03:00
Zackery Spytz
f303639e3a bpo-33270: Intern names for all anonymous code objects (#6472) 2018-04-16 01:12:29 +03:00
Brett Cannon
9e2be60634 bpo-33169: Remove values of None from sys.path_importer_cache when invalidating caches (GH-6402)
An entry of None in sys.path_importer_cache represents a negative/missing finder for a path, so clearing it out makes sense.
2018-04-06 16:10:18 -07:00
Marcel Plch
3a9ccee0e5 bpo-29673: fix gdb scripts pystack and pystackv (GH-6126) 2018-04-06 17:22:04 -04:00
INADA Naoki
0c1c4563a6 bpo-33231: Fix potential leak in normalizestring() (GH-6386) 2018-04-06 15:51:24 +09:00
Serhiy Storchaka
a68f2f0578 bpo-29922: Improve error messages in 'async with' (GH-6352)
when __aenter__() or __aexit__() return non-awaitable object.
2018-04-03 01:41:38 +03:00
Serhiy Storchaka
aa8e51f5eb bpo-33132: Fix more reference counting issues in the compiler. (GH-6323) 2018-04-01 00:29:37 +03:00
Nick Coghlan
d5d9e02dd3 bpo-33053: -m now adds *starting* directory to sys.path (GH-6231)
Historically, -m added the empty string as sys.path
zero, meaning it resolved imports against the current
working directory, the same way -c and the interactive
prompt do.

This changes the sys.path initialisation to add the
*starting* working directory as sys.path[0] instead,
such that changes to the working directory while the
program is running will have no effect on imports
when using the -m switch.
2018-03-25 23:03:10 +10:00
Nick Coghlan
bc77eff8b9 bpo-33042: Fix pre-initialization sys module configuration (GH-6157)
- new test case for pre-initialization of sys.warnoptions and sys._xoptions
- restored ability to call these APIs prior to Py_Initialize
- updated the docs for the affected APIs to make it clear they can be
  called before Py_Initialize
- also enhanced the existing embedding test cases
  to check for expected settings in the sys module
2018-03-25 20:44:30 +10:00
Serhiy Storchaka
a95d98607e bpo-33132: Fix reference counting issues in the compiler. (GH-6209) 2018-03-24 22:42:35 +02:00
Xiang Zhang
d8b291a742 bpo-32932: More revealing error message when non-str objects in __all__ (GH-5848) 2018-03-24 18:39:36 +08:00
Serhiy Storchaka
702f8f3611 bpo-33041: Rework compiling an "async for" loop. (#6142)
* Added new opcode END_ASYNC_FOR.
* Setting global StopAsyncIteration no longer breaks "async for" loops.
* Jumping into an "async for" loop is now disabled.
* Jumping out of an "async for" loop no longer corrupts the stack.
* Simplify the compiler.
2018-03-23 14:34:35 +02:00
Serhiy Storchaka
fe2bbb1869 bpo-32489: Allow 'continue' in 'finally' clause. (GH-5822) 2018-03-18 09:56:52 +02:00
Nir Soffer
4484f9dca9 bpo-33021: Release the GIL during fstat() calls (GH-6019)
fstat may block for long time if the file descriptor is on a
non-responsive NFS server, hanging all threads. Most fstat() calls are
handled by _Py_fstat(), releasing the GIL internally, but but
_Py_fstat_noraise() does not release the GIL, and most calls release the
GIL explicitly around it.

This patch fixes last 2 calls to _Py_fstat_no_raise(), avoiding hangs
when calling:
- mmap.mmap()
- os.urandom()
- random.seed()
2018-03-12 00:39:22 +01:00
Siddhesh Poyarekar
9fb8415759 Drop confusing commented out code in pystrtod.c (GH-6072) 2018-03-11 17:45:10 +08:00
Serhiy Storchaka
3f7e9aa2ef bpo-32925: Optimized iterating and containing test for literal lists (GH-5842)
consisting of non-constants: `x in [a, b]` and `for x in [a, b]`.
The case of all constant elements already was optimized.
2018-03-11 10:54:47 +02:00
Serhiy Storchaka
4e2442505c bpo-32946: Speed up "from ... import ..." from non-packages. (GH-5873) 2018-03-11 10:52:37 +02:00
Serhiy Storchaka
67ee07795b bpo-33041: Add missed error checks when compile "async for" (#6053)
and remove redundant code.
2018-03-10 18:49:26 +02:00
Serhiy Storchaka
24d3201eb7 bpo-33041: Fixed bytecode generation for "async for" with a complex target. (#6052)
A StopAsyncIteration raised on assigning or unpacking will be now propagated
instead of stopping the iteration.
2018-03-10 18:22:34 +02:00
Xiang Zhang
3c7ac7ea20 Add two missing error checks in hamt.c (GH-5851) 2018-03-08 13:59:46 +08:00
Victor Stinner
5d92647102 bpo-33005: Fix _PyGILState_Reinit() (#6001)
Fix a crash on fork when using a custom memory allocator (ex: using
PYTHONMALLOC env var).

_PyGILState_Reinit() and _PyInterpreterState_Enable() now use the
default RAW memory allocator to allocate a new interpreters mutex on
fork.
2018-03-06 14:31:37 +01:00
Siddhesh Poyarekar
efd2bac156 Fix strncpy warning with gcc 8 (#5840)
The length in strncpy is one char too short and as a result it leads
to a build warning with gcc 8.  Comment out the strncpy since the
interpreter aborts immediately after anyway.
2018-03-06 18:34:35 +08:00
Thomas Nyberg
7023644e0c closes bpo-32980 Remove _PyFrame_Init (GH-5965) 2018-03-03 22:06:01 -08:00
Nitish Chandra
3a087beddd bpo-32836: Remove obsolete code from symtable pass (GH-5680)
When comprehensions switched to using a nested scope, the old
code for generating a temporary name to hold the accumulation
target became redundant, but was never actually removed.

Patch by Nitish Chandra.
2018-02-27 07:31:20 +10:00