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

Speed up resolution by approximating unsatisfied names #148

Conversation

notatallshaw
Copy link
Collaborator

Fixes #147

Creating as a draft PR because it currently causes a lot of test failures. I don't understand yet if that's because this approach is ultimately unsound or just that some of the assumptions about how resolvelib works are broken, but resolvelib still always finds a correct resolution. If anyone has time to assist in understanding these test failures or explaining what they mean that would help, but otherwise I will figure them out.

Using @pradyunsg's https://github.com/pradyunsg/pip-resolver-benchmarks I see a significant resolution time improve of ~5.5x in the pyrax_198 scenario.

@notatallshaw
Copy link
Collaborator Author

notatallshaw commented Dec 7, 2023

Closing, as implemented this isn't right.

I think it might be possible to salvage the optimization approach, I'm make another PR once/if I have one that passes the tests.

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.

For n packages there are O(n^2) calls to _is_current_pin_satisfying
1 participant