concretizer: optimized for preferred virtuals before recent versions
This commit is contained in:
parent
f365373a3d
commit
04295f6531
@ -541,7 +541,7 @@ def virtual_providers(self):
|
|||||||
for vspec in sorted(self.possible_virtuals):
|
for vspec in sorted(self.possible_virtuals):
|
||||||
self.fact(fn.virtual(vspec))
|
self.fact(fn.virtual(vspec))
|
||||||
for provider in sorted(spack.repo.path.providers_for(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))
|
self.fact(fn.provides_virtual(provider.name, vspec))
|
||||||
|
|
||||||
def generate_asp_program(self, specs):
|
def generate_asp_program(self, specs):
|
||||||
|
@ -210,11 +210,11 @@ root(D, 1) :- not root(D), node(D).
|
|||||||
% prefer default variants
|
% prefer default variants
|
||||||
#minimize { N*R@5,P,V,X : variant_not_default(P, V, X, N), root(P, R) }.
|
#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
|
% 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
|
% compiler preferences
|
||||||
#maximize{ N@2,P : compiler_match(P, N) }.
|
#maximize{ N@2,P : compiler_match(P, N) }.
|
||||||
|
Loading…
Reference in New Issue
Block a user