summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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
2021-03-31new package: py-uproot (#22658)Glenn Johnson1-0/+26
2021-03-31wget: add 1.21 (#22675)Michael Kuhn1-0/+1
2021-03-31AOCC support for QE 6.7 (#22664)AMD Toolchain Support2-1/+86
Adding qe_6.7_aocc_support
2021-03-31hpl: FIX ^intel-oneapi-mkl (#22674)yellowhat1-0/+1
2021-03-31adding AOCC support for CP2K 7.1 (#22641)AMD Toolchain Support2-0/+13
2021-03-31squashfuse: add v0.1.104 and variants (#22605)Harmen Stoppels1-20/+26
2021-03-30There is no symlink fusermount->fusermount3 by default (#22638)Harmen Stoppels1-1/+1
2021-03-30SRILM: Add new package. (#22640)Rémi Lacroix1-0/+92
2021-03-30New package py-flexmock (#22549)Desmond Orton1-0/+25
* New package py-flexmock * Switched to proper deps * Changed setuptools type
2021-03-30New package py-argh (#22551)Desmond Orton1-0/+26
* New package py-argh * Fixed deps * Changed setuptools type * Update var/spack/repos/builtin/packages/py-argh/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-30New package py-iocapture (#22550)Desmond Orton1-0/+20
* New package py-iocapture * Added the proper deps * Changed setuptools type
2021-03-30Make -j flag less exceptional (#22360)Harmen Stoppels8-44/+97
* Make -j flag less exceptional The -j flag in spack behaves differently from make, ctest, ninja, etc, because it caps the number of jobs to an arbitrary number 16. Spack will behave like other tools if `spack install` uses a reasonable default, and `spack install -j <num>` *overrides* that default. This will be particularly useful for Spack usage outside of a traditional HPC context and for HPC centers that encourage users to compile on login nodes with many cores instead of on compute nodes, which has become increasingly common as individual nodes have more cores. This maintains the existing default value of min(num_cpus, 16). However, as it is right now, Spack does a poor job at determining the number of cpus on linux, since it doesn't take cgroups into account. This is particularly problematic when using distributed builds with slurm. This PR also introduces `spack.util.cpus.cpus_available()` to consolidate knowledge on determining the number of available cores, and improves core detection for linux. This should also improve core detection for Docker/ Kubernetes, which also use cgroups.
2021-03-30libLBFGS: Add new package. (#22639)Rémi Lacroix1-0/+29
2021-03-30stat: new version 4.1.0 (#22523)Gregory Lee1-1/+7
* fix issue #22228 build of gdk-pixbuf * added stat 4.1.0 and GUI variant
2021-03-30Add setup_dependent_build_environment() method to nvhpc package (#22578)Scott McMillan1-0/+17
Fix #22520 Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-03-30claw: support for gcc10 (#22618)Sergey Kosukhin1-0/+7
2021-03-30Correct the sha256 ioapi v3.2 (#22633)Hao Lyu1-1/+1
The sha256 of [ioapi-3.2](https://www.cmascenter.org/ioapi/download/ioapi-3.2.tar.gz) should be `0a3cbf236ffbd9fb5f6509e35308c3353f1f53096efe0c51b84883d2da86924b`
2021-03-30New recipe for rocm-opencl-runtime ,bump up version for rdc for rocm-4.1.0 ↵Sreenivasa Murthy Kolam2-1/+52
Release (#22645)
2021-03-30Add sshfs (#22636)Harmen Stoppels1-0/+25
2021-03-30New versions of SIRIUS (#22637)Harmen Stoppels1-0/+2
2021-03-30SpackCommand objects can set global args (#22318)Harmen Stoppels3-5/+31
This commit extends the API of the __call__ method of the SpackCommand class to permit passing global arguments like those interposed between the main "spack" command and the subsequent subcommand. The functionality is used to fix an issue where running ```spack -e . location -b some_package``` ends up printing the name of the environment instead of the build directory of the package, because the location arg parser also stores this value as `arg.env`.
2021-03-30Bootstrapping: swap store before configuration (#22631)Massimiliano Culpo3-6/+45
fixes #22294 A combination of the swapping order for global variables and the fact that most of them are lazily evaluated resulted in custom install tree not being taken into account if clingo had to be bootstrapped. This commit fixes that particular issue, but a broader refactor may be needed to ensure that similar situations won't affect us in the future.
2021-03-30cuda: add dev variant and ABI variant for ncurses (#22536)lorddavidiii2-0/+13
* ncurses: add variant +abi5 for version 5 ABI * cuda: add variant dev, which makes cuda-gdb useable - cuda-gdb needs libncurses.so.5, which most distros doesn't have see also https://docs.nvidia.com/cuda/cuda-gdb/index.html#common-issues-oss
2021-03-30curl package: add new stable version 7.75.0 (#22635)Yan Hang1-0/+1
2021-03-30Bootstrap: add _builtin config scope (#22610)Harmen Stoppels1-2/+5
2021-03-30Fix clearing cache of InternalConfigScope (#22609)Harmen Stoppels3-38/+47
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-03-30Update hiop package (#22232)Asher Mancinelli1-18/+124
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-03-30py-numpy: Add the setting to use fujitsu-ssl2 (#22604)takanori-ihara1-0/+22
* py-numpy: Add the setting to use fujitsu-ssl2 * py-numpy: Fix for comments
2021-03-30Bugfixes in LBANN software stack identified by clingo (#22554)Brian Van Essen4-39/+26
* Fixed a bug in the DiHydrogen package where the variant legacy was changed to distconv and wasn't fully propagated. Cleaned up the openmp variants on the blas library packages in DiHydrogen and Elemental. Extended support for Aluminum v1.0 in LBANN, Hydrogen, and DiHydrogen. Fixed a when clause in the LBANN dependencies. * Removed the upper range limit for the Aluminum library dependence * Update var/spack/repos/builtin/packages/dihydrogen/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-30spath: new releases (#22625)Cameron Stanavige1-0/+3
This commit adds the url and the two releases/versions to the package.
2021-03-29move binary indices are stored into the misc_cache (#22500)Danny McClanahan2-13/+20
Remote buildcache indices need to be stored in a place that does not require writing to the Spack prefix. Move them from the install_tree to the misc_cache.
2021-03-29bugfix for active when pkg is already active error (#22587)Cyrus Harrison1-2/+7
* bugfix for active when pkg is already active error Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-03-29Externals are preferred even when they have non-default variant valuesMassimiliano Culpo5-1/+58
fixes #22596 Variants which are specified in an external spec are not scored negatively if they encode a non-default value.
2021-03-29Enforce uniqueness of the version_weight atom per nodeMassimiliano Culpo5-7/+49
fixes #22565 This change enforces the uniqueness of the version_weight atom per node(Package) in the DAG. It does so by applying FTSE and adding an extra layer of indirection with the possible_version_weight/2 atom. Before this change it may have happened that for the same node two different version_weight/2 were in the answer set, each of which referred to a different spec with the same version, and their weights would sum up. This lead to unexpected result like preferring to build a new version of an external if the external version was older.
2021-03-29bumpup version for hipify-clang,rocm-gdb-api,rocm-gdb for rocm-4.1.rel (#22622)Sreenivasa Murthy Kolam3-6/+9