Releases: IntelLabs/IDEAS
Releases · IntelLabs/IDEAS
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.