Skip to content

Commit 1a9d04c

Browse files
committed
Merge remote-tracking branch 'upstream/master' into add_sort_adj
2 parents 724fbee + a8519b6 commit 1a9d04c

File tree

323 files changed

+600300
-547003
lines changed

Some content is hidden

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

323 files changed

+600300
-547003
lines changed

.github/collab.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/bash
2+
3+
echo "📦 GitHub Fork Collaboration Setup Script"
4+
5+
# Prompt for User's GitHub username
6+
7+
read -p "Enter the GitHub username of the fork owner (e.g., alice): " USER
8+
9+
# Prompt for the branch name
10+
11+
read -p "Enter the PR branch name (e.g., feature-branch): " BRANCH
12+
13+
# Add remotes
14+
15+
echo "🔗 Adding remotes..."
16+
17+
git remote add $USER https://github.com/$USER/stdlib.git
18+
19+
# Fetch and checkout the PR branch
20+
21+
echo "📥 Fetching branch '$BRANCH'..."
22+
23+
git fetch $USER
24+
25+
git checkout -b $BRANCH $USER/$BRANCH
26+
27+
# Done
28+
29+
echo "✅ Repo set up. You're now on '$BRANCH'."
30+
31+
echo "You can now make changes and push directly to $USER/stdlib:$BRANCH"

.github/workflows/CI.yml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,25 @@ jobs:
1919
strategy:
2020
fail-fast: false
2121
matrix:
22-
os: [ubuntu-latest, macos-12]
22+
os: [ubuntu-latest, macos-13]
2323
toolchain:
2424
- {compiler: gcc, version: 10}
2525
- {compiler: gcc, version: 11}
2626
- {compiler: gcc, version: 12}
2727
- {compiler: gcc, version: 13}
28-
- {compiler: intel, version: '2024.1'}
29-
- {compiler: intel-classic, version: '2021.9'}
30-
build: [cmake]
28+
- {compiler: intel, version: '2024.1'}
29+
build: [cmake]
3130
include:
31+
- os: ubuntu-22.04
32+
build: cmake
33+
toolchain: {compiler: intel-classic, version: '2021.10'}
3234
- os: ubuntu-latest
3335
build: cmake-inline
34-
toolchain:
35-
- {compiler: gcc, version: 10}
36+
toolchain: {compiler: gcc, version: 10}
3637
exclude:
37-
- os: macos-12
38+
- os: macos-13
3839
toolchain: {compiler: intel, version: '2024.1'}
39-
- os: macos-12
40+
- os: macos-13
4041
toolchain: {compiler: gcc, version: 13}
4142
env:
4243
BUILD_DIR: ${{ matrix.build == 'cmake' && 'build' || '.' }}
@@ -54,28 +55,30 @@ jobs:
5455
run: pip install --upgrade fypp ninja
5556

5657
- name: Setup Fortran compiler
57-
uses: fortran-lang/[email protected].1
58+
uses: fortran-lang/[email protected].2
5859
id: setup-fortran
5960
with:
6061
compiler: ${{ matrix.toolchain.compiler }}
6162
version: ${{ matrix.toolchain.version }}
6263

64+
# Build and test with built-in BLAS and LAPACK
6365
- name: Configure with CMake
6466
if: ${{ contains(matrix.build, 'cmake') }}
6567
run: >-
6668
cmake -Wdev -G Ninja
6769
-DCMAKE_BUILD_TYPE=Release
6870
-DCMAKE_MAXIMUM_RANK:String=4
6971
-DCMAKE_INSTALL_PREFIX=$PWD/_dist
72+
-DFIND_BLAS:STRING=FALSE
7073
-S . -B ${{ env.BUILD_DIR }}
7174
7275
- name: Build and compile
7376
if: ${{ contains(matrix.build, 'cmake') }}
7477
run: cmake --build ${{ env.BUILD_DIR }} --parallel
7578

7679
- name: catch build fail
77-
run: cmake --build ${{ env.BUILD_DIR }} --verbose --parallel 1
7880
if: ${{ failure() && contains(matrix.build, 'cmake') }}
81+
run: cmake --build ${{ env.BUILD_DIR }} --verbose --parallel 1
7982

8083
- name: test
8184
if: ${{ contains(matrix.build, 'cmake') }}

.github/workflows/ci_BLAS.yml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
name: CI_BLAS
2+
3+
on: [push, pull_request]
4+
5+
env:
6+
CTEST_TIME_TIMEOUT: "5" # some failures hang forever
7+
CMAKE_GENERATOR: Ninja
8+
9+
jobs:
10+
msys2-build:
11+
runs-on: windows-latest
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
include: [{ msystem: UCRT64, arch: x86_64 }]
16+
defaults:
17+
run:
18+
shell: msys2 {0}
19+
steps:
20+
- uses: actions/checkout@v2
21+
22+
- name: Setup MinGW native environment
23+
uses: msys2/setup-msys2@v2
24+
with:
25+
msystem: ${{ matrix.msystem }}
26+
update: false
27+
install: >-
28+
git
29+
mingw-w64-ucrt-${{ matrix.arch }}-gcc
30+
mingw-w64-ucrt-${{ matrix.arch }}-gcc-fortran
31+
mingw-w64-ucrt-${{ matrix.arch }}-python
32+
mingw-w64-ucrt-${{ matrix.arch }}-python-fypp
33+
mingw-w64-ucrt-${{ matrix.arch }}-cmake
34+
mingw-w64-ucrt-${{ matrix.arch }}-ninja
35+
mingw-w64-ucrt-${{ matrix.arch }}-openblas
36+
37+
# Build and test with external BLAS and LAPACK (OpenBLAS on UCRT64)
38+
- name: Configure with CMake and OpenBLAS
39+
run: >-
40+
PATH=$PATH:/ucrt64/bin/ cmake
41+
-Wdev
42+
-B build
43+
-DCMAKE_BUILD_TYPE=Debug
44+
-DCMAKE_Fortran_FLAGS_DEBUG="-Wall -Wextra -Wimplicit-interface -fPIC -g -fcheck=all -fbacktrace"
45+
-DCMAKE_MAXIMUM_RANK:String=4
46+
-DCMAKE_INSTALL_PREFIX=$PWD/_dist
47+
-DFIND_BLAS:STRING=TRUE
48+
env:
49+
FC: gfortran
50+
CC: gcc
51+
CXX: g++
52+
53+
- name: CMake build with OpenBLAS
54+
run: PATH=$PATH:/ucrt64/bin/ cmake --build build --parallel
55+
56+
- name: catch build fail
57+
if: failure()
58+
run: PATH=$PATH:/ucrt64/bin/ cmake --build build --verbose --parallel 1
59+
60+
- name: CTest with OpenBLAS
61+
run: PATH=$PATH:/ucrt64/bin/ ctest --test-dir build --output-on-failure --parallel -V -LE quadruple_precision
62+
63+
- uses: actions/upload-artifact@v4
64+
if: failure()
65+
with:
66+
name: WindowsCMakeTestlog_openblas
67+
path: build/Testing/Temporary/LastTest.log
68+
69+
- name: Install project with OpenBLAS
70+
run: PATH=$PATH:/ucrt64/bin/ cmake --install build
71+
72+
Build:
73+
runs-on: ubuntu-latest
74+
strategy:
75+
fail-fast: false
76+
matrix:
77+
toolchain:
78+
- { compiler: intel, version: "2024.1" }
79+
build: [cmake]
80+
env:
81+
BUILD_DIR: ${{ matrix.build == 'cmake' && 'build' || '.' }}
82+
APT_PACKAGES: >-
83+
intel-oneapi-mkl
84+
intel-oneapi-mkl-devel
85+
steps:
86+
- name: Checkout code
87+
uses: actions/checkout@v4
88+
89+
- name: Set up Python 3.x
90+
uses: actions/setup-python@v5 # Use pip to install latest CMake, & FORD/Jin2For, etc.
91+
with:
92+
python-version: 3.x
93+
94+
- name: Install fypp
95+
run: pip install --upgrade fypp ninja
96+
97+
- name: Setup Fortran compiler
98+
uses: fortran-lang/[email protected]
99+
id: setup-fortran
100+
with:
101+
compiler: ${{ matrix.toolchain.compiler }}
102+
version: ${{ matrix.toolchain.version }}
103+
104+
- name: Install Intel oneAPI MKL
105+
run: |
106+
sudo apt-get install ${APT_PACKAGES}
107+
source /opt/intel/oneapi/mkl/latest/env/vars.sh
108+
printenv >> $GITHUB_ENV
109+
110+
# Build and test with external BLAS and LAPACK (MKL on Ubuntu with Intel compilers)
111+
- name: Configure with CMake and MKL
112+
run: >-
113+
cmake -Wdev -G Ninja
114+
-DCMAKE_BUILD_TYPE=Release
115+
-DCMAKE_MAXIMUM_RANK:String=4
116+
-DCMAKE_INSTALL_PREFIX=$PWD/_dist
117+
-DFIND_BLAS:STRING=TRUE
118+
-S . -B ${{ env.BUILD_DIR }}
119+
120+
- name: Build and compile with MKL
121+
run: cmake --build ${{ env.BUILD_DIR }} --parallel
122+
123+
- name: catch build fail with MKL
124+
if: failure()
125+
run: cmake --build ${{ env.BUILD_DIR }} --verbose --parallel 1
126+
127+
- name: test with MKL
128+
run: >-
129+
ctest
130+
--test-dir ${{ env.BUILD_DIR }}
131+
--parallel
132+
--output-on-failure
133+
--no-tests=error
134+
135+
- name: Install project with MKL
136+
run: cmake --install ${{ env.BUILD_DIR }}

.github/workflows/ci_windows.yml

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
include: [
16-
{ msystem: MSYS, arch: x86_64 },
17-
{ msystem: MINGW64, arch: x86_64 },
18-
{ msystem: MINGW32, arch: i686 }
16+
{ msystem: MINGW64, arch: x86_64 }
1917
]
2018
defaults:
2119
run:
@@ -25,7 +23,6 @@ jobs:
2523

2624
- name: Setup MinGW native environment
2725
uses: msys2/setup-msys2@v2
28-
if: contains(matrix.msystem, 'MINGW')
2926
with:
3027
msystem: ${{ matrix.msystem }}
3128
update: false
@@ -34,29 +31,10 @@ jobs:
3431
mingw-w64-${{ matrix.arch }}-gcc
3532
mingw-w64-${{ matrix.arch }}-gcc-fortran
3633
mingw-w64-${{ matrix.arch }}-python
37-
mingw-w64-${{ matrix.arch }}-python-pip
38-
mingw-w64-${{ matrix.arch }}-python-setuptools
34+
mingw-w64-${{ matrix.arch }}-python-fypp
3935
mingw-w64-${{ matrix.arch }}-cmake
4036
mingw-w64-${{ matrix.arch }}-ninja
4137
42-
- name: Setup msys POSIX environment
43-
uses: msys2/setup-msys2@v2
44-
if: contains(matrix.msystem, 'MSYS')
45-
with:
46-
msystem: MSYS
47-
update: false
48-
install: >-
49-
git
50-
mingw-w64-x86_64-gcc
51-
mingw-w64-x86_64-gcc-fortran
52-
python
53-
python-pip
54-
cmake
55-
ninja
56-
57-
- name: Install fypp
58-
run: pip install fypp
59-
6038
- run: >-
6139
PATH=$PATH:/mingw64/bin/ cmake
6240
-Wdev
@@ -65,6 +43,7 @@ jobs:
6543
-DCMAKE_Fortran_FLAGS_DEBUG="-Wall -Wextra -Wimplicit-interface -fPIC -g -fcheck=all -fbacktrace"
6644
-DCMAKE_MAXIMUM_RANK:String=4
6745
-DCMAKE_INSTALL_PREFIX=$PWD/_dist
46+
-DFIND_BLAS:STRING=FALSE
6847
env:
6948
FC: gfortran
7049
CC: gcc
@@ -80,7 +59,7 @@ jobs:
8059
- name: CTest
8160
run: PATH=$PATH:/mingw64/bin/ ctest --test-dir build --output-on-failure --parallel -V -LE quadruple_precision
8261

83-
- uses: actions/upload-artifact@v1
62+
- uses: actions/upload-artifact@v4
8463
if: failure()
8564
with:
8665
name: WindowsCMakeTestlog

.github/workflows/doc-deployment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
ford -r $(git describe --always) --debug ${MAYBE_SKIP_SEARCH} "${FORD_FILE}"
4141
4242
- name: Upload Documentation
43-
uses: actions/upload-artifact@v2
43+
uses: actions/upload-artifact@v4
4444
with:
4545
name: FORD-API-docs
4646
path: ./API-doc/

.github/workflows/fpm-deployment.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ jobs:
3838
- run: | # Just for deployment: create stdlib-fpm folder
3939
python config/fypp_deployment.py --deploy_stdlib_fpm
4040
41+
- run: | # Just for deployment: create stdlib-fpm-ilp64 folder
42+
python config/fypp_deployment.py --deploy_stdlib_fpm --with_ilp64
43+
4144
- run: | # Use fpm gnu ci to check xdp and qp
4245
python config/fypp_deployment.py --with_xdp --with_qp
4346
fpm test --profile release --flag '-DWITH_XDP -DWITH_QP'
@@ -48,4 +51,12 @@ jobs:
4851
if: github.event_name != 'pull_request'
4952
with:
5053
BRANCH: stdlib-fpm
51-
FOLDER: stdlib-fpm
54+
FOLDER: stdlib-fpm
55+
56+
# Update and deploy the f90 files generated by github-ci to the `stdlib-fpm-ilp64` branch.
57+
- name: Deploy with 64-bit integer support 🚀
58+
uses: JamesIves/[email protected]
59+
if: github.event_name != 'pull_request'
60+
with:
61+
BRANCH: stdlib-fpm-ilp64
62+
FOLDER: stdlib-fpm-ilp64

0 commit comments

Comments
 (0)