Add 62 bit limb implementation, script and update benches #111
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| name: Gridiron | |
| jobs: | |
| check: | |
| name: Check | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| rust_version: | |
| - stable | |
| - beta | |
| - 1.88.0 # MSRV | |
| limb_size: | |
| - limb31 | |
| - limb62 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.rust_version }} | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| command: check | |
| args: --no-default-features --features ${{ matrix.limb_size }} | |
| build_linux: | |
| name: (Linux) Builds | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| target: | |
| - aarch64-linux-android # Android x64 | |
| - x86_64-unknown-linux-musl # Alpine Linux x86_64 | |
| - wasm32-unknown-unknown | |
| limb_size: | |
| - limb31 | |
| - limb62 | |
| exclude: | |
| # WASM requires 31-bit limbs (no 64-bit integers in WASM32) | |
| - target: wasm32-unknown-unknown | |
| limb_size: limb62 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| targets: ${{ matrix.target }} | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| use-cross: true | |
| command: build | |
| args: --release --target=${{ matrix.target }} --no-default-features --features ${{ matrix.limb_size }} | |
| build_macos: | |
| name: (OS X) Builds | |
| runs-on: macos-14 | |
| strategy: | |
| matrix: | |
| target: | |
| - aarch64-apple-ios | |
| - x86_64-apple-darwin # 64-bit OSX | |
| limb_size: | |
| - limb31 | |
| - limb62 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| targets: ${{ matrix.target }} | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| use-cross: true | |
| command: build | |
| args: --release --target=${{ matrix.target }} --no-default-features --features ${{ matrix.limb_size }} | |
| build_win: | |
| name: (Windows) Builds | |
| runs-on: windows-2025 | |
| strategy: | |
| matrix: | |
| target: | |
| - x86_64-pc-windows-msvc | |
| limb_size: | |
| - limb31 | |
| - limb62 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| targets: ${{ matrix.target }} | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --release --target=${{ matrix.target }} --no-default-features --features ${{ matrix.limb_size }} | |
| test: | |
| name: Test Suite | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| rust_version: | |
| - stable | |
| - 1.88.0 | |
| limb_size: | |
| - limb31 | |
| - limb62 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.rust_version }} | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --no-default-features --features ${{ matrix.limb_size }} | |
| bench_build: | |
| name: Bench Compile | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| rust_version: | |
| - stable | |
| limb_size: | |
| - limb31 | |
| - limb62 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.rust_version }} | |
| - run: cargo bench --no-run --no-default-features --features ${{ matrix.limb_size }} | |
| fmt: | |
| name: Rustfmt | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| rust_version: | |
| - nightly | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: IronCoreLabs/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.rust_version }} | |
| components: rustfmt | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| command: fmt | |
| args: --all -- --check | |
| - name: Cancel workflow | |
| if: failure() | |
| uses: andymckay/cancel-action@0.5 |