diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2016-03-14 05:04:01 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2016-03-14 05:04:01 -0700 |
commit | f2761270f3c0506a689b484b0e12d7d6e9f4300d (patch) | |
tree | 3dedae8854bfbb7519452dccc9ce3848ccde441b /bin | |
parent | f45b8b1083e5f628dd31fa4b7b873b6df7119d0e (diff) | |
download | spack-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