spack/lib/spack
Todd Gamblin f8f1c308c9 clean up concreteness detection
- Fixes bugs where concretization would fail due to an erroneously cached
  _concrete attribute.

- Ripped out a bunch of code in spec.py that isn't needed/valid anymore:
  - The various concrete() methods on different types of Specs would
    attempt to statically compute whether the Spec was concrete.
  - This dates back to when DAGs were simpler and there were no optional
    dependencies.  It's actually NOT possible to compute statically
    whether a Spec is concrete now.  The ONLY way you know is if it goes
    through concretization and is marked concrete once that completes.
  - This commit removes all simple concreteness checks and relies only on
    the _concrete attribute.  This should make thinking about
    concreteness simpler.

- Fixed a couple places where Specs need to be marked concrete explicitly.
  - Specs read from files and Specs that are destructively copied from
    concrete Specs now need to be marked concrete explicitly.
  - These spots may previously have "worked", but they were brittle and
    should be explcitly marked anyway.
2017-09-11 17:13:21 -07:00
..
docs Bootstrap environment-modules 2017-09-08 10:15:06 -07:00
env Update copyright notices for 2017 (#5295) 2017-09-06 17:44:16 -10:00
external Update copyright notices for 2017 (#5295) 2017-09-06 17:44:16 -10:00
llnl Fix name detection in HeaderList and LibraryList (#5118) 2017-09-09 22:22:56 +02:00
spack clean up concreteness detection 2017-09-11 17:13:21 -07:00