Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
gh-115398: Increment PyExpat_CAPI_MAGIC for SetReparseDeferralEnabled addition#116301
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This is a followup to git commit6a95676 from Github PRpython#115623.
…nabled addition (pythonGH-116301)* Increment PyExpat_CAPI_MAGIC due to SetReparseDeferralEnabled addition.This is a followup to git commit6a95676 from Github PRpython#115623.* RESTify news API list.
This looks unnecessary: There's an extra size field that's also checked. See#115623 (comment) . |
…eferralEnabled addition (pythonGH-116301)"This reverts part of commiteda2963.
It's also hurting, so I have created pull request#116411 now to revert the bump. |
Revert "gh-115398: Increment PyExpat_CAPI_MAGIC for SetReparseDeferralEnabled addition (GH-116301)"This reverts part of commiteda2963. Why? this comment buried in an earlier code review explains:I checked again how that value is used in practice, it's here:https://github.com/python/cpython/blob/0c80da4c14d904a367968955544dd6ae58c8101c/Modules/_elementtree.c#L4363-L4372Based on that code my understanding is that loading bigger structs from the future is considered okay unless `PyExpat_CAPI_MAGIC` differs, which implies that (1) magic needs to stay the same to support loading the future from the past and (2) that `PyExpat_CAPI_MAGIC` should only ever change for changes that do not increase size (but keep it constant).To summarize, that supports your argument.I checked branches 3.8, 3.9, 3.10, 3.11, 3.12 now and they all have the same comparison code there so reverting that magic string bump will support seamless backporting.
I hadn't seen the earlier review comment, I just looked at the history of the magic and saw it was bumped up to 1.1 during a bugfix release 6+ years ago. I trust y'all's analysis. revert merged. |
…nabled addition (pythonGH-116301)* Increment PyExpat_CAPI_MAGIC due to SetReparseDeferralEnabled addition.This is a followup to git commit6a95676 from Github PRpython#115623.* RESTify news API list.
…16411)Revert "pythongh-115398: Increment PyExpat_CAPI_MAGIC for SetReparseDeferralEnabled addition (pythonGH-116301)"This reverts part of commiteda2963. Why? this comment buried in an earlier code review explains:I checked again how that value is used in practice, it's here:https://github.com/python/cpython/blob/0c80da4c14d904a367968955544dd6ae58c8101c/Modules/_elementtree.c#L4363-L4372Based on that code my understanding is that loading bigger structs from the future is considered okay unless `PyExpat_CAPI_MAGIC` differs, which implies that (1) magic needs to stay the same to support loading the future from the past and (2) that `PyExpat_CAPI_MAGIC` should only ever change for changes that do not increase size (but keep it constant).To summarize, that supports your argument.I checked branches 3.8, 3.9, 3.10, 3.11, 3.12 now and they all have the same comparison code there so reverting that magic string bump will support seamless backporting.
…nabled addition (pythonGH-116301)* Increment PyExpat_CAPI_MAGIC due to SetReparseDeferralEnabled addition.This is a followup to git commit6a95676 from Github PRpython#115623.* RESTify news API list.
…16411)Revert "pythongh-115398: Increment PyExpat_CAPI_MAGIC for SetReparseDeferralEnabled addition (pythonGH-116301)"This reverts part of commiteda2963. Why? this comment buried in an earlier code review explains:I checked again how that value is used in practice, it's here:https://github.com/python/cpython/blob/0c80da4c14d904a367968955544dd6ae58c8101c/Modules/_elementtree.c#L4363-L4372Based on that code my understanding is that loading bigger structs from the future is considered okay unless `PyExpat_CAPI_MAGIC` differs, which implies that (1) magic needs to stay the same to support loading the future from the past and (2) that `PyExpat_CAPI_MAGIC` should only ever change for changes that do not increase size (but keep it constant).To summarize, that supports your argument.I checked branches 3.8, 3.9, 3.10, 3.11, 3.12 now and they all have the same comparison code there so reverting that magic string bump will support seamless backporting.
Uh oh!
There was an error while loading.Please reload this page.
Increment PyExpat_CAPI_MAGIC due to SetReparseDeferralEnabled addition.
This is a followup to git commit6a95676 from Github PR#115623.
Also ReSTify's the NEWS entry.
XML_SetReparseDeferralEnabled
#115398