Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
80b7252
Bump blockifier, change deps, make compile
cptartur Aug 22, 2025
d78be5e
Execute simple_package on native
cptartur Aug 22, 2025
e78b97f
Add simple test with cheat
cptartur Aug 22, 2025
6555a15
Implement chetable syscall handler for native, implement cheating `ge…
cptartur Aug 22, 2025
900d3b9
Formatting
cptartur Aug 25, 2025
1d5dbf9
Add test for nested cheated calls
cptartur Aug 25, 2025
aa1ce72
TODO initial support for `call_contract`
cptartur Aug 25, 2025
e95edf1
Add tests for library call
cptartur Aug 25, 2025
90f62dc
Initial support for `library_call`
cptartur Aug 25, 2025
251569b
Add tests for deploy_syscall
cptartur Aug 25, 2025
ec42c35
Support deploy syscall
cptartur Aug 25, 2025
487de33
Add test for get_block_hash syscall
cptartur Aug 25, 2025
c05406e
Support get_block_hash syscall
cptartur Aug 25, 2025
1aebb1a
Move code to dedicated modules
cptartur Aug 25, 2025
91151e0
Some lints
cptartur Aug 25, 2025
abe1172
Add error handling
cptartur Aug 25, 2025
43f5a76
Support events and l1 messages spys
cptartur Aug 26, 2025
ad512b6
Only run cairo native is tracked resources is sierra gas
cptartur Aug 26, 2025
ee9d9d9
Add empty node to trace on deploy without constructor
cptartur Aug 26, 2025
71ba13f
Return resources for native execution
cptartur Aug 26, 2025
bcafe6e
Do not run pre_execute_syscall for get_execution_info_v2
cptartur Aug 26, 2025
eb4a668
Restore message
cptartur Aug 26, 2025
cef970a
Bump blockifier, change deps, make compile (#3713)
ksew1 Sep 3, 2025
c33bb75
Add sierra validation for native (#3714)
ksew1 Sep 8, 2025
c5a059b
Fix ci (#3717)
ksew1 Sep 9, 2025
302e44c
Use different blockifier fork branch
cptartur Sep 12, 2025
0d0bb70
Bundle LLVM (#3698)
cptartur Sep 17, 2025
796e9a9
Run tests on native (#3730)
ksew1 Sep 17, 2025
0c4c497
Extend NATIVE_INSTALLATION.md
cptartur Sep 17, 2025
ca256b0
Update lock
cptartur Sep 17, 2025
d6a64d6
Update smoke test target
cptartur Sep 18, 2025
3e78481
Disable smoke tests on macos
cptartur Sep 18, 2025
d3e1c8c
Add more native tracing
cptartur Sep 22, 2025
bda4043
Keep cairo native behind a feature flag (#3745)
cptartur Oct 2, 2025
7ba0557
Merge branch 'master' into 2714-cairo-native
cptartur Oct 6, 2025
fcf37c9
Fix running native
cptartur Oct 7, 2025
04db38f
Remove dead code
cptartur Oct 7, 2025
cff995d
Simplify features
cptartur Oct 7, 2025
dcdd26a
Update docs
cptartur Oct 7, 2025
0416360
Fix test
cptartur Oct 7, 2025
81c2807
Run integration tests on native on CI
cptartur Oct 7, 2025
1f5c4a7
Merge branch 'master' into 2714-cairo-native
cptartur Oct 7, 2025
335823f
Format
cptartur Oct 7, 2025
0f326e4
Keep the native build as a separate workflow
cptartur Oct 7, 2025
18f492c
Newline
cptartur Oct 7, 2025
d398b08
Link todos
cptartur Oct 7, 2025
ca318c3
Link todo to _build-binaries-native.yml
cptartur Oct 7, 2025
365a752
Merge branch 'master' into 2714-cairo-native
cptartur Oct 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/actions/setup-tools/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Setup Tools
description: Installs Rust and optionally Scarb, Universal Sierra Compiler and LLVM 19 toolchain

inputs:
install-llvm:
description: 'Whether to install the LLVM 19 toolchain'
required: false
default: 'false'
setup-scarb:
description: 'Whether to setup scarb'
required: false
default: 'true'
setup-usc:
description: 'Whether to setup universal-sierra-compiler'
required: false
default: 'true'

runs:
using: "composite"
steps:
- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6

- uses: software-mansion/setup-scarb@v1
if: ${{ inputs.setup-scarb == 'true' }}

- uses: software-mansion/setup-universal-sierra-compiler@v1
if: ${{ inputs.setup-usc == 'true' }}

- name: Add LLVM APT repository
uses: myci-actions/add-deb-repo@11
if: ${{ inputs.install-llvm == 'true' }}
with:
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
repo-name: llvm-repo
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key

- name: Install LLVM
shell: bash
if: ${{ inputs.install-llvm == 'true' }}
run: |
sudo apt-get update
sudo apt-get install -y \
llvm-19 llvm-19-dev llvm-19-runtime \
clang-19 clang-tools-19 \
lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools

- name: Set environment variables
if: ${{ inputs.install-llvm == 'true' }}
shell: bash
run: |
echo "MLIR_SYS_190_PREFIX=/usr/lib/llvm-19/" >> $GITHUB_ENV
echo "LLVM_SYS_191_PREFIX=/usr/lib/llvm-19/" >> $GITHUB_ENV
echo "TABLEGEN_190_PREFIX=/usr/lib/llvm-19/" >> $GITHUB_ENV
111 changes: 111 additions & 0 deletions .github/workflows/_build-binaries-native.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# TODO(#3790) this is currently unused, integrate into nightly release flow
name: Build Native binaries

on:
workflow_call:
inputs:
# Specify the version in MAJOR.MINOR.PATCH format, without a leading 'v'
version:
required: true
type: string
ref:
required: false
type: string

jobs:
build-binaries:
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}

env:
# Cross-compiled targets will override this to `cross`.
CARGO: cargo

strategy:
matrix:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
system: linux

- target: x86_64-unknown-linux-musl
os: ubuntu-latest
system: linux

- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
system: linux

- target: aarch64-unknown-linux-musl
os: ubuntu-latest
system: linux

- target: x86_64-apple-darwin
os: macos-14-large
system: macos

- target: aarch64-apple-darwin
os: macos-latest
system: macos

steps:
- name: Checkout with ref
if: inputs.ref != ''
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}

- name: Checkout default
if: inputs.ref == ''
uses: actions/checkout@v5

- name: Setup rust
run: |
rustup target add ${{ matrix.target }}

- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6

- name: Setup LLVM on MacOS
if: matrix.system == 'macos'
run: |
brew install llvm@19
brew reinstall zstd
echo "MLIR_SYS_190_PREFIX=$(brew --prefix llvm@19)" >> $GITHUB_ENV
echo "LLVM_SYS_191_PREFIX=$(brew --prefix llvm@19)" >> $GITHUB_ENV
echo "TABLEGEN_190_PREFIX=$(brew --prefix llvm@19)" >> $GITHUB_ENV
echo "LIBRARY_PATH=/opt/homebrew/lib" >> $GITHUB_ENV

- name: Install cross
if: matrix.system == 'linux'
run: |
cargo install cross --git https://github.com/cross-rs/cross

- name: Build MacOS
if: matrix.system == 'macos'
run: |
export MLIR_SYS_190_PREFIX=${{ env.MLIR_SYS_190_PREFIX }}
export LLVM_SYS_191_PREFIX=${{ env.LLVM_SYS_191_PREFIX }}
export TABLEGEN_190_PREFIX=${{ env.TABLEGEN_190_PREFIX }}
export LIBRARY_PATH=${{ env.LIBRARY_PATH }}
cargo build --release --locked --target ${{ matrix.target }}

- name: Build Linux
if: matrix.system == 'linux'
run: |
# Use cross to link oldest GLIBC possible.
cross build --release --locked --target ${{ matrix.target }}

- name: Package
shell: bash
run: |
set -euxo pipefail
PKG_FULL_NAME="starknet-foundry-v${{ inputs.version }}-${{ matrix.target }}"
echo "PKG_FULL_NAME=$PKG_FULL_NAME" >> $GITHUB_ENV

./scripts/package.sh "${{ matrix.target }}" "$PKG_FULL_NAME"

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.target }}
path: ${{ env.PKG_FULL_NAME }}.*
6 changes: 5 additions & 1 deletion .github/workflows/_test-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@ jobs:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest

- target: x86_64-apple-darwin
- target: aarch64-apple-darwin
os: macos-latest

- target: x86_64-apple-darwin
# Target macos-latest uses Mac with ARM, macos-14-large is still on Intel
os: macos-14-large

steps:
- uses: actions/checkout@v5
- uses: software-mansion/setup-scarb@v1
Expand Down
Loading
Loading