Skip to content

Commit 4dd11b9

Browse files
committed
Merge branch 'james-d-mitchell-rc-v1.0.0'
2 parents 2646686 + 836fd8d commit 4dd11b9

File tree

121 files changed

+758561
-6195
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+758561
-6195
lines changed

.VERSION

Lines changed: 0 additions & 1 deletion
This file was deleted.

.circleci/config.yml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# .circleci/config.yml
2+
3+
version: 2.1
4+
5+
jobs:
6+
test:
7+
parameters:
8+
compiler:
9+
type: string
10+
version:
11+
type: string
12+
docker:
13+
- image: reiniscirpons/hpcombi-env-arm64v8:v1
14+
resource_class: arm.medium
15+
steps:
16+
- run:
17+
name: "Set up compiler"
18+
environment:
19+
COMPILER_NAME: << parameters.compiler >>
20+
COMPILER_VERSION: << parameters.version >>
21+
command: |
22+
apt-get --yes update
23+
mkdir -p workspace
24+
if [ $COMPILER_NAME = "gcc" ]; then
25+
apt-get install --yes gcc-$COMPILER_VERSION
26+
apt-get install --yes g++-$COMPILER_VERSION
27+
echo "export CC=gcc-$COMPILER_VERSION" >> workspace/new-env-vars
28+
echo "export CXX=g++-$COMPILER_VERSION" >> workspace/new-env-vars
29+
else
30+
apt-get install --yes clang++-$COMPILER_VERSION
31+
echo "export CC=clang-$COMPILER_VERSION" >> workspace/new-env-vars
32+
echo "export CXX=clang++-$COMPILER_VERSION" >> workspace/new-env-vars
33+
fi
34+
- run:
35+
name: Check compiler version
36+
command: |
37+
cat workspace/new-env-vars >> $BASH_ENV
38+
source $BASH_ENV
39+
echo "CC"
40+
echo $CC
41+
echo "CXX"
42+
echo $CXX
43+
- checkout:
44+
path: "./HPCombi"
45+
- run:
46+
name: Run cmake
47+
command: |
48+
cat workspace/new-env-vars >> $BASH_ENV
49+
source $BASH_ENV
50+
mkdir -p ./HPCombi/build
51+
cd ./HPCombi/build
52+
cmake -DBUILD_TESTING=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX ..
53+
- run:
54+
name: Run make in tests folder
55+
command: |
56+
cat workspace/new-env-vars >> $BASH_ENV
57+
source $BASH_ENV
58+
cd ./HPCombi/build/tests
59+
make -j2
60+
- run:
61+
name: Run tests
62+
command: |
63+
cat workspace/new-env-vars >> $BASH_ENV
64+
source $BASH_ENV
65+
cd ./HPCombi/build/tests
66+
./test_all
67+
68+
workflows:
69+
test:
70+
jobs:
71+
- test:
72+
name: "test-gcc-9"
73+
compiler: "gcc"
74+
version: "9"
75+
# - test:
76+
# name: "test-gcc-10"
77+
# compiler: "gcc"
78+
# version: "10"
79+
# - test:
80+
# name: "test-gcc-11"
81+
# compiler: "gcc"
82+
# version: "11"
83+
- test:
84+
name: "test-gcc-12"
85+
compiler: "gcc"
86+
version: "12"
87+
- test:
88+
name: "test-clang-11"
89+
compiler: "clang"
90+
version: "11"
91+
# - test:
92+
# name: "test-clang-12"
93+
# compiler: "clang"
94+
# version: "12"
95+
# - test:
96+
# name: "test-clang-13"
97+
# compiler: "clang"
98+
# version: "13"
99+
# - test:
100+
# name: "test-clang-14"
101+
# compiler: "clang"
102+
# version: "14"
103+
- test:
104+
name: "test-clang-15"
105+
compiler: "clang"
106+
version: "15"

.clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
Language: Cpp
33
# BasedOnStyle: LLVM
4-
AccessModifierOffset: -2
4+
AccessModifierOffset: -3
55
AlignAfterOpenBracket: Align
66
AlignConsecutiveAssignments: false
77
AlignConsecutiveDeclarations: false

.codespellrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[codespell]
2+
skip = ./third_party/simde,./.git,./benchmark/python,./experiments,./gh-pages,./build
3+
ignore-words-list=shft

.github/workflows/codespell.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: codespell
2+
on: [pull_request, workflow_dispatch]
3+
4+
jobs:
5+
codespell:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- uses: actions/checkout@v3
9+
- uses: codespell-project/actions-codespell@v1.0

.github/workflows/runtests.yml

Lines changed: 51 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,67 @@
11
name: CI
2-
on: [pull_request, push, workflow_dispatch]
2+
on: [pull_request, workflow_dispatch]
33

44
concurrency:
55
group: ${{ github.workflow }}-${{ github.ref }}
66
cancel-in-progress: true
77

88
jobs:
99
tests:
10-
name: "ubuntu-latest | g++"
10+
name: "ubuntu-latest"
1111
timeout-minutes: 60
1212
runs-on: ubuntu-latest
13-
env:
14-
CXX: "ccache g++"
15-
CXXFLAGS: "-fdiagnostics-color"
16-
CMAKE_CXX_COMPILER: "ccache g++"
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
sys:
17+
- { compiler: 'gcc', version: '9'}
18+
- { compiler: 'gcc', version: '10'}
19+
- { compiler: 'gcc', version: '11'}
20+
- { compiler: 'gcc', version: '12'}
21+
- { compiler: 'clang', version: '11'}
22+
- { compiler: 'clang', version: '12'}
23+
- { compiler: 'clang', version: '13'}
24+
- { compiler: 'clang', version: '14'}
25+
- { compiler: 'clang', version: '15'}
1726
steps:
1827
- name: "Checkout HPCombi repo . . ."
1928
uses: actions/checkout@v3
20-
- name: "Setup ccache . . ."
21-
uses: Chocobo1/setup-ccache-action@v1
22-
with:
23-
update_packager_index: false
24-
override_cache_key: ${{ runner.os }}-${{ github.ref }}
25-
override_cache_key_fallback: ${{ runner.os }}
29+
- name: "Setup compiler . . ."
30+
if: ${{ matrix.sys.compiler == 'gcc' }}
31+
run: |
32+
GCC_VERSION=${{ matrix.sys.version }}
33+
sudo apt-get --yes update
34+
sudo apt-get install gcc-$GCC_VERSION
35+
CC=gcc-$GCC_VERSION
36+
echo "CC=$CC" >> $GITHUB_ENV
37+
CXX=g++-$GCC_VERSION
38+
echo "CXX=$CXX" >> $GITHUB_ENV
39+
- name: "Setup compiler . . ."
40+
if: ${{ matrix.sys.compiler == 'clang' }}
41+
run: |
42+
LLVM_VERSION=${{ matrix.sys.version }}
43+
sudo apt-get --yes update
44+
sudo apt-get install --yes clang++-$LLVM_VERSION
45+
CC=clang-$LLVM_VERSION
46+
echo "CC=$CC" >> $GITHUB_ENV
47+
CXX=clang++-$LLVM_VERSION
48+
echo "CXX=$CXX" >> $GITHUB_ENV
2649
- name: "Install dependencies . . ."
2750
run: |
28-
sudo apt-get --yes update
29-
sudo apt-get install --yes ccache
30-
sudo apt-get install --yes libbenchmark-dev
31-
sudo apt-get install --yes libgtest-dev
32-
sudo apt-get install --yes libboost-all-dev
33-
- name: "Build + run HPCombi tests . . ."
51+
sudo apt-get install --yes ccache
52+
- name: "Configure the HPCombi build . . ."
53+
env:
54+
CC: ${{ env.CC }}
55+
CXX: ${{ env.CXX }}
3456
run: |
35-
mkdir build
36-
cd build
37-
cmake -DBUILD_TESTING=1 -DCMAKE_BUILD_TYPE=Release ..
38-
make
39-
make test
40-
57+
mkdir build
58+
cd build
59+
cmake -DBUILD_TESTING=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX ..
60+
- name: "Build HPCombi . . ."
61+
run: |
62+
cd build/tests
63+
make -j4
64+
- name: "Run HPCombi tests . . ."
65+
run: |
66+
cd build/tests
67+
./test_all

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,4 @@
3636

3737
TAGS
3838
build*
39+
gh-pages

.mailmap

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Florent Hivert <florent.hivert@lisn.fr> Florent Hivert <Florent.Hivert@lri.fr>
2+
Florent Hivert <florent.hivert@lisn.fr> Florent Hivert <Florent.Hivert@lisn.fr>
3+
Florent Hivert <florent.hivert@lisn.fr> Florent Hivert <hivert@users.noreply.github.com>
4+
Reinis Cirpons <rc234@st-andrews.ac.uk> reiniscirpons <rc234@st-andrews.ac.uk>
5+
Reinis Cirpons <rc234@st-andrews.ac.uk> Reinis Cirpons <43414125+reiniscirpons@users.noreply.github.com>
6+
James Mitchell <jdm3@st-andrews.ac.uk> James Mitchell <jdm3@st-and.ac.uk>

.travis.yml

Lines changed: 0 additions & 107 deletions
This file was deleted.

BUILDING.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
# Building HPCombi
22

3-
## Build Prerequisites:
3+
Note that HPCombi is a C++17 header-only library, and as such does not need to
4+
be built. The instructions below are only for those who wish to either run the
5+
tests, experiments, examples, or benchmarks.
46

5-
- CMake 2.8 or later
7+
## Build prerequisites:
68

7-
- A recent c++ compiler. I have tested the code on
8-
* g++ 5.3.1, 6.2.1 and 7.1.1.
9-
* clang 5.0.0
10-
* g++ 4.8 and 4.9 are known to be broken (I can fix it if needed at the price
11-
of some uglification of the code).
9+
- CMake 3.8 or later
1210

13-
- [optional] : Google sparsehash/dense_hash_map, sparsehash/dense_hash_set.
14-
if not the less efficient standard containers will be used.
11+
- A recent C++ compiler implementing the C++17 standard. We routinely test
12+
HPCombi using:
13+
* gcc 9 to 12; and
14+
* clang 11 to 15
15+
on both x86 and arm processors.
1516

16-
- BOOST.test (shared library version) : needed for testing.
17+
- Your machine must support a small number of builtin functions such as `__builtin_popcnt`.
1718

18-
- Your machine must support AVX instructions.
19+
- [optional] : Google `sparsehash/dense_hash_map` and/or `sparsehash/dense_hash_set`.
1920

20-
- Doxygen for generating the API documentation (in progress).
21+
- [optional] Doxygen for generating the API documentation (in progress).
2122

2223
## Building
2324

0 commit comments

Comments
 (0)