summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-01-12unparser: implement operator precedence algorithm for unparserTodd Gamblin7-169/+314
Backport operator precedence algorithm from here: https://github.com/python/cpython/commit/397b96f6d7a89f778ebc0591e32216a8183fe667 This eliminates unnecessary parentheses from our unparsed output and makes Spack's unparser consistent with the one in upstream Python 3.9+, with one exception. Our parser normalizes argument order when `py_ver_consistent` is set, so that star arguments in function calls come last. We have to do this because Python 2's AST doesn't have information about their actual order. If we ever support only Python 3.9 and higher, we can easily switch over to `ast.unparse`, as the unparsing is consistent except for this detail (modulo future changes to `ast.unparse`)
2022-01-12unparser: refactor delimiting with context managers in ast.unparseTodd Gamblin1-190/+177
Backport of https://github.com/python/cpython/commit/4b3b1226e86df6cd45e921c8f2ad23c3639c43b2
2022-01-12unparser: add block() context manager for indentationTodd Gamblin1-63/+63
This is a backport of a refactor from cpython 3.9
2022-01-12unparse: Make unparsing consistent for 2.7 and 3.5-3.10Todd Gamblin2-13/+71
Previously, there were differences in the unparsed code for Python 2.7 and for 3.5-3.10. This makes unparsed code the same across these Python versions by: 1. Ensuring there are no spaces between unary operators and their operands. 2. Ensuring that *args and **kwargs are always the last arguments, regardless of the python version. 3. Always unparsing print as a function. 4. Not putting an extra comma after Python 2 class definitions. Without these changes, the same source can generate different code for different Python versions, depending on subtle AST differences. One place where single source will generate an inconsistent AST is with multi-argument print statements, e.g.: ``` print("foo", "bar", "baz") ``` In Python 2, this prints a tuple; in Python 3, it is the print function with multiple arguments. Use `from __future__ import print_function` to avoid this inconsistency.
2022-01-12externals: add astunparseTodd Gamblin5-18/+1022
Add `astunparse` as `spack_astunparse`. This library unparses Python ASTs and we're adding it under our own name so that we can make modifications to it. Ultimately this will be used to make `package_hash` consistent across Python versions.
2022-01-12perl-tk: add missing dependencies (#28240)Andrew W Elble1-0/+6
2022-01-12e2fsprogs: fix non-root install (#28255)Dylan Simon1-0/+6
2022-01-12Use depends_on over load in lmod module files generated by Spack (#28352)Harmen Stoppels2-21/+4
2022-01-12poamsa: fix build errors for gcc10+ (#28262)snehring1-0/+4
2022-01-12yarn: add runtime dependency on `node-js@4.0:` (#27654)Danny McClanahan2-0/+6
2022-01-12HDF5 GPU VFD: add new package. (#28272)H. Joe Lee1-0/+35
2022-01-12ITensor: add v3.1.10 and 'shared' variant (#28370)Melven Roehrig-Zoellner1-0/+9
2022-01-12py-async-timeout: fix checksum issue (#28329)Adam J. Stewart1-3/+3
2022-01-12libtheora: disable docs by default (#28330)Nils Leif Fischer1-1/+8
2022-01-12curl: add support for external detection (#28331)Nils Leif Fischer1-0/+32
2022-01-12Remove tut since it requires deprecated Python 3.6 (#28360)Massimiliano Culpo1-1/+0
2022-01-11Packaging: Virtual package for libllvm (#27200)kwryankrattiger3-0/+26
Add an abstraction around libllvm to allow libllvm providers to be specified for all packages. This is targeting allowing mesa to build against llvm-amdgpu or intel-llvm or llvm or any other custom llvm variant that arises for specific GPU toolchains
2022-01-11memkind: add v1.12.0 (#28306)Erik Schnetter1-0/+1
2022-01-11openblas: New version 0.3.19 (#28308)Erik Schnetter1-0/+1
2022-01-11py-aiohttp: switch to PyPI tarball (#28333)Adam J. Stewart1-5/+5
2022-01-11Open3D: add missing LLVM dep (#28334)Adam J. Stewart1-0/+2
2022-01-11ffmpeg: add v4.4.1 (#28300)Erik Schnetter1-0/+1
2022-01-11hdf5: prefer stable over experimental releases (#28340)Harmen Stoppels1-2/+4
2022-01-11mbedtls: add v2.16.12, v2.28.0 and v3.1.0(#28281)Harmen Stoppels1-14/+17
2022-01-10Deprecate Python 2 installations (#28003)Adam J. Stewart109-413/+409
* Deprecate Python 2 installations * Deprecate py-python-meep * Deprecate older easybuild backend libs * Deprecate Python 3.6 * Deprecate miniconda2
2022-01-10automake: New version 1.16.5 (#28299)Erik Schnetter1-0/+1
2022-01-10gawk: New version 5.1.1 (#28301)Erik Schnetter1-0/+1
2022-01-10gdbm: New version 1.22 (#28302)Erik Schnetter1-0/+1
2022-01-10grep: New version 3.7 (#28303)Erik Schnetter1-0/+1
2022-01-10lorene: Beautify package title in documentation (#28305)Erik Schnetter1-1/+1
2022-01-10wi4mpi: New version 3.5.0 (#28313)Erik Schnetter1-0/+1
2022-01-10wget: New version 1.21.2 (#28312)Erik Schnetter1-0/+1
2022-01-10openssl: New version 1.1.1m (#28310)Erik Schnetter1-1/+3
2022-01-10stage.steal_source: preserve symlinksPeter Scheibel1-1/+1
This avoids dangling symlink errors. ignore_dangling_symlinks option would be more-targeted but is only available for Python >= 3.2 (#28318)
2022-01-10Python: set default config_vars (#28290)Adam J. Stewart2-43/+68
* Python: set default config_vars * Add missing commas * dso_suffix not present for some reason * Remove use of default_site_packages_dir * Use config_vars during bootstrapping too * Catch more errors * Fix unit tests * Catch more errors * Update docstring
2022-01-10New packages: google-crc32c and py-google-crc32c (#28293)Marcus Boden2-0/+52
2022-01-10z3: New version 4.8.14 (#28314)Erik Schnetter1-0/+1
2022-01-10hwloc: New version 2.7.0 (#28298)Erik Schnetter1-0/+1
2022-01-09New package: petaca (#28326)Peter Brady1-0/+49
* Add the petaca fortran/c package * Adopt date for version name and remove variants
2022-01-08blaspp: set BLA_VENDOR for cray (#28104)luker1-1/+7
* for Cray's libsci in blaspp, set BLA_VENDOR=all * Update package.py * Update package.py * Update package.py
2022-01-08SQLite: add new version/variant (#28204)Adam J. Stewart2-25/+27
2022-01-08openssh: New version 8.8p1 (#28325)Erik Schnetter1-0/+1
2022-01-08Damask improvements (#28178)Martin Diehl4-18/+15
2022-01-07Dalton package: add versions and variants (#28226)Jógvan Magnus Haugaard Olsen5-26/+225
* Update existing 2020.0 version to use tag * Add versions 2018.2 and master * Add patches for GCC/Intel * Use MPI compiler wrappers when +mpi * Constrain CMake build dependency (need >= 3.1) * Add variants for optional components (e.g QFIT library)
2022-01-07ELPA package: don't check threading support during build (#28227)Anton Kozhevnikov1-0/+1
./configure tries to execute an MPI test, which is not possible on most HPC platforms (if you don't build on a compute node), so this check is disabled to allow the build to proceed. Ideally we could check this by placing constraints on the MPI that Spack builds (e.g. require building a version that is guaranteed to have threading support).
2022-01-07Catch2 package: add versions 2.13.8 and 3.0.0-preview4 (#28297)Peter Brady1-1/+3
2022-01-07petsc, py-petsc4py: add versions 3.16.3 (#28277)Satish Balay2-0/+2
2022-01-07py-pyzmq: adjust constraints for python-3.9 (#28264)Glenn Johnson1-2/+3
Version 18.1 builds with python-3.9
2022-01-07NVIDIA HPC SDK package: add version 22.1 (#28288)Filippo Spiga1-0/+4
2022-01-07r-kegg-db: mark deprecated, removed from bioconductor-3.13 (#28271)Glenn Johnson1-3/+5