argumentcomputer / argumentcomputer/ix
Specialized Rust compilation profiles
- 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