Mark Shannon
5bd72912a1
GH-122616: Simplify LOAD_ATTR_WITH_HINT and STORE_ATTR_WITH_HINT (GH-122620)
2024-08-05 16:27:48 +01:00
Serhiy Storchaka
efcd65cd84
gh-122313: Clean up deep recursion guarding code in the compiler (GH-122640)
...
Add ENTER_RECURSIVE and LEAVE_RECURSIVE macros in ast.c, ast_opt.c and
symtable.c. Remove VISIT_QUIT macro in symtable.c.
The current recursion depth counter only needs to be updated during
normal execution -- all functions should just return an error code
if an error occurs.
2024-08-03 12:45:45 +03:00
Mark Shannon
7aca84e557
GH-117224: Move the body of a few large-ish micro-ops into helper functions (GH-122601)
2024-08-02 16:31:17 +01:00
Irit Katriel
498376d7a7
gh-122445: populate only modified fields in __static_attributes__ ( #122446 )
2024-08-02 15:40:42 +01:00
neonene
9fc1c992d6
gh-122334: Fix crash when importing ssl after re-initialization ( #122481 )
...
* Fix crash when importing ssl after re-initialization
2024-08-02 19:06:20 +05:30
Serhiy Storchaka
03b88522f5
gh-122188: Remove _imp.pyc_magic_number (GH-122503)
...
_imp.pyc_magic_number_token should be enough.
2024-08-02 13:12:19 +03:00
Jelle Zijlstra
8234419c32
gh-122562: Remove ste_free and ste_child_free from symtable ( #122563 )
2024-08-01 16:28:25 -07:00
Mark Shannon
df13a1821a
GH-118095: Add tier two support for BINARY_SUBSCR_GETITEM (GH-120793)
2024-08-01 16:19:05 -07:00
Victor Stinner
fda6bd842a
Replace PyObject_Del with PyObject_Free ( #122453 )
...
PyObject_Del() is just a alias to PyObject_Free() kept for backward
compatibility. Use directly PyObject_Free() instead.
2024-08-01 14:12:33 +02:00
Mark Shannon
a9d56e38a0
GH-122155: Track local variables between pops and pushes in cases generator (GH-122286)
2024-08-01 09:27:26 +01:00
jianghuyiyuan
46f5a4f9e1
Fix typos in docs, error messages and comments ( #122502 )
...
Signed-off-by: jianghuyiyuan <shuangcui@live.com>
2024-08-01 00:26:09 +00:00
Michael Droettboom
af0a00f022
gh-122188: Move magic number to its own file ( #122243 )
...
* gh-122188: Move magic number to its own file
* Add versionadded directive
* Do work in C
* Integrate launcher.c
* Make _pyc_magic_number private
* Remove metadata
* Move sys.implementation -> _imp
* Modernize comment
* Move _RAW_MAGIC_NUMBER to the C side as well
* _pyc_magic_number -> pyc_magic_number
* Remove unused import
* Update docs
* Apply suggestions from code review
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
* Fix typo in tests
---------
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2024-07-30 15:31:05 -04:00
Sam Gross
2b163aa9e7
gh-117657: Avoid race in `PAUSE_ADAPTIVE_COUNTER` in free-threaded build ( #122190 )
...
The adaptive counter doesn't do anything currently in the free-threaded
build and TSan reports a data race due to concurrent modifications to
the counter.
2024-07-30 13:53:47 -04:00
Brandt Bucher
7797182b78
GH-118093: Improve handling of short and mid-loop traces (GH-122252)
2024-07-29 14:49:17 -07:00
Brandt Bucher
15d4cd0967
GH-116090: Fire RAISE events from _FOR_ITER_TIER_TWO (GH-122413)
2024-07-29 12:17:47 -07:00
Petr Viktorin
89fa05fdce
gh-122234: Add DECREFs to error paths ( #122406 )
...
Co-Authored-By: Kirill Podoprigora <kirill.bast9@mail.ru>
2024-07-29 16:10:25 +00:00
Sergey B Kirpichev
169e7138ab
gh-122234: fix accuracy issues for sum() ( #122236 )
...
* Use compensated summation for complex sums with floating-point items.
This amends #121176 .
* sum() specializations for floats and complexes now use
PyLong_AsDouble() instead of PyLong_AsLongAndOverflow() and
compensated summation as well.
2024-07-29 05:56:40 +02:00
Jelle Zijlstra
ae192262ad
gh-119180: Add evaluate functions for type params and type aliases ( #122212 )
2024-07-27 17:24:10 +00:00
Mark Shannon
1ca99ed240
Manually override bytecode definition in optimizer, to avoid build error (GH-122316)
2024-07-26 18:38:52 +01:00
Sam Gross
c557ae97d6
gh-122201: Lock mutex when setting handling_thread to NULL ( #122204 )
...
In the free-threaded build, we need to lock pending->mutex when clearing
the handling_thread in order not to race with a concurrent
make_pending_calls in the same interpreter.
2024-07-26 13:06:07 -04:00
Brandt Bucher
64857d849f
GH-122294: Burn in the addresses of side exits (GH-122295)
2024-07-26 09:40:15 -07:00
Irit Katriel
bc94cf7e25
gh-122245: move checks for writes and shadowing of __debug__ to symtable ( #122246 )
2024-07-26 14:39:56 +01:00
Mark Shannon
95a73917cd
GH-122029: Break INSTRUMENTED_CALL into micro-ops, so that its behavior is consistent with CALL (GH-122177)
2024-07-26 14:35:57 +01:00
Mark Shannon
afb0aa6ed2
GH-121131: Clean up and fix some instrumented instructions. (GH-121132)
...
* Add support for 'prev_instr' to code generator and refactor some INSTRUMENTED instructions
2024-07-26 12:24:12 +01:00
Brandt Bucher
d9efa45d74
GH-118093: Add tier two support for BINARY_OP_INPLACE_ADD_UNICODE (GH-122253)
2024-07-25 14:45:07 -07:00
Brandt Bucher
5f6001130f
GH-118093: Add tier two support for LOAD_ATTR_PROPERTY (GH-122283)
2024-07-25 10:45:28 -07:00
Mark Shannon
5e686ff57d
GH-122034: Add StackRef variants of type checks to reduce the number of PyStackRef_AsPyObjectBorrow calls (GH-122037)
2024-07-25 18:32:43 +01:00
Mark Shannon
2e14a52cce
GH-122160: Remove BUILD_CONST_KEY_MAP opcode. (GH-122164)
2024-07-25 16:24:29 +01:00
Irit Katriel
9ac606080a
gh-121404: extract compiler_lookup_arg out of compiler_make_closure ( #122181 )
2024-07-24 17:22:18 +01:00
Brandt Bucher
794546fd53
GH-118093: Remove invalidated executors from side exits (GH-121885)
2024-07-24 09:16:30 -07:00
Tian Gao
e91ef13861
gh-122029: Log call events in sys.setprofile when it's a method with c function (GH-122072)
...
Log call events in sys.setprofile when it is a method with a C function.
2024-07-23 15:25:26 -07:00
Jelle Zijlstra
7b7b90d1ce
gh-119180: Add `annotationlib` module to support PEP 649 ( #119891 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-07-23 21:16:50 +00:00
Jelle Zijlstra
2762c6cc5e
gh-121637: Syntax error for optimized-away incorrect await ( #121656 )
...
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-07-22 14:12:43 -07:00
Irit Katriel
d5a12b4440
gh-121404: move calculation of module start location from compiler_body up to compiler_codegen ( #122127 )
2024-07-22 17:48:30 +01:00
Sam Gross
5716cc3529
gh-100240: Use a consistent implementation for freelists ( #121934 )
...
This combines and updates our freelist handling to use a consistent
implementation. Objects in the freelist are linked together using the
first word of memory block.
If configured with freelists disabled, these operations are essentially
no-ops.
2024-07-22 12:08:27 -04:00
mpage
e059aa6b01
gh-120973: Fix thread-safety issues with `threading.local` ( #121655 )
...
This is a small refactoring to the current design that allows us to
avoid manually iterating over threads.
This should also fix gh-118490.
2024-07-19 13:22:02 -04:00
Serhiy Storchaka
1a0c7b9ba4
gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907)
2024-07-19 08:06:02 +00:00
Brandt Bucher
7b36b67b1e
GH-118093: Add tier two support to several instructions (GH-121884)
2024-07-18 14:24:58 -07:00
Mark Shannon
3eacfc1a4d
GH-121784: Generate an error during code gen if a variable is marked `unused`, but is used and thus cached in a prior uop. ( #121788 )
...
* Reject uop definitions that declare values as 'unused' that are already cached by prior uops
* Track which variables are defined and only load from memory when needed
* Support explicit `flush` in macro definitions.
* Make sure stack is flushed in where needed.
2024-07-18 12:49:24 +01:00
Mark Shannon
169324c27a
GH-120024: Use pointer for stack pointer (GH-121923)
2024-07-18 12:47:21 +01:00
Sam Gross
81fd625b5c
gh-121621: Move asyncio_running_loop to private struct ( #121939 )
...
This avoids changing the ABI and keeps the field in the private struct.
2024-07-17 15:21:24 -07:00
Michael Droettboom
f036a463db
GH-121583: Remove dependency from pystats.h to internal header file (GH-121587)
...
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2024-07-16 15:38:29 -07:00
Tian Gao
e65cb4c6f0
gh-118934: Make PyEval_GetLocals return borrowed reference ( #119769 )
...
Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
2024-07-16 12:17:47 -07:00
Ken Jin
69c68de43a
gh-121621: Move asyncio running loop to thread state (GH-121695)
2024-07-17 01:09:58 +08:00
Lysandros Nikolaou
8549559f38
gh-120317: Lock around global state in the tokenize module ( #120318 )
...
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
2024-07-16 11:35:57 +02:00
Tian Gao
2b1b68939b
gh-121814: Only check f_trace_opcodes if Python frame exists ( #121818 )
...
Co-authored-by: Matt Wozniski <godlygeek@gmail.com>
2024-07-15 16:11:02 -07:00
Sam Gross
d23be3947c
gh-121794: Don't set `ob_tid` to zero in fast-path dealloc ( #121799 )
...
We should maintain the invariant that a zero `ob_tid` implies the
refcount fields are merged.
* Move the assignment in `_Py_MergeZeroLocalRefcount` to immediately
before the refcount merge.
* Update `_PyTrash_thread_destroy_chain` to set `ob_ref_shared` to
`_Py_REF_MERGED` when setting `ob_tid` to zero.
Also check this invariant with assertions in the GC in debug builds.
That uncovered a bug when running out of memory during GC.
2024-07-15 17:50:10 -04:00
Ken Jin
e904300882
gh-121546: Disable contextvar caching on free-threading build (GH-121740)
2024-07-16 02:57:58 +08:00
Eric Snow
985dd8e17b
gh-118297: Make Sure All Pending Calls Run in _Py_FinishPendingCalls() (gh-118298)
2024-07-15 12:44:20 -06:00
Hood Chatham
cae1526716
gh-121698 Emscripten: Use updated WebAssembly type reflection proposal (GH-121699)
2024-07-14 11:25:09 +02:00