Skip to content
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

PEP 558: Adopt Python level semantics from PEP 667 #2124

Merged
merged 3 commits into from
Dec 22, 2021

Conversation

ncoghlan
Copy link
Contributor

  • fast locals proxy never assumes the value cache is already up to date
  • operations become O(n) as required to avoid that assumption
  • remove *View() APIs from proposal due to algorithmic complexity issue
  • add Python pseudo-code to the PEP 667 comparison section
  • reword PEP 667 comparison section to focus on the remaining differences
    in the C API proposal

* fast locals proxy never assumes the value cache is already up to date
* operations become O(n) as required to avoid that assumption
* remove `*View()` APIs from proposal due to algorithmic complexity issue
* add Python pseudo-code to the PEP 667 comparison section
* reword PEP 667 comparison section to focus on the remaining differences
  in the C API proposal
@gvanrossum
Copy link
Member

Hi Nick, what are you waiting for here? I would like to get a decision from the SC before 3.11 goes into feature freeze, and I think the SC should be given at least two months lead time (they usually have a long queue and I don't want to get too close to the feature freeze deadline, as they have a tendency to suddenly push everything to the next release if something urgent comes up).

@ncoghlan ncoghlan merged commit dedc9d2 into python:main Dec 22, 2021
@ncoghlan
Copy link
Contributor Author

@gvanrossum Sorry about that - I thought I had merged this when I made the original PR, but clearly I failed to come back and click the button after the build finished.

@gvanrossum
Copy link
Member

NP -- happens to me all the time. :-)

I hope that at this point the differences between 558 and 667 are small enough that we can let python-dev pick a winner or forge a compromise (rather than taking a contentious choice to the SC).

@ncoghlan
Copy link
Contributor Author

With any luck @markshannon will consider the proxy implementation oddities needed to keep the legacy API working acceptable now that they're not leaking through to the semantics of the new API anymore.

Then the C API break could be considered some time in the future strictly on its own merits (it would make the proxy implementation a bit cleaner and a bit faster on some operations, and I'd personally find the API break a lot more palatable if we did it only after the new API had already been available for a few releases)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants