summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-04-24rust: use system libs (#43797)Harmen Stoppels1-0/+7
2024-04-24libc: from current python process (#43787)Harmen Stoppels6-139/+193
If there's no compiler we currently don't have any external libc for the solver. This commit adds a fallback on libc from the current Python process, which works if it is dynamically linked. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-04-24nf-*-cli: fix typo in conditional (#43806)Massimiliano Culpo2-2/+2
The default runner changed on GitHub for macOS, and that revealed a bug in a package when running audits
2024-04-23Refactor to improve `spec format` speed (#43712)Todd Gamblin12-274/+230
When looking at where we spend our time in solver setup, I noticed a fair bit of time is spent in `Spec.format()`, and `Spec.format()` is a pretty old, slow, convoluted method. This PR does a number of things: - [x] Consolidate most of what was being done manually with a character loop and several regexes into a single regex. - [x] Precompile regexes where we keep them - [x] Remove the `transform=` argument to `Spec.format()` which was only used in one place in the code (modules) to uppercase env var names, but added a lot of complexity - [x] Avoid escaping and colorizing specs unless necessary - [x] Refactor a lot of the colorization logic to avoid unnecessary object construction - [x] Add type hints and remove some spots in the code where we were using nonexistent arguments to `format()`. - [x] Add trivial cases to `__str__` in `VariantMap` and `VersionList` to avoid sorting - [x] Avoid calling `isinstance()` in the main loop of `Spec.format()` - [x] Don't bother constructing a `string` representation for the result of `_prev_version` as it is only used for comparisons. In my timings (on all the specs formatted in a solve of `hdf5`), this is over 2.67x faster than the original `format()`, and it seems to reduce setup time by around a second (for `hdf5`).
2024-04-23concretizer: update `reuse:` default to True (#41302)Greg Becker5-8/+16
2024-04-23Update amr-wind package with versions (#43728)Marc T. Henry de Frahan1-2/+23
2024-04-23Remove import distro from packages and docs (#43772)Harmen Stoppels10-27/+21
2024-04-23Do not detect a compiler without a C compiler (#43778)Massimiliano Culpo2-2/+52
2024-04-23nettle: remove openssl dep (#43770)Harmen Stoppels1-2/+6
2024-04-22starpu: fix release 1.4.4 (#43730)Nathalie Furmento1-1/+1
2024-04-22Adding UCX 1.16.0 (#43743)Filippo Spiga1-1/+2
* Adding UCX 1.16.0 * Fixed hash
2024-04-22Tags: add more build tools (#43766)Adam J. Stewart3-0/+4
* Tags: add more build tools * py-pythran: add maintainer
2024-04-22py-scikit-image: add v0.23 (#43767)Adam J. Stewart3-2/+18
2024-04-22py-keras: add v3.3.0 (#43783)Adam J. Stewart1-1/+2
2024-04-22zig: add v0.12.0 (#43774)Massimiliano Culpo1-0/+2
2024-04-22repo.py: drop deleted packages from provider cache (#43779)Harmen Stoppels1-6/+10
The reverse provider lookup may have stale entries for deleted packages, which used to cause errors. It's hard to invalidate those cache entries, so this commit simply drops entries w/o invalidating the cache. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-04-22Adjust severity of irreversible operations (#43721)Kyle Knoepfel1-2/+2
2024-04-22compiler.py: reduce verbosity of implicit link dirs parsing (#43777)Harmen Stoppels1-6/+2
2024-04-22view: dont warn about externals (#43771)Harmen Stoppels1-3/+0
since it's the status quo on linux after libc as external by default
2024-04-22bootstrap: no need to add dummy compilers (#43775)Harmen Stoppels1-28/+7
2024-04-22Add libc dependency to compiled packages and runtime depsMassimiliano Culpo18-88/+190
This commit differentiate linux from other platforms by using libc compatibility as a criterion for deciding which buildcaches / binaries can be reused. Other platforms still use OS compatibility. On linux a libc is injected by all compilers as an implicit external, and the compatibility criterion is that a libc is compatible with all other libcs with the same name and a version that is lesser or equal. Some concretization unit tests use libc when run on linux.
2024-04-22Compiler.default_libcHarmen Stoppels11-110/+212
Some logic to detect what libc the c / cxx compilers use by default, based on `-dynamic-linker`. The function `compiler.default_libc()` returns a `Spec` of the form `glibc@x.y` or `musl@x.y` with the `external_path` property set. The idea is this can be injected as a dependency. If we can't run the dynamic linker directly, fall back to `ldd` relative to the prefix computed from `ld.so.`
2024-04-22database.py: stream of json objects forward compat (#43598)Harmen Stoppels2-16/+43
In the future we may transform the database from a single JSON object to a stream of JSON objects. This paves the way for constant time writes and constant time rereads when only O(1) changes are made. Currently both are linear time. This commit gives just enough forward compat for Spack to produce a friendly error when we would move to a stream of json objects, and a db would look like this: ```json {"database": {"version": "<something newer>"}} ```
2024-04-22Fix a bug preventing to set platform= on externals (#43758)Massimiliano Culpo3-7/+20
closes #43406
2024-04-20perl: remove mkdirp from setup_dependent_package (#43733)Alex Richert1-4/+0
2024-04-20ci.py: visit all edges (#43761)Massimiliano Culpo1-1/+1
2024-04-20mpich: add v4.2.1 (#43753)Jordan Ogas1-0/+1
2024-04-20compiler wrapper: prioritize spack store paths in -L, -I, -rpath (#43593)Harmen Stoppels5-102/+286
* compiler wrapper: prioritize spack managed paths in search order This commit partitions search paths of -L, -I (and -rpath) into three groups, from highest priority to lowest: 1. Spack managed directories: these include absolute paths such as stores and the stage dir, as well as all relative paths since they are relative to a Spack owned dir 2. Non-system dirs: these are for externals that live in non-system locations 3. System dirs: your typical `/usr/lib` etc. It's very easy for Spack to known the prefixes it owns, it's much more difficult to tell system dirs from non-system dirs. Before this commit Spack tried to distinguish only system and non-system dirs, and failed for very trivial cases like `/usr/lib/x/..` which comes up often, since build systems sometimes copy search paths from `gcc -print-search-dirs`. Potentially this implementation is even faster than the current state of things, since a loop over paths is replaced with an eval'ed `case ...`. * Trigger a pipeline * Revert "Trigger a pipeline" This reverts commit 5d7fa863de91c5557ef4432c0ea105ed0924a6e8. * remove redudant return statement
2024-04-20ci.py: simplify, and dont warn excessively about externals (#43759)Harmen Stoppels2-140/+40
2024-04-19e4s-alc: add new package (#43750)FrederickDeny1-0/+28
* Added e4s-cl@1.0.3 * add e4s-alc package * removed trailing whitespace
2024-04-19ccache: 4.9.1 and 4.8.3 (#43748)Jordan Galby1-1/+3
2024-04-19py-ruff: add v0.4.0 (#43740)Adam J. Stewart1-0/+1
2024-04-19environment.py: fix excessive re-reads (#43746)Harmen Stoppels3-28/+33
2024-04-19libfabric: Add version 1.21.0 (#43735)Jack Morrison1-0/+1
2024-04-19Update py-pennylane + Lightning plugins + few deps (#43706)Vincent Michaud-Rioux5-36/+89
* Update PennyLane packages to v0.32. * Reformat. * Couple small fixes. * Fix Lightning cmake_args. * Couple dep fixes in py-pennylane + plugins. * Fix scipy condition. * Add comment on conflicting requirement. * Update py-pl versions * Update lightning versions. * Fix copyright. * Fix license. * Update pl-kokkos versions * run black * Fix L-Kokkos build and update autoray. * build step only required for older versions. update autograd * Fix LK@0.31 kokkos compat issue. Introduce url_for_version. * Fix few more version bounds.
2024-04-19perl-fth: new version 0.529 (#43727)Olivier Cessenat1-1/+2
2024-04-19fms: add two variants (#43734)Micael Oliveira1-0/+8
* fms: add two variants supporting existing build options. * Style fixes.
2024-04-19ruamel yaml: fix quadratic complexity bug (#43745)Harmen Stoppels2-1/+14
2024-04-19chai / raja / umpire: compile entire project with hipcc again (#43738)Harmen Stoppels3-0/+9
2024-04-18py-numpy package: enable build on Windows (#43686)James Smillie6-3/+22
* Add conflicts for some blas implementations that don't build on Windows (or with %msvc) * Need to enclose CC/CXX variables in quotes in case those paths have spaces, otherwise Meson runs into errors * On Windows, Python dependencies now add <prefix>/Scripts to the PATH (this is established as a standard in PEP 370)
2024-04-18Windows: Update MSVC + oneAPI detection and integration (#43646)John W. Parent2-44/+58
* Later versions of oneAPI have moved, so update detection to find it in both old and new location * Remove reliance on ONEAPI_ROOT env variable when determining Fortran compiler version for %msvc * When finding a Fortran compiler for MSVC, there was logic enforcing a maximum MSVC version for a given oneAPI Fortran version. This mapping was out of date and excluding valid combinations, so has been removed (the logic now just picks the latest available oneAPI Fortran compiler for any given MSVC version).
2024-04-18keepassxc: new version 2.7.7 (#43729)Olivier Cessenat1-0/+1
2024-04-18Windows: add win-sdk/wgl externals during bootstrapping (#43459)John W. Parent2-0/+40
On Windows, bootstrapping logic now searches for and adds the win-sdk and wgl packages to the user's top scope as externals if they are not present. These packages are generally required to install most packages with Spack on Windows, and are only available as externals, so it is assumed that doing this automatically would be useful and avoid a mandatory manual step for each new Spack instance. Note this is the first case of bootstrapping logic modifying configuration other than the bootstrap configuration.
2024-04-18py-netcdf4 %oneapi: cflags append -Wno-error=int-conversion (#43629)eugeneswalker1-0/+7
2024-04-18spaceranger: new manual download package @2.1.1 (#42391)George Young1-0/+38
* spaceranger: new manual download package @2.1.1 * Adding license url --------- Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
2024-04-18Added tau@2.33.2 (#43682)wspear1-1/+3
2024-04-18cellranger: new manual download package @7.1.0 (#38486)George Young1-0/+38
* cellranger: new manual download package @7.1.0 * cellranger: updating to @7.2.0 * updating website * Adding license url --------- Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
2024-04-18xeniumranger: new manual download package @1.7.1 (#42389)George Young1-0/+38
* xeniumranger: new manual download package @1.7.1 * Adding license url --------- Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
2024-04-18New package: editorconfig (#43670)James Taliaferro1-0/+22
* New package: editorconfig * remove FIXMEs * add description for editorconfig
2024-04-18CI: remove MXNet (#43704)Adam J. Stewart6-15/+0