-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dis: Show names of intrinsics #103963
Comments
@jkchandalia are you interested in this? |
@iritkatriel I can work on this. |
Great. Have a look at /Tools/build/generate_opcode_h.py |
Use |
@jkchandalia thanks! It would be nice for me if this can make it in before the 3.12 feature freeze (May 8), since #103764 relies heavily on intrinsics, so this feature will make the bytecode generated by that PR much easier to understand. If that timeline is too tight for you, I'm happy to have a go at implementing this myself. |
@JelleZijlstra that timeline is fine for me. |
Great! Let me know if you need any help. FYI I think these are some of the easiest ways to trigger intrinsics on current main for testing:
|
Absolutely, thank you. And I appreciate the examples. |
@JelleZijlstra I've pushed my branch (https://github.com/jkchandalia/cpython/tree/display_intrinsics_names) and I wasn't quite sure if it's ready for a PR but can definitely open one if that's easier for feedback/discussion.
|
Looks great! Feel free to open a draft PR and we can get it over the finish line. You can get the CALL_INTRINSIC_2 with
I don't think it's necessary to test every single one of the intrinsics in test_dis. I would suggest simply expanding |
Sounds good. |
Thanks for your contribution @jkchandalia! |
* main: (61 commits) pythongh-64595: Argument Clinic: Touch source file if any output file changed (python#104152) pythongh-64631: Test exception messages in cloned Argument Clinic funcs (python#104167) pythongh-68395: Avoid naming conflicts by mangling variable names in Argument Clinic (python#104065) pythongh-64658: Expand Argument Clinic return converter docs (python#104175) pythonGH-103092: port `_asyncio` freelist to module state (python#104196) pythongh-104051: fix crash in test_xxtestfuzz with -We (python#104052) pythongh-104190: fix ubsan crash (python#104191) pythongh-104106: Add gcc fallback of mkfifoat/mknodat for macOS (pythongh-104129) pythonGH-104142: Fix _Py_RefcntAdd to respect immortality (pythonGH-104143) pythongh-104112: link from cached_property docs to method-caching FAQ (python#104113) pythongh-68968: Correcting message display issue with assertEqual (python#103937) pythonGH-103899: Provide a hint when accidentally calling a module (pythonGH-103900) pythongh-103963: fix 'make regen-opcode' in out-of-tree builds (python#104177) pythongh-102500: Add PEP 688 and 698 to the 3.12 release highlights (python#104174) pythonGH-81079: Add case_sensitive argument to `pathlib.Path.glob()` (pythonGH-102710) pythongh-91896: Deprecate collections.abc.ByteString (python#102096) pythongh-99593: Add tests for Unicode C API (part 2) (python#99868) pythongh-102500: Document PEP 688 (python#102571) pythongh-102500: Implement PEP 688 (python#102521) pythongh-96534: socketmodule: support FreeBSD divert(4) socket (python#96536) ...
For
CALL_INTRINSIC_*
opcodes,dis
currently just shows the number, which makes it hard to figure out what the code actually does:It would be nice if this instead said
Possible implementation strategy:
pycore_intrinsics.h
is generated from opcode.py (bonus: we no longer have to manually update MAX_INTRINSIC_1)dis
learns to read the intrinsic names from opcode.pyLinked PRs
The text was updated successfully, but these errors were encountered: