summaryrefslogtreecommitdiff
path: root/LICENSE-MIT
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2021-01-02 22:44:33 -0800
committerTamara Dahlgren <dahlgren1@llnl.gov>2021-02-17 17:07:38 -0800
commit9393d971393713154b6b766277a91d7536ec3896 (patch)
treedbb859f17aa00e6277eadb10fbc3984442f84ea2 /LICENSE-MIT
parent8f85ab88c0d78d29fb373b7c1ff7da752372aad8 (diff)
downloadspack-9393d971393713154b6b766277a91d7536ec3896.tar.gz
spack-9393d971393713154b6b766277a91d7536ec3896.tar.bz2
spack-9393d971393713154b6b766277a91d7536ec3896.tar.xz
spack-9393d971393713154b6b766277a91d7536ec3896.zip
concretizer: simplify handling of virtual version constraints
Previously, the concretizer handled version constraints by comparing all pairs of constraints and ensuring they satisfied each other. This led to INCONSISTENT ressults from clingo, due to ambiguous semantics like: version_constraint_satisfies("mpi", ":1", ":3") version_constraint_satisfies("mpi", ":3", ":1") To get around this, we introduce possible (fake) versions for virtuals, based on their constraints. Essentially, we add any Versions, VersionRange endpoints, and all such Versions and endpoints from VersionLists to the constraint. Virtuals will have one of these synthetic versions "picked" by the solver. This also allows us to remove a special case from handling of `version_satisfies/3` -- virtuals now work just like regular packages.
Diffstat (limited to 'LICENSE-MIT')
0 files changed, 0 insertions, 0 deletions