summaryrefslogtreecommitdiff
path: root/.gitignore
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2017-03-25 22:49:46 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2017-03-31 13:40:41 -0700
commit7f3f4930249b580bd27891299d330f8dd272ecd3 (patch)
treec29cd13b287128f82bbc54589035e746fc590d53 /.gitignore
parentfe6f39b66287a4b3ecade2d776348d44920ec651 (diff)
downloadspack-7f3f4930249b580bd27891299d330f8dd272ecd3.tar.gz
spack-7f3f4930249b580bd27891299d330f8dd272ecd3.tar.bz2
spack-7f3f4930249b580bd27891299d330f8dd272ecd3.tar.xz
spack-7f3f4930249b580bd27891299d330f8dd272ecd3.zip
Fix concretization bugs with virtuals and deptypes.
1. Fix #2807: Can't depend on virtual and non-virtual package - This is tested by test_my_dep_depends_on_provider_of_my_virtual_dep in the concretize.py test. - This was actually working in the test suite, but it depended on the order the dependencies were resolved in. Resolving non-virtual then virtual worked, but virtual, then non-virtual did not. - Problem was that an unnecessary copy was made of a spec that already had some dependencies set up, and the copy lost half of some of the dependency relationships. This caused the "can'd depend on X twice error". - Fix by eliminating unnecessary copy and ensuring that dep parameter of _merge_dependency is always safe to own -- i.e. it's a defensive copy from somewhere else. 2. Fix bug and simplify concretization of deptypes. - deptypes weren't being accumulated; they were being set on each DependencySpec. This could cause concretization to get into an infinite loop. - Fixed by accumulating deptypes in DependencySpec.update_deptypes() - Also simplified deptype normalization logic: deptypes are now merged in constrain() like everything else -- there is no need to merge them specially or to look at dpeendents in _merge_dependency(). - Add some docstrings to deptype tests.
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions