Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-11-13 | bump version to 0.24.0.dev0 (#47578) | Harmen Stoppels | 1 | -1/+1 | |
2024-11-13 | missing and redundant imports (#47577) | Harmen Stoppels | 5 | -4/+5 | |
2024-11-12 | Add SVE as a variant for Neoverse N2. Default to true, but should be (#47567) | dslarm | 1 | -1/+1 | |
benchmarked to test if that is a correct decision. | |||||
2024-11-12 | Add solver capability for synthesizing splices of ABI compatible packages. ↵ | John Gouwar | 24 | -59/+885 | |
(#46729) This PR provides complementary 2 features: 1. An augmentation to the package language to express ABI compatibility relationships among packages. 2. An extension to the concretizer that can synthesize splices between ABI compatible packages. 1. The `can_splice` directive and ABI compatibility We augment the package language with a single directive: `can_splice`. Here is an example of a package `Foo` exercising the `can_splice` directive: class Foo(Package): version("1.0") version("1.1") variant("compat", default=True) variant("json", default=False) variant("pic", default=False) can_splice("foo@1.0", when="@1.1") can_splice("bar@1.0", when="@1.0+compat") can_splice("baz@1.0+compat", when="@1.0+compat", match_variants="*") can_splice("quux@1.0", when=@1.1~compat", match_variants="json") Explanations of the uses of each directive: - `can_splice("foo@1.0", when="@1.1")`: If `foo@1.0` is the dependency of an already installed spec and `foo@1.1` could be a valid dependency for the parent spec, then `foo@1.1` can be spliced in for `foo@1.0` in the parent spec. - `can_splice("bar@1.0", when="@1.0+compat")`: If `bar@1.0` is the dependency of an already installed spec and `foo@1.0+compat` could be a valid dependency for the parent spec, then `foo@1.0+compat` can be spliced in for `bar@1.0+compat` in the parent spec - `can_splice("baz@1.0", when="@1.0+compat", match_variants="*")`: If `baz@1.0+compat` is the dependency of an already installed spec and `foo@1.0+compat` could be a valid dependency for the parent spec, then `foo@1.0+compat` can be spliced in for `baz@1.0+compat` in the parent spec, provided that they have the same value for all other variants (regardless of what those values are). - `can_splice("quux@1.0", when=@1.1~compat", match_variants="json")`:If `quux@1.0` is the dependency of an already installed spec and `foo@1.1~compat` could be a valid dependency for the parent spec, then `foo@1.0~compat` can be spliced in for `quux@1.0` in the parent spec, provided that they have the same value for their `json` variant. 2. Augmenting the solver to synthesize splices ### Changes to the hash encoding in `asp.py` Previously, when including concrete specs in the solve, they would have the following form: installed_hash("foo", "xxxyyy") imposed_constraint("xxxyyy", "foo", "attr1", ...) imposed_constraint("xxxyyy", "foo", "attr2", ...) % etc. Concrete specs now have the following form: installed_hash("foo", "xxxyyy") hash_attr("xxxyyy", "foo", "attr1", ...) hash_attr("xxxyyy", "foo", "attr2", ...) This transformation allows us to control which constraints are imposed when we select a hash, to facilitate the splicing of dependencies. 2.1 Compiling `can_splice` directives in `asp.py` Consider the concrete spec: foo@2.72%gcc@11.4 arch=linux-ubuntu22.04-icelake build_system=autotools ^bar ... It will emit the following facts for reuse (below is a subset) installed_hash("foo", "xxxyyy") hash_attr("xxxyyy", "hash", "foo", "xxxyyy") hash_attr("xxxyyy", "version", "foo", "2.72") hash_attr("xxxyyy", "node_os", "ubuntu22.04") hash_attr("xxxyyy", "hash", "bar", "zzzqqq") hash_attr("xxxyyy", "depends_on", "foo", "bar", "link") Rules that derive abi_splice_conditions_hold will be generated from use of the `can_splice` directive. They will have the following form: can_splice("foo@1.0.0+a", when="@1.0.1+a", match_variants=["b"]) ---> abi_splice_conditions_hold(0, node(SID, "foo"), "foo", BaseHash) :- installed_hash("foo", BaseHash), attr("node", node(SID, SpliceName)), attr("node_version_satisfies", node(SID, "foo"), "1.0.1"), hash_attr("hash", "node_version_satisfies", "foo", "1.0.1"), attr("variant_value", node(SID, "foo"), "a", "True"), hash_attr("hash", "variant_value", "foo", "a", "True"), attr("variant_value", node(SID, "foo"), "b", VariVar0), hash_attr("hash", "variant_value", "foo", "b", VariVar0). 2.2 Synthesizing splices in `concretize.lp` and `splices.lp` The ASP solver generates "splice_at_hash" attrs to indicate that a particular node has a splice in one of its immediate dependencies. Splices can be introduced in the dependencies of concrete specs when `splices.lp` is conditionally loaded (based on the config option `concretizer:splice:True`. 2.3 Constructing spliced specs in `asp.py` The method `SpecBuilder._resolve_splices` implements a top-down memoized implementation of hybrid splicing. This is an optimization over the more general `Spec.splice`, since the solver gives a global view of exactly which specs can be shared, to ensure the minimal number of splicing operations. Misc changes to facilitate configuration and benchmarking - Added the method `Solver.solve_with_stats` to expose timers from the public interface for easier benchmarking - Added the boolean config option `concretizer:splice` to conditionally load splicing behavior Co-authored-by: Greg Becker <becker33@llnl.gov> | |||||
2024-11-13 | py-nugraph, ph5concat, py-numl: Add new nugraph packages (#47315) | v | 3 | -0/+109 | |
2024-11-12 | spectre: add v2024.03.19 (#43275) | SXS Bot | 1 | -0/+3 | |
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com> | |||||
2024-11-12 | parse_specs: special case for concretizing lookups quickly (#47556) | Greg Becker | 4 | -3/+182 | |
We added unification semantics for parsing specs from the CLI, but there are a couple of special cases in which we can avoid calls to the concretizer for speed when the specs can all be resolved by lookups. - [x] special case 1: solving a single spec - [x] special case 2: all specs are either concrete (come from a file) or have an abstract hash. In this case if concretizer:unify:true we need an additional check to confirm the specs are compatible. - [x] add a parameterized test for unifying on the CI --------- Signed-off-by: Todd Gamblin <tgamblin@llnl.gov> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov> | |||||
2024-11-12 | restic: add v0.17.3 (#47553) | Alec Scott | 1 | -0/+1 | |
2024-11-12 | direnv: add v2.35.0 (#47551) | Alec Scott | 1 | -0/+1 | |
2024-11-12 | geomodel: Allow configuring C++ standard (#47422) | Paul Gessinger | 1 | -0/+9 | |
* geomodel: Allow configuring C++ standard * drop c++11 | |||||
2024-11-12 | glab: add v1.48.0 (#47552) | Alec Scott | 1 | -0/+2 | |
2024-11-12 | parsec: update urls (#47416) | Wouter Deconinck | 1 | -13/+5 | |
* parsec: update urls * parsec: fix homepage | |||||
2024-11-12 | xfsprogs: fix dependency on gettext (#47547) | Matthieu Dorier | 1 | -1/+2 | |
* xfsprogs: fix dependency on gettext * changed dependency on gettext in xfsprogs Co-authored-by: Wouter Deconinck <wdconinc@gmail.com> --------- Co-authored-by: Wouter Deconinck <wdconinc@gmail.com> | |||||
2024-11-12 | openssh: add v9.9p1 (#47555) | Wouter Deconinck | 1 | -23/+26 | |
2024-11-12 | py-constantly: add v23.10.4 (#47548) | Matthieu Dorier | 4 | -0/+5 | |
* py-constantly: added version 23.10.4 * py-constantly: fixed dependency on py-versioneer * py-constantly: updated py-versioneer dependency Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> | |||||
2024-11-12 | costo: new package and to fix the build, add pkgconfig dep to vtk (#47121) | teddy | 2 | -2/+52 | |
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com> | |||||
2024-11-12 | expat: Add 2.6.4 with security fixes + deprecate vulnerable 2.6.3 (#47521) | Sebastian Pipping | 1 | -3/+8 | |
2024-11-12 | llvm-amdgpu: add missing dependency on libxml2 (#47560) | Harmen Stoppels | 1 | -0/+1 | |
2024-11-12 | getting_started.rst: fix list of spack deps (#47557) | Harmen Stoppels | 1 | -3/+3 | |
2024-11-11 | py-cryptography: add v43.0.3 (switch to maturin) (#47546) | Wouter Deconinck | 1 | -3/+11 | |
* py-cryptography: add v43.0.3 (switch to maturin) * py-cryptography: deny some setuptools versions * py-cryptography: depends_on py-setuptools-rust when @42, no range --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> | |||||
2024-11-11 | environment-modules: add version 5.5.0 (#47543) | Xavier Delaruelle | 1 | -2/+11 | |
This new version is compatible with Tcl 9.0. It also requires 'util-linux' for new logging capabilities. | |||||
2024-11-11 | gdb: add version 15.2 (#47540) | Tim Haines | 1 | -0/+1 | |
2024-11-11 | prometheus: add v2.55.1 (#47544) | Mosè Giordano | 1 | -1/+4 | |
2024-11-11 | libunwind: Add 1.7.2, 1.8.1, and new *-stable branches (#47412) | Mikael Simberg | 1 | -8/+19 | |
* libunwind: Add 1.7.2 and 1.8.1 * libunwind: Remove deprecated 1.1 version * libunwind: Add newer *-stable branches: Remove 1.5-stable branch as well as cleanup. * libunwind: Use GitHub url for all versions * libunwind: Add conflict for PPC and 1.8.* * libunwind: Add conflict for aarch64 and 1.8: Build fails with aarch64/Gos-linux.c: In function '_ULaarch64_local_resume': aarch64/Gos-linux.c:147:1: error: x29 cannot be used in asm here } ^ aarch64/Gos-linux.c:147:1: error: x29 cannot be used in asm here make[2]: *** [Makefile:4795: aarch64/Los-linux.lo] Error 1 | |||||
2024-11-11 | justbuild: add version 1.4.0 (#47410) | Alberto Sartori | 1 | -0/+1 | |
2024-11-11 | packages: new versions (`diamond`, `py-alive-progress`, `py-bakta`, ↵ | Luke Diorio-Toth | 6 | -15/+92 | |
`py-deepsig-biocomp`), new packages (`py-pyhmmer`, `py-pyrodigal`) (#47277) * added updated versions * added pyhmmer * updated infernal * fix blast-plus for apple-clang * fix py-biopython build on apple-clang * remove erroneous biopython dep: build issue is with python 3.8, not biopython * deepsig python 3.9: expanding unnecessary python restrictions * add pyrodigal * fix unnecessarily strict diamond version * builds and updates: blast-plus indexing broken, still need to test db download and bakta pipeline * builds and runs * revert blast-plus changes: remove my personal hacks to get blast-plus to build | |||||
2024-11-11 | extrae: Update dyninst dependency (#47359) | Tim Haines | 2 | -7/+42 | |
2024-11-11 | Fix the build error during compilation of rocdecode package (#47283) | Sreenivasa Murthy Kolam | 2 | -0/+48 | |
* fix the build error during compilation of rocdecode.was dependent on libva-devel packag * address review comment * address review changes.commit the changes | |||||
2024-11-11 | osu-micro-benchmarks: add v7.5 (#47423) | MatthewLieber | 1 | -0/+1 | |
* Adding sha for 7.4 release of OSU Micro Benchmarks * Adds the sha256sum for the OSU mirco benchmarks 7.5 release. | |||||
2024-11-11 | py-fsspec-xrootd: new package (#47405) | Wouter Deconinck | 1 | -0/+26 | |
* py-fsspec-xrootd: new package * py-fsspec-xrootd: depends_on python@3.8: | |||||
2024-11-11 | openmpi: add two_level_namespace variant for MacOS (#47202) | Stephen Herbener | 1 | -0/+22 | |
* Add two_level_namespace variant (default is disabled) for MacOS to enable building executables and libraries with two level namespace enabled. * Addressed reviewer comments. * Moved two_level_namespace variant ahead of the patch that uses that variant to get concretize to work properly. * Removed extra print statements | |||||
2024-11-11 | Removing args to get libraries added in RPATH (#47465) | renjithravindrankannath | 2 | -18/+696 | |
2024-11-11 | superlu-dist: add v9.1.0, v9.0.0 (#47461) | Satish Balay | 1 | -1/+3 | |
Fix typo wrt @xiaoyeli | |||||
2024-11-11 | rsyslog: add v8.2410.0 (fix CVE) (#47511) | Wouter Deconinck | 1 | -4/+17 | |
* rsyslog: add v8.2410.0 | |||||
2024-11-11 | varnish-cache: add v7.6.1 (#47513) | Wouter Deconinck | 1 | -7/+12 | |
2024-11-11 | py-pyppeteer: new package (#47375) | Wouter Deconinck | 2 | -0/+54 | |
* py-pyppeteer: new package * py-pyee: new package (v11.1.1, v12.0.0) | |||||
2024-11-11 | xerces-c: add v3.3.0 (#47522) | Wouter Deconinck | 1 | -6/+9 | |
2024-11-11 | scitokens-cpp: add v1.1.2 (#47523) | Wouter Deconinck | 1 | -0/+1 | |
2024-11-11 | pixman: add v0.44.0 (switch to meson) (#47529) | Wouter Deconinck | 1 | -1/+36 | |
* pixman: add v0.44.0 (switch to meson) | |||||
2024-11-11 | xtrans: add v1.5.2 (#47530) | Wouter Deconinck | 1 | -0/+1 | |
2024-11-11 | git: add v2.46.2, v2.47.0 (#47534) | Wouter Deconinck | 1 | -0/+4 | |
2024-11-11 | py-non-regression-test-tools: add v1.1.4 (#47520) | teddy | 1 | -2/+3 | |
Co-authored-by: t. chantrait <teddy.chantrait@cea.fr> | |||||
2024-11-11 | fzf: add v0.56.2 (#47549) | Alec Scott | 1 | -0/+1 | |
2024-11-11 | bfs: add v4.0.4 (#47550) | Alec Scott | 1 | -0/+1 | |
2024-11-11 | soqt: new package (#47443) | Paul Gessinger | 1 | -0/+56 | |
* soqt: Add SoQt package The geomodel package needs this if visualization is turned on. * make qt versions explicit * use virtual dependency for qt * pr feedback Remove myself as maintainer Remove v1.6.0 Remove unused qt variant | |||||
2024-11-11 | openmpi: fix detection (#47541) | Harmen Stoppels | 1 | -31/+25 | |
Take a simpler approach to listing variant options -- store them in variables instead of trying to roundtrip them through metadata dictionaries. | |||||
2024-11-11 | Compiler.default_libc: early exit on darwin/win (#47554) | Harmen Stoppels | 1 | -2/+13 | |
* Compiler.default_libc: early exit on darwin/win * use .cc when testing c++ compiler if c compiler is missing | |||||
2024-11-11 | vtk-m %oneapi@2025: cxxflags add ↵ | eugeneswalker | 1 | -0/+6 | |
-Wno-error=missing-template-arg-list-after-template-kw (#47477) | |||||
2024-11-11 | py-pillow: patch for disabling optional deps (#47542) | Harmen Stoppels | 1 | -0/+6 | |
2024-11-11 | Bugfix: `spack find -x` in environments (#46798) | Peter Scheibel | 5 | -45/+242 | |
This addresses part [1] of #46345 #44713 introduced a bug where all non-spec query parameters like date ranges, -x, etc. were ignored when an env was active. This fixes that issue and adds tests for it. --------- Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl> |