diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2024-08-11 01:12:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-10 16:12:27 -0700 |
commit | 2079b888c8b14a72bd1558af532f1befd32bcc7c (patch) | |
tree | f9f66fcc0b11b3a936d5dd505dc08714d74e4946 /etc | |
parent | 2dbc5213b02c3c5f2e021a0493e8cf593e7082e3 (diff) | |
download | spack-2079b888c8b14a72bd1558af532f1befd32bcc7c.tar.gz spack-2079b888c8b14a72bd1558af532f1befd32bcc7c.tar.bz2 spack-2079b888c8b14a72bd1558af532f1befd32bcc7c.tar.xz spack-2079b888c8b14a72bd1558af532f1befd32bcc7c.zip |
Remove the old concretizer (#45215)
The old concretizer is still used to bootstrap clingo from source. If we switch to a DAG model
where compilers are treated as nodes, we need to either:
1. fix the old concretizer to support this (which is a lot of work and possibly research), or
2. bootstrap `clingo` without the old concretizer.
This PR takes the second approach and gets rid of the old concretizer code. To bootstrap
`clingo`, we store some concrete spec prototypes as JSON, select one according to the
coarse-grained system architecture, and tweak them according to the current host.
The old concretizer and related dead code are removed. In particular, this removes
`Spec.normalize()` and related methods, which were used in many unit-tests to set
up the test context. The tests have been updated not to use `normalize()`.
- [x] Bootstrap clingo concretization based on a JSON file
- [x] Bootstrap clingo *before* patchelf
- [x] Remove any use of the old concretizer, including:
* Remove only_clingo and only_original fixtures
* Remove _old_concretize and _new_concretize
* Remove _concretize_together_old
* Remove _concretize_together_new
* Remove any use of `SPACK_TEST_SOLVER`
* Simplify CI jobs
- [x] ensure bootstrapping `clingo` works on on Darwin and Windows
- [x] Raise an intelligible error when a compiler is missing
- [x] Ensure bootstrapping works on FreeBSD
- [x] remove normalize and related methods
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Diffstat (limited to 'etc')
-rw-r--r-- | etc/spack/defaults/config.yaml | 17 | ||||
-rw-r--r-- | etc/spack/defaults/windows/config.yaml | 1 |
2 files changed, 0 insertions, 18 deletions
diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml index 532e3db270..686575f8fc 100644 --- a/etc/spack/defaults/config.yaml +++ b/etc/spack/defaults/config.yaml @@ -170,23 +170,6 @@ config: # If set to true, Spack will use ccache to cache C compiles. ccache: false - - # The concretization algorithm to use in Spack. Options are: - # - # 'clingo': Uses a logic solver under the hood to solve DAGs with full - # backtracking and optimization for user preferences. Spack will - # try to bootstrap the logic solver, if not already available. - # - # 'original': Spack's original greedy, fixed-point concretizer. This - # algorithm can make decisions too early and will not backtrack - # sufficiently for many specs. This will soon be deprecated in - # favor of clingo. - # - # See `concretizer.yaml` for more settings you can fine-tune when - # using clingo. - concretizer: clingo - - # How long to wait to lock the Spack installation database. This lock is used # when Spack needs to manage its own package metadata and all operations are # expected to complete within the default time limit. The timeout should diff --git a/etc/spack/defaults/windows/config.yaml b/etc/spack/defaults/windows/config.yaml index 53116391cc..eaa336dca2 100644 --- a/etc/spack/defaults/windows/config.yaml +++ b/etc/spack/defaults/windows/config.yaml @@ -1,6 +1,5 @@ config: locks: false - concretizer: clingo build_stage:: - '$spack/.staging' stage_name: '{name}-{version}-{hash:7}' |