summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-04-02nekRS: new package (#22519)Thilina Rathnayake1-0/+141
This initial package recipe uses a custom-built wrapper to drive an internal CMake file. Since nekRS also includes built-in copies of several dependencies such as BLAS and HYPRE, it cannot be linked with other such dependencies. However, to work with the `ceed` metapackage, we cannot add `^blas` conflicts to nekRS. See https://github.com/spack/spack/pull/22519 for discussion.
2021-04-02concretizer: improve display of optimization criteria (#22433)Todd Gamblin4-18/+78
By default, clingo doesn't show any optimization criteria (maximized or minimized sums) if the set they aggregate is empty. Per the clingo mailing list, we can get around that by adding, e.g.: ``` #minimize{ 0@2 : #true }. ``` for the 2nd criterion. This forces clingo to print out the criterion but does not affect the optimization. This PR adds directives as above for all of our optimization criteria, as well as facts with descriptions of each criterion,like this: ``` opt_criterion(2, "number of non-default variants") ``` We use facts in `concretize.lp` rather than hard-coding these in `asp.py` so that the names can be maintained in the same place as the other optimization criteria. The now-displayed weights and the names are used to display optimization output like this: ```console (spackle):solver> spack solve --show opt zlib ==> Best of 0 answers. ==> Optimization Criteria: Priority Criterion Value 1 version weight 0 2 number of non-default variants (roots) 0 3 multi-valued variants + preferred providers for roots 0 4 number of non-default variants (non-roots) 0 5 number of non-default providers (non-roots) 0 6 count of non-root multi-valued variants 0 7 compiler matches + number of nodes 1 8 version badness 0 9 non-preferred compilers 0 10 target matches 0 11 non-preferred targets 0 zlib@1.2.11%apple-clang@12.0.0+optimize+pic+shared arch=darwin-catalina-skylake ``` Note that this is all hidden behind a `--show opt` option to `spack solve`. Optimization weights are no longer shown by default, but you can at least inspect them and more easily understand what is going on. - [x] always show optimization criteria in `clingo` output - [x] add `opt_criterion()` facts for all optimizationc criteria - [x] make display of opt criteria optional in `spack solve` - [x] rework how optimization criteria are displayed, and add a `--show opt` optiong to `spack solve`
2021-04-01axom: convert to Cached CMakePackageChris White2-357/+185
This updates axom to use the new CachedCMakePackage superclass. Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-04-01add CachedCMakePackage for using CMake initial config filesGreg Becker2-0/+253
CachedCMakePackage is a CMakePackage subclass for using CMake initial cache. This feature of CMake allows packages to increase reproducibility, especially between spack builds and manual builds. It also allows packages to sidestep certain parsing bugs in extremely long cmake commands, and to avoid system limits on the length of the command line. Co-authored by: Chris White <white238@llnl.gov>
2021-04-01Revert "CachedCMakePackage for using *.cmake initial config files (#19316)""Todd Gamblin4-438/+357
This reverts commit 7daf5823574dc18522f559a084095714cc9f3fb9.
2021-04-01Added ML Suite to ECP Proxy App Suite (#22728)Robert Pavel1-0/+8
2021-04-01argobots: add Argobots 1.1 and 1.0.1 (#22729)Shintaro Iwasaki1-0/+2
2021-04-01Update SLEPc and slepc4py to version 3.15 (#22714)Jose E. Roman4-2/+47
Co-authored-by: Satish Balay <balay@mcs.anl.gov>
2021-04-01Fix for static library export issue in blis package (#22673)AMD Toolchain Support1-1/+4
2021-04-01gdal package needs to import the 'os' module (#22731)Amiya Maji1-0/+2
* 'gdal+java' build needs to import the 'os' module (line 191). * Make style-check happy.
2021-04-01Fix pkgconfig dependencies (#22702)Michael Kuhn4-4/+4
pkgconfig is the correct virtual provider.
2021-04-01mpark-variant: ICC Patch (#22727)Simon Bolding2-0/+36
* Add patch for Intel C++ compiler - On some machines (in particular MacOSX Catalina), the icpc in some way utilizes the preprocessor of the associated "developer tools" used by icpc. This leads to, in some cases, a preprocessor claiming support for __tuple_element_packs, even though icpc (as of version 21.1) can't actually parse such code. Just use the MPARK_TUPLE_ELEMENT_PACK impl with __icc until icpc supports it, to avoid issues with developer tools that are untested. - The same patch has been PRed against mpark-variant
2021-04-01amrex: new version 21.04 (#22730)mic841-1/+2
2021-04-01bugfix: compiler wrappers should handle extra spaces between arguments (#22725)Elizabeth Fischer1-1/+9
In the face of two consecutive spaces in the command line, the compiler wrapper would skip all remaining arguments, causing problems building py-scipy with Intel compiler. This PR solves the problem. * Fixed compiler wrapper in the face of extra spaces between arguments Co-authored-by: Elizabeth Fischer <elizabeth.fischer@alaska.edu>
2021-04-01xSDK: add ArborX (#22619)Daniel Arndt1-0/+3
2021-04-01New version of OpenLoops (#22240)iarspider3-43/+264
New version of OpenLoops; new list of processes; update lcg process collection Add script to scrape openloops website for process list
2021-04-01arm-forge: cleanup and upgrade to forge v21.0 (#22015)Nick Forrington1-109/+21
Backwards incompatible cleanup to target single-tarball-per-arch builds going forwards. * Replace per-distro versions with new per-arch builds, and add url_for_version to avoid specifying per tarball. * Customise environment setup to avoid adding lib to LD_LIBRARY_PATH. * Update homepage and licensing URLs. * Avoid shell interpretation when running textinstall.sh. * Added NickRF as maintainer.
2021-04-01Extra environment variables for Qt (#22717)iarspider1-0/+6
2021-04-01Fenicsx package updates for basix install (#22679)Chris Richardson5-9/+34
Co-authored-by: Garth N. Wells <gnw20@cam.ac.uk>
2021-04-01py-cython: new version (#22712)Robert Mijakovic1-0/+1
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-01gchp: add version 13.0.1 and remove release candidate (#22572)William Downs1-4/+4
2021-04-01MUMPS: Various improvements to the package (#22575)Rémi Lacroix1-28/+31
Use `conflicts` directive whenever possible. This allows failing early when conflicting variants are used. Do not silently ignore `+parmetis` variant when `~metis`. Instead throw an error during concretization. Simplify the "Makefile.inc" generation. This will make easier to add new variants in the future.
2021-04-01libfabric: add 1.12.0 (#22694)Michael Kuhn1-0/+1
2021-04-01sqlite: add 3.35.3 (#22697)Michael Kuhn1-1/+4
2021-04-01leveldb: add 1.23 (#22695)Michael Kuhn1-0/+6
2021-04-01glib: add 2.66.8 (#22691)Michael Kuhn1-0/+1
2021-04-01qt: restrict patch to 5.12.7 (#22705)Amiya Maji1-1/+1
2021-03-31pkgconf: add 1.7.4 (#22696)Michael Kuhn1-0/+1
2021-03-31readline: add 8.1 (#22698)Michael Kuhn1-0/+1
2021-03-31tar: add 1.34 (#22700)Michael Kuhn1-0/+1
2021-03-31curl: add 7.76.0 (#22693)Michael Kuhn1-0/+1
2021-03-31Added version patch for 1.4.0 tag on mpark-variant (#22496)Anthony J. Zukaitis2-2/+15
* Added version patch for 1.4.0 tag on mpark-variant Redirected urls to git and github tags. * Updated to commit hashes * Update var/spack/repos/builtin/packages/mpark-variant/package.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update var/spack/repos/builtin/packages/mpark-variant/package.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update var/spack/repos/builtin/packages/mpark-variant/package.py Co-authored-by: Anthony J Zukaitis <zukaitis@lanl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-03-31util-linux(-uuid): add 2.36.2 (#22701)Michael Kuhn2-2/+4
2021-04-01fujitsu-ssl2: Add the headers method (#22629)takanori-ihara1-0/+8
* fujitsu-ssl2: Add the headers method * fujitsu-ssl2: Fix for comments * fujitsu-ssl2: Fix for comments
2021-03-31CachedCMakePackage for using *.cmake initial config files (#19316)"Greg Becker4-357/+438
Original commit message: This feature of CMake allows packages to increase reproducibility, especially between Spack- and manual builds. It also allows packages to sidestep certain parsing bugs in extremely long ``cmake`` commands, and to avoid system limits on the length of the command line. Adding: Co-authored by: Chris White <white238@llnl.gov> This reverts commit c4f0a3cf6cd2ab282f6abf20fd72fcb4739a432a.
2021-03-31Revert "CachedCMakePackage for using *.cmake initial config files (#19316)"Chris White4-438/+357
This reverts commit 764c17053041a65f684ce565a2598d705b04a16b.
2021-04-01Changes to packages for rocm-4.1.0 release (#22687)Sreenivasa Murthy Kolam8-29/+86
2021-03-31CachedCMakePackage for using *.cmake initial config files (#19316)Greg Becker4-357/+438
CachedCMakePackage is a specialized class for packages built using CMake initial cache. This feature of CMake allows packages to increase reproducibility, especially between Spack- and manual builds. It also allows packages to sidestep certain parsing bugs in extremely long ``cmake`` commands, and to avoid system limits on the length of the command line.
2021-03-31petsc@3.15.0, py-petsc4py@3.15.0 (#22688)Satish Balay2-4/+12
* petsc@3.15.0, py-petsc4py@3.15.0 * Update var/spack/repos/builtin/packages/petsc/package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-03-31Bump HiOp version to v0.4 (#22689)Asher Mancinelli1-0/+1
2021-03-31py-matplotlib: add v3.4.1 (#22680)Adam J. Stewart1-0/+1
2021-03-31hotfix: make ifx work with autoconf <= 2.69 in Spack (#22683)Todd Gamblin2-0/+22
Autoconf before 2.70 will erroneously pass ifx's -loopopt argument to the linker, requiring all packages to use autoconf 2.70 or newer to use ifx. This is a hotfix enabling ifx to be used in Spack. Instead of bothering to upgrade autoconf for every package, we'll just strip out the problematic flag if we're in `ld` mode. - [x] Add a conditional to the `cc` wrapper to skip `-loopopt` in `ld` mode. This can probably be generalized in the future to strip more things (e.g., via an environment variable we can constrol from Spack) but it's good enough for now. - [x] Add a test ensuring that `-loopopt` arguments are stripped in link mode, but not in compile mode.
2021-03-31specs: remove "or ''" from Spec comparisonsTodd Gamblin2-4/+8
Since `lazy_lexicographic_ordering` handles `None` comparison for us, we don't need to adjust the spec comparators to return empty strings or other type-specific empty types. We can just leverage the None-awareness of `lazy_lexicographic_ordering`. - [x] remove "or ''" from `_cmp_iter` in `Spec` - [x] remove setting of `self.namespace` to `''` in `MockPackage`
2021-03-31specs: use lazy lexicographic comparison instead of key_orderingTodd Gamblin5-155/+340
We have been using the `@llnl.util.lang.key_ordering` decorator for specs and most of their components. This leverages the fact that in Python, tuple comparison is lexicographic. It allows you to implement a `_cmp_key` method on your class, and have `__eq__`, `__lt__`, etc. implemented automatically using that key. For example, you might use tuple keys to implement comparison, e.g.: ```python class Widget: # author implements this def _cmp_key(self): return ( self.a, self.b, (self.c, self.d), self.e ) # operators are generated by @key_ordering def __eq__(self, other): return self._cmp_key() == other._cmp_key() def __lt__(self): return self._cmp_key() < other._cmp_key() # etc. ``` The issue there for simple comparators is that we have to bulid the tuples *and* we have to generate all the values in them up front. When implementing comparisons for large data structures, this can be costly. This PR replaces `@key_ordering` with a new decorator, `@lazy_lexicographic_ordering`. Lazy lexicographic comparison maps the tuple comparison shown above to generator functions. Instead of comparing based on pre-constructed tuple keys, users of this decorator can compare using elements from a generator. So, you'd write: ```python @lazy_lexicographic_ordering class Widget: def _cmp_iter(self): yield a yield b def cd_fun(): yield c yield d yield cd_fun yield e # operators are added by decorator (but are a bit more complex) There are no tuples that have to be pre-constructed, and the generator does not have to complete. Instead of tuples, we simply make functions that lazily yield what would've been in the tuple. If a yielded value is a `callable`, the comparison functions will call it and recursively compar it. The comparator just walks the data structure like you'd expect it to. The ``@lazy_lexicographic_ordering`` decorator handles the details of implementing comparison operators, and the ``Widget`` implementor only has to worry about writing ``_cmp_iter``, and making sure the elements in it are also comparable. Using this PR shaves another 1.5 sec off the runtime of `spack buildcache list`, and it also speeds up Spec comparison by about 30%. The runtime improvement comes mostly from *not* calling `hash()` `_cmp_iter()`.
2021-03-31specs: speed up traversal by avoiding redundant canonicalizationTodd Gamblin1-1/+10
2021-03-31OpenFOAM-org: Add version 2.3.1. (#22473)Rémi Lacroix1-1/+6
2021-03-31Molden: Add new versions (#22685)Rémi Lacroix1-1/+3
Fix the download URL and add new versions.
2021-03-31Do not set CPATH in nvhpc package (#22652)Scott McMillan1-4/+0
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-03-31papyrus: setup environment variables #22681 (#22682)Jungwon Kim1-0/+11
2021-03-31fix: modify for change in meson options (#22678)kurtsansom1-2/+8