summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-08Add texinfo dependency for binutils through version 2.38. (#34173)Jon Rood1-5/+2
2022-12-07Add recipe for singularity-hpc, py-spython (#34234)Marco De La Pierre2-0/+85
* adding recipe for singularity-hpc - 1st go * typo in singularity-hpc recipe * singularity-hpc, spython recipes: added platform variant * singularity-hpc, spython recipes: platform variant renamed to runtime * style fix * another style fix * yet another style fix (why are they not reported altogether) * singularity-hpc recipe: added Vanessa as maintainer * singularity-hpc recipe: add podman variant * singularity-hpc recipe: added variant for module system * shpc recipe: add version for py-semver dependency Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * py-spython recipe: no need to specify generic python dep for a python pkg * py-spython: py-requests not needed Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-12-07Windows: Prevent SameFileError when rpathing (#34332)John W. Parent1-4/+11
2022-12-07parser: refactor with coarser token granularity (#34151)Massimiliano Culpo14-1566/+1505
## Motivation Our parser grew to be quite complex, with a 2-state lexer and logic in the parser that has up to 5 levels of nested conditionals. In the future, to turn compilers into proper dependencies, we'll have to increase the complexity further as we foresee the need to add: 1. Edge attributes 2. Spec nesting to the spec syntax (see https://github.com/spack/seps/pull/5 for an initial discussion of those changes). The main attempt here is thus to _simplify the existing code_ before we start extending it later. We try to do that by adopting a different token granularity, and by using more complex regexes for tokenization. This allow us to a have a "flatter" encoding for the parser. i.e., it has fewer nested conditionals and a near-trivial lexer. There are places, namely in `VERSION`, where we have to use negative lookahead judiciously to avoid ambiguity. Specifically, this parse is ambiguous without `(?!\s*=)` in `VERSION_RANGE` and an extra final `\b` in `VERSION`: ``` @ 1.2.3 : develop # This is a version range 1.2.3:develop @ 1.2.3 : develop=foo # This is a version range 1.2.3: followed by a key-value pair ``` ## Differences with the previous parser ~There are currently 2 known differences with the previous parser, which have been added on purpose:~ - ~No spaces allowed after a sigil (e.g. `foo @ 1.2.3` is invalid while `foo @1.2.3` is valid)~ - ~`/<hash> @1.2.3` can be parsed as a concrete spec followed by an anonymous spec (before was invalid)~ ~We can recover the previous behavior on both ones but, especially for the second one, it seems the current behavior in the PR is more consistent.~ The parser is currently 100% backward compatible. ## Error handling Being based on more complex regexes, we can possibly improve error handling by adding regexes for common issues and hint users on that. I'll leave that for a following PR, but there's a stub for this approach in the PR. ## Performance To be sure we don't add any performance penalty with this new encoding, I measured: ```console $ spack python -m timeit -s "import spack.spec" -c "spack.spec.Spec(<spec>)" ``` for different specs on my machine: * **Spack:** 0.20.0.dev0 (c9db4e50ba045f5697816187accaf2451cb1aae7) * **Python:** 3.8.10 * **Platform:** linux-ubuntu20.04-icelake * **Concretizer:** clingo results are: | Spec | develop | this PR | | ------------- | ------------- | ------- | | `trilinos` | 28.9 usec | 13.1 usec | | `trilinos @1.2.10:1.4.20,2.0.1` | 131 usec | 120 usec | | `trilinos %gcc` | 44.9 usec | 20.9 usec | | `trilinos +foo` | 44.1 usec | 21.3 usec | | `trilinos foo=bar` | 59.5 usec | 25.6 usec | | `trilinos foo=bar ^ mpich foo=baz` | 120 usec | 82.1 usec | so this new parser seems to be consistently faster than the previous one. ## Modifications In this PR we just substituted the Spec parser, which means: - [x] Deleted in `spec.py` the `SpecParser` and `SpecLexer` classes. deleted `spack/parse.py` - [x] Added a new parser in `spack/parser.py` - [x] Hooked the new parser in all the places the previous one was used - [x] Adapted unit tests in `test/spec_syntax.py` ## Possible future improvements Random thoughts while working on the PR: - Currently we transform hashes and files into specs during parsing. I think we might want to introduce an additional step and parse special objects like a `FileSpec` etc. in-between parsing and concretization.
2022-12-07SW4: new package (#34252)Houjun Tang1-0/+75
* sw4 * use h5z-zfp develop * update for macos * Update package.py Co-authored-by: Houjun Tang <tang@Houjuns-MacBook-Pro.local>
2022-12-07py-numba: add 0.56.4 (#34362)Manuela Kuhn1-19/+22
2022-12-07ftk: add 0.0.7.1 (#34146)Hanqi Guo1-2/+9
2022-12-07py-pywavelets: add 1.4.1 (#34369)Manuela Kuhn1-4/+9
* py-pywavelets: add 1.4.1 * Update var/spack/repos/builtin/packages/py-pywavelets/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-pywavelets/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-12-07XRootD: add checksum + patch for 5.5.1 (#34209)iarspider1-1/+8
* Update package.py * Add full_index to patch URL * Update var/spack/repos/builtin/packages/xrootd/package.py * Restore list_url Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2022-12-07osu-micro-benchmarks: add v7.0.1 (#34221)MatthewLieber1-1/+17
Co-authored-by: Matt Lieber <lieber.31@osu.edu>
2022-12-07libnrm: allow mpi other than mpich (#34232)eugeneswalker1-1/+1
2022-12-07[quantum-espresso] Parallel make fails for 6.{6,7} (#34238)Stephen Sachs1-2/+2
* [quantum-espresso] Parallel make fails for 6.{6,7} I run into a race condition in `make` with Intel compiler on icelake when building QE 6.6 and 6.7. * Fix comment Co-authored-by: Stephen Sachs <stesachs@amazon.com>
2022-12-07update kealib to 1.5.0 (#34237)Sam Gillingham1-1/+2
2022-12-07darshan-util: fix location of input for darshan-util tests (#34245)shanedsnyder1-10/+14
* fix location of input for darshan-util tests Darshan log file used for test input was removed from the Darshan repo after the 3.4.0 release. This commit adds logic to use a different log file as test input for later Darshan versions.
2022-12-07meep: add new versions and additional variants incl. dependencies (#34242)Eric Müller4-13/+78
* libctl: add new version Change-Id: I16f91cfab198c66b60407ab5bb2cb3ebeac6bc19 * New package: libgdsii Change-Id: I34b52260ab68ecc857ddf8cc63b124adc2689a51 * New package: mpb Change-Id: I6fdf5321c33d6bdbcaa1569026139a8483a3bcf8 * meep: add new version and variants Change-Id: I0b60a9a4d9a329f7bde9027514467e17376e6a39 * meep: use with_or_without Change-Id: I05584cb13df8ee153ed385e77d367cb34e39777e
2022-12-07Fix Apptainer (#34329)Sam Grayson1-0/+15
* Fix Apptainer * Add comments
2022-12-07Paraview catalyst updates (#34364)kwryankrattiger2-3/+3
* LibCatalyst: Fix version of pre-release develop version * ParaView: Requires libcatalyst@2: * ParaView: Apply adios2 module no kit patch to 5.11 This patch is still pending in VTK and didn't make it into 5.11 as anticipated.
2022-12-07bcache: support external gettext when `libintl` is in glibc (#34114)Bernhard Kaindl1-1/+3
* bcache: support external gettext when `libintl` is in glibc Many glibc-based Linux systems don't have gettext's libintl because libintl is included in the standard system's glibc (libc) itself. When using `spack external find gettext` on those, packages like `bcache` which unconditionally to link using `-lintl` fail to link with -lintl. Description of the fix: The libs property of spack's gettext recipe returns the list of libs, so when gettext provides libintl, use it. When not, there is no separate liblint library and the libintl API is provided by glibc. Tested with `spack external find gettext` on glibc-based Linux and in musl-based Alpine Linux to make sure that when -lintl is really needed, it is really used and nothing breaks.
2022-12-07Package magma: cleaned up cmake config (#33766)G-Ragghianti1-34/+26
2022-12-07likwid: add a permission fixing script a la singularity (#33503)Matthias Wolf2-5/+61
2022-12-06compiler flags: fix mixed flags from cli and yaml (#34218)Greg Becker2-35/+35
2022-12-06Fix dependency specification for CuSolver variant in HiOp. (#34138)Cameron Rutherford1-6/+8
Co-authored-by: pelesh <peless@ornl.gov> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-12-06Add back depends_on directives needed to bootstrap on Python 3.6 (#34355)Massimiliano Culpo3-0/+14
This partially reverts commit 95b5d541291aae3b85a1582e2d0e39066ca4e17a.
2022-12-06htop: new version 3.2.1 (#34346)David Zmick1-1/+2
2022-12-06py-nbclient: add 0.7.2 and py-jupyter-core: add 5.1.0 (#34348)Manuela Kuhn2-3/+18
2022-12-06mercurial/py-pybind11: print_string no longer exists (#34340)Nicholas Sly2-4/+2
* Fix mercurial print_str failure. * Perform same fix on py-pybind11 for print_string missing method. Co-authored-by: Nicholas Cameron Sly <sly1@llnl.gov>
2022-12-06trilinos: +teko conflicts with ~ml (#34339)eugeneswalker1-0/+1
2022-12-06Stop checking for {s3://path}/index.html (#34325)Harmen Stoppels1-14/+0
2022-12-06cfitsio: add v4.2.0 (#34316)lorddavidiii1-0/+1
2022-12-06ROOT: new versions and associated dependency constraints (#34185)Hadrien G1-3/+15
* Add new root versions and associated dependency constraints * Please style guide * Avoid conflicts where possible * Untested prototype of macOS version detection * Fixes for macOS version prototype * More logical ordering * More correctness and style fixes * Try to use spack's macos_version * Add some forgotten @s * Actually, Spack can't build Python 3.6 anymore, and thus no older PyROOT Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2022-12-06Avoid stat call in `llnl.util.symlink` on non-windows (#34321)Harmen Stoppels1-1/+4
2022-12-06Remove legacy yaml from buildcache fetch (#34347)Harmen Stoppels2-102/+24
2022-12-06pip/wheel/setuptools: extend PythonExtension (#34137)Adam J. Stewart3-21/+3
* pip/wheel/setuptools: extend PythonExtension * Base class still required
2022-12-06Fix compile errors with latest HDF5 1.13.3 (#34337)Houjun Tang1-1/+3
* Fix compile errors with latest HDF5 1.13.3 * format * Update var/spack/repos/builtin/packages/hdf5-vol-async/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-12-06Bootstrap most of Spack dependencies using environments (#34029)Massimiliano Culpo26-1154/+1531
This commit reworks the bootstrapping procedure to use Spack environments as much as possible. The `spack.bootstrap` module has also been reorganized into a Python package. A distinction is made among "core" Spack dependencies (clingo, GnuPG, patchelf) and other dependencies. For a number of reasons, explained in the `spack.bootstrap.core` module docstring, "core" dependencies are bootstrapped with the current ad-hoc method. All the other dependencies are instead bootstrapped using a Spack environment that lives in a directory specific to the interpreter and the architecture being used.
2022-12-05Update packages (#34344)Sam Grayson2-1/+10
2022-12-05graphite2: add dependency on freetype (#34292)Glenn Johnson1-0/+1
2022-12-05berkeleygw: add back python dependencies and tweak testsuite (#34125)Miguel Dias Costa1-5/+28
* slightly raise tolerance of some tests
2022-12-05SWIG: new version 4.1.0 (#34250)Seth R. Johnson2-14/+39
2022-12-05psrcat: fixed typo/undefined variable problem (#34334)downloadico1-1/+1
replaced the reference to the undefined "bindir" variable with prefix.bin
2022-12-05pharokka and py-phanotate: new packages (#34333)Luke Diorio-Toth2-0/+55
* pharokka and py-phanotate: new packages * move libxcrypt edit I don't need libxcrypt when not building dev infernal. Moving to a different PR
2022-12-05jellyfish: add variants for python and ruby bindings (#33832)Bernhard Kaindl1-7/+22
Co-authored-by: teachers-uk-net <stuart.morrison@kcl.ac.uk>
2022-12-05cray-mpich: fix dependencies for externals from manifest (#34231)Peter Scheibel1-0/+3
The cray manifest shows dependency information for cray-mpich, which we never previously cared about because it can only be used as an external. This updates Spack's dependency information to make cray-mpich specs read in from the cray external manifest usable.
2022-12-05redis: newer version and added TLS support (#34230)Loïc Pottier1-1/+33
Signed-off-by: Loïc Pottier <pottier1@llnl.gov> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-12-05py-nodeenv: add 1.7.0 (#34314)Manuela Kuhn1-0/+2
2022-12-05py-num2words: add 0.5.12 (#34315)Manuela Kuhn1-0/+1
2022-12-05Drop support for older rocm releases - 4.5.0 till 5.0.2 (#34264)Sreenivasa Murthy Kolam46-192/+955
* initial changes for rocm recipes * drop support for older releases * drop support for older rocm releases - add more recipes * drop support for older releases * address style issues * address style error * fix errors * address review comments
2022-12-05Added plumed version 2.8.1 including gromacs compatibility (#34268)Hector Martinez-Seara2-2/+14
* Added plumed version 2.8.1 including gromacs compatibility * Corrected ~mpi and +mpi variants in new depends * Fixed regression logic plumed+gromacs@2020.6 support
2022-12-05LAMMPS: Add new versions (#32522)Richard Berger1-27/+142
* LAMMPS: Add version 20220803 and 20220623.1 * LAMMPS: Add 20220915, 20221103, and 20220623.2
2022-12-05feat(Hermes)!: add yaml-cpp dependency (#34330)H. Joe Lee1-0/+1
The 0.9.0-beta requires yaml-cpp for parsing the configuration file format in YAML. P.S. I'm using https://www.conventionalcommits.org/en/v1.0.0/#specification for this commit message.