@@ -21,9 +21,9 @@ See also: https://github.com/spack/spack/discussions/22749
2121## Proposed Changes
2222
2323* Modify variant declarations with a flag to indicate that the variant
24- determines how the package is used rather than how it is installed
25- * During concretization, this variant can be treated like any other
26- variant.
24+ determines how the package is used rather than how it is installed.
25+ * During concretization, this variant is treated like any other
26+ variant (no changes to the concretization algorithm are required) .
2727* After concretization, the variant is stripped from the node and
2828 stored on the edge connecting the node to its parent.
2929
@@ -74,6 +74,10 @@ variant('regex', request=True)
7474
7575This is not essential though: the dependent could universally
7676recompute dependency information without any hints from dependents.
77+ For this reason, the Boost use case can be handled completely
78+ separately, since any variant modifications would only be used
79+ to speed up computations and are not required to achieve the
80+ semantics desired for the use case.
7781
7882### Intel Parallel Studio
7983
@@ -100,3 +104,11 @@ declaration:
100104```
101105variant('threading', interface=True, provider='mkl')
102106```
107+
108+ In other words, this has the same concretization semantics discussed
109+ for the Intel oneAPI MKL use case (i.e. that this is treated
110+ exactly the same as other variants during concretization), but
111+ adds controls on when the variant influences the hash of dependents:
112+ it only affects the dependent's hash when the dependent is actually
113+ using the package for the virtual named in the variant's ` provider= `
114+ option.
0 commit comments