From 14ab63f97cf34c3a43a16717ccc7a360e6bd4287 Mon Sep 17 00:00:00 2001
From: Todd Gamblin <tgamblin@llnl.gov>
Date: Sun, 7 Jun 2020 11:09:18 -0700
Subject: concretizer: add a configuration option to use new or old concretizer

- [x] spec.py can call out to the new concretizer
- [x] config.yaml now has an option to choose a concretizer (original, clingo)
---
 etc/spack/defaults/config.yaml | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

(limited to 'etc')

diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml
index 6c5e8697b1..15ce68c68f 100644
--- a/etc/spack/defaults/config.yaml
+++ b/etc/spack/defaults/config.yaml
@@ -145,6 +145,20 @@ config:
   ccache: false
 
 
+  # The concretization algorithm to use in Spack. Options are:
+  #
+  #   'original': Spack's original greedy, fixed-point concretizer. This
+  #       algorithm can make decisions too early and will not backtrack
+  #       sufficiently for many specs.
+  #
+  #   'clingo': Uses a logic solver under the hood to solve DAGs with full
+  #       backtracking and optimization for user preferences.
+  #
+  # 'clingo' currently requires the clingo ASP solver to be installed and
+  # built with python bindings. 'original' is built in.
+  concretizer: original
+
+
   # 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
@@ -159,11 +173,13 @@ config:
   # never succeed.
   package_lock_timeout: null
 
+
   # Control whether Spack embeds RPATH or RUNPATH attributes in ELF binaries.
   # Has no effect on macOS. DO NOT MIX these within the same install tree.
   # See the Spack documentation for details.
   shared_linking: 'rpath'
 
+
   # Set to 'false' to allow installation on filesystems that doesn't allow setgid bit
   # manipulation by unprivileged user (e.g. AFS)
   allow_sgid: true
-- 
cgit v1.2.3-70-g09d2