GH-98831: Implement array support in cases generator#100912
Conversation
|
🤖 New build scheduled with the buildbot fleet by @gvanrossum for commit 597fd69 🤖 If you want to schedule another build, you need to add the |
Sorry, something went wrong.
brandtbucher
left a comment
There was a problem hiding this comment.
My computer is forcing a restart on me in two minutes, so here's what I've got. I still need to finish looking at test_generator.py and generate_cases.py tomorrow (there's a lot of new logic that I don't quite follow yet).
Sorry, something went wrong.
|
@brandtbucher This should be ready for your review now. I don't intend to convert the remaining opcodes that have an array stack effect -- they either have an output array (for which this logic doesn't really work) or they are one of the main CALL specializations (wow there are a lot of those). Let me know if I can explicate something for you. |
Sorry, something went wrong.
brandtbucher
left a comment
There was a problem hiding this comment.
Thanks for your patience. A few more things (mostly minor):
Sorry, something went wrong.
Anything that's not 'oparg' or 'oparg*2' will be parenthesized.
|
If the buildbot tests pass I'll just merge it, unless you strenuously object. |
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @gvanrossum for commit c7edea2 🤖 If you want to schedule another build, you need to add the |
Sorry, something went wrong.
|
I'm just gonna land now. The "ARM64 Windows PR" buildbot is read, but it's been red for a week. |
Sorry, something went wrong.
There are some issues, but as Mark said we needn't attempt to get the generator to do everything (at least not right now).
In particular, as I mentioned in the meeting, there's no full support for output arrays (but maybe we'll never need that).
While I don't envision super-instructions with array operands, once macros become more popular they may well need arrays -- that's currently not supported.
We might want to consider a macro to DECREF an array of object pointers; this is currently done in an ad-hoc fashion.