Spack v0.11.0 contains many improvements since v0.10.0.
Below is a summary of the major features, broken down by category.
New packages
- Spack now has 2,178 packages (from 1,114 in v0.10.0)
- Many more Python packages (356) and R packages (471)
- 48 Exascale Proxy Apps (try
spack list -t proxy-app
)
Core features for users
- Relocatable binary packages (
spack buildcache
, #4854) - Spack now fully supports Python 3 (#3395)
- Packages can be tagged and searched by tags (#4786)
- Custom module file templates using Jinja (#3183)
spack bootstrap
command now sets up a basic module environment (#3057)- Simplified and better organized help output (#3033)
- Improved, less redundant
spack install
output (#5714, #5950) - Reworked
spack dependents
andspack dependencies
commands (#4478)
Major new features for packagers
- Multi-valued variants (#2386)
- New
conflicts()
directive (#3125) - New dependency type:
test
dependencies (#5132) - Packages can require their own patches on dependencies (#5476)
depends_on(..., patches=<patch list>)
- Build interface for passing linker information through Specs (#1875)
- Major packages that use blas/lapack now use this interface
- Flag handlers allow packages more control over compiler flags (#6415)
- Package subclasses support many more build systems:
- autotools, perl, qmake, scons, cmake, makefile, python, R, WAF
- package-level support for installing Intel HPC products (#4300)
spack blame
command shows contributors to packages (#5522)spack create
now guesses many more build systems (#2707)- Better URL parsing to guess package version URLs (#2972)
- Much improved
PythonPackage
support (#3367)
Core
- Much faster concretization (#5716, #5783)
- Improved output redirection (redirecting build output works properly #5084)
- Numerous improvements to internal structure and APIs
Tutorials & Documentation
- Many updates to documentation
- New tutorial material from SC17
- configuration
- build systems
- build interface
- working with module generation
- Documentation on docker workflows and best practices
Selected improvements and bug fixes
- No longer build Python eggs -- installations are plain directories (#3587)
- Improved filtering of system paths from build PATHs and RPATHs (#2083, #3910)
- Git submodules are properly handled on fetch (#3956)
- Can now set default number of parallel build jobs in
config.yaml
- Improvements to
setup-env.csh
(#4044) - Better default compiler discovery on Mac OS X (#3427)
- clang will automatically mix with gfortran
- Improved compiler detection on Cray machines (#3075)
- Better support for IBM XL compilers
- Better tab completion
- Resume gracefully after prematurely terminated partial installs (#4331)
- Better mesa support (#5170)
Spack would not be possible without our community. Thanks to all of our
contributors for the
new features and packages in this release!