summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-04-25spatialdata: add spatialdata package to spack (#43500)downloadico1-0/+67
2024-04-25CI: remove ML ROCm stack (#43825)Adam J. Stewart2-118/+2
2024-04-25py-lightning: add v2.2.3 (#43824)Adam J. Stewart1-0/+1
2024-04-24[TAU Package] Updates for rocm (#43790)jalcaraz1-0/+20
* Updates for rocm Updated for rocm@6 Added conflict between rocprofiler and roctracer. Request either +rocprofiler or +roctracer when +rocm. In this case, it automatically builds for one, instead of displaying the message. Request +rocm when using either +rocprofiler or +roctracer. In this case, it automatically builds with +rocm, instead of displaying the message. Disabled the tests. Will update them with the new test method. * [@spackbot] updating style on behalf of jordialcaraz --------- Co-authored-by: jordialcaraz <jordialcaraz@users.noreply.github.com>
2024-04-24mpich: add 4.2.0 release (#42687)Ken Raffenetti1-0/+1
2024-04-24update halide versions; sync llvm (#43793)Teo1-2/+7
2024-04-24py-keras: add v3.3.1-2 (#43798)Adam J. Stewart1-0/+2
2024-04-24Add Caliper v2.11 (#43802)David Boehme1-3/+5
2024-04-24dotnet-core-sdk: Add versions 7.0.18 and 8.0.4 (#43814)Rémi Lacroix1-2/+26
2024-04-24clang.py: detect flang-new (#43815)Harmen Stoppels1-4/+5
If a flang-new exists, which is rather unlikely, it probably means the user wants it as a fortran compiler.
2024-04-24Trilinos: update kokkos dependency (#43785)Jake Koester1-1/+2
* fix so trilinos@master uses correct kokkos (@4.3.00) * Update var/spack/repos/builtin/packages/trilinos/package.py
2024-04-24Add new `redistribute()` directive (#20185)Peter Scheibel15-68/+363
Some packages can't be redistributed in source or binary form. We need an explicit way to say that in a package. This adds a `redistribute()` directive so that package authors can write, e.g.: ```python redistribute(source=False, binary=False) ``` You can also do this conditionally with `when=`, as with other directives, e.g.: ```python # 12.0 and higher are proprietary redistribute(source=False, binary=False, when="@12.0:") # can't redistribute when we depend on some proprietary dependency redistribute(source=False, binary=False, when="^proprietary-dependency") ``` To prevent Spack from adding either their sources or binaries to public mirrors and build caches. You can still unconditionally add things *if* you run either: * `spack mirror create --private` * `spack buildcache push --private` But the default behavior for build caches is not to include non-redistributable packages in either mirrors or build caches. We have previously done this manually for our public buildcache, but with this we can start maintaining redistributability directly in packages. Caveats: currently the default for `redistribute()` is `True` for both `source` and `binary`, and you can only set either of them to `False` via this directive. - [x] add `redistribute()` directive - [x] add `redistribute_source` and `redistribute_binary` class methods to `PackageBase` - [x] add `--private` option to `spack mirror` - [x] add `--private` option to `spack buildcache push` - [x] test exclusion of packages from source mirror (both as a root and as a dependency) - [x] test exclusion of packages from binary mirror (both as a root and as a dependency)
2024-04-24Revert "Windows: add win-sdk/wgl externals during bootstrapping (#43459)" ↵John W. Parent2-40/+0
(#43819) This reverts commit 9e2558bd563af31355d83471f628a5d02656cdac.
2024-04-24py-matplotlib: drop test dep (#43765)Adam J. Stewart1-1/+2
test dependencies constrains build / link type deps, so avoid that
2024-04-24Tune default compiler preferences (#43805)Massimiliano Culpo2-2/+1
Add `%oneapi`, remove compilers that have been discontinued upstream
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.