summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2020-11-17 11:32:21 +0100
committerTodd Gamblin <tgamblin@llnl.gov>2020-11-17 10:04:13 -0800
commit7ffad278d34bcc1bda7d5d355e1104a10a7c484a (patch)
tree034d778058c0acde8f7e015e50683c51c90caf8c /share
parentca31f52be332bbfb8e8d5248218a81d9123c4ba2 (diff)
downloadspack-7ffad278d34bcc1bda7d5d355e1104a10a7c484a.tar.gz
spack-7ffad278d34bcc1bda7d5d355e1104a10a7c484a.tar.bz2
spack-7ffad278d34bcc1bda7d5d355e1104a10a7c484a.tar.xz
spack-7ffad278d34bcc1bda7d5d355e1104a10a7c484a.zip
concretizer: modified weights for providers and matching for externals
This commit address the case of concretizing a root spec with a transitive conditional dependency on a virtual package, provided by an external. Before these modifications default variant values for the dependency bringing in the virtual package were not respected, and the external package providing the virtual was added to the DAG. The issue stems from two facts: - Selecting a provider has higher precedence than selecting default variants - To ensure that an external is preferred, we used a negative weight To solve it we shift all the providers weight so that: - External providers have a weight of 0 - Non external provider have a weight of 10 or more Using a weight of zero for external providers is such that having an external provider, if present, or not having a provider at all has the same effect on the higher priority minimization. Also fixed a few minor bugs in concretize.lp, that were causing spurious entries in the final answer set. Cleaned concretize.lp from leftover rules.
Diffstat (limited to 'share')
0 files changed, 0 insertions, 0 deletions