Skip to content

[utils] fix

[utils] fix #324

Workflow file for this run

name: CI
on:
pull_request:
paths-ignore:
- "documents/**"
- "**.md"
push:
paths-ignore:
- "documents/**"
- "**.md"
workflow_dispatch:
jobs:
# ---------------------------------------------------------------------------
x86_64-linux-gnu-uwvm-default:
name: x86_64-linux-gnu (ubuntu-24.04) uwvm
runs-on: ubuntu-24.04 # noble
strategy:
matrix:
mode: ["debug"]
policies:
[
"build.sanitizer.address,build.sanitizer.leak,build.sanitizer.undefined",
]
cxx_flags: [
"", # SSE2
"-msse3", # SSE2 SSE3
"-mssse3", # SSE2 SSE3 SSSE3
"-msse4 -mbmi -mbmi2", # SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 BMI BMI2
"-mavx -mbmi -mbmi2 -mprfchw", # SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX BMI BMI2
"-mavx2 -mbmi -mbmi2 -mprfchw", # SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 BMI BMI2
"-mapxf -mbmi -mbmi2 -mprfchw",
# "-mavx512bw -mbmi -mbmi2 -mprfchw", # SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512BW BMI BMI2
# "-mavx512vbmi -mavx512vbmi2 -mbmi -mbmi2 -mprfchw" # SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512BW AVX512VBMI AVX512VBMI2 BMI BMI2
]
steps:
- uses: actions/checkout@v4
- name: Setup
run: |
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/llvm.asc
sudo add-apt-repository ppa:xmake-io/xmake
sudo add-apt-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble main"
sudo apt-get install clang-22 clang-tools-22 lld-22 xmake
- name: Configure
run: xmake f -m debug --use-llvm=y --sdk=/usr/lib/llvm-22 -m ${{ matrix.mode }} --policies=${{ matrix.policies }} --march=none --cxflags="${{ matrix.cxx_flags }}"
- name: Build
run: xmake b -rv
- name: Check UWVM version
run: xmake run uwvm --version
- name: Unit tests
run: xmake test -v
# ---------------------------------------------------------------------------
x86_64-linux-gnu-uwvm-cxxmodule:
if: ${{ !always() }}
name: x86_64-linux-gnu (ubuntu-24.04) uwvm (cxx-module build)
runs-on: ubuntu-24.04 # noble
strategy:
matrix:
mode: ["debug"]
policies:
[
"build.sanitizer.address,build.sanitizer.leak,build.sanitizer.undefined",
]
steps:
- uses: actions/checkout@v4
- name: Setup
run: |
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/llvm.asc
sudo add-apt-repository ppa:xmake-io/xmake
sudo add-apt-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble main"
sudo apt-get install clang-22 clang-tools-22 lld-22 xmake
- name: Configure
run: xmake f -m debug --use-llvm=y --sdk=/usr/lib/llvm-22 -m ${{ matrix.mode }} --policies=${{ matrix.policies }} --use-cxx-module=y
- name: Build
run: xmake b -rv
- name: Check UWVM version
run: xmake run uwvm --version
# ---------------------------------------------------------------------------
x86_64-windows-gnu:
if: ${{ !always() }} # Remove it once update to LLVM22
name: x86_64-windows-gnu (MINGW ${{ matrix.env.name }})
runs-on: windows-latest
strategy:
matrix:
env:
- name: "CLANG64"
prefix: mingw-w64-clang-x86_64
- name: "CLANGARM64"
prefix: mingw-w64-clang-aarch64
mode: ["debug"]
policies: ["build.sanitizer.address"]
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.env.name }}
update: true
install: |
${{ matrix.env.prefix }}-cc
${{ matrix.env.prefix }}-xmake
- name: Configure
run: xmake f -p mingw --use-llvm=y -m ${{ matrix.mode }} --policies=${{ matrix.policies }}
- name: Build
run: xmake b -rv
- name: Check UWVM version
run: xmake run uwvm --version
- name: Unit tests
run: xmake test -v
# ---------------------------------------------------------------------------
x86_64-freebsd14:
name: x86_64-freebsd14
runs-on: ubuntu-latest
strategy:
matrix:
mode: ["debug"]
policies: ["build.sanitizer.address"]
steps:
- uses: actions/checkout@v4
- uses: cross-platform-actions/action@v0.27.0
with:
operating_system: freebsd
version: "14.2"
run: |
sudo pkg install -y llvm-devel xmake-io
xmake f -m debug --use-llvm=y -m ${{ matrix.mode }} --policies=${{ matrix.policies }}
xmake b -rv
xmake run uwvm --version
xmake test -v