summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBénédikt Tran <10796600+picnixz@users.noreply.github.com>2024-12-05 15:01:59 (GMT)
committerGitHub <noreply@github.com>2024-12-05 15:01:59 (GMT)
commit67b9a5331ae45aa126877d7f96a1e235600f9c4b (patch)
tree8311be1530fa2a81fab9e415c2849b40e493d653
parentfcbe6ecdb6ed4dd93b2ee144f89a73af755e2634 (diff)
downloadcpython-67b9a5331ae45aa126877d7f96a1e235600f9c4b.zip
cpython-67b9a5331ae45aa126877d7f96a1e235600f9c4b.tar.gz
cpython-67b9a5331ae45aa126877d7f96a1e235600f9c4b.tar.bz2
gh-127413: allow to show specialized bytecode via `dis` CLI (#127414)
-rw-r--r--Doc/library/dis.rst8
-rw-r--r--Doc/whatsnew/3.14.rst6
-rw-r--r--Lib/dis.py5
-rw-r--r--Misc/NEWS.d/next/Library/2024-11-29-14-45-26.gh-issue-127413.z11AUc.rst2
4 files changed, 19 insertions, 2 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index e2926f2..f8f4188 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -60,6 +60,8 @@ interpreter.
The :option:`-P <dis --show-positions>` command-line option
and the ``show_positions`` argument were added.
+ The :option:`-S <dis --specialized>` command-line option is added.
+
Example: Given the function :func:`!myfunc`::
def myfunc(alist):
@@ -89,7 +91,7 @@ The :mod:`dis` module can be invoked as a script from the command line:
.. code-block:: sh
- python -m dis [-h] [-C] [-O] [-P] [infile]
+ python -m dis [-h] [-C] [-O] [-P] [-S] [infile]
The following options are accepted:
@@ -111,6 +113,10 @@ The following options are accepted:
Show positions of instructions in the source code.
+.. cmdoption:: -S, --specialized
+
+ Show specialized bytecode.
+
If :file:`infile` is specified, its disassembled code will be written to stdout.
Otherwise, disassembly is performed on compiled source code received from stdin.
diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst
index 52a6d6e..e83c509 100644
--- a/Doc/whatsnew/3.14.rst
+++ b/Doc/whatsnew/3.14.rst
@@ -348,12 +348,18 @@ dis
This feature is also exposed via :option:`dis --show-positions`.
(Contributed by Bénédikt Tran in :gh:`123165`.)
+* Add the :option:`dis --specialized` command-line option to
+ show specialized bytecode.
+ (Contributed by Bénédikt Tran in :gh:`127413`.)
+
+
errno
-----
* Add :data:`errno.EHWPOISON` error code.
(Contributed by James Roy in :gh:`126585`.)
+
fractions
---------
diff --git a/Lib/dis.py b/Lib/dis.py
index 1718e39..6b3e9ef 100644
--- a/Lib/dis.py
+++ b/Lib/dis.py
@@ -1125,6 +1125,8 @@ def main():
help='show instruction offsets')
parser.add_argument('-P', '--show-positions', action='store_true',
help='show instruction positions')
+ parser.add_argument('-S', '--specialized', action='store_true',
+ help='show specialized bytecode')
parser.add_argument('infile', nargs='?', default='-')
args = parser.parse_args()
if args.infile == '-':
@@ -1135,7 +1137,8 @@ def main():
with open(args.infile, 'rb') as infile:
source = infile.read()
code = compile(source, name, "exec")
- dis(code, show_caches=args.show_caches, show_offsets=args.show_offsets, show_positions=args.show_positions)
+ dis(code, show_caches=args.show_caches, adaptive=args.specialized,
+ show_offsets=args.show_offsets, show_positions=args.show_positions)
if __name__ == "__main__":
main()
diff --git a/Misc/NEWS.d/next/Library/2024-11-29-14-45-26.gh-issue-127413.z11AUc.rst b/Misc/NEWS.d/next/Library/2024-11-29-14-45-26.gh-issue-127413.z11AUc.rst
new file mode 100644
index 0000000..2330fb6
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-11-29-14-45-26.gh-issue-127413.z11AUc.rst
@@ -0,0 +1,2 @@
+Add the :option:`dis --specialized` command-line option to show specialized
+bytecode. Patch by Bénédikt Tran.