fastpfor 0.9.0

FastPFOR lib with C++ Rust wrapper and pure Rust implementation
name: Ubuntu-CI

on: [push, pull_request]

jobs:
  ci:
    name: ubuntu-gcc (${{ matrix.simd_mode }})
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        simd_mode: [portable, native]

    env:
      CC: gcc
      CXX: g++

    steps:
      - uses: actions/checkout@v6
      - name: Build and test (Release, ${{ matrix.simd_mode }})
        run: |
          cmake -B build -D CMAKE_BUILD_TYPE=Release -D FASTPFOR_SIMD_MODE=${{ matrix.simd_mode }}
          cmake --build build
          ctest --test-dir build --output-on-failure
      - name: Build and test (Debug, ${{ matrix.simd_mode }})
        run: |
          rm -rf build
          cmake -B build -D CMAKE_BUILD_TYPE=Debug -D FASTPFOR_SIMD_MODE=${{ matrix.simd_mode }}
          cmake --build build
          ctest --test-dir build --output-on-failure


  ci-sanitizers:
    name: ubuntu-gcc (sanitizers)
    runs-on: ubuntu-latest

    env:
      CC: gcc
      CXX: g++

    steps:
      - uses: actions/checkout@v6
      - name: Build and test with sanitizers
        run: |
          cmake -B build -D FASTPFOR_SANITIZE=ON -D FASTPFOR_SIMD_MODE=portable
          cmake --build build
          ctest --test-dir build --output-on-failure