Mark Shannon
d4052d835b
Improve stats presentation for calls. (GH-100274)
2022-12-16 15:43:04 +00:00
Mark Shannon
289c1126dd
Better stats for LOAD_ATTR
and STORE_ATTR
(GH-100295)
...
* Don't attempt to specialize for LOAD_ATTR on instance if class has attribute
* Improvement to LOAD_ATTR and STORE_ATTR specialization stats.
2022-12-16 15:41:23 +00:00
Mark Shannon
48e352a241
Move stats for the method cache into the Py_STAT
machinery (GH-100255)
2022-12-15 09:45:03 +00:00
Carl Meyer
bdd86741be
GH-100222: fix typo _py_set_opocde -> _py_set_opcode (GH-100259)
...
Typo introduced in #100223 .
Automerge-Triggered-By: GH:brandtbucher
2022-12-14 16:39:00 -08:00
Itamar Ostricher
ae83c78215
GH-100000: Cleanup and polish various watchers code (GH-99998)
...
* Initialize `type_watchers` array to `NULL`s
* Optimize code watchers notification
* Optimize func watchers notification
2022-12-14 19:14:16 +00:00
Mark Shannon
5693f45b19
Assorted minor fixes for specialization stats. (GH-100219)
2022-12-14 15:50:02 +00:00
Mark Shannon
6997e77bdf
GH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code unit. (GH-100223)
2022-12-14 11:12:53 +00:00
Irit Katriel
985a71032b
gh-99955: undef ERROR and SUCCESS before redefining (fixes sanitizer warning) ( #100215 )
2022-12-13 13:55:10 +00:00
Eric Snow
5eb28bca9f
gh-81057: Move Signal-Related Globals to _PyRuntimeState (gh-100085)
...
https://github.com/python/cpython/issues/81057
2022-12-12 16:50:19 -07:00
Michael Droettboom
1583c6e326
GH-100143: Improve collecting pystats for parts of runs (GH-100144)
...
* pystats off by default
* Add -Xpystats flag
* Always dump pystats, even if turned off
2022-12-12 14:50:43 +00:00
Irit Katriel
e4ea33b178
gh-99955: standardize return values of functions in compiler's code-gen ( #100010 )
2022-12-12 14:22:15 +00:00
chgnrdv
3221b0de67
gh-96715 Remove redundant NULL check in profile_trampoline
function ( #96716 )
...
Closes #96715
2022-12-12 17:29:27 +05:30
Eric Snow
8d0bd93ae2
gh-81057: Fix the wasm32-wasi Buildbot (gh-100139)
...
The build was broken by gh-100084.
https://github.com/python/cpython/issues/81057
2022-12-09 10:17:54 -07:00
Mark Shannon
fb713b2183
GH-98522: Add version number to code objects. (GH-98525)
...
* Add version number to code object for better versioning of functions.
* Improves specialization for closures and list comprehensions.
2022-12-09 12:18:45 +00:00
Ken Jin
748c6c0921
GH-100110: Specialize FOR_ITER for tuples (GH-100109)
...
* Specialize FOR_ITER for tuples
2022-12-09 10:27:01 +00:00
Eric Snow
1160001b34
gh-81057: Move Threading-Related Globals to _PyRuntimeState ( #100084 )
...
https://github.com/python/cpython/issues/81057
2022-12-08 17:50:58 -07:00
Eric Snow
bc8cdf8c3d
gh-81057: Move Ceval Trampoline Globals to _PyRuntimeState (gh-100083)
...
https://github.com/python/cpython/issues/81057
2022-12-08 17:17:20 -07:00
Guido van Rossum
1cfa704f64
GH-98831: Generate things in the input order ( #100123 )
...
This makes it easier to see what changed in the generated code
when converting an instruction to super or macro.
2022-12-08 15:54:07 -08:00
Eric Snow
8a3f06c54b
gh-81057: Move time Globals to _PyRuntimeState (gh-100122)
...
https://github.com/python/cpython/issues/81057
2022-12-08 16:46:09 -07:00
Guido van Rossum
c85be734d1
GH-98831: Typed stack effects, and more instructions converted ( #99764 )
...
Stack effects can now have a type, e.g. `inst(X, (left, right -- jump/uint64_t)) { ... }`.
Instructions converted to the non-legacy format:
* COMPARE_OP
* COMPARE_OP_FLOAT_JUMP
* COMPARE_OP_INT_JUMP
* COMPARE_OP_STR_JUMP
* STORE_ATTR
* DELETE_ATTR
* STORE_GLOBAL
* STORE_ATTR_INSTANCE_VALUE
* STORE_ATTR_WITH_HINT
* STORE_ATTR_SLOT, and complete the store_attr family
* Complete the store_subscr family: STORE_SUBSCR{,DICT,LIST_INT}
(STORE_SUBSCR was alread half converted,
but wasn't using cache effects yet.)
* DELETE_SUBSCR
* PRINT_EXPR
* INTERPRETER_EXIT (a bit weird, ends in return)
* RETURN_VALUE
* GET_AITER (had to restructure it some)
The original had mysterious `SET_TOP(NULL)` before `goto error`.
I assume those just account for `obj` having been decref'ed,
so I got rid of them in favor of the cleanup implied by `ERROR_IF()`.
* LIST_APPEND (a bit unhappy with it)
* SET_ADD (also a bit unhappy with it)
Various other improvements/refactorings as well.
2022-12-08 13:31:27 -08:00
Eric Snow
91a8e002c2
gh-81057: Move More Globals to _PyRuntimeState (gh-100092)
...
https://github.com/python/cpython/issues/81057
2022-12-07 15:56:31 -07:00
Brandt Bucher
b72014c783
GH-99729: Unlink frames before clearing them (GH-100030)
2022-12-06 14:01:38 +00:00
Eric Snow
530cc9dbb6
gh-99741: Implement Multi-Phase Init for the _xxsubinterpreters Module (gh-99742)
...
_xxsubinterpreters is an internal module used for testing.
https://github.com/python/cpython/issues/99741
2022-12-05 13:40:20 -07:00
Serhiy Storchaka
a87c46eab3
bpo-15999: Accept arbitrary values for boolean parameters. ( #15609 )
...
builtins and extension module functions and methods that expect boolean values for parameters now accept any Python object rather than just a bool or int type. This is more consistent with how native Python code itself behaves.
2022-12-03 11:52:21 -08:00
Guido van Rossum
acf9184e6b
GH-98831: Support cache effects in super- and macro instructions ( #99601 )
2022-12-02 19:57:30 -08:00
Eric Snow
0547a981ae
gh-99741: Clean Up the _xxsubinterpreters Module (gh-99940)
...
This cleanup up resolves a few subtle bugs and makes the implementation for multi-phase init much cleaner.
https://github.com/python/cpython/issues/99741
2022-12-02 11:36:57 -07:00
Irit Katriel
ab02262cd0
gh-99955: standardize return values of functions in assembler and optimizer. ( #99956 )
2022-12-02 17:43:10 +00:00
Eric Snow
b4f3505549
gh-99741: Fix the Cross-Interpreter Data API (gh-99939)
...
There were some minor issues that showed up while I was working on porting _xxsubinterpreters to multi-phase init. This fixes them.
https://github.com/python/cpython/issues/99741
2022-12-02 10:39:17 -07:00
Itamar Ostricher
3c137dc613
GH-91054: Add code object watchers API (GH-99859)
...
* Add API to allow extensions to set callback function on creation and destruction of PyCodeObject
Co-authored-by: Ye11ow-Flash <janshah@cs.stonybrook.edu>
2022-12-02 17:28:27 +00:00
Serhiy Storchaka
787764219f
gh-89189: More compact range iterator (GH-27986)
2022-11-30 23:04:30 +02:00
Irit Katriel
18a6967544
GH-99877)
2022-11-30 16:16:54 +00:00
Irit Katriel
ac12e3941f
gh-87092: move all localsplus preparation into separate function called from assembler stage (GH-99869)
2022-11-30 12:37:30 +00:00
Kumar Aditya
fe17d35313
GH-81057: remove static state from suggestions.c ( #99411 )
2022-11-30 16:55:16 +05:30
colorfulappl
0da728387c
gh-64490: Fix bugs in argument clinic varargs processing ( #32092 )
2022-11-24 20:56:50 +01:00
Irit Katriel
ae185fdcca
gh-99708: fix bug where compiler crashes on if expression with an empty body block (GH-99732)
2022-11-24 10:59:07 +00:00
Victor Stinner
81f7359f67
gh-99537: Use Py_SETREF(var, NULL) in C code ( #99687 )
...
Replace "Py_DECREF(var); var = NULL;" with "Py_SETREF(var, NULL);".
2022-11-23 14:57:50 +01:00
Guido van Rossum
8f18ac04d3
GH-98831: Add macro
and op
and their implementation to DSL ( #99495 )
...
Newly supported interpreter definition syntax:
- `op(NAME, (input_stack_effects -- output_stack_effects)) { ... }`
- `macro(NAME) = OP1 + OP2;`
Also some other random improvements:
- Convert `WITH_EXCEPT_START` to use stack effects
- Fix lexer to balk at unrecognized characters, e.g. `@`
- Fix moved output names; support object pointers in cache
- Introduce `error()` method to print errors
- Introduce read_uint16(p) as equivalent to `*p`
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
2022-11-22 16:04:57 -08:00
Skip Montanaro
d4cf192826
gh-88226: Emit TARGET labels in Python/ceval.c when debugging, even if computed gotos aren't enabled (GH-98265)
...
Keep target labels when debugging, but don't warn about lack of use.
Co-authored-by: Eryk Sun <eryksun@gmail.com>
2022-11-22 22:13:54 +02:00
Victor Stinner
135ec7cefb
gh-99537: Use Py_SETREF() function in C code ( #99657 )
...
Fix potential race condition in code patterns:
* Replace "Py_DECREF(var); var = new;" with "Py_SETREF(var, new);"
* Replace "Py_XDECREF(var); var = new;" with "Py_XSETREF(var, new);"
* Replace "Py_CLEAR(var); var = new;" with "Py_XSETREF(var, new);"
Other changes:
* Replace "old = var; var = new; Py_DECREF(var)"
with "Py_SETREF(var, new);"
* Replace "old = var; var = new; Py_XDECREF(var)"
with "Py_XSETREF(var, new);"
* And remove the "old" variable.
2022-11-22 13:39:11 +01:00
mpage
3db0a21f73
gh-91053: Add an optional callback that is invoked whenever a function is modified ( #98175 )
2022-11-22 13:06:44 +01:00
Victor Stinner
cb2ef8b2ac
gh-99578: Fix refleak in _imp.create_builtin() ( #99642 )
...
Fix a reference bug in _imp.create_builtin() after the creation of
the first sub-interpreter for modules "builtins" and "sys".
2022-11-21 12:14:54 +01:00
Ronald Oussoren
cdde29dde9
gh-99337: Fix compile errors with gcc 12 on macOS ( #99470 )
...
Fix a number of compile errors with GCC-12 on macOS:
1. In pylifecycle.c the compile rejects _Pragma within a declaration
2. posixmodule.c was missing a number of ..._RUNTIME macros for non-clang on macOS
3. _ctypes assumed that __builtin_available is always present on macOS
2022-11-21 10:50:20 +01:00
Guido van Rossum
4f5e1cb00a
GH-98831: Refactor and fix cases generator ( #99526 )
...
Also complete cache effects for BINARY_SUBSCR family.
2022-11-17 17:06:07 -08:00
Brandt Bucher
b629fdd88a
GH-99298: Clean up attribute specializations (GH-99398)
2022-11-17 15:09:18 -08:00
Brandt Bucher
8555dee5ae
GH-98686: Get rid of BINARY_OP_GENERIC and COMPARE_OP_GENERIC (GH-99399)
2022-11-17 11:36:57 -08:00
Brandt Bucher
6f8b0e781c
Add a macro for "inlining" new frames (GH-99490)
2022-11-17 11:36:03 -08:00
Steve Dower
5fdd49dc65
gh-99377: Revert audit events for thread state creation and free, because the GIL is not properly held at these times (GH-99543)
2022-11-17 00:24:16 +00:00
Eric Snow
9db1e17c80
gh-81057: Move the global Dict-Related Versions to _PyRuntimeState (gh-99497)
...
We also move the global func version.
https://github.com/python/cpython/issues/81057
2022-11-16 10:37:29 -07:00
Victor Stinner
8211cf5d28
gh-99300: Replace Py_INCREF() with Py_NewRef() ( #99530 )
...
Replace Py_INCREF() and Py_XINCREF() using a cast with Py_NewRef()
and Py_XNewRef().
2022-11-16 18:34:24 +01:00
Steve Dower
19c1462e8d
gh-99377: Add audit events for thread creation and clear (GH-99378)
2022-11-16 17:15:52 +00:00