gh-98831: rewrite MAKE_FUNCTION and BUILD_SLICE in the instruction definition DSL by iritkatriel · Pull Request #101529 · python/cpython
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit 90ff55e 🤖
If you want to schedule another build, you need to add the :hammer: test-with-buildbots label again.
| kwdefaults if (oparg & 0x02), | ||
| annotations if (oparg & 0x04), | ||
| closure if (oparg & 0x08), | ||
| codeobj -- func)) { |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Too bad we can't write func: PyFunctionObject * yet -- I've gotta add that to the grammar, it would add the casts and save the ugly extra func_obj variable.
Comment on lines 3042 to 3037
| Py_DECREF(start); | ||
| Py_DECREF(stop); | ||
| Py_XDECREF(step); |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, we should augment DECREF_INPUTS() to use XDECREF for conditional inputs.
Comment on lines +3584 to +3591
| PyObject *annotations = (oparg & 0x04) ? PEEK(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0)) : NULL; | ||
| PyObject *kwdefaults = (oparg & 0x02) ? PEEK(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0)) : NULL; | ||
| PyObject *defaults = (oparg & 0x01) ? PEEK(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x01) ? 1 : 0)) : NULL; |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's hope the compiler optimizes this. (Though it's not perf critical.)