Skip to content

v0.16.0 - C2Rust builds with stable Rust

Compare
Choose a tag to compare
@rinon rinon released this 12 May 18:55
· 2826 commits to master since this release

C2Rust now uses the syn crate for Rust AST construction, which means we no longer depend on rustc compiler internals and can build with a stable Rust toolchain! Huge thanks to @fw-immunant for all the hard work involved in decoupling the transpiler from Rust internals.

In the process, we've added support for transpiling C inline assembly to stable Rust asm! blocks. C2Rust also now supports building against newer LLVM versions (up to version 13). Unfortunately we have not yet re-implemented translation of C comments into Rust using the new AST framework, but expect that to be fixed soon!

As part of moving away from compiler internals, we have deprecated the refactoring engine and cross-checks. Source code for the refactoring engine is still available in tree, but you may encounter issues trying to use it and we're not planning to put any substantial effort in that direction in the near future.

Other changes:

  • Fix packed unions: #347 (thanks @chrysn)
  • Preserve attributes on non-canonical declarations: #385
  • Include git commit info in --version: #394
  • Fix tinycbor build in recurive make: #396
  • Project was re-formatted with rustfmt
  • Updated most crate dependencies to their latest versions