https://github.com/python/cpython/commit/67b9a5331ae45aa126877d7f96a1e235600f9c4b
commit: 67b9a5331ae45aa126877d7f96a1e235600f9c4b
branch: main
author: Bénédikt Tran <[email protected]>
committer: iritkatriel <[email protected]>
date: 2024-12-05T15:01:59Z
summary:

gh-127413: allow to show specialized bytecode via `dis` CLI (#127414)

files:
A Misc/NEWS.d/next/Library/2024-11-29-14-45-26.gh-issue-127413.z11AUc.rst
M Doc/library/dis.rst
M Doc/whatsnew/3.14.rst
M Lib/dis.py

diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index e2926f2440af6d..f8f4188d27b472 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 52a6d6e4340194..e83c509a025ab5 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 1718e39cceb638..6b3e9ef8399e1c 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 00000000000000..2330fb66253265
--- /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.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to