diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f38ba0..d18dfea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,442 +13,455 @@ concurrency: cancel-in-progress: true jobs: - check-generated-files: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Regenerate files - working-directory: test - run: make maintainer-clean && make generate ECHO="$(which echo)" - - name: Check for changes - run: git diff --exit-code + # check-generated-files: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Regenerate files + # working-directory: test + # run: make maintainer-clean && make generate ECHO="$(which echo)" + # - name: Check for changes + # run: git diff --exit-code - armclang: - runs-on: ubuntu-${{ matrix.distro }} - strategy: - matrix: - include: - # https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Linux#Software-Download - - version: "24.04" - distro: "22.04" - steps: - - uses: actions/checkout@v4 - - uses: uraimo/run-on-arch-action@v2 - name: Run commands - with: - arch: aarch64 - distro: ubuntu${{ matrix.distro }} - install: | - apt-get update - apt-get install -y curl python3 libc6-dev make gcc g++ - mkdir /tmp/armclang-installer - cd /tmp/armclang-installer - curl -s "https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_${{ matrix.version }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}_aarch64.tar" | tar xv - ./arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}.sh --accept - env: | - CC: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang - CXX: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang++ - run: | - cd test - make + # armclang: + # runs-on: ubuntu-${{ matrix.distro }} + # strategy: + # matrix: + # include: + # # https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Linux#Software-Download + # - version: "24.04" + # distro: "22.04" + # steps: + # - uses: actions/checkout@v4 + # - uses: uraimo/run-on-arch-action@v2 + # name: Run commands + # with: + # arch: aarch64 + # distro: ubuntu${{ matrix.distro }} + # install: | + # apt-get update + # apt-get install -y curl python3 libc6-dev make gcc g++ + # mkdir /tmp/armclang-installer + # cd /tmp/armclang-installer + # curl -s "https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_${{ matrix.version }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}_aarch64.tar" | tar xv + # ./arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}.sh --accept + # env: | + # CC: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang + # CXX: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang++ + # run: | + # cd test + # make - clang: - runs-on: ubuntu-${{ matrix.distro }} - strategy: - matrix: - include: - # Previous versions will no longer run on GitHub, but can be - # tested in Docker. Here are the versions which are available: - # - # - Ubuntu 14.04: 3.3 - 3.9 - # - Ubuntu 16.04: 3.5 - 6.0 - # - Ubuntu 18.04: 3.9 - 10 + # clang: + # runs-on: ubuntu-${{ matrix.distro }} + # strategy: + # matrix: + # include: + # # Previous versions will no longer run on GitHub, but can be + # # tested in Docker. Here are the versions which are available: + # # + # # - Ubuntu 14.04: 3.3 - 3.9 + # # - Ubuntu 16.04: 3.5 - 6.0 + # # - Ubuntu 18.04: 3.9 - 10 - - version: "6.0" - distro: "20.04" - - version: "7" - distro: "20.04" - - version: "8" - distro: "20.04" - - version: "9" - distro: "20.04" - - version: "10" - distro: "20.04" - # - version: "11" - # distro: "20.04" - # - version: "12" - # distro: "20.04" + # - version: "6.0" + # distro: "20.04" + # - version: "7" + # distro: "20.04" + # - version: "8" + # distro: "20.04" + # - version: "9" + # distro: "20.04" + # - version: "10" + # distro: "20.04" + # # - version: "11" + # # distro: "20.04" + # # - version: "12" + # # distro: "20.04" - - version: "11" - distro: "22.04" - - version: "12" - distro: "22.04" - - version: "13" - distro: "22.04" - # - version: "14" - # distro: "22.04" - # - version: "15" - # distro: "22.04" + # - version: "11" + # distro: "22.04" + # - version: "12" + # distro: "22.04" + # - version: "13" + # distro: "22.04" + # # - version: "14" + # # distro: "22.04" + # # - version: "15" + # # distro: "22.04" - - version: "14" - distro: "24.04" - - version: "15" - distro: "24.04" - - version: "16" - distro: "24.04" - - version: "17" - distro: "24.04" - - version: "18" - distro: "24.04" - steps: - - uses: actions/checkout@v4 - - name: Install Clang ${{ matrix.version }} - run: | - sudo apt-get update - sudo apt-get -y install clang-${{ matrix.version }} - - name: Compile - env: - CC: clang-${{ matrix.version }} - CXX: clang++-${{ matrix.version }} - run: make - working-directory: test + # - version: "14" + # distro: "24.04" + # - version: "15" + # distro: "24.04" + # - version: "16" + # distro: "24.04" + # - version: "17" + # distro: "24.04" + # - version: "18" + # distro: "24.04" + # steps: + # - uses: actions/checkout@v4 + # - name: Install Clang ${{ matrix.version }} + # run: | + # sudo apt-get update + # sudo apt-get -y install clang-${{ matrix.version }} + # - name: Compile + # env: + # CC: clang-${{ matrix.version }} + # CXX: clang++-${{ matrix.version }} + # run: make + # working-directory: test - dmc: - runs-on: windows-latest - strategy: - matrix: - version: - - "8.26" - - "8.30" - - "8.40" - - "8.50" - - "8.57" - steps: - - uses: actions/checkout@v4 - - name: Install Digital Mars C/C++ Compiler - run: | - $version = "${{ matrix.version }}".Replace(".", "") - $url = "http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm${version}c.zip" - Invoke-WebRequest -Uri "${url}" -OutFile "dmc.zip" - Expand-Archive -LiteralPath "dmc.zip" -DestinationPath dmc-tmp - Move-Item -Path dmc-tmp\* -Destination dmc - working-directory: test - - name: Compile - env: - CC: dmc\bin\dmc.exe - CXX: dmc\bin\dmc.exe - run: make -f Makefile.dmc - working-directory: test + # dmc: + # runs-on: windows-latest + # strategy: + # matrix: + # version: + # - "8.26" + # - "8.30" + # - "8.40" + # - "8.50" + # - "8.57" + # steps: + # - uses: actions/checkout@v4 + # - name: Install Digital Mars C/C++ Compiler + # run: | + # $version = "${{ matrix.version }}".Replace(".", "") + # $url = "http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm${version}c.zip" + # Invoke-WebRequest -Uri "${url}" -OutFile "dmc.zip" + # Expand-Archive -LiteralPath "dmc.zip" -DestinationPath dmc-tmp + # Move-Item -Path dmc-tmp\* -Destination dmc + # working-directory: test + # - name: Compile + # env: + # CC: dmc\bin\dmc.exe + # CXX: dmc\bin\dmc.exe + # run: make -f Makefile.dmc + # working-directory: test - emcscripten: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: mymindstorm/setup-emsdk@v14 - - name: Compile - env: - CC: emcc - CXX: emcc - run: make -C test + # emcscripten: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: mymindstorm/setup-emsdk@v14 + # - name: Compile + # env: + # CC: emcc + # CXX: emcc + # run: make -C test - gcc: - runs-on: ubuntu-${{ matrix.distro }} - strategy: - fail-fast: false - matrix: - include: - # Previous versions will no longer run on GitHub, but can be - # tested in Docker. Here are the versions which are available: - # - # - Ubuntu 14.04: 4.4 - 4.8 - # - Ubuntu 16.04: 4.6 - 5 - # - Ubuntu 18.04: 5 - 8 + # gcc: + # runs-on: ubuntu-${{ matrix.distro }} + # strategy: + # fail-fast: false + # matrix: + # include: + # # Previous versions will no longer run on GitHub, but can be + # # tested in Docker. Here are the versions which are available: + # # + # # - Ubuntu 14.04: 4.4 - 4.8 + # # - Ubuntu 16.04: 4.6 - 5 + # # - Ubuntu 18.04: 5 - 8 - - version: "7" - distro: "20.04" - - version: "8" - distro: "20.04" - # - version: "9" - # distro: "20.04" - # - version: "10" - # distro: "20.04" + # - version: "7" + # distro: "20.04" + # - version: "8" + # distro: "20.04" + # # - version: "9" + # # distro: "20.04" + # # - version: "10" + # # distro: "20.04" - # - version: "9" - # distro: "22.04" - # - version: "10" - # distro: "22.04" - # - version: "11" - # distro: "22.04" - # - version: "12" - # distro: "22.04" + # # - version: "9" + # # distro: "22.04" + # # - version: "10" + # # distro: "22.04" + # # - version: "11" + # # distro: "22.04" + # # - version: "12" + # # distro: "22.04" - - version: "9" - distro: "24.04" - - version: "10" - distro: "24.04" - - version: "11" - distro: "24.04" - - version: "12" - distro: "24.04" - - version: "13" - distro: "24.04" - - version: "14" - distro: "24.04" - steps: - - uses: actions/checkout@v4 - - name: Install GCC - run: | - sudo apt-get update - sudo apt-get -y install gcc-${{ matrix.version }} g++-${{ matrix.version }} - - name: Compile - env: - CC: gcc-${{ matrix.version }} - CXX: g++-${{ matrix.version }} - run: make - working-directory: test + # - version: "9" + # distro: "24.04" + # - version: "10" + # distro: "24.04" + # - version: "11" + # distro: "24.04" + # - version: "12" + # distro: "24.04" + # - version: "13" + # distro: "24.04" + # - version: "14" + # distro: "24.04" + # steps: + # - uses: actions/checkout@v4 + # - name: Install GCC + # run: | + # sudo apt-get update + # sudo apt-get -y install gcc-${{ matrix.version }} g++-${{ matrix.version }} + # - name: Compile + # env: + # CC: gcc-${{ matrix.version }} + # CXX: g++-${{ matrix.version }} + # run: make + # working-directory: test - intel: - runs-on: ubuntu-20.04 - strategy: - matrix: - include: - - version: "2021.1.1" - classic: true - # - version: "2021.1.2" - # classic: true - # - version: "2021.2.0" - # classic: true - # - version: "2021.3.0" - # classic: true - # - version: "2021.4.0" - # classic: true - - version: "2022.0.1" - classic: true - # - version: "2022.0.2" - # classic: true - # - version: "2022.1.0" - # classic: true - # - version: "2022.2.0" - # classic: true - # - version: "2022.2.1" - # classic: true - - version: "2023.0.0" - classic: true - # - version: "2023.1.0" - # classic: true - # - version: "2023.2.0" - # classic: true - - version: "2023.2.1" - classic: true - - version: "2023.2.2" - # - version: "2023.2.3" - # - version: "2023.2.4" - # - version: "2024.0" - # - version: "2024.1" - - version: "2024.2" - steps: - - uses: actions/checkout@v4 - - name: Free some disk space - run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc - - name: Configure Intel OneAPI Repository - run: | - curl -s https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list - sudo apt-get update - - name: Install Intel oneAPI DPC++/C++ Compiler - run: | - sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-${{ matrix.version }}" - - name: Install Intel Classic C/C++ Compiler - if: matrix.classic - run: | - sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${{ matrix.version }}" - - name: Compile with Intel oneAPI DPC++/C++ Compiler - env: - CC: icx - CXX: icpx - working-directory: test - run: | - . /opt/intel/oneapi/setvars.sh - make && make clean - - name: Compile with Intel Classic C/C++ Compiler - if: matrix.classic - env: - CC: icc - CXX: icpc - working-directory: test - run: | - . /opt/intel/oneapi/setvars.sh - make && make clean - - nvhpc: - runs-on: ubuntu-${{ matrix.distro != '' && matrix.distro || 'latest' }} - strategy: - matrix: - include: - # For available versions, see - # https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64/Packages - - version: "20.11" - distro: "20.04" - # - version: "21.1" ## BROKEN. File size mismatch. - # distro: "20.04" - # - version: "21.2" - # distro: "20.04" - # - version: "21.3" - # distro: "20.04" - # - version: "21.5" - # distro: "20.04" - - version: "21.7" - distro: "20.04" - # - version: "21.9" - # distro: "20.04" - # - version: "21.11" - # distro: "22.04" - # - version: "22.1" - # distro: "22.04" - # - version: "22.2" - # distro: "22.04" - - version: "22.3" - distro: "22.04" - # - version: "22.5" - # distro: "22.04" - # - version: "22.7" - # distro: "22.04" - # - version: "22.9" - # distro: "22.04" - # - version: "22.11" - # distro: "22.04" - - version: "23.1" - distro: "22.04" - # - version: "23.3" - # distro: "22.04" - # - version: "23.5" - # distro: "22.04" - # - version: "23.7" - # distro: "22.04" - # - version: "23.9" - # distro: "22.04" - - version: "23.11" - distro: "22.04" - # - version: "24.1" - # distro: "22.04" - # - version: "24.3" - # distro: "22.04" - - version: "24.7" - distro: "24.04" - steps: - - uses: actions/checkout@v4 - - name: Free some disk space - run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc - - name: Install NVidia HPC SDK - run: | - curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg - echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list - sudo apt-get update -y - sudo apt-get install -y nvhpc-$(echo "${{ matrix.version }}" | tr '.' '-') - - name: Compile - env: - CC: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc - CXX: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc++ - working-directory: test - run: make + # intel: + # runs-on: ubuntu-20.04 + # strategy: + # matrix: + # include: + # - version: "2021.1.1" + # classic: true + # # - version: "2021.1.2" + # # classic: true + # # - version: "2021.2.0" + # # classic: true + # # - version: "2021.3.0" + # # classic: true + # # - version: "2021.4.0" + # # classic: true + # - version: "2022.0.1" + # classic: true + # # - version: "2022.0.2" + # # classic: true + # # - version: "2022.1.0" + # # classic: true + # # - version: "2022.2.0" + # # classic: true + # # - version: "2022.2.1" + # # classic: true + # - version: "2023.0.0" + # classic: true + # # - version: "2023.1.0" + # # classic: true + # # - version: "2023.2.0" + # # classic: true + # - version: "2023.2.1" + # classic: true + # - version: "2023.2.2" + # # - version: "2023.2.3" + # # - version: "2023.2.4" + # # - version: "2024.0" + # # - version: "2024.1" + # - version: "2024.2" + # steps: + # - uses: actions/checkout@v4 + # - name: Free some disk space + # run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc + # - name: Configure Intel OneAPI Repository + # run: | + # curl -s https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + # echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + # sudo apt-get update + # - name: Install Intel oneAPI DPC++/C++ Compiler + # run: | + # sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-${{ matrix.version }}" + # - name: Install Intel Classic C/C++ Compiler + # if: matrix.classic + # run: | + # sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${{ matrix.version }}" + # - name: Compile with Intel oneAPI DPC++/C++ Compiler + # env: + # CC: icx + # CXX: icpx + # working-directory: test + # run: | + # . /opt/intel/oneapi/setvars.sh + # make && make clean + # - name: Compile with Intel Classic C/C++ Compiler + # if: matrix.classic + # env: + # CC: icc + # CXX: icpc + # working-directory: test + # run: | + # . /opt/intel/oneapi/setvars.sh + # make && make clean - pelles-c: + msvc: runs-on: windows-latest - strategy: - matrix: - version: - # https://community.chocolatey.org/packages/pelles-c#versionhistory - - "12.0.2" - - "11.0.2" - - "10.0.6" - - "9.00.0.0" - # - "8.00.0.0" ## Installation times out. - steps: - - uses: actions/checkout@v4 - - name: Install Pelles-C - uses: crazy-max/ghaction-chocolatey@v3 - with: - args: install pelles-c --version "${{ matrix.version }}" --no-progress - - name: Compile - env: - CC: 'C:\Program Files\PellesC\bin\pocc.exe' - LD: 'C:\Program Files\PellesC\bin\polink.exe' - CFLAGS: '/IC:\Progra~1\PellesC\Include' - LDFLAGS: '/LIBPATH:C:\Progra~1\PellesC\lib /LIBPATH:C:\Progra~1\PellesC\Lib\Win64' - working-directory: test - run: make -f Makefile.pelles - - tcc: - runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Tiny C Compiler - run: | - sudo apt-get install -y tcc + - uses: ilammy/msvc-dev-cmd@v1 - name: Compile - env: - CC: tcc working-directory: test - run: make - - ti: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - tool: ARM - version: 20.2.7.LTS - compiler: armcl - - tool: MSP - version: 21.6.1.LTS - compiler: cl430 - - tool: C2000 - version: 22.6.1.LTS - compiler: cl2000 - - tool: C6000 - version: 8.3.13 - compiler: cl6x - - tool: C7000 - version: 4.1.0.LTS - compiler: cl7x - - tool: PRU - version: 2.3.3 - compiler: clpru - steps: - - uses: actions/checkout@v4 - - name: Install Compiler - run: | - curl -s -o installer.bin "$(curl -s "https://www.ti.com/tool/download/${{ matrix.tool }}-CGT/${{ matrix.version }}" | grep -oP 'https://[a-zA-Z0-9\._\-/]+\.bin')" - chmod u+x installer.bin - ./installer.bin --mode unattended --unattendedmodeui none --prefix ti-compiler - mv ti-compiler/* ti-compiler/compiler - - name: Compile env: - CC: ../ti-compiler/compiler/bin/${{ matrix.compiler }} - working-directory: test - run: make + CC: cl.exe + CXX: cl.exe + run: | + make -f Makefile.msvc - xlc: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: uraimo/run-on-arch-action@v2 - name: Run commands - id: runcmd - with: - arch: ppc64le - distro: ubuntu22.04 - install: | - apt-get update - apt-get install -y curl gnupg make libncurses5 - curl -s https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg | apt-key add - - echo "deb https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ trusty main" | tee /etc/apt/sources.list.d/ibm-xl-compiler-eval.list - apt-get update - apt-get install -y xlc.16.1.1 - /opt/ibm/xlC/16.1.1/bin/xlc_configure <<< 1 - env: | - CC: xlc - CXX: xlc++ - run: | - cd test - make + # nvhpc: + # runs-on: ubuntu-${{ matrix.distro != '' && matrix.distro || 'latest' }} + # strategy: + # matrix: + # include: + # # For available versions, see + # # https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64/Packages + # - version: "20.11" + # distro: "20.04" + # # - version: "21.1" ## BROKEN. File size mismatch. + # # distro: "20.04" + # # - version: "21.2" + # # distro: "20.04" + # # - version: "21.3" + # # distro: "20.04" + # # - version: "21.5" + # # distro: "20.04" + # - version: "21.7" + # distro: "20.04" + # # - version: "21.9" + # # distro: "20.04" + # # - version: "21.11" + # # distro: "22.04" + # # - version: "22.1" + # # distro: "22.04" + # # - version: "22.2" + # # distro: "22.04" + # - version: "22.3" + # distro: "22.04" + # # - version: "22.5" + # # distro: "22.04" + # # - version: "22.7" + # # distro: "22.04" + # # - version: "22.9" + # # distro: "22.04" + # # - version: "22.11" + # # distro: "22.04" + # - version: "23.1" + # distro: "22.04" + # # - version: "23.3" + # # distro: "22.04" + # # - version: "23.5" + # # distro: "22.04" + # # - version: "23.7" + # # distro: "22.04" + # # - version: "23.9" + # # distro: "22.04" + # - version: "23.11" + # distro: "22.04" + # # - version: "24.1" + # # distro: "22.04" + # # - version: "24.3" + # # distro: "22.04" + # - version: "24.7" + # distro: "24.04" + # steps: + # - uses: actions/checkout@v4 + # - name: Free some disk space + # run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc + # - name: Install NVidia HPC SDK + # run: | + # curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg + # echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list + # sudo apt-get update -y + # sudo apt-get install -y nvhpc-$(echo "${{ matrix.version }}" | tr '.' '-') + # - name: Compile + # env: + # CC: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc + # CXX: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc++ + # working-directory: test + # run: make + + # pelles-c: + # runs-on: windows-latest + # strategy: + # matrix: + # version: + # # https://community.chocolatey.org/packages/pelles-c#versionhistory + # - "12.0.2" + # - "11.0.2" + # - "10.0.6" + # - "9.00.0.0" + # # - "8.00.0.0" ## Installation times out. + # steps: + # - uses: actions/checkout@v4 + # - name: Install Pelles-C + # uses: crazy-max/ghaction-chocolatey@v3 + # with: + # args: install pelles-c --version "${{ matrix.version }}" --no-progress + # - name: Compile + # env: + # CC: 'C:\Program Files\PellesC\bin\pocc.exe' + # LD: 'C:\Program Files\PellesC\bin\polink.exe' + # CFLAGS: '/IC:\Progra~1\PellesC\Include' + # LDFLAGS: '/LIBPATH:C:\Progra~1\PellesC\lib /LIBPATH:C:\Progra~1\PellesC\Lib\Win64' + # working-directory: test + # run: make -f Makefile.pelles + + # tcc: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Install Tiny C Compiler + # run: | + # sudo apt-get install -y tcc + # - name: Compile + # env: + # CC: tcc + # working-directory: test + # run: make + + # ti: + # runs-on: ubuntu-latest + # strategy: + # matrix: + # include: + # - tool: ARM + # version: 20.2.7.LTS + # compiler: armcl + # - tool: MSP + # version: 21.6.1.LTS + # compiler: cl430 + # - tool: C2000 + # version: 22.6.1.LTS + # compiler: cl2000 + # - tool: C6000 + # version: 8.3.13 + # compiler: cl6x + # - tool: C7000 + # version: 4.1.0.LTS + # compiler: cl7x + # - tool: PRU + # version: 2.3.3 + # compiler: clpru + # steps: + # - uses: actions/checkout@v4 + # - name: Install Compiler + # run: | + # curl -s -o installer.bin "$(curl -s "https://www.ti.com/tool/download/${{ matrix.tool }}-CGT/${{ matrix.version }}" | grep -oP 'https://[a-zA-Z0-9\._\-/]+\.bin')" + # chmod u+x installer.bin + # ./installer.bin --mode unattended --unattendedmodeui none --prefix ti-compiler + # mv ti-compiler/* ti-compiler/compiler + # - name: Compile + # env: + # CC: ../ti-compiler/compiler/bin/${{ matrix.compiler }} + # working-directory: test + # run: make + + # xlc: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: uraimo/run-on-arch-action@v2 + # name: Run commands + # id: runcmd + # with: + # arch: ppc64le + # distro: ubuntu22.04 + # install: | + # apt-get update + # apt-get install -y curl gnupg make libncurses5 + # curl -s https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg | apt-key add - + # echo "deb https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ trusty main" | tee /etc/apt/sources.list.d/ibm-xl-compiler-eval.list + # apt-get update + # apt-get install -y xlc.16.1.1 + # /opt/ibm/xlC/16.1.1/bin/xlc_configure <<< 1 + # env: | + # CC: xlc + # CXX: xlc++ + # run: | + # cd test + # make diff --git a/test/Makefile b/test/Makefile index f51085b..538c7f9 100644 --- a/test/Makefile +++ b/test/Makefile @@ -213,12 +213,12 @@ Makefile.dmc: Makefile Makefile.msvc: Makefile @$(ECHO) -e "# Generated by Makefile. Do not edit.\r" > $@ - @$(ECHO) -e "CC = cl\r" >> $@ - @$(ECHO) -e "CXX = \x24(CC)\r" >> $@ + @$(ECHO) -e "CC ?= cl.exe\r" >> $@ + @$(ECHO) -e "CXX ?= cl.exe\r" >> $@ @$(ECHO) -e "\r" >> $@ - @$(ECHO) -e "CFLAGS = /nologo /Wall /wd4464 /wd4514\r" >> $@ - @$(ECHO) -e "CXXFLAGS = \x24(CFLAGS)\r" >> $@ + @$(ECHO) -e "CFLAGS ?= /nologo /Wall /wd4464 /wd4514\r" >> $@ + @$(ECHO) -e "CXXFLAGS ?= \x24(CFLAGS)\r" >> $@ @$(ECHO) -e "\r" >> $@ @$(ECHO) -e "TESTS = \x5c\r" >> $@ @@ -236,7 +236,7 @@ Makefile.msvc: Makefile @$(ECHO) -e "all: \x24(TESTS)\r\n\r" >> $@ @$(ECHO) -e "clean:\r\n\tdel /Q \x24(CLEANFILES)\r\n\r" >> $@ - @$(foreach file,$(TESTS),$(ECHO) -e "$(file:=.exe): $(file:=.c)\r\n\t\x24(CC) \x24(CFLAGS) /Fe\x24(@) \x24(?)\r\n$(file:=.cpp): $(file:=.c)\r\n\tcopy /Y \x24(?) \x24(@) >NUL\r\n$(file:=-cpp.exe): $(file:=.cpp)\r\n\t\x24(CXX) \x24(CXXFLAGS) /Fe\x24(@) \x24(?)\r\n\r" >> $@;) + @$(foreach file,$(TESTS),$(ECHO) -e "$(file:=.exe): $(file:=.c)\r\n\t\x24(CC) \x24(CFLAGS) /Fe\x24(@) \x24(?)\r\n$(file:=.cpp): $(file:=.c)\r\n\tCopy-Item \x24(?) -Force -Destination \x24(@)\r\n$(file:=-cpp.exe): $(file:=.cpp)\r\n\t\x24(CXX) \x24(CXXFLAGS) /Fe\x24(@) \x24(?)\r\n\r" >> $@;) Makefile.icl: Makefile @$(ECHO) -e "# Generated by Makefile. Do not edit.\r" > $@ diff --git a/test/Makefile.msvc b/test/Makefile.msvc index aff5b17..4a5739b 100644 --- a/test/Makefile.msvc +++ b/test/Makefile.msvc @@ -1,9 +1,9 @@ # Generated by Makefile. Do not edit. -CC = cl -CXX = $(CC) +CC ?= cl.exe +CXX ?= cl.exe -CFLAGS = /nologo /Wall /wd4464 /wd4514 -CXXFLAGS = $(CFLAGS) +CFLAGS ?= /nologo /Wall /wd4464 /wd4514 +CXXFLAGS ?= $(CFLAGS) TESTS = \ alloc-size.exe alloc-size-cpp.exe \ @@ -130,252 +130,252 @@ clean: alloc-size.exe: alloc-size.c $(CC) $(CFLAGS) /Fe$(@) $(?) alloc-size.cpp: alloc-size.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) alloc-size-cpp.exe: alloc-size.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) array-param.exe: array-param.c $(CC) $(CFLAGS) /Fe$(@) $(?) array-param.cpp: array-param.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) array-param-cpp.exe: array-param.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) assume.exe: assume.c $(CC) $(CFLAGS) /Fe$(@) $(?) assume.cpp: assume.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) assume-cpp.exe: assume.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) cast.exe: cast.c $(CC) $(CFLAGS) /Fe$(@) $(?) cast.cpp: cast.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) cast-cpp.exe: cast.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) concat.exe: concat.c $(CC) $(CFLAGS) /Fe$(@) $(?) concat.cpp: concat.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) concat-cpp.exe: concat.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) const.exe: const.c $(CC) $(CFLAGS) /Fe$(@) $(?) const.cpp: const.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) const-cpp.exe: const.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) constant.exe: constant.c $(CC) $(CFLAGS) /Fe$(@) $(?) constant.cpp: constant.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) constant-cpp.exe: constant.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) deprecated.exe: deprecated.c $(CC) $(CFLAGS) /Fe$(@) $(?) deprecated.cpp: deprecated.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) deprecated-cpp.exe: deprecated.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) empty-bases.exe: empty-bases.c $(CC) $(CFLAGS) /Fe$(@) $(?) empty-bases.cpp: empty-bases.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) empty-bases-cpp.exe: empty-bases.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) fallthrough.exe: fallthrough.c $(CC) $(CFLAGS) /Fe$(@) $(?) fallthrough.cpp: fallthrough.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) fallthrough-cpp.exe: fallthrough.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) flags.exe: flags.c $(CC) $(CFLAGS) /Fe$(@) $(?) flags.cpp: flags.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) flags-cpp.exe: flags.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) inline.exe: inline.c $(CC) $(CFLAGS) /Fe$(@) $(?) inline.cpp: inline.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) inline-cpp.exe: inline.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) likely.exe: likely.c $(CC) $(CFLAGS) /Fe$(@) $(?) likely.cpp: likely.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) likely-cpp.exe: likely.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) malloc.exe: malloc.c $(CC) $(CFLAGS) /Fe$(@) $(?) malloc.cpp: malloc.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) malloc-cpp.exe: malloc.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) message.exe: message.c $(CC) $(CFLAGS) /Fe$(@) $(?) message.cpp: message.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) message-cpp.exe: message.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) noinline.exe: noinline.c $(CC) $(CFLAGS) /Fe$(@) $(?) noinline.cpp: noinline.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) noinline-cpp.exe: noinline.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) no-escape.exe: no-escape.c $(CC) $(CFLAGS) /Fe$(@) $(?) no-escape.cpp: no-escape.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) no-escape-cpp.exe: no-escape.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) no-return.exe: no-return.c $(CC) $(CFLAGS) /Fe$(@) $(?) no-return.cpp: no-return.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) no-return-cpp.exe: no-return.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) non-null.exe: non-null.c $(CC) $(CFLAGS) /Fe$(@) $(?) non-null.cpp: non-null.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) non-null-cpp.exe: non-null.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) predict.exe: predict.c $(CC) $(CFLAGS) /Fe$(@) $(?) predict.cpp: predict.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) predict-cpp.exe: predict.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) printf-format.exe: printf-format.c $(CC) $(CFLAGS) /Fe$(@) $(?) printf-format.cpp: printf-format.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) printf-format-cpp.exe: printf-format.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) pure.exe: pure.c $(CC) $(CFLAGS) /Fe$(@) $(?) pure.cpp: pure.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) pure-cpp.exe: pure.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) require.exe: require.c $(CC) $(CFLAGS) /Fe$(@) $(?) require.cpp: require.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) require-cpp.exe: require.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) restrict.exe: restrict.c $(CC) $(CFLAGS) /Fe$(@) $(?) restrict.cpp: restrict.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) restrict-cpp.exe: restrict.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) returns-non-null.exe: returns-non-null.c $(CC) $(CFLAGS) /Fe$(@) $(?) returns-non-null.cpp: returns-non-null.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) returns-non-null-cpp.exe: returns-non-null.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) sentinel.exe: sentinel.c $(CC) $(CFLAGS) /Fe$(@) $(?) sentinel.cpp: sentinel.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) sentinel-cpp.exe: sentinel.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) static-assert.exe: static-assert.c $(CC) $(CFLAGS) /Fe$(@) $(?) static-assert.cpp: static-assert.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) static-assert-cpp.exe: static-assert.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) stringify.exe: stringify.c $(CC) $(CFLAGS) /Fe$(@) $(?) stringify.cpp: stringify.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) stringify-cpp.exe: stringify.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) unknown-cpp-attributes.exe: unknown-cpp-attributes.c $(CC) $(CFLAGS) /Fe$(@) $(?) unknown-cpp-attributes.cpp: unknown-cpp-attributes.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) unknown-cpp-attributes-cpp.exe: unknown-cpp-attributes.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) unknown-pragmas.exe: unknown-pragmas.c $(CC) $(CFLAGS) /Fe$(@) $(?) unknown-pragmas.cpp: unknown-pragmas.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) unknown-pragmas-cpp.exe: unknown-pragmas.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) unavailable.exe: unavailable.c $(CC) $(CFLAGS) /Fe$(@) $(?) unavailable.cpp: unavailable.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) unavailable-cpp.exe: unavailable.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) unreachable.exe: unreachable.c $(CC) $(CFLAGS) /Fe$(@) $(?) unreachable.cpp: unreachable.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) unreachable-cpp.exe: unreachable.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) unused-function.exe: unused-function.c $(CC) $(CFLAGS) /Fe$(@) $(?) unused-function.cpp: unused-function.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) unused-function-cpp.exe: unused-function.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) visibility.exe: visibility.c $(CC) $(CFLAGS) /Fe$(@) $(?) visibility.cpp: visibility.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) visibility-cpp.exe: visibility.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) warn.exe: warn.c $(CC) $(CFLAGS) /Fe$(@) $(?) warn.cpp: warn.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) warn-cpp.exe: warn.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?) warn-unused-result.exe: warn-unused-result.c $(CC) $(CFLAGS) /Fe$(@) $(?) warn-unused-result.cpp: warn-unused-result.c - copy /Y $(?) $(@) >NUL + Copy-Item $(?) -Force -Destination $(@) warn-unused-result-cpp.exe: warn-unused-result.cpp $(CXX) $(CXXFLAGS) /Fe$(@) $(?)