-
Notifications
You must be signed in to change notification settings - Fork 1.4k
dependency resolution performance #4007
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
dependency resolution performance #4007
Conversation
motivation: improve dependency resolution performance changes: * add informational diagnostics on manifest cache hit/miss * disable expensive optimization in pubgrub resolver that has no functional value given changes from swiftlang#3985 * adjust resolver workspace delgate to be less noisy given the difference in resolution callbacks
@swift-ci please smoke test |
@swift-ci please test package compatibility |
some of the background conversation from #4006 (the wip version of this): @tomerd @tomerd @SDGGiesbrecht If you remove this, then
While looking at it, I also noticed that this section and this section are now basically identical—comments and all. So you can probably reduce this to just the following and let it naturally fall through into the other, identical section. if version == pinnedVersion {
if self.emittedPinnedVersionIncompatibilities[node] ?? false { return [] }
self.emittedPinnedVersionIncompatibilities[node] = true
} It might be worth checking whether those remaining lines are actually helpful for performance. If not, you could get rid of @SDGGiesbrecht @abertelrud @tomerd afaict the code in question was added in aee02eb as an attempt to improve diagnostics but because it is so expensive it is also cached. we already undo the part that impacted the diagnostics in #3985 (which was wrong afaict) by taking a bit of a different approach to recording incompatibilities and such this PR is purely about performance gain by not running that expensive calculation any more since it no longer has any functional value |
Thanks for the background about diagnostics @tomerd. This looks great to me as far as I can tell. |
motivation: improve dependency resolution performance changes: * add informational diagnostics on manifest cache hit/miss * disable expensive optimization in pubgrub resolver that has no functional value given changes from swiftlang#3985 * adjust resolver workspace delgate to be less noisy given the difference in resolution callbacks
motivation: clean output to user changes: remove debug leftover from swiftlang#4007
motivation: clean output to user changes: remove debug leftover from swiftlang#4007
motivation: clean output to user changes: remove debug leftover from swiftlang#4007
motivation: clean output to user changes: remove debug leftover from #4007
motivation: improve dependency resolution performance changes: * add informational diagnostics on manifest cache hit/miss * disable expensive optimization in pubgrub resolver that has no functional value given changes from #3985 * adjust resolver workspace delgate to be less noisy given the difference in resolution callbacks
motivation: clean output to user changes: remove debug leftover from #4007
motivation: improve dependency resolution performance
changes:
follow on from #4006