| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
I'll continue next week :) |
Sorry, something went wrong.
- Add alignment requirement - Mention that ob_size is unreliable if you don't control it - Add some links for context - basicsize should include the base type in generaly not just PyObject This adds a “by-the-way” link to `PyObject_New`, which shouldn't be used for GC types. In order to be comfortable linking to it, I also add a link to `PyObject_GC_New` from its docs. And the same for `*Var` variants, while I'm here.
|
Should I review what you wrote now or do you prefer me to wait? |
Sorry, something went wrong.
|
Sorry, I missed the comment! I'd appreciate a review. The failure on 32-bit Debian is due to an existing bug, but such an exotic one that it's not worth fixing now: #130410 |
Sorry, something went wrong.
|
@picnixz, should I wait for your review? |
Sorry, something went wrong.
|
Oh I forgot... I'll have maybe a bit of time before taking my plane or I'll be back on Wednesday. If you want to wait until then, I'll review it otherwise just go ahead! |
Sorry, something went wrong.
There was a problem hiding this comment.
Some comments (hard to do a better review on a phone)
Sorry, something went wrong.
There was a problem hiding this comment.
Thank you for the review!
Sorry, something went wrong.
|
Thanks for the reviews everyone! |
Sorry, something went wrong.
There was a problem hiding this comment.
I don't think I've much more to say. My main concern was the unicode-exactness of the name which is now resolved so I'm fine.
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @encukou for commit 5ce595c 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F128950%2Fmerge If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
Sorry, something went wrong.
|
Almost tomorrow.... :) Thank you for the reviews, everyone! |
Sorry, something went wrong.
…-128950) - Restore max field size to sys.maxsize, as in Python 3.13 & below - PyCField: Split out bit/byte sizes/offsets. - Expose CField's size/offset data to Python code - Add generic checks for all the test structs/unions, using the newly exposed attrs
| Back | FazBrowse Home | New Git URL |
Expose the type of struct/union field descriptors (_ctypes._CField) as ctypes.CField. (This is mainly to make it easier to refer to it -- for typing and documentation. Creating CFields manually is not supported.)
Add attributes for easier introspection:
The existing offset remains, as an alias for byte_offset.
The existing size is unchanged. Usually it is the same as byte_size, but for bitfields, it contains a bit-packed combination of bit_size & bit_offset.
Update the repr() of CField.
Use the same values internally as well. (Except bit_size, which might overflow Py_ssize_t for very large types. Instead, in C use bitfield_size, which is 0 for non-bitfields and thus serves as is_bitfield flag. Different name used clarity.)
Old names are removed from the C implementation to ensure a clean transition.
For simplicity, I keep byte_size in CFieldObject for now, even though it's redundant: it's the size of the underlying type.
Add a generic test that ensures the values are consistent, and that we don't have overlapping fields in structs. Use this check throughout test_ctypes, wherever a potentially interesting Structure or Union is created. (Tests for how simple structs behave after they're created don't need the checks, but I erred on the side of adding checks.)
Lift the restriction on maximum field size that was temporarily added in GH-126938. The max size is now Py_ssize_t.
This PR does not yet touch cfield.c getters & setters: the bit-packed “size” argument is computed and passed to those.
📚 Documentation preview 📚: https://cpython-previews--128950.org.readthedocs.build/