From 9fadeaf0a259e2e9d15c11b6d87a7c010af8ca32 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Wed, 8 Mar 2023 18:27:52 +0100 Subject: [PATCH] compilers: slightly simplify setup code --- lib/spack/spack/solver/asp.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index b910ee0d9b0..fbda6e3a46d 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -946,26 +946,16 @@ def available_compilers(self): """Facts about available compilers.""" self.gen.h2("Available compilers") - compilers = self.possible_compilers - - compiler_versions = collections.defaultdict(lambda: set()) - for compiler in compilers: - compiler_versions[compiler.name].add(compiler.version) - - for compiler in sorted(compiler_versions): - for v in sorted(compiler_versions[compiler]): - self.gen.fact(fn.compiler_version(compiler, v)) - + for compiler_id, compiler in enumerate(self.possible_compilers): + self.gen.fact(fn.compiler_version(compiler.name, compiler.version)) self.gen.newline() def compiler_defaults(self): """Set compiler defaults, given a list of possible compilers.""" self.gen.h2("Default compiler preferences") - compiler_list = self.possible_compilers.copy() - compiler_list = sorted(compiler_list, key=lambda x: (x.name, x.version), reverse=True) ppk = spack.package_prefs.PackagePrefs("all", "compiler", all=False) - matches = sorted(compiler_list, key=ppk) + matches = sorted(self.possible_compilers, key=ppk) for i, cspec in enumerate(matches): f = fn.default_compiler_preference(cspec.name, cspec.version, i) @@ -1874,9 +1864,12 @@ def generate_possible_compilers(self, specs): # is already built else: cspecs.add(s.compiler) + # FIXME (COMPILERS) self.gen.fact(fn.allow_compiler(s.compiler.name, s.compiler.version)) - return cspecs + return list( + sorted(cspecs, key=lambda compiler: (compiler.name, compiler.version), reverse=True) + ) def define_version_constraints(self): """Define what version_satisfies(...) means in ASP logic."""