Skip to content

Remove the old concretizer#45215

Merged
tgamblin merged 8 commits intospack:developfrom
alalazo:deprecation/old-concretizer
Aug 10, 2024
Merged

Remove the old concretizer#45215
tgamblin merged 8 commits intospack:developfrom
alalazo:deprecation/old-concretizer

Conversation

@alalazo
Copy link
Copy Markdown
Member

@alalazo alalazo commented Jul 12, 2024

The old concretizer is still used to bootstrap clingo from sources. If we switch to a DAG model where compilers are treated as nodes, we need either to fix the old concretizer, or be able to bootstrap clingo without it.

This PR takes the second approach and gets rid of the old concretizer code. The idea is to store a few concrete specs, in JSON format, as "prototypes", and tweak them according to the current host.

Dead code is removed. In particular 527b7aa removes the Spec.normalize and related methods, which was used in many unit-tests to setup the test context.

@spackbot-app spackbot-app bot added commands core PR affects Spack core functionality defaults environments stand-alone-tests Stand-alone (or smoke) tests for installed packages tests General test capability(ies) workflow labels Jul 12, 2024
@alalazo alalazo force-pushed the deprecation/old-concretizer branch from ff5cf15 to 52d34bd Compare July 12, 2024 20:55
@alalazo alalazo marked this pull request as ready for review July 12, 2024 20:55
@alalazo alalazo added this to the v0.23.0 milestone Jul 12, 2024
@alalazo alalazo mentioned this pull request Jul 18, 2024
15 tasks
@scheibelp scheibelp self-assigned this Jul 22, 2024
alalazo added 7 commits August 5, 2024 06:56
This includes:
* 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 job
Spec.normalize() is still there, since it's
heavily used in unit tests
@alalazo alalazo force-pushed the deprecation/old-concretizer branch from 527b7aa to 34f9363 Compare August 5, 2024 06:23
@alalazo alalazo requested a review from tgamblin August 5, 2024 06:26
@tgamblin tgamblin merged commit 2079b88 into spack:develop Aug 10, 2024
@tgamblin
Copy link
Copy Markdown
Member

Thanks @alalazo !

@alalazo alalazo deleted the deprecation/old-concretizer branch August 11, 2024 06:00
diehlpk pushed a commit to diehlpk/spack that referenced this pull request Aug 14, 2024
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>
Chrismarsh pushed a commit to Chrismarsh/spack that referenced this pull request Aug 16, 2024
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>
tldahlgren pushed a commit to AcriusWinter/spack that referenced this pull request Aug 20, 2024
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>
FrederickDeny pushed a commit to FrederickDeny/spack that referenced this pull request Aug 26, 2024
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands core PR affects Spack core functionality defaults environments stand-alone-tests Stand-alone (or smoke) tests for installed packages tests General test capability(ies) workflow

Projects

Development

Successfully merging this pull request may close these issues.

3 participants