Re-vendors wide 0.7 + safe_arch, restores the upstream simd-stable wiring in rapier3d/parry3d manifests and the cfg-simd source, and drops the added 'stripped build does not support SIMD' guards (upstream's simd-vs-enhanced-determinism exclusivity guard kept). Interleaved single-thread retest (min of 4): SIMD buys rapier 1.8-2.2x; box3d vs rapier-simd is now near parity — large_pyramid 1579 vs 1638 ms, joint_grid 957 vs 1008 ms (box3d ahead), many_pyramids 2389 vs 1970 ms (rapier ahead). box3d README grid updated with the honest three-column table; box3d keeps cross-arch determinism + zero deps at that speed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
98 lines
4.3 KiB
YAML
98 lines
4.3 KiB
YAML
name: Rust
|
|
|
|
on:
|
|
push: {}
|
|
pull_request: {}
|
|
|
|
jobs:
|
|
build_test:
|
|
runs-on: ${{ matrix.rust.os }}
|
|
strategy:
|
|
matrix:
|
|
rust:
|
|
# x86
|
|
- { target: i686-pc-windows-msvc, toolchain: "1.61", os: windows-latest }
|
|
- { target: i686-pc-windows-msvc, toolchain: stable, os: windows-latest }
|
|
- { target: i686-pc-windows-msvc, toolchain: beta, os: windows-latest }
|
|
- { target: i686-pc-windows-msvc, toolchain: nightly, os: windows-latest }
|
|
# x86_64
|
|
- { target: x86_64-unknown-linux-gnu, toolchain: "1.61", os: ubuntu-latest }
|
|
- { target: x86_64-unknown-linux-gnu, toolchain: stable, os: ubuntu-latest }
|
|
- { target: x86_64-unknown-linux-gnu, toolchain: beta, os: ubuntu-latest }
|
|
- { target: x86_64-unknown-linux-gnu, toolchain: nightly, os: ubuntu-latest }
|
|
# aarch64
|
|
- { target: aarch64-apple-darwin, toolchain: "1.61", os: macos-latest }
|
|
- { target: aarch64-apple-darwin, toolchain: stable, os: macos-latest }
|
|
- { target: aarch64-apple-darwin, toolchain: beta, os: macos-latest }
|
|
- { target: aarch64-apple-darwin, toolchain: nightly, os: macos-latest }
|
|
# wasm32
|
|
#- { target: wasm32-wasi, toolchain: "1.61", os: ubuntu-latest, wasmtime: v5.0.0 }
|
|
#- { target: wasm32-wasi, toolchain: stable, os: ubuntu-latest, wasmtime: v5.0.0 }
|
|
#- { target: wasm32-wasip1, toolchain: beta, os: ubuntu-latest, wasmtime: v5.0.0 }
|
|
#- { target: wasm32-wasip1, toolchain: nightly, os: ubuntu-latest, wasmtime: v5.0.0 }
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.rust.toolchain }}
|
|
target: ${{ matrix.rust.target }}
|
|
|
|
- name: Install wasmtime
|
|
if: matrix.rust.target == 'wasm32-wasi' || matrix.rust.target == 'wasm32-wasip1'
|
|
run: |
|
|
curl https://wasmtime.dev/install.sh -sSf | bash -s -- --version ${{ matrix.rust.wasmtime }}
|
|
echo "$HOME/.wasmtime/bin" >> $GITHUB_PATH
|
|
|
|
- name: Build the crate
|
|
run: cargo build --target ${{ matrix.rust.target }}
|
|
|
|
- name: Test with default CPU features + No Default Cargo Features
|
|
env:
|
|
CARGO_TARGET_WASM32_WASI_RUNNER: wasmtime run --wasm-features all --dir .
|
|
run: cargo test --target ${{ matrix.rust.target }} --no-default-features
|
|
- name: Test with default CPU features + All Cargo Features
|
|
env:
|
|
CARGO_TARGET_WASM32_WASI_RUNNER: wasmtime run --wasm-features all --dir .
|
|
run: cargo test --target ${{ matrix.rust.target }} --all-features
|
|
|
|
- name: Build the crate with SSE4.1 (the "native" of CI will be above this)
|
|
if: matrix.rust.os == 'ubuntu-latest' && matrix.rust.target == 'x86_64-unknown-linux-gnu'
|
|
run: RUSTFLAGS="-Ctarget-feature=+sse4.1" cargo build --target ${{ matrix.rust.target }}
|
|
|
|
- name: switch over to native cpu features
|
|
run: mv .cargo-ci .cargo
|
|
|
|
- name: Test with 'native' CPU features + No Default Cargo Features
|
|
run: cargo test --target ${{ matrix.rust.target }} --no-default-features
|
|
|
|
- name: Test with 'native' CPU features + All Cargo Features
|
|
run: cargo test --target ${{ matrix.rust.target }} --all-features
|
|
|
|
#cross_compile_aarch64:
|
|
# runs-on: ubuntu-latest
|
|
# strategy:
|
|
# matrix:
|
|
# rust: ["1.61", stable, nightly]
|
|
# features: ["", "std"]
|
|
# steps:
|
|
# - name: Installing emulator and linker
|
|
# run: |
|
|
# sudo apt-get update
|
|
# sudo apt-get install qemu binfmt-support qemu-user-static gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
|
|
# - name: Installing Rust toolchain
|
|
# uses: dtolnay/rust-toolchain@master
|
|
# with:
|
|
# toolchain: ${{ matrix.rust }}
|
|
# target: aarch64-unknown-linux-musl
|
|
# - uses: actions/checkout@v4
|
|
# - name: build
|
|
# run: >
|
|
# cargo build --verbose --no-default-features --target aarch64-unknown-linux-musl --features "$FEATURES"
|
|
# env:
|
|
# CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc
|
|
# - name: test
|
|
# run: >
|
|
# cargo test --tests --benches --no-default-features --target aarch64-unknown-linux-musl --features "$FEATURES"
|
|
# env:
|
|
# FEATURES: ${{ matrix.features }}
|
|
# CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc
|