argumentcomputer / argumentcomputer/ix

Specialized Rust compilation profiles

Open
#256 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
93
Forks
3
Avg merge
21h 7m
Merged PRs (30d)
45

Description

We want to have two main compilation profiles for the `ix` Rust crate:
* A profile intended for CI runs
* A profile intended for release builds

Due to the compute-intense characteristics of some of our tests (from Aiur), the profile for CI can be more optimized for execution than the typical debug profile. Doing `opt-level = 3` is probably enough.

For maximally optimized release builds, this is what an AI system suggested to me:
```yaml
[profile.release]
opt-level = 3 # Maximum optimization (for runtime speed)
lto = "fat" # Full link-time optimization (best perf, slowest compile)
codegen-units = 1 # Forces single-codegen for better cross-function optimization
strip = true # Removes debug symbols to reduce binary size
panic = "abort" # Slightly smaller/faster code (optional)
```

Some of those might be overkill. When we have the Rust pipeline fully integrated (Lean->Ixon compilation + Aiur proving), then we'll be able to better evaluate this multi-dimensional metric and pick the config options that make sense for us.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the ix crate's Cargo profile configuration and reviewing how CI and release builds are currently invoked. Compare the proposed optimization settings against the existing build pipeline and Aiur test workload. Done means CI and release builds use clearly defined profiles with configuration choices validated by the available Rust pipeline.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.