Skip to content

Commit

Permalink
feat(lfortran): support lfortran compiler (fortran-lang#57)
Browse files Browse the repository at this point in the history
* install lfortran with preinstalled miniconda on windows and linux
* install/use micromamba for install on mac (with full cleanup)
* install lfortran to base conda/mamba env, then add to PATH
* pair lfortran with gcc/g++ on linux/mac and cl on windows
* explicitly support 0.31.0-0.33.0, others implicitly supported
* todo: debug named exe discovery in pwsh/powershell/cmd
* update compatibility database files, sort readme table cols

---------

Co-authored-by: wpbonelli <[email protected]>
  • Loading branch information
gha3mi and wpbonelli authored Mar 27, 2024
1 parent 78cb8fb commit b4cbf37
Show file tree
Hide file tree
Showing 10 changed files with 169 additions and 66 deletions.
4 changes: 3 additions & 1 deletion .github/actions/test-cc/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
[[ "${{ env.CC }}" == "${{ env.FPM_CC }}" ]] && (echo "CC and FPM_CC match") || (echo "CC and FPM_CC don't match: ${{ env.CC }} != ${{ env.FPM_CC}}"; exit 1)
# check compiler version
if ([ "$RUNNER_OS" == "Windows" ] && [[ "${{ inputs.compiler }}" =~ "intel" ]] && [[ "${{ inputs.compiler }}" != "nvidia-hpc" ]]); then
if ([ "$RUNNER_OS" == "Windows" ] && [[ "${{ inputs.compiler }}" =~ "intel" ]]); then
# only last line of output captured by command substitution, write to temp file instead
${{ env.CC }} //QV > "$RUNNER_TEMP/${{ env.CC }}.ver" 2>&1
ccv=$(cat "$RUNNER_TEMP/${{ env.CC }}.ver" | head -n 1)
Expand All @@ -27,6 +27,8 @@ runs:
elif ([ "$RUNNER_OS" == "Linux" ] && [[ "${{ inputs.compiler }}" == "nvidia-hpc" ]]); then
# Get the compiler version and extract the version number
ccv=$(${{ env.CC }} --version 2>&1 | awk '/nvc/ {print $2}' | cut -d'-' -f1)
elif ([[ "${{ inputs.compiler }}" == "lfortran" ]]); then
exit 0 # uses preinstalled gcc, skip version check
elif ([[ "${{ inputs.compiler }}" != "nvidia-hpc" ]]); then
ccv=$(${{ env.CC }} --version | head -n 1)
ccv=$(echo "$ccv" | grep -woE '[0123456789.]+' | head -n 1)
Expand Down
4 changes: 3 additions & 1 deletion .github/actions/test-cxx/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
[[ "${{ env.CXX }}" == "${{ env.FPM_CXX }}" ]] && (echo "CXX and FPM_CXX match") || (echo "CXX and FPM_CXX don't match: ${{ env.CXX }} != ${{ env.FPM_CXX}}"; exit 1)
# check compiler version
if ([ "$RUNNER_OS" == "Windows" ] && [[ "${{ matrix.toolchain.compiler }}" =~ "intel" ]] && [[ "${{ matrix.toolchain.compiler }}" != "nvidia-hpc" ]]); then
if ([ "$RUNNER_OS" == "Windows" ] && [[ "${{ matrix.toolchain.compiler }}" =~ "intel" ]]); then
# only last line of output captured by command substitution, write to temp file instead
${{ env.CXX }} //QV > "$RUNNER_TEMP/${{ env.CXX }}.ver" 2>&1
cxxv=$(cat "$RUNNER_TEMP/${{ env.CXX }}.ver" | head -n 1)
Expand All @@ -27,6 +27,8 @@ runs:
elif ([ "$RUNNER_OS" == "Linux" ] && [[ "${{ matrix.toolchain.compiler}}" == "nvidia-hpc" ]]); then
# Get the compiler version and extract the version number
cxxv=$(${{ env.CXX }} --version 2>&1 | awk '/nvc++/ {print $2}' | cut -d'-' -f1)
elif ([[ "${{ inputs.compiler }}" == "lfortran" ]]); then
exit 0 # uses preinstalled gcc, skip version check
elif ([[ "${{ matrix.toolchain.compiler}}" != "nvidia-hpc" ]]); then
cxxv=$(${{ env.CXX }} --version | head -n 1)
cxxv=$(echo "$cxxv" | grep -woE '[0123456789.]+' | head -n 1)
Expand Down
13 changes: 8 additions & 5 deletions .github/actions/test-fc/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
[[ "${{ env.FC }}" == "${{ env.FPM_FC }}" ]] && (echo "FC and FPM_FC match") || (echo "FC and FPM_FC don't match: ${{ env.FC }} != ${{ env.FPM_FC}}"; exit 1)
# check compiler version
if ([ "$RUNNER_OS" == "Windows" ] && [[ "${{ inputs.compiler }}" =~ "intel" ]] && [[ "${{ inputs.compiler }}" != "nvidia-hpc" ]]); then
if ([ "$RUNNER_OS" == "Windows" ] && [[ "${{ inputs.compiler }}" =~ "intel" ]]); then
# only last line of output captured by command substitution, write to temp file instead
${{ env.FC }} //QV > "$RUNNER_TEMP/${{ env.FC }}.ver" 2>&1
fcv=$(cat "$RUNNER_TEMP/${{ env.FC }}.ver" | head -n 1)
Expand All @@ -27,6 +27,8 @@ runs:
elif ([ "$RUNNER_OS" == "Linux" ] && [[ "${{ inputs.compiler }}" == "nvidia-hpc" ]]); then
# Get the compiler version and extract the version number
fcv=$(${{ env.FC }} --version 2>&1 | awk '/nvfortran/ {print $2}' | cut -d'-' -f1)
elif ([[ "${{ inputs.compiler }}" == "lfortran" ]]); then
fcv=$(${{ env.FC }} --version | head -n 1 | grep -woE '[0123456789.]+')
elif ([[ "${{ inputs.compiler }}" != "nvidia-hpc" ]]); then
fcv=$(${{ env.FC }} --version | head -n 1)
fcv=$(echo "$fcv" | grep -woE '[0123456789.]+' | head -n 1)
Expand All @@ -38,14 +40,15 @@ runs:
shell: bash
run: |
# hello world program
${{ env.FC }} $args -o hw hw.f90
${{ env.FC }} -o hw hw.f90
output=$(./hw '2>&1')
[[ "$output" == *"hello world"* ]] && echo "$output" || (echo "Unexpected Fortran program 'hw' output: $output"; exit 1)
rm hw
- name: Test compile Fortran (pwsh)
working-directory: test
if: ${{ (success() || failure()) && runner.os == 'Windows' }}
# todo: debug lfortran discovery issues (same for powershell and cmd below)
if: ${{ (success() || failure()) && runner.os == 'Windows' && inputs.compiler != 'lfortran' }}
shell: pwsh
run: |
${{ env.FC }} -o hw.exe hw.f90
Expand All @@ -60,7 +63,7 @@ runs:
- name: Test compile Fortran (powershell)
working-directory: test
if: ${{ (success() || failure()) && runner.os == 'Windows' }}
if: ${{ (success() || failure()) && runner.os == 'Windows' && inputs.compiler != 'lfortran' }}
shell: powershell
run: |
${{ env.FC }} -o hw.exe hw.f90
Expand All @@ -75,7 +78,7 @@ runs:
- name: Test compile Fortran (cmd)
working-directory: test
if: ${{ (success() || failure()) && runner.os == 'Windows' }}
if: ${{ (success() || failure()) && runner.os == 'Windows' && inputs.compiler != 'lfortran' }}
shell: cmd
run: |
${{ env.FC }} -o hw.exe hw.f90
Expand Down
20 changes: 10 additions & 10 deletions .github/compat/compat.csv
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
compiler,gcc,gcc,gcc,gcc,gcc,gcc,gcc,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc
version,10,11,12,13,7,8,9,2021.1,2021.10,2021.2,2021.3,2021.4,2021.5,2021.6,2021.7.1,2021.7,2021.8,2021.9,2021.1.2,2021.1.2,2021.1,2021.2,2021.4,2022.0,2022.1,2022.2.1,2022.2,2023.0,2023.1,2023.2,2024.0,20.11,21.11,22.11,23.11,23.3,23.5,23.7,23.9
runner,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
macos-12,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,,,,,,,,,,,,,,
macos-13,&check;,&check;,&check;,&check;,,,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,,,,,,,,,,,,,,
macos-14,,&check;,&check;,&check;,,,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,,,,,,,,,,,,,,
ubuntu-20.04,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;
ubuntu-22.04,&check;,&check;,&check;,&check;,,,&check;,&check;,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;
windows-2019,&check;,&check;,&check;,&check;,,&check;,&check;,,&check;,,,,,&check;,,&check;,&check;,&check;,,,,,,,&check;,,&check;,&check;,&check;,&check;,&check;,,,,,,,,
windows-2022,&check;,&check;,&check;,&check;,,&check;,&check;,,&check;,,,,,&check;,,&check;,&check;,&check;,,,,,,,&check;,,&check;,&check;,&check;,&check;,&check;,,,,,,,,
compiler,gcc,gcc,gcc,gcc,gcc,gcc,gcc,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,intel-classic,lfortran,lfortran,lfortran,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc,nvidia-hpc
version,10,11,12,13,7,8,9,2021.1,2021.1.2,2021.2,2021.4,2022.0,2022.1,2022.2,2022.2.1,2023.0,2023.1,2023.2,2024.0,2021.1,2021.1.2,2021.10,2021.2,2021.3,2021.4,2021.5,2021.6,2021.7,2021.7.1,2021.8,2021.9,0.31.0,0.32.0,0.33.0,20.11,21.11,22.11,23.11,23.3,23.5,23.7,23.9
runner,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
macos-12,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,,,,,,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,
macos-13,&check;,&check;,&check;,&check;,,,,,,,,,,,,,,,,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,
macos-14,,&check;,&check;,&check;,,,,,,,,,,,,,,,,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,,,,,,,
ubuntu-20.04,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;
ubuntu-22.04,&check;,&check;,&check;,&check;,,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;,&check;
windows-2019,&check;,&check;,&check;,&check;,,&check;,&check;,,,,,,&check;,&check;,,&check;,&check;,&check;,&check;,,,&check;,,,,,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,,,,,,,,
windows-2022,&check;,&check;,&check;,&check;,,&check;,&check;,,,,,,&check;,&check;,,&check;,&check;,&check;,&check;,,,&check;,,,,,&check;,&check;,,&check;,&check;,&check;,&check;,&check;,,,,,,,,
84 changes: 54 additions & 30 deletions .github/compat/long_compat.csv
Original file line number Diff line number Diff line change
@@ -1,29 +1,8 @@
runner,compiler,version,support
macos-11,gcc,10,&check;
macos-11,gcc,11,&check;
macos-11,gcc,12,&check;
macos-11,gcc,13,&check;
macos-11,gcc,6,
macos-11,gcc,7,&check;
macos-11,gcc,8,&check;
macos-11,gcc,9,&check;
macos-11,intel-classic,2021.1.2,
macos-11,intel-classic,2021.1,&check;
macos-11,intel-classic,2021.10,&check;
macos-11,intel-classic,2021.2,&check;
macos-11,intel-classic,2021.3,&check;
macos-11,intel-classic,2021.4,&check;
macos-11,intel-classic,2021.5,&check;
macos-11,intel-classic,2021.6,&check;
macos-11,intel-classic,2021.7.1,&check;
macos-11,intel-classic,2021.7,&check;
macos-11,intel-classic,2021.8,&check;
macos-11,intel-classic,2021.9,&check;
macos-12,gcc,10,&check;
macos-12,gcc,11,&check;
macos-12,gcc,12,&check;
macos-12,gcc,13,&check;
macos-12,gcc,6,
macos-12,gcc,7,&check;
macos-12,gcc,8,&check;
macos-12,gcc,9,&check;
Expand All @@ -39,14 +18,15 @@ macos-12,intel-classic,2021.7.1,&check;
macos-12,intel-classic,2021.7,&check;
macos-12,intel-classic,2021.8,&check;
macos-12,intel-classic,2021.9,&check;
macos-12,lfortran,0.31.0,&check;
macos-12,lfortran,0.32.0,&check;
macos-12,lfortran,0.33.0,&check;
macos-13,gcc,10,&check;
macos-13,gcc,11,&check;
macos-13,gcc,12,&check;
macos-13,gcc,13,&check;
macos-13,gcc,6,
macos-13,gcc,7,
macos-13,gcc,8,
macos-13,gcc,9,
macos-13,intel-classic,2021.1.2,
macos-13,intel-classic,2021.1,&check;
macos-13,intel-classic,2021.10,&check;
Expand All @@ -59,17 +39,35 @@ macos-13,intel-classic,2021.7.1,&check;
macos-13,intel-classic,2021.7,&check;
macos-13,intel-classic,2021.8,&check;
macos-13,intel-classic,2021.9,&check;
macos-13,lfortran,0.31.0,&check;
macos-13,lfortran,0.32.0,&check;
macos-13,lfortran,0.33.0,&check;
macos-14,gcc,11,&check;
macos-14,gcc,12,&check;
macos-14,gcc,13,&check;
macos-14,gcc,7,
macos-14,intel-classic,2021.1.2,
macos-14,intel-classic,2021.1,&check;
macos-14,intel-classic,2021.10,&check;
macos-14,intel-classic,2021.2,&check;
macos-14,intel-classic,2021.3,&check;
macos-14,intel-classic,2021.4,&check;
macos-14,intel-classic,2021.5,&check;
macos-14,intel-classic,2021.6,&check;
macos-14,intel-classic,2021.7.1,&check;
macos-14,intel-classic,2021.7,&check;
macos-14,intel-classic,2021.8,&check;
macos-14,intel-classic,2021.9,&check;
macos-14,lfortran,0.31.0,&check;
macos-14,lfortran,0.32.0,&check;
macos-14,lfortran,0.33.0,&check;
ubuntu-20.04,gcc,10,&check;
ubuntu-20.04,gcc,11,&check;
ubuntu-20.04,gcc,12,
ubuntu-20.04,gcc,13,&check;
ubuntu-20.04,gcc,6,
ubuntu-20.04,gcc,7,&check;
ubuntu-20.04,gcc,8,&check;
ubuntu-20.04,gcc,9,&check;
macos-14,gcc,11,&check;
macos-14,gcc,12,&check;
macos-14,gcc,13,&check;
ubuntu-20.04,intel-classic,2021.1.2,&check;
ubuntu-20.04,intel-classic,2021.1,&check;
ubuntu-20.04,intel-classic,2021.10,&check;
Expand All @@ -94,13 +92,26 @@ ubuntu-20.04,intel,2023.0,&check;
ubuntu-20.04,intel,2023.1,&check;
ubuntu-20.04,intel,2023.2,&check;
ubuntu-20.04,intel,2024.0,&check;
ubuntu-20.04,lfortran,0.31.0,&check;
ubuntu-20.04,lfortran,0.32.0,&check;
ubuntu-20.04,lfortran,0.33.0,&check;
ubuntu-20.04,nvidia-hpc,20.11,&check;
ubuntu-20.04,nvidia-hpc,20.7,
ubuntu-20.04,nvidia-hpc,20.9,
ubuntu-20.04,nvidia-hpc,21.1,
ubuntu-20.04,nvidia-hpc,21.11,&check;
ubuntu-20.04,nvidia-hpc,21.3,
ubuntu-20.04,nvidia-hpc,21.5,
ubuntu-20.04,nvidia-hpc,21.7,
ubuntu-20.04,nvidia-hpc,21.9,
ubuntu-20.04,nvidia-hpc,22.1,
ubuntu-20.04,nvidia-hpc,22.11,&check;
ubuntu-20.04,nvidia-hpc,22.2,
ubuntu-20.04,nvidia-hpc,22.3,
ubuntu-20.04,nvidia-hpc,22.5,
ubuntu-20.04,nvidia-hpc,22.7,
ubuntu-20.04,nvidia-hpc,22.9,
ubuntu-20.04,nvidia-hpc,23.1,
ubuntu-20.04,nvidia-hpc,23.11,&check;
ubuntu-20.04,nvidia-hpc,23.3,&check;
ubuntu-20.04,nvidia-hpc,23.5,&check;
Expand All @@ -110,7 +121,6 @@ ubuntu-22.04,gcc,10,&check;
ubuntu-22.04,gcc,11,&check;
ubuntu-22.04,gcc,12,&check;
ubuntu-22.04,gcc,13,&check;
ubuntu-22.04,gcc,6,
ubuntu-22.04,gcc,7,
ubuntu-22.04,gcc,8,
ubuntu-22.04,gcc,9,&check;
Expand Down Expand Up @@ -138,13 +148,23 @@ ubuntu-22.04,intel,2023.0,&check;
ubuntu-22.04,intel,2023.1,&check;
ubuntu-22.04,intel,2023.2,&check;
ubuntu-22.04,intel,2024.0,&check;
ubuntu-22.04,lfortran,0.31.0,&check;
ubuntu-22.04,lfortran,0.32.0,&check;
ubuntu-22.04,lfortran,0.33.0,&check;
ubuntu-22.04,nvidia-hpc,20.11,&check;
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,&check;
ubuntu-22.04,nvidia-hpc,21.7,
ubuntu-22.04,nvidia-hpc,22.1,
ubuntu-22.04,nvidia-hpc,22.11,&check;
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,&check;
ubuntu-22.04,nvidia-hpc,23.3,&check;
ubuntu-22.04,nvidia-hpc,23.5,&check;
Expand All @@ -154,7 +174,6 @@ windows-2019,gcc,10,&check;
windows-2019,gcc,11,&check;
windows-2019,gcc,12,&check;
windows-2019,gcc,13,&check;
windows-2019,gcc,6,
windows-2019,gcc,7,
windows-2019,gcc,8,&check;
windows-2019,gcc,9,&check;
Expand Down Expand Up @@ -182,11 +201,13 @@ windows-2019,intel,2023.0,&check;
windows-2019,intel,2023.1,&check;
windows-2019,intel,2023.2,&check;
windows-2019,intel,2024.0,&check;
windows-2019,lfortran,0.31.0,&check;
windows-2019,lfortran,0.32.0,&check;
windows-2019,lfortran,0.33.0,&check;
windows-2022,gcc,10,&check;
windows-2022,gcc,11,&check;
windows-2022,gcc,12,&check;
windows-2022,gcc,13,&check;
windows-2022,gcc,6,
windows-2022,gcc,7,
windows-2022,gcc,8,&check;
windows-2022,gcc,9,&check;
Expand Down Expand Up @@ -214,3 +235,6 @@ windows-2022,intel,2023.0,&check;
windows-2022,intel,2023.1,&check;
windows-2022,intel,2023.2,&check;
windows-2022,intel,2024.0,&check;
windows-2022,lfortran,0.31.0,&check;
windows-2022,lfortran,0.32.0,&check;
windows-2022,lfortran,0.33.0,&check;
7 changes: 3 additions & 4 deletions .github/compat/matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ toolchain:
- {compiler: intel-classic, version: '2021.2'}
- {compiler: intel-classic, version: '2021.1.2'}
- {compiler: intel-classic, version: '2021.1'}
- {compiler: lfortran, version: '0.31.0'}
- {compiler: lfortran, version: '0.32.0'}
- {compiler: lfortran, version: '0.33.0'}
- {compiler: nvidia-hpc, version: '23.11'}
- {compiler: nvidia-hpc, version: '23.9'}
- {compiler: nvidia-hpc, version: '23.7'}
Expand Down Expand Up @@ -69,17 +72,13 @@ exclude:
toolchain: {compiler: intel}
- os: macos-12
toolchain: {compiler: intel}
- os: macos-11
toolchain: {compiler: intel}
# nvidia-hpc not available for mac
- os: macos-14
toolchain: {compiler: nvidia-hpc}
- os: macos-13
toolchain: {compiler: nvidia-hpc}
- os: macos-12
toolchain: {compiler: nvidia-hpc}
- os: macos-11
toolchain: {compiler: nvidia-hpc}
# nvidia-hpc not available for windows
- os: windows-2022
toolchain: {compiler: nvidia-hpc}
Expand Down
2 changes: 1 addition & 1 deletion .github/compat/wide_compat_reports.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
index="runner",
columns=["compiler", "version"],
values="support",
sort=False,
sort=True,
aggfunc="first",
).sort_values(by=["runner"])

Expand Down
Loading

0 comments on commit b4cbf37

Please sign in to comment.