* Use JSON for the database instead of YAML.
- JSON is much faster than YAML *and* can preserve ordered keys.
- 170x+ faster than Python YAML when using unordered dicts
- 55x faster than Python YAML (both using OrderedDicts)
- 8x faster than C YAML (with OrderedDicts)
- JSON is built into Python, unlike C YAML, so doesn't add a dependency.
- Don't need human readability for the package database.
- JSON requires no major changes to the code -- same object model as YAML.
- add to_json, from_json methods to spec.
* Add tests to ensure JSON and YAML don't need to be ordered in DB.
* Write index.json first time it's not found instead of requiring reindex.
* flake8 bug.
* Update go to 1.7.4 and 1.6.4 to fix security issues
The go team recently rolled out two releases to address security
issues. Details available on the [go release
site](https://golang.org/doc/devel/release.html).
This commit updates our explicitly supported versions.
It also includes a comment about two CentOS requirements (enable
user_namespace and ensure that the static c library is installed) that
are required for the pacakges to pass their tests.
* Flake8 cleanup
* Added some notes about how multiarch detection could be fixed.
* Implemented a preliminary version of the "spack.spec.ArchSpec" class.
* Updated the "spack.spec.Spec" class to use "ArchSpec" instead of "Arch".
* Fixed a number of small bugs in the "spack.spec.ArchSpec" class.
* Fixed the 'Concretizer.concretize_architecture' method so that it uses the new architecture specs.
* Updated the package class to properly use arch specs.
Removed a number of unused architecture functions.
* Fixed up a number of bugs that were causing the regression tests to fail.
Added a couple of additional regression tests related to architecture parsing/specification.
Fixed a few bugs with setting reserved os/target values on "ArchSpec" objects.
Removed a number of unnecessary functions in the "spack.architecture" and "spack.concretize" modules.
* Fixed a few bugs with reading architecture information from specs.
Updated the tests to use a uniform architecture to improve reliability.
Fixed a few minor style issues.
* Adapted the compiler component of Spack to use arch specs.
* Implemented more test cases for the extended architecture spec features.
Improved error detection for multiple arch components in a spec.
* Fix for backwards compatibility with v0.8 and prior
* Changed os to unknown for compatibility specs
* Use `spack09` instead of `spackcompat` for the platform of old specs.
* Make X11 font install dir the font search default
We install the X11 fonts into `/share/fonts` beneath the font-util
installation prefix, but that directory is not one of the places that
the font subsystem searches.
This commit makes the fontconfig package depend on the font-util
package, and then it makes
```python
spec['font-util'].prefix + "/share/fonts"
```
be the fontconfig default font location.
Before this change, plots drawn by R have bounding boxes where font
glyphs should be. After this change fonts appear as expected.
* Enrich description string (trigger new CI run)
Improve the docstring for the package.
Also interested in the side effect of triggering another CI run
to see if the recent flake8 fix lets this PR run clean.
* Flake8 cleanups
* Update R&friends to use our X11 libs
Add `depends_on()`'s for R, Cairo, and Tk so that they use the Spack X
bits.
* Conditionalize X stuff on variant
Another step towards hooking up the X stuff.
There's still discussion happening on the issue, but this is better
than the 'everything must build with X' state that it was in.
- Added 'dap' and 'cdmremote' variants
This is based on work in #2324 with the following motivation:
Turn off DAP support by deafult. DAP requires curl, which has issues
with circular dependencies. For 95% of NetCDF users that do not need
DAP, turning it off avoides this rats nest of problems.
- Added 'parallel-netcdf' variant
To support work with parallel-netcdf
- Added 'shared' and 'static' build separation