summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-12-20concretizer: add #defined statements to avoid warnings.Todd Gamblin1-0/+2
`version_satisfies/2` and `node_compiler_version_satisfies/3` are generated but need `#defined` directives to avoid " info: atom does not occur in any rule head:" warnings.
2020-12-19asp: memoize the list of all target_specs to speed-up setup phase (#20473)Massimiliano Culpo1-4/+11
* asp: memoize the list of all target_specs to speed-up setup phase * asp: memoize using a cache per solver object
2020-12-18minimal zsh completion (#20253)Tom Scogland5-35/+74
Since zsh can load bash completion files natively, seems reasonable to just turn this on. The only changes are to switch from `type -t` which zsh doesn't support to using `type` with a regex and adding a new arm to the sourcing of the completions to allow it to work for zsh as well as bash. Could use more bash/dash/etc testing probably, but everything I've thought to try has worked so far. Notes: * unit-test zsh support, fix issues Specifically fixed word splitting in completion-test, use a different method to apply sh emulation to zsh loaded bash completion, and fixed an incompatibility in regex operator quoting requirements. * compinit now ignores insecure directories Completion isn't meant to be enabled in non-interactive environments, so by default compinit will ask the user if they want to ignore insecure directories or load them anyway. To pass the spack unit tests in GH actions, this prompt must be disabled, so ignore explicitly until a better solution can be found. * debug functions test also requires bash emulation COMP_WORDS is a bash-ism that zsh doesn't natively support, turn on emulation for just that section of tests to allow the comparison to work. Does not change the behavior of the functions themselves since they are already pinned to sh emulation elsewhere. * propagate change to .in file * fix comment and update script based on .in
2020-12-18Add spack test support for Qthreads (#20437)Jan Ciesko1-1/+52
2020-12-18slepc: set --with-arpack-dir correctly (#20463)eugeneswalker1-1/+1
2020-12-18mesa: drop use of shared variant (#20453)Chuck Atkins1-4/+0
Mesa no longer supports building static libraries so it doesn't even make sense to add the variant.
2020-12-18ci: fixes for compiler bootstrapping (#17563)Scott Wittenburg7-63/+241
This PR addresses a number of issues related to compiler bootstrapping. Specifically: 1. Collect compilers to be bootstrapped while queueing in installer Compiler tasks currently have an incomplete list in their task.dependents, making those packages fail to install as they think they have not all their dependencies installed. This PR collects the dependents and sets them on compiler tasks. 2. allow boostrapped compilers to back off target Bootstrapped compilers may be built with a compiler that doesn't support the target used by the rest of the spec. Allow them to build with less aggressive target optimization settings. 3. Support for target ranges Backing off the target necessitates computing target ranges, so make Spack handle those properly. Notably, this adds an intersection method for target ranges and fixes the way ranges are satisfied and constrained on Spec objects. This PR also: - adds testing - improves concretizer handling of target ranges Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com> Co-authored-by: Gregory Becker <becker33@llnl.gov> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2020-12-17py-greenlet: add version 0.4.17 (#20457)eugeneswalker1-1/+4
* py-greenlet: add version 0.4.17 * py-greenlet depends on python for build, link, and run
2020-12-17meson: Add cmake runtime dependency (#20449)Chuck Atkins1-0/+1
2020-12-17New package: cray-mpich (#20076)Harmen Stoppels2-27/+69
Cray's version of MPICH uses a different versioning system than MPICH, so it has been split into its own package. It is an external-only package (always provided by the system, never installed by Spack).
2020-12-17superlu depends on tcsh for build (#20381)eugeneswalker1-0/+1
2020-12-17cmake: Add Version 3.19.2 (#20448)Dr. Christian Tacke1-0/+1
2020-12-17View location resolve environment variables (#20420)psakievich1-1/+2
2020-12-17add py-gemini (#16950)manifest2-0/+88
* py-gemini + * dep py-setuptools + * deps grabix+ * py-gemini dep version fix * grabix compiler fix * Update package.py Typo correction
2020-12-17biobambam2: new package at v2.0.177 (#20392)takanori-ihara1-0/+26
2020-12-17pangolin: add new package (#20388)Adam J. Stewart1-0/+22
2020-12-17kim-api: added v2.2.1 (#20382)Ryan S. Elliott1-1/+2
2020-12-17suite-sparse: add flags for Fujitsu compilers (#20393)ketsubouchi1-2/+2
2020-12-17docs: add single node concurrent build example (#20416)Tamara Dahlgren1-4/+11
2020-12-17OpenCV: add versions up to v4.5.0, variants (#20378)Adam J. Stewart1-29/+27
2020-12-17flexi: new package (#20313)Michael Kuhn1-0/+41
2020-12-17openblas: added v0.3.13 (#20357)Michael Kuhn1-0/+6
2020-12-17mbedtls: added v2.16.9 (#20422)Ryan Mast1-0/+1
2020-12-17DBoW2: add new package (#20387)Adam J. Stewart1-0/+21
2020-12-17acts: added v3.00.0 (#20402)Hadrien G1-0/+1
2020-12-17arm: added new package (#18019)Massimiliano Culpo1-0/+86
The package is at the moment not installable, just detectable.
2020-12-17xlc, xlf: added new packages (#18154)Massimiliano Culpo2-0/+150
2020-12-17unit-tests: ensure that installed packages can be reused (#20307)Massimiliano Culpo1-0/+84
refers #20292 Added a unit test that ensures we can reuse installed packages even if in the repository variants have been removed or added.
2020-12-17help2man: update to 1.47.16 (#20397)Ryan Mast1-0/+1
2020-12-16sundials: add versions up to 5.6.1 (#20436)Ryan Mast1-0/+2
2020-12-16Added PyAMG package. (#20414)Ben Cowan1-0/+25
2020-12-16cli11: add new package (#20398)Ryan Mast1-0/+26
2020-12-16PythonPackage: add import module smoke tests (#20023)Adam J. Stewart241-1046/+335
2020-12-16ninja: update to version 1.10.2 (#20399)Ryan Mast1-0/+1
2020-12-16AMD ROCm release for mivisionx Bump up versions - 3.9.0 and 3.10.0 (#20401)arjun-raj-kuppala1-2/+4
2020-12-16dlib: add new package (#20386)Adam J. Stewart1-0/+21
2020-12-16pylikwid: New recipe (#20408)Thomas Gruber1-0/+31
2020-12-16automake: update to 1.16.3 (#20421)Ryan Mast1-0/+1
2020-12-16Update the plumed 2.6.2 (#20425)Zhiyi Wu1-1/+2
2020-12-16docs: fix spack install debug arg order (#20428)Greg Becker1-4/+3
2020-12-16Version update to 5.3.0 (#20433)Desmond Orton1-0/+2
2020-12-16Add RAJA v0.13.0 (#20431)David Beckingsale1-0/+1
2020-12-16Docs: add more Command Reference links to spack test (#20413)Adam J. Stewart1-2/+12
2020-12-16Match master version instead of develop for PARAVIEW_VTK_DIR (#20427)Ethan Stam1-1/+1
2020-12-16docs: fix spack command for unit-test pytest help (#20415)Tamara Dahlgren1-1/+1
2020-12-16loop fuser option (#20417)Danny Taller1-2/+4
2020-12-16Added TFEL v3.4 and MGIS v1.2 (#20234)thelfer2-3/+13
2020-12-15Fix comparisons for abstract specs (#20341)Greg Becker2-3/+29
bug only relevant for python3
2020-12-15Kluge to get the gfortran linker to work correctly for SciPy on Big Sur. ↵Ben Cowan1-0/+8
(#20367) * Kluge to get the gfortran linker to work correctly on Big Sur. * Fixed formatting error; stetting the other. * Removed spaces. * Added comment, mainly to re-trigger Spack CI.
2020-12-15concretizer: don't use one_of_iff for range constraints (#20383)Todd Gamblin2-58/+50
Currently, version range constraints, compiler version range constraints, and target range constraints are implemented by generating ground rules from `asp.py`, via `one_of_iff()`. The rules look like this: ``` version_satisfies("python", "2.6:") :- 1 { version("python", "2.4"); ... } 1. 1 { version("python", "2.4"); ... } 1. :- version_satisfies("python", "2.6:"). ``` So, `version_satisfies(Package, Constraint)` is true if and only if the package is assigned a version that satisfies the constraint. We precompute the set of known versions that satisfy the constraint, and generate the rule in `SpackSolverSetup`. We shouldn't need to generate already-ground rules for this. Rather, we should leave it to the grounder to do the grounding, and generate facts so that the constraint semantics can be defined in `concretize.lp`. We can replace rules like the ones above with facts like this: ``` version_satisfies("python", "2.6:", "2.4") ``` And ground them in `concretize.lp` with rules like this: ``` 1 { version(Package, Version) : version_satisfies(Package, Constraint, Version) } 1 :- version_satisfies(Package, Constraint). version_satisfies(Package, Constraint) :- version(Package, Version), version_satisfies(Package, Constraint, Version). ``` The top rule is the same as before. It makes conditional dependencies and other places where version constraints are used work properly. Note that we do not need the cardinality constraint for the second rule -- we already have rules saying there can be only one version assigned to a package, so we can just infer from `version/2` `version_satisfies/3`. This form is also safe for grounding -- If we used the original form we'd have unsafe variables like `Constraint` and `Package` -- the original form only really worked when specified as ground to begin with. - [x] use facts instead of generating rules for package version constraints - [x] use facts instead of generating rules for compiler version constraints - [x] use facts instead of generating rules for target range constraints - [x] remove `one_of_iff()` and `iff()` as they're no longer needed