-
-
Notifications
You must be signed in to change notification settings - Fork 31.9k
IGNORE: Project uops forever #107945
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
IGNORE: Project uops forever #107945
Conversation
This is only the first step for doing `CALL` in Tier 2. The next step involves tracing into the called code object. After that we'll have to do the remaining `CALL` specialization. Finally we'll have to tweak various things like `KW_NAMES`, and possibly move the `NULL` (for method calls) *above* the callable. But those are things for future PRs. Note: this moves setting `frame->return_offset` directly in front of `DISPATCH_INLINED()`, to make it easier to move it into `_PUSH_FRAME`.
Instead, the special case is an opcode using SAVE_FRAME_STATE(). Introducing #if TIER_ONE and #if TIER_TWO so we can implement _PUSH_FRAME differently for both tiers.
Instead, we special-case SAVE_IP: - Its Tier 2 expansion sets oparg to the instruction offset - In Tier 1 it is a no-op (and skipped if present in a macro)
- This uses the function-by-version cache I just added - There's not yet a way to trace back via `RETURN_VALUE`
This should fix leaks and hopefully most failing tests.
At least one of the test failures (there aren't very many), in test_traceback.py, could be due to the missing def test_long_context_chain(self):
def f():
try:
1/0
except:
f()
try:
f()
except RecursionError as e:
exc_obj = e
else:
self.fail("Exception not raised") Although there's probably more going on, since the bug is rather shy: I can repro it only by running the entire test_traceback.py file, not by selectively only running this one test. (Possibly because the other tests contribute to the stack overflow.) Anyway, this is enough to keep gh-107793 and gh-107925 in draft mode until I've figured out how to add the recursion checks back. |
(This is a variant of #107793 with -Xuops always enabled, to see if that would pass all tests. We should not merge this, as -Xuops is currently slower than the default interpreter.)