Irit Katriel
e07154fd1e
gh-123958: apply docstring removal optimization in ast_opt instead of codegen ( #123959 )
2024-09-11 17:02:28 +00:00
Irit Katriel
a2d0818c85
gh-123881: make compiler add the .generic_base base class without constructing AST nodes ( #123883 )
2024-09-10 16:16:00 +00:00
Tushar Sadhwani
3597642ed5
gh-122239: Add actual count in unbalanced unpacking error message when possible ( #122244 )
2024-09-10 16:07:30 +01:00
Victor Stinner
fb1b51a58d
gh-123892: Add "_wmi" to sys.stdlib_module_names ( #123893 )
2024-09-10 09:54:17 +00:00
Irit Katriel
1a9d8917a3
gh-121404: split compile.c into compile.c and codegen.c ( #123651 )
2024-09-09 18:21:51 +01:00
Peter Bierma
84ad264ce6
gh-123275: Support `-Xgil=1` and `PYTHON_GIL=1` on non-free-threaded builds (gh-123276)
2024-09-06 08:53:47 +09:00
Savannah Ostrowski
1fbc118c5d
GH-123545: Remove duplicate Py_DECREF when handling _PyOptimizer_Optimize errors (GH-123546)
2024-09-05 10:56:07 -07:00
Victor Stinner
0d6b6e34a2
gh-107954, PEP 741: Add PyInitConfig_AddModule() function ( #123668 )
2024-09-04 11:41:57 +00:00
Victor Stinner
b423ae6b08
gh-107954, PEP 741: Adjust Python initialization config ( #123663 )
...
Setting dev_mode to 1 in an isolated configuration now enables also
faulthandler.
Moreover, setting "module_search_paths" option with
PyInitConfig_SetStrList() now sets "module_search_paths_set" to 1.
2024-09-04 10:58:32 +00:00
Sergey B Kirpichev
6822cb23c6
gh-121804: always show error location for SyntaxError's in basic repl ( #123202 )
2024-09-03 12:37:29 +00:00
Victor Stinner
ef9d54703f
gh-107954, PEP 741: Add PyInitConfig C API ( #123502 )
...
Add Doc/c-api/config.rst documentation.
2024-09-03 12:33:49 +00:00
Victor Stinner
33b790978d
gh-107954, PEP 741: Add PyConfig_Get()/Set() functions ( #123472 )
...
Add PyConfig_Get(), PyConfig_GetInt(), PyConfig_Set() and
PyConfig_Names() functions to get and set the current runtime Python
configuration.
Add visibility and "sys spec" to config and preconfig specifications.
_PyConfig_AsDict() now converts PyConfig.xoptions as a dictionary.
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-09-02 23:25:08 +02:00
Irit Katriel
fbb26f067a
gh-121404: enforce that codegen doesn't access compiler, and compiler doesn't use codegen macros ( #123575 )
2024-09-02 17:23:39 +00:00
Petr Viktorin
57c471a688
gh-123091: Use more _Py_IsImmortalLoose() (GH-123602)
...
Switch more _Py_IsImmortal(...) assertions to _Py_IsImmortalLoose(...)
The remaining calls to _Py_IsImmortal are in free-threaded-only code,
initialization of core objects, tests, and guards that fall back to
code that works with mortal objects.
2024-09-02 18:17:48 +02:00
Victor Stinner
f1a0d96f41
gh-123091: Use _Py_IsImmortalLoose() ( #123511 )
...
Use _Py_IsImmortalLoose() in bytesobject.c, typeobject.c
and ceval.c.
2024-09-02 14:25:19 +02:00
sobolevn
91b7f2e7f6
gh-123553: Fix compile warning in `compile.c` ( #123578 )
2024-09-01 15:43:45 +00:00
Kirill Podoprigora
084e0f35d1
gh-123553: Fix compiler warning in `Python/compile.c` ( #123554 )
2024-09-01 06:29:34 +00:00
Irit Katriel
6bfbfc6af3
gh-121404: rearrange code in compile.c so that codegen functions come first and compiler functions second ( #123510 )
2024-08-30 22:54:42 +01:00
Victor Stinner
d8e69b2c1b
gh-122854: Add Py_HashBuffer() function ( #122855 )
2024-08-30 15:42:27 +00:00
Serhiy Storchaka
32c7dbb2bc
gh-121485: Always use 64-bit integers for integers bits count (GH-121486)
...
Use 64-bit integers instead of platform specific size_t or Py_ssize_t
to represent the number of bits in Python integer.
2024-08-30 08:13:24 +03:00
Irit Katriel
61bef6245c
gh-123142: fix too wide source location of GET_ITER/GET_AITER ( #123420 )
2024-08-28 17:11:52 +01:00
Bogdan Romanyuk
be083cee34
gh-123344: Add missing ast optimizations for PEP 696 ( #123377 )
...
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2024-08-28 06:38:56 -07:00
Pieter Eendebak
7e38e6745d
gh-123271: Make builtin zip method safe under free-threading ( #123272 )
...
The `zip_next` function uses a common optimization technique for methods
that generate tuples. The iterator maintains an internal reference to
the returned tuple. When the method is called again, it checks if the
internal tuple's reference count is 1. If so, the tuple can be reused.
However, this approach is not safe under the free-threading build:
after checking the reference count, another thread may perform the same
check and also reuse the tuple. This can result in a double decref on
the items of the replaced tuple and a double incref (memory leak) on
the items of the tuple being set.
This adds a function, `_PyObject_IsUniquelyReferenced` that
encapsulates the stricter logic necessary for the free-threaded build:
the internal tuple must be owned by the current thread, have a local
refcount of one, and a shared refcount of zero.
2024-08-27 15:22:43 -04:00
Irit Katriel
d24d1c986d
gh-121404: split compiler_nameop into a codegen part and a compiler part ( #123398 )
2024-08-27 16:57:31 +01:00
Mark Shannon
f49a91648a
GH-117759: Document incremental GC (GH-123266)
...
* Update what's new
* Update gc module docs and fix inconsistency in gc.get_objects
2024-08-27 15:23:39 +01:00
Irit Katriel
da4302699f
gh-121404: compiler_visit_* --> codegen_visit_* ( #123382 )
2024-08-27 11:32:24 +00:00
Mark Shannon
54a05a4600
GH-123232: Factor BINARY_SLICE and STORE_SLICE to handle stats properly for tier 2. (GH-123381)
2024-08-27 10:49:39 +01:00
Anthony Shaw
86f06cb3fb
Remove comment from pystate created in 2003 ( #123259 )
2024-08-24 20:36:42 +00:00
Sam Gross
556e855684
gh-117376: Make `Py_DECREF` a macro in ceval.c in free-threaded build ( #122975 )
...
`Py_DECREF` and `PyStackRef_CLOSE` are now implemented as macros in the
free-threaded build in ceval.c. There are two motivations;
* MSVC has problems inlining functions in ceval.c in the PGO build.
* We will want to mark escaping calls in order to spill the stack
pointer in ceval.c and we will want to do this around `_Py_Dealloc`
(or `_Py_MergeZeroLocalRefcount` or `_Py_DecRefShared`), not around
the entire `Py_DECREF` or `PyStackRef_CLOSE` call.
2024-08-23 15:36:14 -04:00
Kirill Podoprigora
67f2c84bff
gh-123205: `Python/bytecodes.c`: Fix compiler warning ( #123206 )
...
Fix MSVC warning "conversion from '__int64' to 'int'"
2024-08-23 15:35:25 -04:00
Irit Katriel
bf1b5d323b
gh-121404: more compiler_* -> codegen_*, class_body and comprehensions ( #123262 )
2024-08-23 19:53:15 +01:00
Mark Shannon
7cd3aa42f0
GH-122298: Restore printing of GC stats (GH-123261)
2024-08-23 16:39:08 +01:00
Mark Shannon
0b0f7befad
GH-123232: Fix "not specialized" stats (GH-123236)
2024-08-23 10:46:03 +01:00
Irit Katriel
5fce482c9a
gh-121404: compiler_annassign --> codegen_annassign ( #123245 )
2024-08-23 10:39:42 +01:00
Mark Shannon
5d3201fe3f
GH-123040: Specialize shadowed `LOAD_ATTR`. (GH-123219)
2024-08-23 10:22:35 +01:00
Donghee Na
297f2e093e
gh-123083: Fix a potential use-after-free in ``STORE_ATTR_WITH_HINT`` (gh-123092)
2024-08-22 23:49:09 +09:00
Irit Katriel
4abc1c1456
gh-121404: remove redundant c_nestlevel. more compiler abstractions. more macro usage consistency ( #123225 )
2024-08-22 15:08:16 +01:00
Mark Shannon
a3d8c0542e
GH-123197: Only count an instruction as deferred if it hasn't deopted first. (GH-123222)
...
Only count an instruction as deferred if hasn't deopted first.
2024-08-22 14:17:10 +01:00
Brandt Bucher
427b106162
GH-118093: Specialize calls to non-vectorcall classes as `CALL_NON_PY_GENERAL` (GH-123212)
...
Specialize classes without vectorcall as CALL_NON_PY_GENERAL
2024-08-22 11:50:55 +01:00
Irit Katriel
ec89620e5e
gh-123142: Fix too wide source locations in tracebacks of exceptions from broken iterables in comprehensions ( #123173 )
2024-08-21 19:12:05 +01:00
Mark Shannon
a4fd7aa4a6
GH-115776: Allow any fixed sized object to have inline values (GH-123192)
2024-08-21 15:52:04 +01:00
Irit Katriel
4b7c4880a0
gh-121404: split fblock handling into compiler_* and codegen_* parts ( #123199 )
2024-08-21 15:48:56 +01:00
Mark Shannon
7b26c4d1e3
GH-123197: Increment correct stat for CALL_KW (GH-123200)
2024-08-21 12:52:28 +01:00
Mark Shannon
1eba8bae92
GH-123185: Check for `NULL` after calling `_PyEvalFramePushAndInit` (GH-123194)
2024-08-21 12:44:56 +01:00
Mark Shannon
bb1d30336e
GH-118093: Make `CALL_ALLOC_AND_ENTER_INIT` suitable for tier 2. (GH-123140)
...
* Convert CALL_ALLOC_AND_ENTER_INIT to micro-ops such that tier 2 supports it
* Allow inexact arguments for CALL_ALLOC_AND_ENTER_INIT.
2024-08-20 16:52:58 +01:00
Irit Katriel
bffed80230
gh-123048: Fix missing source location in pattern matching code ( #123167 )
2024-08-20 11:39:41 +01:00
Irit Katriel
b6d0a40a42
gh-121404: rename functions to use codegen_* prefix. Use macros more consistently. ( #123139 )
2024-08-19 14:39:53 +00:00
Irit Katriel
e077b201f4
gh-121404: pass metadata to compiler_enter_scope (optionally) so that codegen functions don't need to set it on the code unit ( #123078 )
2024-08-19 11:49:42 +01:00
Mark Shannon
c13e7d98fb
GH-118093: Specialize `CALL_KW` (GH-123006)
2024-08-16 17:11:24 +01:00
Irit Katriel
e2f2dc708e
gh-121404: rename compiler_addop* to codegen_addop*, and replace direct usages by the macros ( #123043 )
2024-08-16 15:57:32 +01:00