Guido van Rossum
5134ef4878
GH-98831: Identify instructions that don't use oparg ( #100957 )
...
For these the instr_format field uses IX instead of IB.
Register instructions use IX, IB, IBBX, IBBB, etc.
Also: Include the closing '}' in Block.tokens, for completeness
2023-01-13 17:06:45 -08:00
Steve Dower
b5d4347950
gh-86682: Adds sys._getframemodulename as an alternative to using _getframe (GH-99520)
...
Also updates calls in collections, doctest, enum, and typing modules to use _getframemodulename first when available.
2023-01-13 11:31:06 +00:00
Mark Shannon
6e4e14d98f
GH-100923: Embed jump mask in `COMPARE_OP` oparg (GH-100924)
2023-01-11 20:40:43 +00:00
Guido van Rossum
3f3c78e32f
GH-98831: Refactor instr format code and change to enum ( #100895 )
2023-01-09 15:53:01 -08:00
Brandt Bucher
61762b9387
GH-100126: Skip incomplete frames in more places (GH-100613)
2023-01-09 12:20:04 -08:00
Nikita Sobolev
bc0a686f82
gh-87447: Fix walrus comprehension rebind checking ( #100581 )
...
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2023-01-08 15:51:29 -07:00
Benjamin Peterson
11f99323c2
Update copyright years to 2023. (gh-100848)
2023-01-08 09:13:25 -06:00
Nnarol
0741da8d28
GH-90829: Fix empty iterable error message in min/max ( #31181 )
2023-01-08 19:21:20 +05:30
Shantanu
a2141882f2
gh-100776: Fix misleading default value in help(input) ( #100788 )
2023-01-08 13:27:41 +05:30
Carl Meyer
7116030a25
gh-88696: clean up dead argument to compiler_make_closure (GH-100806)
2023-01-07 12:20:48 +00:00
Irit Katriel
15c44789bb
gh-100758: Refactor initialisation of frame headers into a single function (_PyFrame_Initialize) (GH-100759)
2023-01-06 14:55:56 +00:00
Mark Shannon
78068126a1
GH-99005: More intrinsics (GH-100774)
...
* Remove UNARY_POSITIVE, LIST_TO_TUPLE and ASYNC_GEN_WRAP, replacing them with intrinsics.
2023-01-06 14:47:57 +00:00
Zachary Ware
af5149f30b
gh-98831: Regenerate Python/opcode_metadata.h (GH-100778)
2023-01-05 15:47:18 -06:00
Guido van Rossum
14b7f00fdf
GH-98831: Update generate_cases.py: register inst, opcode_metadata.h ( #100735 )
...
(These aren't used yet, but may be coming soon,
and it's easier to keep this tool the same between branches.)
Added a sanity check for all this to compile.c.
Co-authored-by: Irit Katriel <iritkatriel@yahoo.com>
2023-01-05 13:01:07 -08:00
Mark Shannon
28187141cc
GH-99005: Add `CALL_INTRINSIC_1` instruction (GH-100771)
...
* Remove PRINT_EXPR instruction
* Remove STOPITERATION_ERROR instruction
* Remove IMPORT_STAR instruction
2023-01-05 16:05:51 +00:00
Mark Shannon
f20c553a45
GH-100288: Remove LOAD_ATTR_METHOD_WITH_DICT instruction. (GH-100753)
2023-01-05 12:20:09 +00:00
Irit Katriel
52017dbe16
gh-100747: some compiler macros use c instead of C to access the compiler ( #100748 )
2023-01-04 20:19:20 +00:00
Mark Shannon
15aecf8dd7
GH-100719: Remove the `co_nplaincellvars` field from code objects. (GH-100721)
2023-01-04 15:41:39 +00:00
L. A. F. Pereira
e6d4440782
gh-100146: Steal references from stack when building a list ( #100147 )
...
When executing the BUILD_LIST opcode, steal the references from the stack,
in a manner similar to the BUILD_TUPLE opcode. Implement this by offloading
the logic to a new private API, _PyList_FromArraySteal(), that works similarly
to _PyTuple_FromArraySteal().
This way, instead of performing multiple stack pointer adjustments while the
list is being initialized, the stack is adjusted only once and a fast memory
copy operation is performed in one fell swoop.
2023-01-03 10:49:49 -08:00
Éric
46521826cb
gh-95778: add doc missing in some places (GH-100627)
2022-12-30 13:21:15 -08:00
Nikita Sobolev
5e1adb4f88
gh-100577: Replace `assert(0)` with `Py_UNREACHABLE` in `symtable.c` ( #100579 )
2022-12-28 21:01:53 +05:30
Guido van Rossum
08e5594cf3
GH-98831: Modernize a ton of simpler instructions ( #100545 )
...
* load_const and load_fast aren't families for now
* Don't decref unmoved names
* Modernize GET_ANEXT
* Modernize GET_AWAITABLE
* Modernize ASYNC_GEN_WRAP
* Modernize YIELD_VALUE
* Modernize POP_EXCEPT (in more than one way)
* Modernize PREP_RERAISE_STAR
* Modernize LOAD_ASSERTION_ERROR
* Modernize LOAD_BUILD_CLASS
* Modernize STORE_NAME
* Modernize LOAD_NAME
* Modernize LOAD_CLASSDEREF
* Modernize LOAD_DEREF
* Modernize STORE_DEREF
* Modernize COPY_FREE_VARS (mark it as done)
* Modernize LIST_TO_TUPLE
* Modernize LIST_EXTEND
* Modernize SET_UPDATE
* Modernize SETUP_ANNOTATIONS
* Modernize DICT_UPDATE
* Modernize DICT_MERGE
* Modernize MAP_ADD
* Modernize IS_OP
* Modernize CONTAINS_OP
* Modernize CHECK_EXC_MATCH
* Modernize IMPORT_NAME
* Modernize IMPORT_STAR
* Modernize IMPORT_FROM
* Modernize JUMP_FORWARD (mark it as done)
* Modernize JUMP_BACKWARD (mark it as done)
2022-12-27 17:11:03 -08:00
Nikita Sobolev
bdfb694386
gh-100357: Convert several functions in `bltinsmodule` to AC ( #100358 )
2022-12-24 06:45:47 -08:00
Sebastian Berg
474220e3a5
gh-99947: Ensure unreported errors are chained for SystemError during import (GH-99946)
2022-12-23 15:43:19 -08:00
Raymond Hettinger
5d84966cce
GH-100425: Improve accuracy of builtin sum() for float inputs (GH-100426)
2022-12-23 14:35:58 -08:00
Ken Jin
36d358348d
Revert "gh-100288: Specialise LOAD_ATTR_METHOD for managed dictionaries (GH-100289)" ( #100468 )
...
This reverts commit c3c7848a48
.
2022-12-24 01:48:43 +08:00
Ken Jin
c3c7848a48
gh-100288: Specialise LOAD_ATTR_METHOD for managed dictionaries (GH-100289)
2022-12-24 00:26:42 +08:00
Irit Katriel
2659036c75
GH-100459: fix copy-paste errors in specialization stats (GH-100460)
2022-12-23 14:42:24 +00:00
Brandt Bucher
09edde95f4
GH-99554: Trim trailing whitespace (GH-100435)
...
Automerge-Triggered-By: GH:brandtbucher
2022-12-22 12:13:51 -08:00
penguin_wwy
a02161286a
GH-99770: Make the correct call specialization fail kind show up in the stats (GH-99771)
2022-12-22 12:44:59 +00:00
Pieter Eendebak
2b82c36f17
gh-99761: Add `_PyLong_IsPositiveSingleDigit` function to check for single digit integers ( #100064 )
2022-12-22 17:00:18 +05:30
Brandt Bucher
3c033a2e6f
GH-99554: Pack location tables more effectively (GH-99556)
2022-12-21 16:41:18 -08:00
Dennis Sweeney
c18d831188
gh-100188: Reduce misses in BINARY_SUBSCR_(LIST/TUPLE)_INT ( #100189 )
...
Don't specialize if the index is negative.
2022-12-20 15:46:16 -05:00
Jeremy Paige
1cf3d78c92
Correct CVE-2020-10735 documentation ( #100306 )
2022-12-18 12:41:21 +05:30
colorfulappl
efbb1eb9f5
gh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing ( #99890 )
...
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2022-12-17 12:07:44 +05:30
Guido van Rossum
9cdd2fa63b
GH-98831: Add DECREF_INPUTS(), expanding to DECREF() each stack input ( #100205 )
...
The presence of this macro indicates that a particular instruction
may be considered for conversion to a register-based format
(see https://github.com/faster-cpython/ideas/issues/485 ).
An invariant (currently unchecked) is that `DEOPT_IF()` may only
occur *before* `DECREF_INPUTS()`, and `ERROR_IF()` may only occur
*after* it. One reason not to check this is that there are a few
places where we insert *two* `DECREF_INPUTS()` calls, in different
branches of the code. The invariant checking would have to be able
to do some flow control analysis to understand this.
Note that many instructions, especially specialized ones,
can't be converted to use this macro straightforwardly.
This is because the generator currently only generates plain
`Py_DECREF(variable)` statements, and cannot generate
things like `_Py_DECREF_SPECIALIZED()` let alone deal with
`_PyList_AppendTakeRef()`.
2022-12-16 20:45:55 -08:00
Brandt Bucher
9076455d1b
GH-90043: Handle NaNs in COMPARE_OP_FLOAT_JUMP (GH-100278)
2022-12-16 10:18:31 -08:00
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