From 0ceb65f9e567a233df47ca9d33e47c89ee984d1c Mon Sep 17 00:00:00 2001 From: Inga Ulusoy Date: Tue, 9 Apr 2024 11:03:32 +0200 Subject: [PATCH] Sync fork (#19) * fix(mac/lfortran): only install micromamba if needed (#79) * docs(readme): mention lfortran in compiler option section (#80) * ci: include long_compat.csv in autoupdate prs (#85) * Update compatibility matrix (#86) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * refactor(gcc): drop support for gcc 7 and 8 (#83) These have patchy availability. And anyways, the oldest release series still receiving support is 11, so there may be an argument for dropping 9 and 10, but I will leave that for later. In any case, nothing prevents trying unsupported versions, but we will no longer test them or make guarantees. This frees up room in the test matrix, which is capped at 256 jobs * feat(intel): support intel 2024.1 on linux and windows (#84) --------- Co-authored-by: wpbonelli Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/compat/long_compat.csv | 35 ++++++++++++---------------------- .github/compat/matrix.yml | 3 +-- .github/workflows/test.yml | 2 +- README.md | 9 +++++---- action.yml | 15 +++++++++++++-- setup-fortran.sh | 13 ++++++++----- 6 files changed, 40 insertions(+), 37 deletions(-) diff --git a/.github/compat/long_compat.csv b/.github/compat/long_compat.csv index b60d489..1c0c0fc 100644 --- a/.github/compat/long_compat.csv +++ b/.github/compat/long_compat.csv @@ -3,8 +3,6 @@ macos-12,gcc,10,✓ macos-12,gcc,11,✓ macos-12,gcc,12,✓ macos-12,gcc,13,✓ -macos-12,gcc,7,✓ -macos-12,gcc,8,✓ macos-12,gcc,9,✓ macos-12,intel-classic,2021.1.2, macos-12,intel-classic,2021.1,✓ @@ -14,7 +12,7 @@ macos-12,intel-classic,2021.3,✓ macos-12,intel-classic,2021.4,✓ macos-12,intel-classic,2021.5,✓ macos-12,intel-classic,2021.6,✓ -macos-12,intel-classic,2021.7.1,✓ +macos-12,intel-classic,2021.7.1, macos-12,intel-classic,2021.7,✓ macos-12,intel-classic,2021.8,✓ macos-12,intel-classic,2021.9,✓ @@ -25,8 +23,6 @@ macos-13,gcc,10,✓ macos-13,gcc,11,✓ macos-13,gcc,12,✓ macos-13,gcc,13,✓ -macos-13,gcc,7, -macos-13,gcc,8, macos-13,intel-classic,2021.1.2, macos-13,intel-classic,2021.1,✓ macos-13,intel-classic,2021.10,✓ @@ -35,7 +31,7 @@ macos-13,intel-classic,2021.3,✓ macos-13,intel-classic,2021.4,✓ macos-13,intel-classic,2021.5,✓ macos-13,intel-classic,2021.6,✓ -macos-13,intel-classic,2021.7.1,✓ +macos-13,intel-classic,2021.7.1, macos-13,intel-classic,2021.7,✓ macos-13,intel-classic,2021.8,✓ macos-13,intel-classic,2021.9,✓ @@ -45,7 +41,6 @@ macos-13,lfortran,0.33.0,✓ macos-14,gcc,11,✓ macos-14,gcc,12,✓ macos-14,gcc,13,✓ -macos-14,gcc,7, macos-14,intel-classic,2021.1.2, macos-14,intel-classic,2021.1,✓ macos-14,intel-classic,2021.10,✓ @@ -54,7 +49,7 @@ macos-14,intel-classic,2021.3,✓ macos-14,intel-classic,2021.4,✓ macos-14,intel-classic,2021.5,✓ macos-14,intel-classic,2021.6,✓ -macos-14,intel-classic,2021.7.1,✓ +macos-14,intel-classic,2021.7.1, macos-14,intel-classic,2021.7,✓ macos-14,intel-classic,2021.8,✓ macos-14,intel-classic,2021.9,✓ @@ -65,8 +60,6 @@ ubuntu-20.04,gcc,10,✓ ubuntu-20.04,gcc,11,✓ ubuntu-20.04,gcc,12, ubuntu-20.04,gcc,13,✓ -ubuntu-20.04,gcc,7,✓ -ubuntu-20.04,gcc,8,✓ ubuntu-20.04,gcc,9,✓ ubuntu-20.04,intel-classic,2021.1.2,✓ ubuntu-20.04,intel-classic,2021.1,✓ @@ -92,6 +85,7 @@ ubuntu-20.04,intel,2023.0,✓ ubuntu-20.04,intel,2023.1,✓ ubuntu-20.04,intel,2023.2,✓ ubuntu-20.04,intel,2024.0,✓ +ubuntu-20.04,intel,2024.1,✓ ubuntu-20.04,lfortran,0.31.0,✓ ubuntu-20.04,lfortran,0.32.0,✓ ubuntu-20.04,lfortran,0.33.0,✓ @@ -121,8 +115,6 @@ ubuntu-22.04,gcc,10,✓ ubuntu-22.04,gcc,11,✓ ubuntu-22.04,gcc,12,✓ ubuntu-22.04,gcc,13,✓ -ubuntu-22.04,gcc,7, -ubuntu-22.04,gcc,8, ubuntu-22.04,gcc,9,✓ ubuntu-22.04,intel-classic,2021.1.2,✓ ubuntu-22.04,intel-classic,2021.1,✓ @@ -148,6 +140,7 @@ ubuntu-22.04,intel,2023.0,✓ ubuntu-22.04,intel,2023.1,✓ ubuntu-22.04,intel,2023.2,✓ ubuntu-22.04,intel,2024.0,✓ +ubuntu-22.04,intel,2024.1,✓ ubuntu-22.04,lfortran,0.31.0,✓ ubuntu-22.04,lfortran,0.32.0,✓ ubuntu-22.04,lfortran,0.33.0,✓ @@ -156,14 +149,12 @@ ubuntu-22.04,nvidia-hpc,20.7, ubuntu-22.04,nvidia-hpc,20.9, ubuntu-22.04,nvidia-hpc,21.1, ubuntu-22.04,nvidia-hpc,21.11,✓ -ubuntu-22.04,nvidia-hpc,21.7, -ubuntu-22.04,nvidia-hpc,22.1, +ubuntu-22.04,nvidia-hpc,21.9, ubuntu-22.04,nvidia-hpc,22.11,✓ ubuntu-22.04,nvidia-hpc,22.2, ubuntu-22.04,nvidia-hpc,22.3, ubuntu-22.04,nvidia-hpc,22.5, ubuntu-22.04,nvidia-hpc,22.7, -ubuntu-22.04,nvidia-hpc,22.9, ubuntu-22.04,nvidia-hpc,23.1, ubuntu-22.04,nvidia-hpc,23.11,✓ ubuntu-22.04,nvidia-hpc,23.3,✓ @@ -174,8 +165,6 @@ windows-2019,gcc,10,✓ windows-2019,gcc,11,✓ windows-2019,gcc,12,✓ windows-2019,gcc,13,✓ -windows-2019,gcc,7, -windows-2019,gcc,8,✓ windows-2019,gcc,9,✓ windows-2019,intel-classic,2021.1.2, windows-2019,intel-classic,2021.1, @@ -187,7 +176,7 @@ windows-2019,intel-classic,2021.5, windows-2019,intel-classic,2021.6,✓ windows-2019,intel-classic,2021.7.1, windows-2019,intel-classic,2021.7,✓ -windows-2019,intel-classic,2021.8,✓ +windows-2019,intel-classic,2021.8, windows-2019,intel-classic,2021.9,✓ windows-2019,intel,2021.1.2, windows-2019,intel,2021.1, @@ -197,10 +186,11 @@ windows-2019,intel,2022.0, windows-2019,intel,2022.1,✓ windows-2019,intel,2022.2.1, windows-2019,intel,2022.2,✓ -windows-2019,intel,2023.0,✓ +windows-2019,intel,2023.0, windows-2019,intel,2023.1,✓ windows-2019,intel,2023.2,✓ windows-2019,intel,2024.0,✓ +windows-2019,intel,2024.1,✓ windows-2019,lfortran,0.31.0,✓ windows-2019,lfortran,0.32.0,✓ windows-2019,lfortran,0.33.0,✓ @@ -208,8 +198,6 @@ windows-2022,gcc,10,✓ windows-2022,gcc,11,✓ windows-2022,gcc,12,✓ windows-2022,gcc,13,✓ -windows-2022,gcc,7, -windows-2022,gcc,8,✓ windows-2022,gcc,9,✓ windows-2022,intel-classic,2021.1.2, windows-2022,intel-classic,2021.1, @@ -221,7 +209,7 @@ windows-2022,intel-classic,2021.5, windows-2022,intel-classic,2021.6,✓ windows-2022,intel-classic,2021.7.1, windows-2022,intel-classic,2021.7,✓ -windows-2022,intel-classic,2021.8,✓ +windows-2022,intel-classic,2021.8, windows-2022,intel-classic,2021.9,✓ windows-2022,intel,2021.1.2, windows-2022,intel,2021.1, @@ -231,10 +219,11 @@ windows-2022,intel,2022.0, windows-2022,intel,2022.1,✓ windows-2022,intel,2022.2.1, windows-2022,intel,2022.2,✓ -windows-2022,intel,2023.0,✓ +windows-2022,intel,2023.0, windows-2022,intel,2023.1,✓ windows-2022,intel,2023.2,✓ windows-2022,intel,2024.0,✓ +windows-2022,intel,2024.1,✓ windows-2022,lfortran,0.31.0,✓ windows-2022,lfortran,0.32.0,✓ windows-2022,lfortran,0.33.0,✓ \ No newline at end of file diff --git a/.github/compat/matrix.yml b/.github/compat/matrix.yml index f81d649..4b7b034 100644 --- a/.github/compat/matrix.yml +++ b/.github/compat/matrix.yml @@ -12,8 +12,7 @@ toolchain: - {compiler: gcc, version: 11} - {compiler: gcc, version: 10} - {compiler: gcc, version: 9} - - {compiler: gcc, version: 8} - - {compiler: gcc, version: 7} + - {compiler: intel, version: '2024.1'} - {compiler: intel, version: '2024.0'} - {compiler: intel, version: '2023.2'} - {compiler: intel, version: '2023.1'} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cf1e173..21a5bd5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -221,7 +221,7 @@ jobs: default_branch="${{ github.event.repository.default_branch }}" git switch -c "$updated_branch" - git add .github/compat/compat.csv README.md + git add .github/compat/*compat.csv README.md git commit -m "Update compatibility matrix" git push -u origin "$updated_branch" gh pr create -B "$default_branch" -H "$updated_branch" --title "Update compatibility matrix" --body-file .github/compat/compat.md diff --git a/README.md b/README.md index ada3d52..8c6b952 100644 --- a/README.md +++ b/README.md @@ -66,10 +66,11 @@ jobs: ## Options - *compiler*: Compiler toolchain to setup, available options are - - *gcc* (for `gfortran`) - - *intel* (for `ifx`) - - *intel-classic* (for `ifort`) - - *nvidia-hpc* (for `nvfortran`) + - *gcc* for `gfortran` + - *intel* for `ifx` + - *intel-classic* for `ifort` + - *lfortran* for `lfortran` + - *nvidia-hpc* for `nvfortran` - *version*: Version of the compiler toolchain. See [runner compatibility](#runner-compatibility) charts below. - *install_mkl*: If MKL libraries should be installed alongsider the intel compiler. Defaults to `false`. diff --git a/action.yml b/action.yml index d08dce1..55ac03b 100644 --- a/action.yml +++ b/action.yml @@ -46,9 +46,20 @@ runs: path: ${{ env.ONEAPI_ROOT }} key: ${{ runner.os }}-${{ inputs.compiler }}-${{ inputs.version }}-${{ steps.get-date.outputs.date }} - # used to install lfortran on mac - - uses: mamba-org/setup-micromamba@v1 + # Use micromamba for lfortran install on mac. Check if micromamba already + # exists, only install it if needed. If we install it, clean it up after. + - name: Check for micromamba + id: check-umamba if: runner.os == 'macOS' && contains(inputs.compiler, 'lfortran') + shell: bash + run: | + if [ "$(command -v micromamba)" ]; then + echo "install=false" >> $GITHUB_OUTPUT + else + echo "install=true" >> $GITHUB_OUTPUT + fi + - uses: mamba-org/setup-micromamba@v1 + if: runner.os == 'macOS' && contains(inputs.compiler, 'lfortran') && steps.check-umamba.outputs.install == 'true' with: init-shell: bash post-cleanup: 'all' diff --git a/setup-fortran.sh b/setup-fortran.sh index f277c66..5c71207 100755 --- a/setup-fortran.sh +++ b/setup-fortran.sh @@ -225,10 +225,6 @@ intel_version_map_l() esac else case $actual_version in - # 2024 versions omit patch version number in pkg name - 2024.0*) - version=2024.0 - ;; 2022.0.0 | 2022.0) version=2022.0.2 ;; @@ -358,7 +354,10 @@ intel_version_map_w() esac else case $actual_version in - 2024 | 2024.0 | 2024.0.1) + 2024.1 | 2024.1.0) + version=2024.1.0 + ;; + 2024.0 | 2024.0.1) version=2024.0.1 ;; 2023.2 | 2023.1 | 2023.0) @@ -499,6 +498,10 @@ install_intel_win() intel_version_map_w $version $classic case $version in + 2024.1.0) + WINDOWS_HPCKIT_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/c95a3b26-fc45-496c-833b-df08b10297b9/w_HPCKit_p_2024.1.0.561_offline.exe + WINDOWS_HPCKIT_COMPONENTS=intel.oneapi.win.ifort-compiler:intel.oneapi.win.cpp-dpcpp-common + ;; 2024.0.1) WINDOWS_HPCKIT_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/7a6db8a1-a8b9-4043-8e8e-ca54b56c34e4/w_HPCKit_p_2024.0.1.35_offline.exe WINDOWS_HPCKIT_COMPONENTS=intel.oneapi.win.ifort-compiler:intel.oneapi.win.cpp-dpcpp-common