concretizer: optimized for preferred virtuals before recent versions

This commit is contained in:
Todd Gamblin 2020-01-02 18:50:11 -08:00
parent f365373a3d
commit 04295f6531
2 changed files with 5 additions and 5 deletions

View File

@ -541,7 +541,7 @@ def virtual_providers(self):
for vspec in sorted(self.possible_virtuals):
self.fact(fn.virtual(vspec))
for provider in sorted(spack.repo.path.providers_for(vspec)):
# TODO: handle versioned virtuals
# TODO: handle versioned and conditional virtuals
self.fact(fn.provides_virtual(provider.name, vspec))
def generate_asp_program(self, specs):

View File

@ -210,11 +210,11 @@ root(D, 1) :- not root(D), node(D).
% prefer default variants
#minimize { N*R@5,P,V,X : variant_not_default(P, V, X, N), root(P, R) }.
% prefer more recent versions.
#minimize{ N@4,P,V : version_weight(P, V, N) }.
% pick most preferred virtual providers
#minimize{ N*R@3,D : provider_weight(D, N), root(P, R) }.
#minimize{ N*R@4,D : provider_weight(D, N), root(P, R) }.
% prefer more recent versions.
#minimize{ N@3,P,V : version_weight(P, V, N) }.
% compiler preferences
#maximize{ N@2,P : compiler_match(P, N) }.