From 551120ee0bb1de53df1c4e10a9fc015cb0a28ada Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 12 Oct 2021 14:15:48 +0200 Subject: ASP-based solver: decrease the priority of multi-valued variant optimization for root (#26677) The ASP-based solver maximizes the number of values in multi-valued variants (if other higher order constraints are met), to avoid cases where only a subset of the values that have been specified on the command line or imposed by another constraint are selected. Here we swap the priority of this optimization target with the selection of the default providers, to avoid unexpected results like the one in #26598 --- .../packages/some-virtual-mv/package.py | 22 ++++++++++++++++++++++ .../packages/some-virtual-preferred/package.py | 17 +++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py create mode 100644 var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py (limited to 'var') diff --git a/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py b/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py new file mode 100644 index 0000000000..0aeb6d0c0a --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class SomeVirtualMv(Package): + """Package providing a virtual dependency and with a multivalued variant.""" + + homepage = "http://www.example.com" + url = "http://www.example.com/foo-1.0.tar.gz" + + version('1.0', '0123456789abcdef0123456789abcdef') + + provides('somevirtual') + + # This multi valued variant is needed to trigger an optimization + # criteria for clingo + variant('libs', default='shared,static', values=('shared', 'static'), + multi=True, description='Build shared libs, static libs or both') diff --git a/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py b/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py new file mode 100644 index 0000000000..1e8ba80526 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class SomeVirtualPreferred(Package): + """Package providing a virtual dependency with a preference in packages.yaml""" + + homepage = "http://www.example.com" + url = "http://www.example.com/foo-1.0.tar.gz" + + version('1.0', '0123456789abcdef0123456789abcdef') + + provides('somevirtual') -- cgit v1.2.3-70-g09d2