summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-08-16faodel: update github URL organization to sandialabs (#39446)Todd Kordenbrock1-3/+3
2023-08-16Extract Package from PackageNode for error messagesMassimiliano Culpo1-72/+72
2023-08-16Avoid sort on singleton list during edge insertion (#39458)Harmen Stoppels1-9/+7
The median length of this list of 1. For reasons I don't know, `.sort()` still like to call the key function. This saves ~9% of total database read time, and the number of calls goes from 5305 -> 1715.
2023-08-16Do not impose provider conditions, if the node is not a provider (#39456)Massimiliano Culpo2-8/+30
* Do not impose provider conditions, if the node is not a provider fixes #39455 When a node can be a provider of a spec, but is not selected as a provider, we should not be imposing provider conditions on the virtual. * Adjust the integrity constraint, by using the correct atom
2023-08-16json: minify by default (#39457)Harmen Stoppels1-1/+1
2023-08-16Add new custom markers to unit tests (#33862)Massimiliano Culpo83-500/+214
* Add "only_clingo", "only_original" and "not_on_windows" markers * Modify tests to use the "not_on_windows" marker * Mark tests that run only with clingo * Mark tests that run only with the original concretizer
2023-08-15Fixed HeFFTe package spec to not do the smoke test prior to 2.2.0 (#39435)Patrick Bridges1-0/+6
* Fixed HeFFTe package spec to not do the smoke test prior to 2.2.0, where it breaks * Convert test return to 'raise SkipTest' --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2023-08-15Change semantic for providersMassimiliano Culpo3-12/+58
If a possible provider is not used to satisfy a vdep, then it's not a provider of that vdep.
2023-08-15Change "effect_rules" for symmetry with trigger rulesMassimiliano Culpo1-13/+16
This even though right now we don't have cases where the effect is on another package.
2023-08-15Rework conflicts so that "vendors" is not needed anymoreMassimiliano Culpo9-88/+39
2023-08-15Add a description at the top of lp filesMassimiliano Culpo4-2/+22
2023-08-15Remove commented out code in lp filesMassimiliano Culpo2-13/+0
2023-08-15Reduce line length in lp fileMassimiliano Culpo1-3/+11
2023-08-15Demote warning to debug messageMassimiliano Culpo1-1/+1
2023-08-15Rename "main_node" -> "make_node"Massimiliano Culpo2-8/+8
2023-08-15Rename ""*_node" -> "*_dupe"Massimiliano Culpo2-28/+28
2023-08-15Rename "stringify", improve docsMassimiliano Culpo1-10/+15
2023-08-15Add vendors directiveMassimiliano Culpo9-9/+109
For the time being this directive prevents the vendored package to be in the same DAG as the one vendoring it.
2023-08-15Add "^" automatically for named conflicts that don't refer to 'this' packageMassimiliano Culpo1-1/+14
See https://github.com/spack/spack/pull/38447#discussion_r1285291520
2023-08-15Inline a few functions that are not needed anymoreMassimiliano Culpo1-20/+8
2023-08-15Remove the need for "node_regex"Massimiliano Culpo2-12/+21
2023-08-15Rename method: "root_node" -> "main_node"Massimiliano Culpo2-7/+7
2023-08-15Rename const: "root_node_id" -> "main_node_id"Massimiliano Culpo1-13/+14
2023-08-15Rename atom: "special_case" -> "multiple_nodes_attribute"Massimiliano Culpo1-5/+6
2023-08-15Rename atom: "facts" -> "pkg_fact"Massimiliano Culpo3-87/+87
2023-08-15Simplify "node_has_variant" internal atom.Massimiliano Culpo1-13/+13
2023-08-15Removed leftover TODOsMassimiliano Culpo2-14/+5
2023-08-15ecp-data-viz-sdk: fix building with new encodingMassimiliano Culpo1-3/+4
2023-08-15We cannot require "mpich" as an mpi provider and ask for openmpiMassimiliano Culpo1-2/+2
2023-08-15Improve handling of cases with cyclesMassimiliano Culpo5-28/+88
To avoid paying the cost of setup and of a full grounding again, move cycle detection into a separate program and check first if the solution has cycles. If it has, ground only the integrity constraint preventing cycles and solve again.
2023-08-15Fix ecp-data-vis-sdk: a package cannot impose constraints on transitive depsMassimiliano Culpo1-1/+1
2023-08-15Optimize grounding of "can_inherit_flags"Massimiliano Culpo1-3/+6
2023-08-15Fix computation of max nodesMassimiliano Culpo3-30/+39
2023-08-15Add unit-tests for use cases requiring separate concretization of build depsMassimiliano Culpo10-0/+210
2023-08-15Add a new configuration option to select among different concretization modesMassimiliano Culpo5-48/+197
The "concretizer" section has been extended with a "duplicates:strategy" attribute, that can take three values: - "none": only 1 node per package - "minimal": allow multiple nodes opf specific packages - "full": allow full duplication for a build tool
2023-08-15Fix a few bugs in the encoding when imposing constraints on build deps onlyMassimiliano Culpo1-14/+12
These bugs would show up when we try to split nodes by imposing different targets or different compilers to all build dependencies.
2023-08-15Construct unification sets on demand, improve heuristicMassimiliano Culpo4-31/+81
2023-08-15Reduce the number of unification sets to only twoMassimiliano Culpo1-1/+2
2023-08-15Make cycle detection optional, to speed-up grounding and solvingMassimiliano Culpo3-11/+35
2023-08-15Deduplicate trigger and effect conditions in packagesMassimiliano Culpo2-28/+95
This refactor introduces extra indices for triggers and effect of a condition, so that the corresponding clauses are evaluated once for every condition they apply to.
2023-08-15Extract a function to emit variant rulesMassimiliano Culpo1-20/+23
2023-08-15ASP-based solver: do not optimize on known dimensionsMassimiliano Culpo4-30/+33
All the solution modes we use imply that we have to solve for all the literals, except for "when possible". Here we remove a minimization on the number of literals not solved, and emit directly a fact when a literal *has* to be solved.
2023-08-15Tweak a unit test by allowing a different type of exception to be raisedMassimiliano Culpo1-2/+3
2023-08-15Reduce the dependency types in a solveMassimiliano Culpo1-4/+25
Count the maximum number of nodes based on dependency types
2023-08-15Parametrize all the logic program for multiple nodesMassimiliano Culpo3-77/+185
Introduce the concept of "condition sets", i.e. the set of packages on which a package can require / impose conditions. This currently maps to the link/run sub-dag of each package + its direct build dependencies. Parametrize the "condition" and "requirement" logic to multiple nodes.
2023-08-15Introduce unification setsMassimiliano Culpo1-5/+13
Unification sets are possibly overlapping sets of nodes that might contain at most a single configuration for any package.
2023-08-15Allow clingo to generate edgesMassimiliano Culpo2-20/+33
2023-08-15Rework the encoding to introduce node(ID, Package) nested factsMassimiliano Culpo3-543/+635
So far the encoding has a single ID per package, i.e. all the facts will be node(0, Package). This will prepare the stage for extending this logic and having multiple nodes from the same package in a DAG.
2023-08-15Remove unneeded #defined directivesMassimiliano Culpo1-31/+0
2023-08-15Remove useless ruleMassimiliano Culpo1-5/+0
The version_equivalent fact was deleted in #36347, but the corresponding rule was not removed.