Jelle Zijlstra
e8e151d471
gh-120780: Show attribute name for LOAD_SPECIAL in dis output ( #120781 )
2024-06-20 07:07:24 -07:00
Jelle Zijlstra
98e855fcc1
gh-119180: Add LOAD_COMMON_CONSTANT opcode ( #119321 )
...
The PEP 649 implementation will require a way to load NotImplementedError
from the bytecode. @markshannon suggested implementing this by converting
LOAD_ASSERTION_ERROR into a more general mechanism for loading constants.
This PR adds this new opcode. I will work on the rest of the implementation
of the PEP separately.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2024-05-22 00:46:39 +00:00
Guido van Rossum
7d83f7bcc4
gh-118335: Configure Tier 2 interpreter at build time ( #118339 )
...
The code for Tier 2 is now only compiled when configured
with `--enable-experimental-jit[=yes|interpreter]`.
We drop support for `PYTHON_UOPS` and -`Xuops`,
but you can disable the interpreter or JIT
at runtime by setting `PYTHON_JIT=0`.
You can also build it without enabling it by default
using `--enable-experimental-jit=yes-off`;
enable with `PYTHON_JIT=1`.
On Windows, the `build.bat` script supports
`--experimental-jit`, `--experimental-jit-off`,
`--experimental-interpreter`.
In the C code, `_Py_JIT` is defined as before
when the JIT is enabled; the new variable
`_Py_TIER2` is defined when the JIT *or* the
interpreter is enabled. It is actually a bitmask:
1: JIT; 2: default-off; 4: interpreter.
2024-04-30 18:26:34 -07:00
Irit Katriel
d610d821fd
gh-112383: teach dis how to interpret ENTER_EXECUTOR ( #117171 )
2024-03-23 22:32:33 +00:00
Irit Katriel
74e6f4b32f
gh-112720: make it easier to subclass and modify dis.ArgResolver's jump arg resolution ( #115564 )
2024-02-16 19:25:19 +00:00
Serhiy Storchaka
b3d2427f22
gh-58032: Do not use argparse.FileType in module CLIs and scripts (GH-113649)
...
Open and close files manually. It prevents from leaking files,
preliminary creation of output files, and accidental closing of stdin
and stdout.
2024-01-10 15:07:19 +02:00
Irit Katriel
55ef998a8d
gh-112720: Move dis's cache output code to the Formatter, labels lookup to the arg_resolver. Reduce the number of parameters passed around. ( #113108 )
2023-12-15 12:28:22 +00:00
Irit Katriel
428c9812cb
gh-112962: in dis module, put cache information in the Instruction instead of creating fake Instructions to represent it ( #113016 )
2023-12-13 12:00:21 +00:00
Irit Katriel
c98c40227e
gh-112720: Move instruction formatting from the dis.Instruction class to a new class dis.InstructionFormatter. Add the ArgResolver class. ( #112722 )
2023-12-09 10:03:02 +00:00
Irit Katriel
162d3d428a
gh-112620: Fix dis error on show_cache with labels ( #112621 )
2023-12-03 12:12:49 +00:00
Irit Katriel
9eb3b35dd7
gh-112355: fix calculation of jump target of ENTER_EXECUTOR in dis ( #112377 )
2023-11-24 18:13:25 +00:00
Irit Katriel
89ddea4886
gh-112137: change dis output to show no-lineno as -- instead of None ( #112335 )
2023-11-23 14:34:27 +00:00
Irit Katriel
10e1a0c916
gh-112137: change dis output to display labels instead of offsets ( #112138 )
2023-11-22 22:36:55 +00:00
Irit Katriel
b2af50cb02
gh-111969: refactor to make it easier to construct a dis.Instruction object ( #111970 )
2023-11-12 14:06:02 +00:00
Radislav Chugunov
0d805b998d
gh-108826: Document `dis` module CLI and rename `_test` function to `main` ( #108827 )
...
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2023-10-10 16:31:28 -06:00
Guido van Rossum
6678ef41d2
Add --inline-caches flag to dis command line ( #110249 )
2023-10-03 00:49:34 +00:00
Corvin
24aa249a66
gh-107932: Fix dis module for bytecode that does not have an associated source line (GH-107988)
2023-08-25 09:31:26 +01:00
Irit Katriel
665a4391e1
gh-105481: generate op IDs from bytecode.c instead of hard coding them in opcode.py ( #107971 )
2023-08-16 22:25:18 +00:00
Brandt Bucher
a9caf9cf90
GH-105848: Simplify the arrangement of CALL's stack (GH-107788)
2023-08-09 18:19:39 +00:00
Irit Katriel
d77d973335
gh-105481: remove dependency of _inline_cache_entries on opname ( #107339 )
2023-07-27 14:15:25 +01:00
Brandt Bucher
214a25dd81
GH-104584: Miscellaneous fixes for -Xuops (GH-106908)
2023-07-20 16:35:39 +00:00
Brandt Bucher
7b2d94d875
GH-106008: Make implicit boolean conversions explicit (GH-106003)
2023-06-29 13:49:54 -07:00
Mark Shannon
1d857da7f0
GH-77273: Better bytecodes for f-strings (GH-6132)
2023-06-14 16:15:08 +01:00
Mark Shannon
09ffa69e2e
GH-105678: Split MAKE_FUNCTION into MAKE_FUNCTION and SET_FUNCTION_ATTRIBUTE (GH-105680)
2023-06-13 09:51:05 +01:00
Tomas R
18d16e93b6
gh-102676: Add more convenience properties to `dis.Instruction` ( #103969 )
...
Adds start_offset, cache_offset, end_offset, baseopcode,
baseopname, jump_target and oparg to dis.Instruction.
Also slightly improves the disassembly output by allowing
opnames to overflow into the space reserved for opargs.
2023-06-11 08:50:34 -07:00
Mark Shannon
0689340366
GH-105229: Replace some superinstructions with single instruction equivalent. (GH-105230)
2023-06-05 11:07:04 +01:00
Juhi Chandalia
872cbc6132
GH-103963: Make dis display names of args for intrinsics opcodes ( #104029 )
2023-05-02 19:00:17 -07:00
Juhi Chandalia
d45225bd66
GH-99944: Make dis display the value of oparg of KW_NAMES ( #103856 )
...
Co-authored-by: chilaxan <chilaxan@gmail.com>
2023-04-26 19:00:36 +01:00
Carl Meyer
0dc8b50d33
gh-87729: add LOAD_SUPER_ATTR instruction for faster super() ( #103497 )
...
This speeds up `super()` (by around 85%, for a simple one-level
`super().meth()` microbenchmark) by avoiding allocation of a new
single-use `super()` object on each use.
2023-04-24 22:22:14 +00:00
chgnrdv
2b6f5c3483
gh-102114: Make dis print more concise tracebacks for syntax errors in str inputs ( #102115 )
2023-04-15 06:53:31 +01:00
gaogaotiantian
34eb6f7276
gh-103046: Display current line correctly for `dis.disco()` with CACHE entries ( #103047 )
2023-03-27 23:22:06 +01:00
Irit Katriel
e1e9bab006
gh-102778: Add sys.last_exc, deprecate sys.last_type, sys.last_value,sys.last_traceback ( #102779 )
2023-03-18 11:47:11 +00:00
Mark Shannon
160f2fe2b9
GH-87849: Simplify stack effect of SEND and specialize it for generators and coroutines. (GH-101788)
2023-02-13 11:24:55 +00:00
penguin_wwy
753fc8a5d6
gh-101632: Add the new RETURN_CONST opcode ( #101633 )
2023-02-07 22:32:21 +00:00
Mark Shannon
6e4e14d98f
GH-100923: Embed jump mask in `COMPARE_OP` oparg (GH-100924)
2023-01-11 20:40:43 +00:00
Nikita Sobolev
e0b4d966a8
Remove unused variable from `dis._find_imports` ( #100396 )
2022-12-21 22:25:02 +05:30
Brandt Bucher
c7f5708714
GH-98686: Get rid of "adaptive" and "quick" instructions (GH-99182)
2022-11-09 10:50:09 -08:00
Pablo Galindo Salgado
c26500224f
bpo-40222: Mark exception table function in the dis module as private ( #95961 )
2022-08-14 15:42:31 +01:00
Irit Katriel
c57aad777a
gh-94216: add pseudo instructions to the dis/opcodes modules (GH-94241)
2022-07-01 15:33:35 +01:00
Dennis Sweeney
5fcfdd87c9
GH-91432: Specialize FOR_ITER (GH-91713)
...
* Adds FOR_ITER_LIST and FOR_ITER_RANGE specializations.
* Adds _PyLong_AssignValue() internal function to avoid temporary boxing of ints.
2022-06-21 11:19:26 +01:00
Brandt Bucher
f8e576be0a
GH-91389: Fix dis position information for CACHEs (GH-93663)
2022-06-16 13:49:32 -07:00
Ken Jin
b083450f88
GH-93429: Merge `LOAD_METHOD` back into `LOAD_ATTR` (GH-93430)
2022-06-14 11:36:22 +01:00
Dong-hee Na
b013804134
gh-92932: dis._unpack_opargs should handle EXTENDED_ARG_QUICK (gh-92945)
2022-06-03 11:29:27 +09:00
Brandt Bucher
3f61db4756
gh-90997: Move `CACHE` handling into `_unpack_opargs` ( #92409 )
...
* Move CACHE handling into _unpack_opargs
* Remove auto-added import
* blurb add
2022-05-06 18:57:08 +01:00
Brandt Bucher
93a666b5a5
gh-90997: Show cached inline values in `dis` output ( #92360 )
2022-05-06 15:18:09 +01:00
Irit Katriel
84b986ba10
gh-91276: revert the increase of dis output width (GH-92126)
2022-05-02 16:51:17 +01:00
penguin_wwy
e590379197
gh-90997: bpo-46841: Disassembly of quickened code (GH-32099)
2022-04-19 09:45:08 +01:00
Irit Katriel
e44f988b26
gh-91276: make space for longer opcodes in dis output (GH-91444)
2022-04-12 14:35:56 +01:00
Irit Katriel
dd207a6ac5
bpo-47120: make POP_JUMP_IF_TRUE/FALSE/NONE/NOT_NONE relative (GH-32400)
2022-04-11 10:40:24 +01:00
Irit Katriel
a00518d9ad
bpo-47120: Replace the JUMP_ABSOLUTE opcode by the relative JUMP_BACKWARD (GH-32115)
2022-03-31 14:14:15 +01:00