summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2016-03-14 05:04:01 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2016-03-14 05:04:01 -0700
commitf2761270f3c0506a689b484b0e12d7d6e9f4300d (patch)
tree3dedae8854bfbb7519452dccc9ce3848ccde441b /bin
parentf45b8b1083e5f628dd31fa4b7b873b6df7119d0e (diff)
downloadspack-f2761270f3c0506a689b484b0e12d7d6e9f4300d.tar.gz
spack-f2761270f3c0506a689b484b0e12d7d6e9f4300d.tar.bz2
spack-f2761270f3c0506a689b484b0e12d7d6e9f4300d.tar.xz
spack-f2761270f3c0506a689b484b0e12d7d6e9f4300d.zip
Make concretization less greedy: add backtracking for virtuals.
- `_expand_virtual_packages` now gets a candidate list and will try all the candidates. - Good news: If the first virtual in the list conflicts with something else in the spec, we'll keep trying until we find a good one. - Bad news: Only looks as far as the next normalize(); can't see conflicts further ahead than that if they're inevitable some other virtual expansion. - Refactor `concretize.py` to keep all the nasty spec graph stitching in `spec.py`. This is more similar to before externals support. - `concretize.py` now just returns a list of candidates sorted by ABI compatibility to `_expand_virtual_packages`, and `spec.py` handles testing the candidates. - Refactor the way external paths are handled in `config.py` and `concretize.py`: - previously, `spec_externals` returned spec/path pairs. Now it returns specs with `external` set. Makes code in `concretize.py` more natural.
Diffstat (limited to 'bin')
0 files changed, 0 insertions, 0 deletions