Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
gh-111140: Adds PyLong_AsNativeBytes and PyLong_FromNative[Unsigned]Bytes functions #114886
gh-111140: Adds PyLong_AsNativeBytes and PyLong_FromNative[Unsigned]Bytes functions #114886
Changes from 18 commits
c86821e
cd6754a
bf86f85
22f3d14
0dc0bcc
c30e65a
9661b65
79d4942
bc9e48c
b4761be
043947f
761db5c
22c2a64
6e1a89a
7b44648
79dd452
9693afe
376e358
1f2cf3a
7f4431d
2649d94
39962de
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this return
size_t
rather thanint
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Negative values are required, so we'd have to do
Py_ssize_t
and notsize_t
. The cast is just as annoying either way unless we maken_bytes
also signed, which is then inconsistent with other APIs (but probably less bad than making it acceptint
).We might need some agreed upon guidelines for choosing types for these kinds of purposes.
int
is a very common return type, and IMHO that makes things easier for people trying to call this from non-C languages, but they probably have no choice but to supportPy_ssize_t
as a return type too and so it really wouldn't make a huge difference.I pity the poor CPU that has to convert a 32 billion bit number 🙃
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really need to focus on not mixing up signed/unsigned when I write a comment...
Yes,
Py_ssize_t
is one of the types that users need to support.I'd much prefer using
Py_ssize_t
for sizes. These are arbitrary-sized integers, after all; limited by available memory.