Fix stack overflow when decoding deeply nested structures like arrays and maps #138
This file contains 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
name: CodSpeed benchmarks | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
workflow_dispatch: # allows CodSpeed to trigger backtest | |
permissions: | |
contents: read | |
jobs: | |
benchmarks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" # use the latest version of Python because it is faster | |
- name: Install python dependencies. | |
run: pip install -r pytests/requirements.txt | |
- name: Install rust. | |
id: rust-toolchain | |
uses: dtolnay/rust-toolchain@1.76.0 | |
with: | |
components: llvm-tools | |
- name: Cache rust. | |
uses: Swatinem/rust-cache@v2 | |
- name: Compile. | |
run: pip install -v -e . | |
env: | |
RUSTFLAGS: "-Cprofile-generate=${{ github.workspace }}/profdata" | |
- name: Gather PGO data. | |
run: pytest . --benchmark-enable | |
- name: Prepare merged PGO data. | |
run: rustup run 1.76.0 bash -c '$RUSTUP_HOME/toolchains/$RUSTUP_TOOLCHAIN/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -o ${{ github.workspace }}/merged.profdata ${{ github.workspace }}/profdata' | |
- name: Compile with profile. | |
run: pip install -v -e . | |
env: | |
RUSTFLAGS: "-Cprofile-use=${{ github.workspace }}/merged.profdata" | |
- name: Run benchmarks. | |
uses: CodSpeedHQ/action@v3 | |
with: | |
token: ${{ secrets.CODSPEED_TOKEN }} | |
run: pytest . --codspeed -n auto |