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

opt: improve handle_panic generated code #2074

Merged
merged 1 commit into from
Dec 24, 2021

Conversation

davidhewitt
Copy link
Member

I've been playing around with cargo llvm-lines a bit on the PyO3 codebase to find chunky functions which might want optimizing a bit for compile times.

pyo3::callback::handle_panic was an obvious target - it's called in every generated function and it ends up being one of the biggest single contributors to lib size.

Rearranging things a bit, and simplifying the Unsendable helper to remove the need for AssertUnwindSafe managed to cut the size of this function by about a third. (Renamed Unsendable to NotSend)

As a bonus, I think I made the NotSend error message nicer - see the UI test.

@davidhewitt davidhewitt merged commit a67180c into PyO3:main Dec 24, 2021
@davidhewitt davidhewitt deleted the python-tweaks branch December 24, 2021 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant