summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2015-12-20Merge pull request #255 from LLNL/bugfix/254-libtool-compiler-name-issuesTodd Gamblin23-15/+77
Fix #254: libtool & distutils want certain compiler names.
2015-12-19Merge pull request #227 from trws/fetch-depsTodd Gamblin3-3/+24
fetch: add options to fetch missing or all deps
2015-12-19Merge pull request #230 from nolta/fix-env-mod-sys-typeTodd Gamblin1-2/+8
fix environment module path when $SYS_TYPE isn't defined
2015-12-19Fix stale code in python version test so that it actually works.Todd Gamblin2-5/+2
2015-12-19spack python: add -c optionMike Nolta1-2/+8
Allows passing program in as a string. Example: $ spack python -c 'print 2+3' 5 Also imports spack module by default into the environment.
2015-12-19Merge pull request #253 from LLNL/bugfix/244-uninstall-errorsGregory Lee5-13/+37
Bugfix/244 uninstall errors
2015-12-19Fix #254: libtool & distutils want certain compiler names.Todd Gamblin23-15/+77
This changes the compiler wrappers so that they are called by the same name as the wrapped compiler. Many builds make assumptions about compiler names, and we need the spack compilers to be recognizable so that build systems will get their flags right. This adds per-compiler subdirectories to lib/spack/spack/env directory that contain symlinks to cc for the C, C++, F77, and F90 compilers. The build now sets CC, CXX, F77, and F90 to point to these links instead of to the generically named cc, c++, f77, and f90 wrappers.
2015-12-18Fix #244: errors on uninstallTodd Gamblin2-9/+23
- Extension logic didn't take conditional deps into account. - Extension methods now check for whether the extnesion is in the extendee map AND whether the dependency is actually present in the spec yet.
2015-12-18minor formatting.Todd Gamblin1-0/+8
2015-12-18Fix import error.Todd Gamblin1-0/+1
2015-12-18Format to 80 char width.Todd Gamblin1-4/+5
2015-12-16Merge pull request #239 from LLNL/bugfix/238-db-specs-not-concreteGregory Lee3-4/+17
Fix #238: Database specs need to be concrete when read in as well.
2015-12-16minor comment tweak in modules.pyMike Nolta1-2/+2
2015-12-15Fix #238: Database specs need to be concrete when read in as well.Todd Gamblin3-4/+17
2015-12-14Fix #206: need to make deps AND root concrete when read in.Todd Gamblin1-2/+4
2015-12-11Make internal hash dep sort order match external one.Todd Gamblin1-1/+2
2015-12-11Fix #217: update spec_dag test for new `_cmp_key`.Todd Gamblin1-3/+5
2015-12-11Fix #217: Use MUCH faster hashing, reduce number of DAG copies.Todd Gamblin2-12/+18
This changes the hash algorithm so that it does much less object allocation and copying, and so that it is correct. The old version of `_cmp_key()` would call `sorted_deps`, which would call `flat_dependencies` to get a list of dependencies so that it could sort them in alphabetical order. This isn't necessary in the `_cmp_key()`, and in fact we want more DAG structure than that to be included in the `_cmp_key()`. The new version constructs a tuple without copying the Spec DAG, and the tuple contains hashes of sub-DAGs that are computed recursively in-place. This is way faster than the previous algorithm and reduces the numebr of copies significantly. It is also a correct DAG hash. Example timing and copy counts for the different hashing algorithms we've tried: Original (wrong) Spec hash: ``` 106,170 copies real 0m5.024s user 0m4.949s sys 0m0.104s ``` Spec hash using YAML `dag_hash()`: ``` 3,794 copies real 0m5.024s user 0m4.949s sys 0m0.104s New no-copy, no-YAML hash: ``` 3,594 copies real 0m2.543s user 0m2.435s sys 0m0.104s ``` So now we have a hash that is correct AND faster. The remaining ~3k copies happen mostly during concretization, and as all packages are initially loaded. I believe this is because Spack currently has to load all packages to figure out virtual dependency information; it could also be becasue there ar a lot of lookups of partial specs in concretize. I can investigate this further.
2015-12-11Fix #217: Make package cache use DAG hash instead of sorted deps.Todd Gamblin1-7/+8
- Gets rid of last vestige of old-style specs. - Uses new hashing for lookup
2015-12-10fix path resolution for mirror packages, especially with dependency fetchingTom Scogland2-1/+2
2015-12-10add dependency fetching to mirror creationTom Scogland2-2/+11
2015-12-10fetch: add options to fetch missing or all depsTom Scogland1-1/+12
Small additions to fetch to make it easier to fetch all files necessary for a build on a system without network connectivity.
2015-12-09bugfix: doc build needed additional sys.path due to externals change.Todd Gamblin1-0/+1
2015-12-09Change github.com/scalability-llnl to github.com/llnl everywhere.Todd Gamblin139-144/+144
2015-11-27Fixed bug #42: problem with satisfies() for virtual dependencies.Todd Gamblin3-5/+24
- _cross_provider_maps() had suffered some bit rot (map returned was ill-formed but still worked for cases with one vdep) - ProviderIndex.satisfies() was only checking whether the result map was non-empty. It should check whether all common vdeps are *in* the result map, as that indicates there is *some* way to satisfy *all* of them. We were checking whether there was some way to satisfy *any one* of them, which is wrong. - Above would cause a problem when there is more than one vdep provider. - Added test that covers this case. - Added `constrained()` method to Spec. Analogous to `normalized()`: `constrain():constrained() :: normalize():normalized()`
2015-11-23Merge branch 'scheibelp-features/externaldeps' into developTodd Gamblin42-44/+44
2015-11-23Merge pull request #160 from SteVwonder/stevwonder/developTodd Gamblin1-2/+2
Fixed -l flag for 'spack extensions'
2015-11-20modified warning to reference spack cleanTom Scogland1-1/+1
clean --dist has been removed, command fixed to something that works.
2015-11-12Fixed -l flag for 'spack extensions'Stephen Herbein1-2/+2
2015-11-11Insert lib/spack/external into sys.path. This avoids cases where the systemPeter Scheibel42-44/+44
python install and lib/spack/external have the same library installed. This requires modifying the names of some modules in lib/spack/external in cases where both the system python and backported features of future python versions (i.e. after 2.6) are used (previously distinguished by "from external import X" and "import X").
2015-11-04Fix SPACK-93, SPACK-94, GitHub #150Todd Gamblin4-21/+18
- `remove_prefix` was modified to remove from the DB, but the package may not have been added to the DB yet when `remove_prefix` is called from `cleanup`. - Made `remove_prefix` a pure utility function (it just removes the prefix) - Added `installed_db.remove()` call only after the `remove_prefix` in `uninstall`.
2015-11-04Make architecture reflect OS *and* machine. Use Python's platform module.Todd Gamblin1-11/+8
2015-10-30Fixed typo : write_lock() -> write_transaction()Massimiliano Culpo3-3/+3
2015-10-29Merge Greg Becker's build database support into develop.Todd Gamblin22-139/+1641
2015-10-29Merge pull request #124 from scheibelp/features/testinstall-cmdTodd Gamblin6-3/+350
Features/testinstall cmd
2015-10-29Merge pull request #145 from markcmiller86/v-char-bugfixTodd Gamblin1-2/+2
generalize one of the cases to handle many more kinds of formatting o…
2015-10-29Merge pull request #139 from mathstuf/use-uname-for-archTodd Gamblin1-10/+10
architecture: use uname if available
2015-10-27generalize one of the cases to handle many more kinds of formatting optionsmiller861-2/+2
2015-10-27Build database working with simple transaction support; all tests passing.Todd Gamblin12-230/+645
2015-10-27Fix stupid lock bug.Todd Gamblin3-41/+53
- Code simplification ignored case where exception was raised. - If LockError was raised, read and write counts were incremented erroneously. - updated lock test.
2015-10-27Not all package stages have an archive file (e.g. source code repos) but all ofPeter Scheibel1-1/+1
them do have a source_path: use this instead to check whether the package resources were successfully retrieved.
2015-10-27Lock acquires return True/False depending on whether they got POSIX lock.Todd Gamblin1-4/+15
2015-10-26architecture: remove custom mac_type methodBen Boeckel1-13/+0
2015-10-26architecture: use uname if availableBen Boeckel1-1/+14
2015-10-26Fetch errors were also terminating runs of test-install with system exit, soPeter Scheibel3-1/+10
stage.fetch() was updated to raise a FetchError instead of calling tty.die(). Output is the same for spack install in case of a fetch error.
2015-10-26python: use the setdefault method on dictBen Boeckel3-16/+7
It allows more concise code and skips some key lookups.
2015-10-26Making SpackError reference consistent.Peter Scheibel1-2/+1
2015-10-26Automatically create a 'test-output' directory in the current directory if noPeter Scheibel1-1/+4
output path is specified. Test output files are placed in this directory. Furthermore the filenames now have the prefix "test" (but otherwise are the string representation of the spec ID as before).
2015-10-24Working Lock class, now uses POSIX fcntl locks, extensive unit test.Todd Gamblin3-84/+350
- llnl.util.lock now uses fcntl.lockf instead of flock - purported to have more NFS compatibility. - Added an extensive test case for locks. - tests acquiring, releasing, upgrading, timeouts, shared, & exclusive cases.
2015-10-24Add a multiprocess Barrier class to use for testing parallel code.Todd Gamblin1-1/+49