Releases: IntelLabs/IDEAS
Releases · IntelLabs/IDEAS
Test generation agents
🎉 Major Updates
- Hybrid C-Rust building: as translation progresses with every symbol, the tool now attempts to build a hybrid C-Rust artifact, and execute all tests (if available) using it. If at least one test fails, the translation of the current symbol is considered a failure and re-attempted. This represents a significant upgrade compared to just using
cargo buildas a correctness signal. - Library test generation with the Berkeley KISS framework: we dispatch an autonomous
RelentlessAgentto analyze a C target, collect input/output pairs, and write assertion tests for it in the Rust C FFI. The output tests are lite-verified for correct file locations, and can be used for the hybrid C-Rust build testing. - Translating symbol cycles: our tool can now identify and jointly translate symbol cycles with length >1. Post-translation, C FFI wrappers are still generated per-symbol.
🎈 Minor Updates
- Migrated Rust workspace initialization and version control to the fully Python-based
ideas.init.workspacemodule. - Initial version of an
sqlite3-backed symbol cache for resumable translations. - Made
ideas.translateresumable by re-reading the translation cache. - Added environment variables
HYBRID_BUILDandSTATIC_TRANSLATIONSfor controlling translation strategy and disabling bleeding edge features.
Robust parsing and Dockerfile
🎉 Major Updates
- Significantly improved C AST and Cmake parsing to handle more corner cases
- Added a Dockerfile for reproducible, isolated execution of C-to-Rust translation, in anticipation of AI agents
- Used
cargo featuresto enable conditional compilation of wrappers in translation crate - Reworked
ideas.initto be modular (with two sub-modules), in anticipation of AI agents
🎈 Minor Updates
- Significant clean-up and deprecation of several modules:
ideas.cover,ideas.logging
2026.1.1
🎉 Major Updates
- Added Python
ideas.cmakemodule containing Python implementation of C build system instrumentation. - Re-introduced
ideas.ast_rustmodule for Rust abstract syntax tree (AST) parsing in Python. - Added AST-based feedback to
ideas.wrapperregarding deviations from the prescribed Rust template.
🎈 Minor Updates
- Upgraded
dspyto 3.1.2. - Added automated functionality for extracting and renaming all
staticglobal variables in C code, to avoid possible name conflict UB in complex projects. - Correct usage of
dspy.Codefield annotations by creating persistent classes. - Upgraded secondary dependencies.
- Attempting to build consolidated C code from
ideas.initand error out if unsuccessful.
2026.1
🎉 Major Updates
- Added
ideas.learn.translateGEPA-based automated prompt optimization module. By default, this performs teacher-student learning in two steps:- First, a translation dataset is generated using a powerful model, e.g.
gpt-5.1. - Then, a prompt is optimized for a weaker model, e.g.
gpt-5-miniusing only the valid (building) translations from the teacher and a powerful GEPA reflection model - The metric function includes feedback for building and test correctness.
- Launch the whole process in a single command using your own
OPENROUTER_API_KEYand with:
- First, a translation dataset is generated using a powerful model, e.g.
make -f LEARNING.mk learn/translate
- Added support for
git-based version control of the translation repo, in step with iterative AI translation and wrapper generation attempts.
🎈 Minor Updates
- Upgraded
clangtoolset toclang-21. - Upgraded to Python 3.14. Don't forget to update your local
uvinstallation! - Significant code clean-up.
2025.11.1
🎈 Minor Updates
- Resolve source priority paths in
ideas.init. - Changed default model temperature to
0.0. - Removed slow AST C parsing functionality.
- Add all past translated symbols to the current symbol in
ideas.translate_recurrent - Enable
unsafeRust compilation errors inideas.translate_recurrent - Clean-up
ideas.utils
🚧 Fixes
- Fix a bug related to
enumconstant not being captured as standalone symbols - Fix
ideas.wrapperprompt to correctly reference the final on-disk location
2025.11
🎉 Major Updates
ideas.initmodule for robust C project discovery (including linked libraries) and idiomatic use ofcargo workspacefor the translated Rust project. C artifacts are now translated to self-contained Rust crates in the same workspace.ideas.translate_recurrentmodule for symbol-by-symbol C-to-Rust translation using LLMs. The module is powerful enough to work across multi-artifact C projects and topologically sort symbols, assuming no name collisions or circular references exist.ideas.wrappermodule for LLM-based C FFI wrapper generation for Rust functions. The module usesdspy.ChainOfThoughtwith custom feedback andbindgensignatures derived from the original C function to improve C ABI compatibility of the translated Rust functions.
🎈 Minor Updates
- Expanded Rust AST parsing functionality and added an
ensure_no_mangleflag toideas.coverto deterministically guarantee that translated functions get exported with the correct#[unsafe(no_mangle)]attribute. - Resolve source priority paths in
ideas.init. - Changed default model temperature to
0.0. - Removed slow AST C parsing functionality.