spack/lib/spack/external/archspec
Kevin Pedretti 47607dcac5
Use gnuconfig package for config file replacement for RISC-V. (#26364)
* Use gnuconfig package for config file replacement for RISC-V.

This extends the changes in #26035 to handle RISC-V. Before this change,
many packages fail to configure on riscv64 due to config.guess being too
old to know about RISC-V. This is seen out of the box when clingo fails
to build from source due to pkgconfig failing to configure, throwing
error: "configure: error: cannot guess build type; you must specify one".

* Add riscv64 architecture

* Update vendored archspec from upstream project.
These archspec updates include changes needed to support riscv64.

* Update archspec's __init__.py to reflect the commit hash of archspec being used.
2021-10-05 19:22:55 +00:00
..
cpu Use gnuconfig package for config file replacement for RISC-V. (#26364) 2021-10-05 19:22:55 +00:00
json Use gnuconfig package for config file replacement for RISC-V. (#26364) 2021-10-05 19:22:55 +00:00
__init__.py archspec: added support for aocc (#20124) 2020-11-26 16:18:40 +01:00
cli.py Make archspec a vendored dependency (#19600) 2020-10-30 13:02:14 -07:00
COPYRIGHT Make archspec a vendored dependency (#19600) 2020-10-30 13:02:14 -07:00
LICENSE-APACHE Make archspec a vendored dependency (#19600) 2020-10-30 13:02:14 -07:00
LICENSE-MIT Make archspec a vendored dependency (#19600) 2020-10-30 13:02:14 -07:00
README.md Use gnuconfig package for config file replacement for RISC-V. (#26364) 2021-10-05 19:22:55 +00:00

codecov Documentation Status

Archspec (Python bindings)

Archspec aims at providing a standard set of human-understandable labels for various aspects of a system architecture like CPU, network fabrics, etc. and APIs to detect, query and compare them.

This project grew out of Spack and is currently under active development. At present it supports APIs to detect and model compatibility relationships among different CPU microarchitectures.

Getting started with development

The archspec Python package needs poetry to be installed from VCS sources. The preferred method to install it is via its custom installer outside of any virtual environment:

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

You can refer to Poetry's documentation for further details or for other methods to install this tool. You'll also need tox to run unit test:

$ pip install --user tox

Finally you'll need to clone the repository:

$ git clone --recursive https://github.com/archspec/archspec.git

Running unit tests

Once you have your environment ready you can run archspec unit tests using tox from the root of the repository:

$ tox
  [ ... ]
  py27: commands succeeded
  py35: commands succeeded
  py36: commands succeeded
  py37: commands succeeded
  py38: commands succeeded
  pylint: commands succeeded
  flake8: commands succeeded
  black: commands succeeded
  congratulations :)

Citing Archspec

If you are referencing archspec in a publication, please cite the following paper:

License

Archspec is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Users may choose either license, at their option.

All new contributions must be made under both the MIT and Apache-2.0 licenses.

See LICENSE-MIT, LICENSE-APACHE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (Apache-2.0 OR MIT)

LLNL-CODE-811653