Skip to content

Add 62 bit limb implementation, script and update benches #111

Add 62 bit limb implementation, script and update benches

Add 62 bit limb implementation, script and update benches #111

Workflow file for this run

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