summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2023-06-23 11:00:36 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2023-08-15 15:54:37 -0700
commitb94d54e4d9a294b730bddf7619eb630ac5998572 (patch)
treebf28a951a6aec5c94218977763ac5b6ca0952362 /lib
parenta410b220980ac136cd90f55c64b8dbea7561d484 (diff)
downloadspack-b94d54e4d9a294b730bddf7619eb630ac5998572.tar.gz
spack-b94d54e4d9a294b730bddf7619eb630ac5998572.tar.bz2
spack-b94d54e4d9a294b730bddf7619eb630ac5998572.tar.xz
spack-b94d54e4d9a294b730bddf7619eb630ac5998572.zip
Reduce the number of unification sets to only two
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/solver/concretize.lp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp
index 8eedc72823..4f6ac55c0a 100644
--- a/lib/spack/spack/solver/concretize.lp
+++ b/lib/spack/spack/solver/concretize.lp
@@ -54,7 +54,7 @@ unify(SetID, PackageName) :- unification_set(SetID, node(_, PackageName)).
unification_set("root", PackageNode) :- attr("root", PackageNode).
unification_set(SetID, ChildNode) :- attr("depends_on", ParentNode, ChildNode, Type), Type != "build", unification_set(SetID, ParentNode).
-unification_set(("build", ParentNode), ChildNode) :- attr("depends_on", ParentNode, ChildNode, Type), Type == "build", unification_set("root", ParentNode).
+unification_set("build", ChildNode) :- attr("depends_on", ParentNode, ChildNode, Type), Type == "build", unification_set("root", ParentNode).
unification_set(SetID, ChildNode) :- attr("depends_on", ParentNode, ChildNode, Type), Type == "build", SetID != "root", unification_set(SetID, ParentNode).
unification_set(SetID, VirtualNode) :- provider(PackageNode, VirtualNode), unification_set(SetID, PackageNode).
@@ -64,6 +64,7 @@ unification_set(SetID, VirtualNode) :- provider(PackageNode, VirtualNode), unifi
% In the "root" unification set only ID = 0 are allowed
:- unification_set("root", node(ID, _)), ID != 0.
+:- attr("node", PackageNode), not unification_set(_, PackageNode).
% Cannot have a node with an ID, if lower ID of the same package are not used
:- attr("node", node(ID1, Package)),