◐ Shell
reader mode source ↗
Skip to content

GH-104584: Miscellaneous fixes for -Xuops#106908

Merged
brandtbucher merged 6 commits into
python:mainfrom
brandtbucher:uop-fixes
Jul 20, 2023
Merged

GH-104584: Miscellaneous fixes for -Xuops#106908
brandtbucher merged 6 commits into
python:mainfrom
brandtbucher:uop-fixes

Conversation

@brandtbucher

@brandtbucher brandtbucher commented Jul 20, 2023

Copy link
Copy Markdown
Member

This fixes all of the tests that fail with the optimizer on.

By file:

  • Lib/dis.py: Teach dis how to parse bytecode containing ENTER_EXECUTOR or INSTRUMENTED_* instructions (by parsing the original code string instead and swapping in the adaptive opcodes at the last minute).
    • Fixes test_dis.
  • Lib/test/test_capi/test_misc.py and Lib/test_dis.py: Modify the tests' expected behavior when an optimizer is active.
    • Fixes test_dis and test_capi.
  • Python/bytecodes.c, Python/generated_cases.c.h, and Python/optimizer.c: Don't run the optimizer on instrumented back-edges.
    • Fixes test_monitoring, test_sys_settrace, and test_trace.
  • Python/executor_cases.c.h and Tools/cases_generator/generate_cases.py: Check the eval breaker when interpreting uops to avoid infinite closed loops.
    • Fixes test_gdb and test_os.
  • Python/pylifecycle.c: Fix refleak when installing optimizer.
    • Fixes test_embed.

@gvanrossum gvanrossum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hide comment

Thank you!!!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

interpreter-core type-bug An unexpected behavior, bug, or error

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants