GH-98831: Implement basic cache effects
I apologize for the mess that generate_cases.py has become. I promise I will clean it up in the next PR.
This PR is a big step forwards though -- it supports cache effects and implements those for the BINARY_OP family (with one exception -- the "hemi-super-instruction" BINARY_OP_INPLACE_ADD_UNICODE). Check the generated code for the effects.
PS. Merge conflicts for Python/bytecodes.c are quite painful, it seems there are several cooks in this kitchen. :-)
- Issue: gh-98831
PS. I didn't implement a family that actually uses the cache (the 'counter' doesn't count, it's special since it is written, which our DSL doesn't support). But I figured I'd stop here -- keeping these PRs open for a long time is hard work due to merge conflicts.
PS. I didn't implement a family that actually uses the cache (the 'counter' doesn't count, it's special since it is written to, which our DSL doesn't support). But I figured I'd stop here -- keeping these PRs open for a long time is hard work due to merge conflicts.
Working on the refactor I now know for sure there are some bugs in that part. (EDIT: Fixed in GH-99408 but not here.)
When you're done making the requested changes, leave the comment: I have made the requested changes; please review again.
I have made the requested changes; please review again
(Well, I've answered everything and would like to merge this as-is so Brandt can continue on GH-99399.)
Thanks for making the requested changes!
@markshannon: please review the changes made to this pull request.