solver: requirements on virtual can influence provider weights#51282
solver: requirements on virtual can influence provider weights#51282haampie merged 5 commits intospack:developfrom
Conversation
Signed-off-by: Massimiliano Culpo <[email protected]>
Before this change, provider weights were determined just by package preferences. This could cause issues in cases where the preferred, or required, provider is not the default package preference. Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
|
Needs a bit more work to support It should drop the conflicting providers from the list of preferred ones to start counting at 0 for these penalties. |
Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
|
@alalazo Things are looking better with this PR. As a reminder, these are the four versions I tried. Before this PR, v001 and v003 were bad, v002 and v004 were good. Results: v001 is still bad (ok), v002/v003/v004 are good. There are slight differences between the concretization of v002 and v003/v004, but v003 and v004 are now identical |
|
I'll check the other issue in another PR. Currently we hardcoded a translation of |
Personally, I'd be ok with exiting with an error when running into the legacy syntax given that the new syntax works with your changes, but of course that's up to you and the other spack developers. Thanks for fixing this! |
|
You could compare the minor differences between v002 and v003/v004. The latter should now be superior, because the preference for a dependency on oneapi makes the concretizer toggle variants to minimize the number of "data only" packages (that do not depend on any compiler). |
Yes, I am happy with v003/v004, I don't think v002 is any better. In v002, it chooses to use a different libbsd that doesn't depend on libmd, but that doesn't affect us. |
|
This PR does not apply cleanly to 1.0 and will be dropped from the 1.0.3 release |
fixes #51267
Before this change, provider weights were determined just by package preferences. This could cause issues in cases where the preferred, or required, provider is not the "default" provider.
This PR changes the ASP setup to take into account the most common cases of requirements and strong preferences, so that the provider weights are set accordingly.