Skip to content

Commit 24c3c36

Browse files
Merge branch 'feat/ed25519' into feat/edwards-curve-new-execution
2 parents be1e5ec + b371303 commit 24c3c36

File tree

256 files changed

+4539
-3784
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

256 files changed

+4539
-3784
lines changed

.github/workflows/benchmarks-execute.yml

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ concurrency:
2525

2626
env:
2727
CARGO_TERM_COLOR: always
28+
S3_FIXTURES_PATH: s3://openvm-public-data-sandbox-us-east-1/benchmark/fixtures
29+
JEMALLOC_SYS_WITH_MALLOC_CONF: "retain:true,background_thread:true,metadata_thp:always,thp:always,dirty_decay_ms:-1,muzzy_decay_ms:-1,abort_conf:true"
2830

2931
jobs:
3032
codspeed-walltime-benchmarks:
@@ -46,6 +48,16 @@ jobs:
4648
with:
4749
cache-on-failure: true
4850

51+
- name: Install architecture specific tools
52+
run: |
53+
source ci/scripts/utils.sh
54+
install_s5cmd
55+
56+
- name: Pull fixtures from S3
57+
run: |
58+
mkdir -p benchmarks/fixtures
59+
s5cmd cp "${{ env.S3_FIXTURES_PATH }}/*" benchmarks/fixtures/ || echo "No fixtures found in S3"
60+
4961
- name: Install cargo-binstall
5062
uses: cargo-bins/cargo-binstall@main
5163
- name: Install codspeed
@@ -60,8 +72,6 @@ jobs:
6072
working-directory: benchmarks/execute
6173
run: cargo codspeed run
6274
token: ${{ secrets.CODSPEED_TOKEN }}
63-
env:
64-
CODSPEED_RUNNER_MODE: walltime
6575

6676
codspeed-instrumentation-benchmarks:
6777
name: Run codspeed instrumentation benchmarks
@@ -83,6 +93,16 @@ jobs:
8393
with:
8494
cache-on-failure: true
8595

96+
- name: Install architecture specific tools
97+
run: |
98+
source ci/scripts/utils.sh
99+
install_s5cmd
100+
101+
- name: Pull fixtures from S3
102+
run: |
103+
mkdir -p benchmarks/fixtures
104+
s5cmd cp "${{ env.S3_FIXTURES_PATH }}/*" benchmarks/fixtures/ || echo "No fixtures found in S3"
105+
86106
- name: Install cargo-binstall
87107
uses: cargo-bins/cargo-binstall@main
88108
- name: Install codspeed
@@ -97,5 +117,3 @@ jobs:
97117
working-directory: benchmarks/execute
98118
run: cargo codspeed run
99119
token: ${{ secrets.CODSPEED_TOKEN }}
100-
env:
101-
CODSPEED_RUNNER_MODE: instrumentation
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: "Upload benchmark fixtures"
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
CARGO_TERM_COLOR: always
8+
S3_FIXTURES_PATH: s3://openvm-public-data-sandbox-us-east-1/benchmark/fixtures
9+
10+
jobs:
11+
generate-fixtures:
12+
name: Generate and upload benchmark fixtures
13+
runs-on:
14+
- runs-on=${{ github.run_id }}
15+
- runner=64cpu-linux-arm64
16+
- family=m7
17+
- extras=s3-cache
18+
19+
steps:
20+
- uses: runs-on/action@v1
21+
- uses: actions/checkout@v4
22+
- uses: dtolnay/rust-toolchain@stable
23+
- uses: Swatinem/rust-cache@v2
24+
with:
25+
cache-on-failure: true
26+
27+
- name: Install architecture specific tools
28+
run: |
29+
source ci/scripts/utils.sh
30+
install_s5cmd
31+
32+
- name: Generate fixtures
33+
run: cargo r -r --bin generate-fixtures --features generate-fixtures
34+
35+
- name: Upload fixtures to S3
36+
run: |
37+
if [ -d "benchmarks/fixtures" ]; then
38+
s5cmd cp benchmarks/fixtures/ ${{ env.S3_FIXTURES_PATH }}/
39+
else
40+
echo "No fixtures directory found"
41+
exit 1
42+
fi

.github/workflows/lints.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
# list of all unique features across workspace generated using:
4747
# cargo metadata --format-version=1 --no-deps | jq -r '.packages[].features | to_entries[] | .key' | sort -u | tr '\n' ' ' && echo ""
4848
# (exclude mimalloc since it conflicts with jemalloc)
49-
cargo clippy --all-targets --all --tests --features "aggregation bls12_381 bn254 build-binaries default entrypoint evm-prove evm-verify export-intrinsics export-libm function-span getrandom-unsupported halo2-compiler halo2curves heap-embedded-alloc jemalloc jemalloc-prof metrics nightly-features panic-handler parallel perf-metrics rust-runtime static-verifier std test-utils" -- -D warnings
49+
cargo clippy --all-targets --all --tests --features "aggregation bls12_381 bn254 build-elfs default entrypoint evm-prove evm-verify export-intrinsics export-libm function-span getrandom-unsupported halo2-compiler halo2curves heap-embedded-alloc jemalloc jemalloc-prof metrics nightly-features panic-handler parallel perf-metrics rust-runtime static-verifier std test-utils" -- -D warnings
5050
cargo clippy --all-targets --all --tests --no-default-features --features "mimalloc" -- -D warnings
5151
5252
- name: Run fmt, clippy for guest

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,6 @@ crates/cli/openvm/
4040

4141
# samply profile
4242
profile.json.gz
43+
44+
# test fixtures
45+
benchmarks/fixtures

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ and this project follows a versioning principles documented in [VERSIONING.md](.
1414
- (Toolchain) Removed `step` from `Program` struct because `DEFAULT_PC_STEP = 4` is always used.
1515
- (Config) The `clk_max_bits` field in `MemoryConfig` has been renamed to `timestamp_max_bits`.
1616
- (Prover) Guest memory is stored on host with address space-specified memory layouts. In particular address space `1` through `3` are now represented in bytes instead of field elements.
17+
- (ISA) Field arithmetic instructions now restrict address spaces `e, f` to be either `0` or `4`, instead of allowing any address space.
18+
- (ISA) RV32IM load instructions are now restricted to address space `2` only, instead of allowing address spaces `0`, `1`, or `2`.
19+
- (ISA) The maximum valid pointer value in address space `1` (register address space) is now `127`, corresponding to 32 registers with 4 byte limbs each.
20+
- (ISA) Memory accesses now have configurable minimum block size requirements per address space. Address spaces `1`, `2`, and `3` require minimum block size of 4. Native address space (`4`) allows minimum block size of 1. Address spaces beyond `4` default to minimum block size of 1 but are configurable.
1721

1822
## v1.3.0 (2025-07-15)
1923

0 commit comments

Comments
 (0)