summaryrefslogtreecommitdiff
path: root/.readthedocs.yml
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2021-01-02 22:44:33 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2021-01-04 14:51:10 -0800
commit9c941bb70652be72a4482ce592b80aa487681f08 (patch)
treee24a352dfc7c0189aa94a4e1f0c86b3e44091106 /.readthedocs.yml
parenta1ed71f7e4baa13b2b7e8234dec8b41c17ae779c (diff)
downloadspack-9c941bb70652be72a4482ce592b80aa487681f08.tar.gz
spack-9c941bb70652be72a4482ce592b80aa487681f08.tar.bz2
spack-9c941bb70652be72a4482ce592b80aa487681f08.tar.xz
spack-9c941bb70652be72a4482ce592b80aa487681f08.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 '.readthedocs.yml')
0 files changed, 0 insertions, 0 deletions