Commit graph

18482 commits

Author SHA1 Message Date
Todd Gamblin
b6089ac691
concretizer: don't use one_of_iff for range constraints (#20383)
Currently, version range constraints, compiler version range constraints,
and target range constraints are implemented by generating ground rules
from `asp.py`, via `one_of_iff()`.  The rules look like this:

```
version_satisfies("python", "2.6:") :- 1 { version("python", "2.4"); ... } 1.
1 { version("python", "2.4"); ... } 1. :- version_satisfies("python", "2.6:").
```

So, `version_satisfies(Package, Constraint)` is true if and only if the
package is assigned a version that satisfies the constraint. We
precompute the set of known versions that satisfy the constraint, and
generate the rule in `SpackSolverSetup`.

We shouldn't need to generate already-ground rules for this. Rather, we
should leave it to the grounder to do the grounding, and generate facts
so that the constraint semantics can be defined in `concretize.lp`.

We can replace rules like the ones above with facts like this:

```
version_satisfies("python", "2.6:", "2.4")
```

And ground them in `concretize.lp` with rules like this:

```
1 { version(Package, Version) : version_satisfies(Package, Constraint, Version) } 1
  :- version_satisfies(Package, Constraint).
version_satisfies(Package, Constraint)
  :- version(Package, Version), version_satisfies(Package, Constraint, Version).
```

The top rule is the same as before. It makes conditional dependencies and
other places where version constraints are used work properly. Note that
we do not need the cardinality constraint for the second rule -- we
already have rules saying there can be only one version assigned to a
package, so we can just infer from `version/2` `version_satisfies/3`.
This form is also safe for grounding -- If we used the original form we'd
have unsafe variables like `Constraint` and `Package` -- the original
form only really worked when specified as ground to begin with.

- [x] use facts instead of generating rules for package version constraints
- [x] use facts instead of generating rules for compiler version constraints
- [x] use facts instead of generating rules for target range constraints
- [x] remove `one_of_iff()` and `iff()` as they're no longer needed
2020-12-15 11:58:58 -08:00
Dr. Christian Tacke
a7a5fd3fa3
fmt: added v7.1.3, update URLs (#20404) 2020-12-15 18:15:25 +01:00
Ryan Mast
168f07181d
bison: added versions up to v3.7.4 (#20400) 2020-12-15 18:13:33 +01:00
AMD Toolchain Support
7dc56a293f
gromacs: removed mentions of non-existing variants (#20405) 2020-12-15 17:44:59 +01:00
Massimiliano Culpo
7501d9d150
dealii, piranha, trilinos: remove mentions of non-existing variants (#20406) 2020-12-15 17:44:20 +01:00
Tamara Dahlgren
21f30e3074
Bugfix/docs: correct and expand smoke test documentation (#20278) 2020-12-15 08:38:00 -08:00
Mark W. Krentel
d6bfc104bf
comgr: disable hip compile test from /opt/rocm (#20330) 2020-12-15 13:55:45 +01:00
Tamara Dahlgren
d67ca265a3
outputs: restore default output of fetch/build/total times (#20394) 2020-12-15 01:46:30 -08:00
Massimiliano Culpo
e7f4c2b49e
package sanity: ensure all variant defaults are allowed values (#20373) 2020-12-15 10:22:15 +01:00
Tamara Dahlgren
c6c1af4969
Bugfix: Correct the git URL (#20391) 2020-12-14 19:11:06 -08:00
Vicente Bolea
e3fa8d9f52
ParaView: add new ParaView-5.9.0-RC2 release (#20222)
* ParaView: add new ParaView-5.9.0-RC2 release

Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>

* Update var/spack/repos/builtin/packages/paraview/package.py

Indeed, I misunderstood the previous review. This looks good to me too.

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-12-14 15:23:50 -06:00
Ryan Mast
86ae63b648
bazel: add latest versions up to 3.7.1 (#20355) 2020-12-14 12:27:38 -06:00
Tim Haines
7e93240b97
boost: added v1.75.0 (#20366) 2020-12-14 19:20:33 +01:00
Andre Sailer
d1bebb4d05
mysql: fixed variant mismatch with boost (#20370)
Require boost at cxxstd=14 if cxxstd=14 is selected, not 11
2020-12-14 14:31:57 +01:00
Thomas Gruber
8fd4719291
likwid: Add variant for Nvidia GPU profiling feature (#20337) 2020-12-14 10:20:07 +01:00
Axel Huebl
f0b7be8263
WarpX: PSATD on (#20342)
Enabling PSATD is not mutually exclusive with other runtime options
anymore, so we can always compile with support for it to ease
usability.
2020-12-14 10:15:50 +01:00
Brian Van Essen
b7aea9f3b1
Propagate cuda_arch downstream from LBANN, Hydrogen and DiHydrogen (#20345) 2020-12-14 10:14:49 +01:00
Ryan Mast
fc8c07df2f
gradle: updated versions up to v6.7.1 (#20358) 2020-12-14 10:03:00 +01:00
Todd Gamblin
495e8cfb8e
concretizer: remove clingo command-line driver (#20362)
I was keeping the old `clingo` driver code around in case we had to run
using the command line tool instad of through the Python interface.

So far, the command line is faster than running through Python, but I'm
working on fixing that.  I found that if I do this:

```python
control = clingo.Control()
control.load("concretize.lp")
control.load("hdf5.lp")       # code from spack solve --show asp hdf5
control.load("display.lp")

control.ground([("base", [])])
control.solve(...)
```

It's just as fast as the command line tool. So we can always generate the
code and load it manually if we need to -- we don't need two drivers for
clingo. Given that the python interface is also the only way to get unsat
cores, I think we pretty much have to use it.

So, I'm removing the old command line driver and other unused code. We
can dig it up again from the history if it is needed.
2020-12-14 09:35:53 +01:00
takanori-ihara
5c43be7694
libmaus2: new package at v2.0.767 (#20300) 2020-12-14 09:29:58 +01:00
Tomoyasu Nojiri
12c8be73b3
wps: fix build for aarch64 (#20363) 2020-12-14 09:18:19 +01:00
Ben Cowan
cf37e9276d
Debugging support: fix compiler wrapper log on Mac OS (#20333)
This fixes a logging error observed on macOS 11.0.1 (Big Sur).
When performing a Spack install in debugging mode (e.g.
`spack -d install py-scipy`) Spack is supposed to write a log of
compiler wrapper command line invocations to the current working
directory.

Due to a regression error introduced by #18205, these files were
no-longer generated, and Spack was printing errors such as
"No such file or directory: None/." This is because the log file
directory gets set from `spack.main.spack_working_dir`, but that
variable is not set in the spawned process.

This PR ensures that the working directory (at the time of the
"spack install" invocation) is persisted to the subprocess.
2020-12-11 15:54:11 -08:00
yellowhat
0924b20984
fio: added v3.25 (#20302) 2020-12-11 15:16:28 +01:00
vvolkl
e6f2fa34d0
dd4hep: added v01-15, edm4hep variant and updated url_for_version (#20304) 2020-12-11 15:15:41 +01:00
Levi Baber
d55dfe07d9
albert: added v4.0a (#20306) 2020-12-11 14:35:50 +01:00
Dr. Christian Tacke
3be8a5e007
root: added v6.22.06 (#20309) 2020-12-11 14:23:46 +01:00
vvolkl
047bf4d902
prmon: added v2.1.1 (#20318) 2020-12-11 11:27:28 +01:00
Christian Kniep
e4bb85cd27
Add amazonlinux (x86/arm) dockerfile (#20320)
Co-authored-by: Christian Kniep <kniec@amazon.com>
2020-12-11 11:11:33 +01:00
Desmond Orton
ea7d14af10
py-dadi: added new package at v2020-12-02 (#20314) 2020-12-11 10:26:01 +01:00
Ryan Marcellino
9721e0fdec
openjdk: bump version 1.8 and 11 (#20315) 2020-12-11 10:24:25 +01:00
QuellynSnead
dcfd22cca9
caliper: add a variant to enable Fortran support (#20332) 2020-12-11 10:10:21 +01:00
manifest
955a5c0fc8
py-angel: new package at v3.0 (#20331) 2020-12-11 10:02:18 +01:00
Adam J. Stewart
207f71246a
py-torchvision: add v0.8.2 (#20328) 2020-12-11 09:53:12 +01:00
Adam J. Stewart
28def448ff
py-torch: add v1.7.1 (#20327) 2020-12-11 09:52:51 +01:00
Tomoyasu Nojiri
6672278e68
py-pyarrow: fix build for aarch64 (#20335) 2020-12-11 09:37:36 +01:00
Robert Pavel
1728b0ea25
flux: added v0.20.0 and v0.21.0 (#20322)
Fixed hard tab in flux-sched edit and unbound hwloc in flux-core after
testing to better support modern MPIs in spack environments

Verified that flux-core@0.17 is when hwloc@2: became viable
2020-12-11 09:08:02 +01:00
Dr. Christian Tacke
6f6855d437
curl: added v7.64.0, v7.74.0 (#20321) 2020-12-11 09:06:54 +01:00
Tamara Dahlgren
59628cd9e8
Tests: enable re-use of post-install tests in smoke tests (#20298) 2020-12-10 10:35:27 -08:00
Dr. Christian Tacke
6c26203f95
hepmc: Add 2.06.11, switch to https (#20286) 2020-12-10 11:40:02 -05:00
Itaru Kitayama
9bcf99358e
Add a new NEST version, 2.20.0. (#20316)
* Add a new NEST version, 2.20.0.

* Scalasca requires Score-P as a 'run' dependency.

Co-authored-by: Itaru Kitayama <itaru.kitayama@riken.jp>
2020-12-10 06:43:16 -06:00
arjun-raj-kuppala
3d568d1553
AMD ROCm Release: Bump up versions(3.9.0 and 3.10.0) for miopen-hip (#20296) 2020-12-10 11:55:07 +01:00
Christoph Junghans
e117e087eb
votca-*: add v1.6.3 (#20308) 2020-12-09 15:06:54 -07:00
Filippo Spiga
5b1739da72
Adding NVIDIA HPC SDK 20.11 (#20287) 2020-12-09 09:53:05 -08:00
Filippo Spiga
adbbd6f28f
Adding CUDA 11.1.1 (#20289) 2020-12-09 09:47:03 -08:00
arjun-raj-kuppala
8f8f83620d
AMD ROCm Release: Bump up migraphx recipe with 3.9.0 and 3.10.0 (#20299) 2020-12-09 09:40:54 -08:00
AMD Toolchain Support
0b62b33d18
Below changes were added to lammps recipe: (#20288)
1) amdfftw library support
 2) opt added in supported packages
2020-12-09 09:36:59 -08:00
Jose E. Roman
af307d3120
New patch release SLEPc 3.14.1 (#20291) 2020-12-09 09:29:24 -08:00
Michael Kuhn
1969af2440
openssl: add 1.1.1i (#20294) 2020-12-09 07:52:15 -05:00
Adam J. Stewart
3f5f80956e
Command Reference: add link to spack test docs (#20054) 2020-12-08 09:26:03 -08:00
Tim Moon
90b3f7f259
Make sure py-protobuf package can link to libprotobuf when building (#20280) 2020-12-08 09:52:57 -06:00