Commit graph

8365 commits

Author SHA1 Message Date
alalazo
28e129b087 Added mixins to modularize common behaviors across build-systems.
Modifications:
  * added a mixin to filter compiler wrappers from files
  * modified hdf5, openmpi, mpich, mvapich2 to use it
2018-02-13 02:18:28 -08:00
Massimiliano Culpo
4d97b540a8 FFTW: expose optimization handles via variants (SIMD + FMA) (#7038) 2018-02-13 02:06:58 -08:00
Todd Gamblin
b98cdf098a Rework command reference in docs, add spack commands command
- command reference now includes usage for all Spack commands as output
  by `spack help`.  Each command usage links to any related section in
  the docs.

- added `spack commands` command which can list command names,
  subcommands, and generate RST docs for commands.

- added `llnl.util.argparsewriter`, which analyzes an argparse parser and
  calls hooks for description, usage, options, and subcommands
2018-02-12 20:25:17 -08:00
Todd Gamblin
1b998cbeee Fix issues with spack [cmd] -h help output
- Shorten Spack command usage for short options. Short options are now
  shown as [-abc] instead of as [-a] [-b] [-c]

- fix bug that mixed long and short options for top-level `spack help`
2018-02-12 20:25:17 -08:00
Todd Gamblin
fff3cc695d Fix section labels for some commands in the docs 2018-02-12 20:25:17 -08:00
Todd Gamblin
39e6d54956 make defaults in command help look like standard argparse 2018-02-12 20:25:17 -08:00
Todd Gamblin
8f52de32b6 Add help for buildcache, reorganize command help categories
- Add proper help for `spack buildcache` subcommands

- Reorganize the help categories of Spack commands so that buildcache is
  in packaging and diy and setup are now in build.
2018-02-12 20:25:17 -08:00
Todd Gamblin
2b7dfcd19f Clean up help metavar for --scope configuration options
- previously commands with this argument showed a long list of choices
  that were platform specific.

- use a better metavar: {defaults,system,site,user}[/PLATFORM]
2018-02-12 20:25:17 -08:00
Levi Baber
de3c047105 new package: Glfmultiples (#7055) 2018-02-12 19:35:57 -08:00
Loikki
5fef8b6963 grackle package: add float option (#7196) 2018-02-12 14:32:24 -08:00
Luigi Calori
aa15235058 fluxbox lightweight window manager (#7169) 2018-02-12 19:35:18 +01:00
David Beckingsale
a403a1ca68 RAJA package: add versions and CUDA/openmp support (#7201) 2018-02-12 10:34:54 -08:00
Cyrus Harrison
e4ba199fc1 updates to conduit and ascent packages (#7040)
* Remove variants disabling blas and lapack for py-numpy, issues
  building these have been resolved
* For CMake greater than 3.10, FindMPI changed, so use
  MPIEXE_EXECUTABLE instead of MPIEXE for 3.10 and newer
2018-02-12 10:20:46 -08:00
Massimiliano Culpo
ef270615f0
Use python3.6 to test building docs (#7218)
I think the main issue here is that we ship a custom version of a system
library (`argparse`), and this is prone to fail if `argparse` is
imported before we hack `sys.path` internally.

Probably a better solution would be not to customize argparse, but
instead have a wrapper on top of whatever the system provides.
2018-02-12 12:18:51 +01:00
Massimiliano Culpo
b7baeb542d Set a default python that is consistent with the libraries in PYTHONHOME (#7157)
fixes #7128

Before this PR packages that were indirectly dependent on python might
have failed due to inconsistency between the python found in the
environment and the standard libraries set in PYTHONHOME
2018-02-11 23:08:45 -08:00
Eric
7e9a369dec shortbred: Create new package (#7210) 2018-02-11 22:26:35 +01:00
Eric
fb7a5b279d glimmer: Create new package (#7208) 2018-02-11 22:22:34 +01:00
Axel Huebl
ee70551e10 xtensor-python (#7217)
pybind11 bindings for seamlessly using xtensor in python
2018-02-11 22:21:45 +01:00
Axel Huebl
f0aa4641f9 pybind11: 2.2.[1,2] & develop (#7216)
Add the latest release of `pybind11` and its `develop` version.
2018-02-11 18:00:22 +01:00
Axel Huebl
266a3593ce Xtensor 0.15.1 (#7215)
Add the latest xtensor release and its dependencies.
2018-02-11 17:56:08 +01:00
Eric
912e661056 new package: diffsplice (#7187) 2018-02-09 20:15:58 -08:00
Jed Brown
74ffd8b6be hpgmg package: add debug option and new version (#7175)
This adds a static version of hpgmg (up to now only the latest commit
from the master branch was available). This also adds a debug variant
and sets optimization flags for ~debug when the compiler is gcc,
intel, or clang
2018-02-09 19:01:49 -08:00
Jed Brown
ec162e69b2 petsc: use spack-built python for configure (#7176)
Make sure to use Spack-built python to run petsc configure script
(in particular since petsc requires python@2.6:2.8)
2018-02-09 13:11:03 -08:00
Geoffrey Oxberry
deb1a93f81 xbraid@2.2.0: new package (#7205) 2018-02-09 19:49:31 +01:00
Geoffrey Oxberry
5defe9ab00 git-imerge@1.1.0: new package (#7203) 2018-02-09 19:48:11 +01:00
Eric
0d34cdd77f py-checkm-genome: Create new package (#7200) 2018-02-09 19:37:16 +01:00
David Gardner
9d304ad585 fix petsc int64 metis dependencies (#7195) 2018-02-09 12:29:10 +01:00
Axel Huebl
e98bcaf3f5 libSplash: 1.7.0 (#7199)
Adds the latest release of libSplash (1.7.0) and newly learned
CMake flags for explicit dependency control.

Modifies HDF5 dependency: non-MPI splash does (and did) never run
with a parallel HDF5, due to it's internal cross-dependencies on
MPI.
2018-02-09 12:27:13 +01:00
Christoph Junghans
20225edde4
comd: more sane default (#7046)
Avoid useless deps.
2018-02-08 12:36:23 -05:00
becker33
8913c3465c
Change location of public key in basic tutorial (#7192)
* Change location of public key in basic tutorial

* Change tuturial version number to 11.2
2018-02-07 08:45:29 -08:00
Hans Pabst
8f5ece9ace LIBXSMM 1.8.3 (#7183) 2018-02-06 14:31:18 +01:00
Eric
26ff36f05f samblaster: Create new package (#7188) 2018-02-06 13:54:05 +01:00
Eric
167b5dc5d3 py-localcider: Create new package (#7189) 2018-02-06 13:52:37 +01:00
Geoffrey Oxberry
49e58992db oclint: new package (#7076) 2018-02-06 06:35:17 +01:00
Levi Baber
e25406c26b angsd: new version, and conflict for newer htslib with old version (#7122) 2018-02-05 18:33:12 +01:00
Mark Meredith
6c21d0bf31 Update fish url for fish 2.7.1 (#7089) 2018-02-04 09:05:44 +01:00
Thilina Rathnayake
970a4b2815 Update Nek5000 package to Version 17 (#7178)
and minor polishing
2018-02-03 17:05:14 -06:00
Erik Schnetter
927af929f4 highfive: Update to version 1.5 (#7041) 2018-02-03 10:22:03 +01:00
健美猫
caba978aa6 A new package: libcroco. (#7154) 2018-02-03 10:07:02 +01:00
Elizabeth Fischer
be5fa8f6c2 macOS Fix for GDAL (#7155) 2018-02-03 10:06:35 +01:00
Geoffrey Oxberry
4c9521b52b clingo@5.2.2: new package (#7091) 2018-02-03 10:05:06 +01:00
Eric
b6f1e0611c stringtie: add version 1.3.4a (#7164) 2018-02-03 09:52:51 +01:00
healther
e3951c2a21 Fix ignore-conflicts for extensions in views (#7167)
Fixes #7159

When activating extensions in external views, the --ignore-conflicts
option was being ignored. In this particular issue the conflict was
for the duplicate __init__ file for multiple python packages in the
same namespace, but in general any conflict for extensions would
cause an error whether or not --ignore-conflicts was set.

This also renames the 'force' option of do_activate to
'with_dependencies' and updates views to call do_activate with this
set to False (since it traverses the dependency dag anyway). This
isn't strictly required, it just avoids redundant calls.
2018-02-02 14:45:21 -08:00
Eric
0b6d7f7397 new package: perl-exporter-tiny (#7030) 2018-02-02 10:28:45 -08:00
scheibelp
71483d9390
Update tutorial on advanced packaging (#7144)
This reorganizes most sections and rewords a significant portion of
the content (including all introductions) but keeps all the examples.

* Remove section 'What happens at subscript time' from tutorial:
  it is too detailed for a tutorial
* Move the 'Extra query parameters' and 'Attach attributes to other
  packages' sections into a separate grouping 'Other packaging topics'
* move the 'Set variables at build time yourself' section after
  'Set environment variables in dependents' section since the latter
  is more motivating
* start the 'set environment variables at build-time for yourself'
  section with qt as an example
* renamed section 'specs build interface' to 'retrieving library
  information' and updated section introduction
* renamed section 'a motivating example' to 'accessing library
  dependencies'; split out the material which deals with implementing
  .libs for netlib-lapack into a separate section called 'providing
  libraries to dependents'. consolidated in material from the section
  'single package providing multiple virtual specs' since
  netlib-lapack is an example of this (this removes the material
  about intel-parallel studio)
2018-02-01 12:10:25 -08:00
Feiyi Wang
27b033587b Efficient array of booleans, C extension (#7135) 2018-02-01 18:48:32 +00:00
Todd Gamblin
df758e1cfc Improve log parsing performance (#7093)
* Allow dashes in command names and fix command name handling

- Command should allow dashes in their names like the reest of spack,
  e.g. `spack log-parse`
  - It might be too late for `spack build-cache` (since it is already
    called `spack buildcache`), but we should try a bit to avoid
    inconsistencies in naming conventions

- The code was inconsistent about where commands should be called by
  their python module name (e.g. `log_parse`) and where the actual
  command name should be used (e.g. `log-parse`).

- This made it hard to make a command with a dash in the name, and it
  made `SpackCommand` fail to recognize commands with dashes.

- The code now uses the user-facing name with dashes for function
  parameters, then converts that the module name when needed.

* Improve performance of log parsing

- A number of regular expressions from ctest_log_parser have really poor
  performance, most due to untethered expressions with * or + (i.e., they
  don't start with ^, so the repetition has to be checked for every
  position in the string with Python's backtracking regex implementation)

- I can't verify that CTest's regexes work with an added ^, so I don't
  really want to touch them.  I tried adding this and found that it
  caused some tests to break.

- Instead of using only "efficient" regular expressions, Added a
  prefilter() class that allows the parser to quickly check a
  precondition before evaluating any of the expensive regexes.

- Preconditions do things like check whether the string contains "error"
  or "warning" (linear time things) before evaluating regexes that would
  require them.  It's sad that Python doesn't use Thompson string
  matching (see https://swtch.com/~rsc/regexp/regexp1.html)

- Even with Python's slow implementation, this makes the parser ~200x
  faster on the input we tried it on.

* Add `spack log-parse` command and improve the display of parsed logs

- Add better coloring and line wrapping to the log parse output.  This
  makes nasty build output look better with the line numbers.

- `spack log-parse` allows the log parsing logic used at the end of
  builds to be executed on arbitrary files, which is handy even outside
  of spack.

- Also provides a profile option -- we can profile arbitrary files and
  show which regular expressions in the magic CTest parser take the most
  time.

* Parallelize log parsing

- Log parsing now uses multiple threads for long logs
- Lines from logs are divided into chnks and farmed out to <ncpus>
- Add -j option to `spack log-parse`
2018-01-31 21:57:56 -08:00
Geoffrey Oxberry
514f0bf5c5 lz4 platform=darwin: fix dylib name (#7112) 2018-01-31 16:12:44 -08:00
Geoffrey Oxberry
7959c5ffd2 libdwarf: fix linking, fix build on Darwin (#7124)
* libdwarf: fix linker flags

* libdwarf: fix header install names

* libdwarf: add zlib dependency

Prior to this commit, libdwarf was linked to the system zlib. This
commit links it to spack-installed zlib.

* libdwarf: fix dynamic library suffix for Darwin
2018-01-31 16:12:25 -08:00
healther
bddc1556e1 symlink python3 to python (#7103)
* symlink python3 to python

* otherwise not all autotools are smart enough

* Update package.py
2018-01-31 16:11:25 -08:00