Commit graph

726 commits

Author SHA1 Message Date
Gregory Becker
53808f254e Support for cray external dependencies implemented in modules 2016-01-04 12:36:48 -08:00
Gregory Becker
ff82e41404 Merge branch 'externals' into crayport 2016-01-04 10:46:25 -08:00
Gregory Becker
217a2d9ea5 fixed yaml error 2015-12-17 15:26:27 -08:00
Mario Melara
b5216f6ec8 Commented out cxxflag. Not 100% sure it's needed 2015-12-11 12:07:32 -08:00
Mario Melara
31df2dd9dd Fixed targets ti be x86_64, important note: have not tested this on linux machine 2015-12-11 12:04:47 -08:00
Mario Melara
fee88d289d Rewrote docstrings for sys_type() and got rid of unused functions 2015-12-11 12:03:13 -08:00
Mario Melara
028cca16e6 Got rid of the unusued default strategy=None 2015-12-02 10:15:33 -08:00
Mario Melara
d7fdb8e015 Got rid of hard coded strings for adding default 2015-12-01 11:57:54 -08:00
Mario Melara
58f2b39bc8 Changed default to CPU_TARGET env var. Helps deal with target differences between cori and edison 2015-12-01 11:57:17 -08:00
Mario Melara
89fbe4fdfa Changed add_target to include variables rather than hard-coded strings 2015-12-01 11:55:38 -08:00
Mario Melara
fceb5a75b0 Adding new files to compilers 2015-11-13 11:53:38 -08:00
Mario Melara
bfd05d3d27 Changed name of file and class to craype to avoid spack freaking out about versions 2015-11-13 11:48:49 -08:00
Mario Melara
72fa3c0492 Added craype support 2015-11-13 11:48:15 -08:00
Mario Melara
9458f7c7d0 Got rid of my old method of finding in LOADEDMODULES 2015-11-13 11:47:36 -08:00
Mario Melara
a5ba69d68d Added a _cmp_key for the architecture class 2015-11-13 11:46:13 -08:00
Gregory Becker
7c89f9d18c Added the basic ouline of a cray compiler class in lib/spack/spack/compilers/cray.py 2015-11-12 14:31:41 -08:00
Gregory Becker
e78b8c16be used key_comparator decorator from util.lang to compare targets. Fixes find bug 2015-11-12 13:27:10 -08:00
Gregory Becker
eb2c083159 Fixed the to_dict from_dict for targets on cray. First version to build/find properly on Cray 2015-11-11 17:29:47 -08:00
Gregory Becker
185f40eb8b fixed my git problems 2015-11-11 16:33:22 -08:00
Gregory Becker
3067705c10 made a to_dict for targets. Also a from_dict for sanity 2015-11-11 16:16:47 -08:00
Gregory Becker
8a13d344a8 bug fix in spec.py 2015-11-11 15:07:57 -08:00
Gregory Becker
271a839957 First possibly working version of the crayport. Not sufficiently tested at all. 2015-11-11 14:22:07 -08:00
Gregory Becker
95a34628a3 Add modules to compilers. Changed compiler to take paths as a list. Changed compiler_for_spec to be aware of different compiler stratigies 2015-11-11 11:32:18 -08:00
Gregory Becker
7e6fc79eb2 Merge branch 'features/spackathon' of github.com:NERSC/spack into crayport
Conflicts:
	lib/spack/spack/compiler.py
2015-11-11 10:35:59 -08:00
Gregory Becker
5347f460b4 adding module find to find command 2015-11-11 10:31:37 -08:00
Gregory Becker
08729315c6 Added bgq architecture subclass: may require additional functionality to support 2015-11-05 09:21:56 -08:00
Mario Melara
b61d554dc8 Fixed architecture.py file so it doesn't have the weird merge changes i.e <<<HEAD etc. Also added target method of recognizing it's own architecture 2015-11-04 13:28:12 -08:00
Mario Melara
2bc73b4a27 Merge branch 'features/spackathon' of https://github.com/NERSC/spack into features/spackathon 2015-11-04 13:21:33 -08:00
Gregory Becker
3a73ae1683 Fixed the previous commit 2015-11-04 13:12:11 -08:00
Mario Melara
9bf8e8573c generic linux architecture subclass 2015-11-04 13:08:48 -08:00
Mario Melara
e3a02ea5c7 Merge branch 'features/spackathon' of https://github.com/NERSC/spack into features/spackathon
Conflicts:
	lib/spack/spack/architecture.py
2015-11-04 13:06:56 -08:00
Gregory Becker
35532d6b0a Changed cray architecture subclass to add proper targets for front at back end nodes 2015-11-04 13:00:35 -08:00
Mario Melara
37260962e5 changed some potential syntax errors and added a way for target to recognize class 2015-11-04 12:57:29 -08:00
Gregory Becker
5ac974c9b2 Enforced that the architecture subclass cannot add a target that shares a name with a target alias 2015-11-04 12:50:22 -08:00
Mario Melara
058e72d29c Added default target and also front end and back end targets 2015-11-02 11:08:55 -08:00
Mario Melara
eb2cf1698f Fixed some issues with naming 2015-11-02 11:08:08 -08:00
Mario Melara
9a91da9ccd Added arch_path to list of modules path 2015-10-30 15:59:28 -07:00
Mario Melara
e39586c81d Reverted back all architecture way of finding modules 2015-10-30 15:58:49 -07:00
Mario Melara
2d87bb92ed Changed front-end and back-end to front_end and back_end to avoid error 2015-10-30 15:58:20 -07:00
Mario Melara
db0695e46a architectures folder where the Architecture subclasses reside 2015-10-30 15:57:00 -07:00
Gregory Becker
6e56070386 improved aliasing in target method in architecture.py 2015-10-30 15:15:36 -07:00
Gregory Becker
d177184777 added target method to architecture.py and minor cleanup 2015-10-30 15:12:29 -07:00
Mario Melara
0a004e0fce Merge branch 'features/spackathon' of https://github.com/NERSC/spack into features/spackathon
Merge Gregory Becker's commits with my own architecture commits
2015-10-30 14:53:49 -07:00
Mario Melara
7ab921ff02 Changed architecture class and added class Target 2015-10-30 14:46:26 -07:00
Gregory Becker
382d8478bf prototype of new architecture concretization saved as new_concretize_architecture in concretize.py 2015-10-30 10:23:33 -07:00
Gregory Becker
09597fe8dc updated the executible to return stderr when specified. Added load_module to build_environment.py, loads target 2015-10-30 09:44:28 -07:00
Mario Melara
38508c5a3f Created a control flow logic that will loop through the strategies and find compilers using that. TODO: Need to find a way to locate their executables 2015-10-22 12:02:26 -07:00
Mario Melara
a89abb435f Changed structure of class, add compiler strategy is a method and can create a dict 2015-10-21 11:32:59 -07:00
Mario Melara
9b387e7682 Added strategy method in init 2015-10-21 11:09:05 -07:00
Gregory Becker
51b69ef00b initial fetch on crayport 2015-10-21 09:27:57 -07:00
Mario Melara
c31da9bc8f Made sure architecture works with yaml file 2015-10-20 14:10:54 -07:00
Mario Melara
ca3cc5b23e Refactored architecture class. Now it will automagically create a dict upon instantiation. 2015-10-20 13:37:06 -07:00
Mario Melara
3ba2842b53 Got Architecture class working the way i wanted to. Next to write tests 2015-10-20 13:33:21 -07:00
Mario Melara
fec197ccac Fixed the output of sys_type(), might need to add back the error handling part 2015-10-15 15:25:13 -07:00
Mario Melara
ccdf105759 Commented out a long list of tests to just include my arch test 2015-10-15 12:48:12 -07:00
Mario Melara
d328f4c3b6 Test suite for architecture class and functions 2015-10-15 12:47:26 -07:00
Mario Melara
29e03ac851 Added __eq__ testing method. Created tests for it in test/ folder 2015-10-15 12:46:44 -07:00
Mario Melara
4f21344e87 Started created the Architecture class for Spack to use 2015-10-14 19:41:07 -07:00
Mario Melara
b6d2a12ceb Started changing the find in modules method written by Todd 2015-10-07 15:57:29 -07:00
Mario Melara
06fe879745 Merge branch 'features/crayproto' of https://github.com/scalability-llnl/spack into develop 2015-10-07 14:55:05 -07:00
Matthew LeGendre
fac4428766 Documentation for external packages. 2015-10-05 14:04:33 -07:00
Matthew LeGendre
18f0b24a7f Add tests for spack external dependencies, plus fixes for issues found by those tests. 2015-10-05 11:37:36 -07:00
Matthew LeGendre
e4d2ba30b5 Fix failure in spack.test.config.ConfigTest from incorrect compiler config merging 2015-10-05 11:37:36 -07:00
Matthew LeGendre
650c9d4e36 Allow spack to build against external non-spack-installed packages. 2015-10-05 11:37:36 -07:00
Matthew LeGendre
53d70fff01 Fix type error with YAML config when merging lists from different configs. 2015-10-05 11:36:06 -07:00
Matthew LeGendre
53cde110b1 Update Spack mirror command to match docs 2015-10-05 11:36:06 -07:00
Matthew LeGendre
987cd9e78f Update docs for YAML configuration files and preferred concretization 2015-10-05 11:36:06 -07:00
Matthew LeGendre
ee68a76a19 Bug fixes from testing spack preferred packages 2015-10-05 11:36:06 -07:00
Matthew LeGendre
8d7b7e5d5d Use preferred package rules when concretize'ing specs 2015-10-05 11:36:06 -07:00
Matthew LeGendre
b5c597b318 Allow specs to be sorted based on preferred packages, versions, compilers, variants and dependencies. 2015-10-05 11:36:05 -07:00
Matthew LeGendre
59f89dd3be Allow long names in format string variables 2015-10-05 11:36:05 -07:00
karenyyng
f4e72f33c8 added dependencies for py-h5py 2015-10-05 08:24:33 -07:00
Todd Gamblin
d00314c621 Protptype cray compiler detection and support 2015-10-05 01:30:25 -07:00
karenyyng
e9f7d033ff make sure submodule is added in the correct location 2015-10-03 19:13:08 -07:00
Todd Gamblin
8818f4ac5e Remove enabled variants from install prefix.
- these make the prefix too long in many cases.
- users can figure out which install is which by querying.
2015-09-27 17:01:35 -07:00
Todd Gamblin
adbd393c39 Remove special characters (@, %, +, ~, etc) from stage name 2015-09-27 17:01:35 -07:00
Todd Gamblin
c5c9ada7b0 Fix for GitHub #95
develop: compiler clang@unknown created for /usr/bin/clang-format
https://github.com/scalability-llnl/spack/issues/95
2015-08-27 02:04:58 -07:00
Todd Gamblin
6f75f5bd6a Merge pull request #88 from trws/git_depth_attempt
adding a fallback on failure with git --depth
2015-08-12 23:59:13 -07:00
Todd Gamblin
1792115b4d Use absolute paths to spack compiler wrappers in CC/CXX/F77/FC 2015-08-04 09:57:06 -07:00
Tom Scogland
9174c06598 adding a fallback on failure with git --depth
Certain remote protocols don't support the `--depth` option.  Since this can't
be checked by URL type or in any sane way locally, this version attempts to
clone git repositories with the --depth option, and if that fails attempts the
clone again without it.
2015-07-27 14:03:04 -07:00
Todd Gamblin
27ca697b43 Add Python version test to detect {} in version strings.
- {} is not compatible with Python 2.6
2015-07-24 14:22:28 -07:00
Todd Gamblin
1e2f421faa Fix Python 2.6 compatibility issue. 2015-07-23 17:01:55 -07:00
Todd Gamblin
19123b4c48 Fix ProviderIndex.update(), which didn't remove stale providers. 2015-07-16 01:41:11 -07:00
Todd Gamblin
e097696390 Update concretize to check for more changes and iterate further. 2015-07-16 01:12:11 -07:00
Todd Gamblin
9087f26537 Fix mangled error message. 2015-07-14 23:59:03 -07:00
Todd Gamblin
0d308ca30f Fix regression of install -j. 2015-07-14 23:45:58 -07:00
Todd Gamblin
9d1f8f6bfd Add test to check packages for Python2.6 compatibility, as well as core. 2015-07-13 18:37:48 +00:00
Florent Pruvost
5acd7cad9a add env. var. in modules: LIBRARY_PATH and PKG_CONFIG_PATH 2015-07-02 02:12:10 -07:00
Todd Gamblin
6892d7189f Merge branch 'features/toggle-build-output' into develop 2015-07-02 00:51:03 -07:00
Todd Gamblin
b3e34be972 Better python template for 'spack create' 2015-07-02 00:39:33 -07:00
Todd Gamblin
edfcac32c3 Fix bug in uninstall (regression in 0fc3b58) 2015-06-20 21:46:52 -07:00
Todd Gamblin
6ed5dd7427 log_output now allows echo to be toggled wtih 'v' key 2015-06-20 20:20:28 -07:00
Todd Gamblin
cfb883646f Fix for git pull --tags when using git 1.7.1
- Added `ignore_errors` option to `Executable.__call__`
- Can avoid raising errors on *specific* error return values.
2015-06-13 17:52:00 -07:00
Tom Scogland
0b5ca25358 Fix for repos with many tags
Ensures all tags are ready before checkout, using `--branch` if possible and
an extra pull if that is not available.  Also adds `--depth 1` to create
shallow clones if the git version is sufficient.

Fixes #64.
2015-06-13 15:29:55 -07:00
Tom Scogland
277df08676 removing vestigial lines from a previous commit 2015-06-13 14:10:45 -07:00
Tom Scogland
d92ac2a6b2 Small ruby enhancement and tmuxinator package
It is currently less painful to pull the source from github, compile it into a
gem, then install the gem, than it is to download a gem and install it.  This
still lacks an activation mechanism, but `spack use tmuxinator` is functional.
2015-06-11 13:51:53 -07:00
Todd Gamblin
0a92349f90 Try a little harder in concretize_version() -- concretize unsafe versions too.
- This can result in the user being prompted to download an unsafe
  version.

- Avoids overly strict errors when something *could* be satisfiable
  but we don't know about hte version.
2015-06-07 15:40:01 -07:00
Todd Gamblin
3f3ceb24c4 Add some comments b/c I didn't understand my own test. 2015-06-07 15:39:40 -07:00
Todd Gamblin
0fc3b58890 SPACK-38: Allow specs to be indexed by virtual dependencies.
- The following now work differently:

      spec['mpi']
      spec['blas']

  This can return a spec for openmpi, mpich, mvapich, etc., EVEN if
  the spec is already concretized.  This means that in a package that
  `depends_on('mpi')`, you can do `spec['mpi']` to see what it was
  concretized to.  This should simplify MPI and BLAS packages.

      'mpi' in spec
      'blas' in spec

  Previously, if the spec had been concretized, these would be `False`
  because there was not a dependency in the DAG with either of these
  names. These will now be `True` even if the spec has been
  concretized.  So, e.g., this will print "YES"

      s = Spec('callpath ^mpich')
      if 'mpi' in spec:
          print "YES"

- Similarly, this will be True:

      Spec('mpich').satisfies('mpi')

- Because of the way virtual dependencies are currently implemented,
  the above required some fiddling around with `package.py` so that it
  would never call `Spec.__contains__` (and result in endless
  recursion).

- This should be fixed by allowing virutal dependnecies to have their
  own package class.
  - This would allow a quicker check for vdeps, without a call to
    `all_packages`.
  - For the time being, `package.py` shouldn't call `__contains__`
2015-06-07 15:36:53 -07:00
Todd Gamblin
eb9859ce75 Executables now have a useful __str__ function. 2015-06-06 16:15:52 -07:00
Todd Gamblin
53feb12ea0 Cleanup and consolidate error handling 2015-06-06 15:50:01 -07:00
Todd Gamblin
5d7a6c0c46 Add FileFilter convenience class to llnl.util.filesystem. 2015-06-06 15:26:48 -07:00
Saravan Pantham
454d06c25c Removed autosave files from previous commit. 2015-06-06 15:26:37 -07:00
Saravan Pantham
c174fe6199 Fixed BLAS and Lapack installations 2015-06-06 15:26:31 -07:00
Todd Gamblin
d19538af07 Fix #48: Ignore hidden files when deciding how to stage.
- Expanding archvies like MAGMA 1.6.2 creates extra hidden files that
  confuse Spack's staging mechanism.

- Added a special case to ignore hidden files when checking whether
  the tarball exploded.
2015-06-01 10:25:58 -07:00
Todd Gamblin
123778dec2 Add -S/--stages option to spack cd/spack location.
- can now change dir to top-level stage
2015-06-01 09:56:35 -07:00
Todd Gamblin
16c2588635 Fix #46: make(parallel=False) regression.
- Added some tests to make sure this stays in place.
2015-05-31 13:03:30 -07:00
Todd Gamblin
ea7b65e2f2 SPACK-69: spack install now logs build output to install directory.
- spack install suppresses build output by default.
  - use install -v to show build output on the console too

- package.py uses log_output context to redirect output and log it to a file
  - filters color codes out of output written to file
  - optionally echos to the terminal

- YAML directory layout knows about its build log.
  - can get path to install build log to from directory layout
  - Package.install now copies the build log to $prefix/.spack/build.out

- Error message from failed install execution now includes build log location
2015-05-29 17:22:33 -07:00
Todd Gamblin
92c21d7134 debug instead of info logging in llnl.util.filesystem 2015-05-29 17:21:30 -07:00
Todd Gamblin
0035100186 SPACK-69: Add context manager to fork and log output in a with block. 2015-05-29 17:20:08 -07:00
Todd Gamblin
9b40d93fc2 Add ability to force color mode even if terminal is NOT a tty 2015-05-29 17:19:03 -07:00
Todd Gamblin
ceecd2ce41 Add ability to test whether tty verbose or debug is enabled. 2015-05-29 17:18:33 -07:00
Todd Gamblin
5676cb0dd1 Add spack find -L to show full hashes. 2015-05-28 17:13:57 -07:00
Todd Gamblin
8cbae642cc Fix bug in spack edit -c 2015-05-28 17:13:23 -07:00
Todd Gamblin
6f8f1bf7af Fix #34: Spack doesn't stop when dep fails to build.
- Fixes regression introduced by #30
- Child process needs to exit on error
2015-05-27 20:27:48 -07:00
Todd Gamblin
c622337802 Remove redundancy: convert with closing(open(...)) to with open(...) 2015-05-18 17:11:03 -07:00
Todd Gamblin
f813d823a1 Merge branch 'features/optional-deps' into develop
This includes:
- Much better variant support (+debug/-debug)
- Optional dependency support (depends_on(... , when='<condition>')
- New config file format (YAML in ~/.spack)
- New Spec format (YAML in $prefix/.spack/spec.yaml)
2015-05-18 16:16:20 -07:00
Matthew LeGendre
46b91ddf57 YAML config files for compilers and mirrors 2015-05-18 16:01:21 -07:00
Todd Gamblin
09151785b3 SPACK-87: enable disabled git fetch tests. 2015-05-18 11:32:15 -07:00
Todd Gamblin
b2f46c703d Fix SPACK-87: Tag checkout fails for older git versions. 2015-05-18 11:26:32 -07:00
Todd Gamblin
cd1ca36488 SPACK-41: More tests to ensure that constrain() reports changes. 2015-05-12 15:48:57 -07:00
Todd Gamblin
805122c789 SPACK-41: bugfix for nonconvergent normalize()
- constrain() wasn't reporting changes properly.
2015-05-12 14:52:46 -07:00
Todd Gamblin
095ff1cb4a Add debug handler to print a stacktrace on Ctrl-C in debug mode. 2015-05-12 14:52:41 -07:00
Todd Gamblin
c44db0133f Fix SPACK-41: Optional deps work with complex condition chains. 2015-05-12 11:45:48 -07:00
Todd Gamblin
cd5fa128c5 Work on SPACK-41: Optional dependencies work for simple conditions.
- Can depend conditionally based on variant, compiler, arch, deps, etc
  - normalize() is not iterative yet: no chaining depends_ons
  - really need a SAT solver, but iterative will at least handle
    simple cases.

- Added "strict" option to Spec.satisfies()
  - strict checks that ALL of other's constraints are met (not just
    the ones self shares)
  - Consider splitting these out into two methods: could_satisfy() and
    satisfies()
    - didn't do this yet as it would require changing code that uses
      satisfies()

- Changed semantics of __contains__ to use strict satisfaction (SPACK-56)

- Added tests for optional dependencies.

- The constrain() method on Specs, compilers, versions, etc. now
  returns whether the spec changed as a result of the call.
2015-05-12 09:56:59 -07:00
Todd Gamblin
ef9deeccd1 Merge branch 'features/yaml-spec' into features/optional-deps 2015-05-10 19:28:47 -07:00
Todd Gamblin
09fff39990 Merge remote-tracking branch 'origin/features/variants' into features/optional-deps 2015-05-10 18:59:56 -07:00
Todd Gamblin
13ff1a9bf6 Remove debug print in link_tree 2015-05-10 18:53:09 -07:00
Todd Gamblin
b4a26c496c Better hash output in find. 2015-05-10 18:48:42 -07:00
Todd Gamblin
43e5465592 Fix bug in directory layout hidden files() 2015-05-10 17:56:27 -07:00
Todd Gamblin
3c49487424 Doc tweak.
- add LLNL release number to new RTD theme.
2015-05-10 13:11:03 -07:00
Todd Gamblin
25af6478c5 Fix SPACK-67: 'spack help stage' was broken.
- remove spurious mutually exclusive group from subparser.
2015-05-10 12:46:33 -07:00
Todd Gamblin
793b842f99 tests for variant concretization 2015-05-10 12:28:25 -07:00
Todd Gamblin
535c1fac87 SPACK-56: fix Variant concretization.
- Variant concretization is tricky:

  - During concretization, a spec without variants (e.g., mpich) means
    "don't care".  So, Spec('mpich').satisfies('mpich+debug') is true
    because it *could* still be built that way.

  - After concretization, a spec without a particular variant means
    "don't know", as that wasn't part of the spec, so the opposite
    relationship is true.  Assume 'spec' is already installed:

      spec.satisfies('mpich+debug')

    this is false beacuse the `debug` variant didn't exist when spec
    was built, so we can't satisfy the explicit request for +debug.
2015-05-10 12:25:07 -07:00
Todd Gamblin
3b1898b8e4 Fix SPACK-40: Finish adding variant directive.
- Variants are now declarable in packages using the variant() directive.
- Variants are checked - you can't just ask for a random variant, it has to be declared.
- conditional logic (@when, if, '+debug' in spec, etc.) still required in package to
  implement variant.
2015-05-10 12:24:03 -07:00
Todd Gamblin
c105a8d42a Small updates to directives. 2015-05-10 12:24:03 -07:00
Todd Gamblin
1f8ce403dc Modularize directives. Now each directive specifies its storage. 2015-05-10 12:24:03 -07:00
Todd Gamblin
0944ba120c relations are now "directives", and code is cleaned up. 2015-05-10 12:24:03 -07:00
Todd Gamblin
5d2ee893c4 Remove TODOs for full DAG information.
- specs on disk now include full DAG info
- no need for normalize() kludges() anymore.
2015-05-10 11:45:12 -07:00
Todd Gamblin
29e833dfef extensions file now in YAML format 2015-05-10 02:56:50 -07:00
Todd Gamblin
2f3b0481de YamlDirectoryLayout now working. 2015-05-09 16:35:02 -05:00
Todd Gamblin
9412fc8083 restore some disabled git tests. 2015-05-09 16:12:04 -05:00
Todd Gamblin
8e87b2176a Updated Sphinx RTD documentation theme supports 4 levels 2015-05-09 13:35:05 -05:00
Todd Gamblin
d6a5266976 Fix 'ç' in François's name. 2015-05-09 13:30:09 -05:00
François Bissey
3cfbc0520a Basic support for IBM XL compilers 2015-05-07 01:54:18 -05:00
Todd Gamblin
42c88aa3ca Merge branch 'features/diy' into develop 2015-05-07 01:53:26 -05:00
Todd Gamblin
1d0975bac6 Bugfixes for yaml specs. 2015-05-05 14:24:46 -07:00
Todd Gamblin
d687962b74 Add test for YAML specs. 2015-05-05 13:18:44 -07:00
Todd Gamblin
53e8e44a8b Make YAML specs more human readable. 2015-05-05 13:06:41 -07:00
Todd Gamblin
278e70e533 Specs to/from YAML are working. 2015-04-29 01:47:09 -07:00