summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2020-12-16 00:57:03 -0800
committerTamara Dahlgren <dahlgren1@llnl.gov>2021-02-17 17:07:29 -0800
commitff9ee9f2437cbdf2ef9a5e34c798ba418af7ad91 (patch)
treee5289f272fcfbe1febff71c29b7c7c9622b6c519 /share
parent6c6631cfdce3b63a491590eea7c2bc7d487eb0a3 (diff)
downloadspack-ff9ee9f2437cbdf2ef9a5e34c798ba418af7ad91.tar.gz
spack-ff9ee9f2437cbdf2ef9a5e34c798ba418af7ad91.tar.bz2
spack-ff9ee9f2437cbdf2ef9a5e34c798ba418af7ad91.tar.xz
spack-ff9ee9f2437cbdf2ef9a5e34c798ba418af7ad91.zip
concretizer: move conditional dependency logic into `concretize.lp`
Continuing to convert everything in `asp.py` into facts, make the generation of ground rules for conditional dependencies use facts, and move the semantics into `concretize.lp`. This is probably the most complex logic in Spack, as dependencies can be conditional on anything, and we need conditional ASP rules to accumulate and map all the dependency conditions to spec attributes. The logic looks complicated, but essentially it accumulates any constraints associated with particular conditions into a fact associated with the condition by id. Then, if *any* condition id's fact is True, we trigger the dependency. This simplifies the way `declared_dependency()` works -- the dependency is now declared regardless of whether it is conditional, and the conditions are handled by `dependency_condition()` facts.
Diffstat (limited to 'share')
0 files changed, 0 insertions, 0 deletions