InfoQ Homepage Embedded Software Dev Content on InfoQ
-
C2Rust Aims to Enable C Transpilation to Rust
C2Rust is an open-source project that aims to make it possible to migrate C99-compliant code to Rust. Working on this relatively new tool has also allowed its creators to learn a few lessons about the way C code is written and to explore the current limits to Rust possibilities of replacing it at the ABI level.
-
Rust 1.45 Fixes Cast Unsoundness and Stabilizes Support for Web Framework Rocket
Rust 1.45 includes a fix for a long-standing float cast issue potentially causing undefined behaviour and stabilizes features used by popular Web framework Rocket.
-
TinyGo Aims to Bring Go to the Internet of Things
Google-sponsored TinyGo is a new LLVM-based Go compiler to make it possible to run Go programs on microcontrollers, including the Arduino Uno and the BBC micro.bit, as well as modern browsers using Web Assembly.
-
ZetZ is a Formally Verified Dialect of C
ZetZ, or ZZ for short, is a Rust-inspired C dialect that is able to formally verify your code by executing it symbolically at compile time in a virtual machine. InfoQ has spoken with ZZ creator and maintainer Avid Picciani.
-
Rust Moving Towards an IDE-Friendly Compiler with Rust Analyzer
Rust Analyzer is an experimental IDE/latency-oriented Rust compiler. This is an emerging endeavour within the Rust ecosystem, which is aimed at improving the IDE experience with Rust.
-
Rust Gets Zero-Cost Async/Await Support in Rust 1.39
After getting support for futures in version 1.36, Rust has finally stabilized async/.await in version 1.39. As Rust core team member Niko Matsakis explains, contrary to other languages, async/.await is a zero-cost abstraction in Rust.
-
Rust 1.36 Stabilizes Futures, Backports Non-Lexical Lifetimes, and More
Following its roadmap to Rust 2018, Rust 1.36's most awaited new feature is support for the Future trait, which is the first step towards bringing async/await to the language. Additionally, it backports non-lexical lifetimes (NLL) to improve the borrow checker, and introduces a new alloc crate to enable the creation of memory allocation-dependent libraries that do not require std.
-
Mozilla Announces WASI Initiative to Run Web Assembly on All Devices, Computers, Operating Systems
Mozilla recently announced a new standardization effort aiming at running the same WebAssembly code across all devices, machines and operating systems. The new standard, WebAssembly System Interface (WASI), defines a single conceptual operating system interface, which can be implemented by multiple, actual operating systems. Mozilla and Fastly are already shipping prototypal WASI implementations.
-
Rust 1.32 Improves Tracing, Modules, Macros, and More
Rust 1.32 includes a number of new language features meant to improve developer experience when tracing the execution of programs for debugging purposes. Additionally, it now uses the system allocator by default, completes work on the module system to make it easier to use, and more.
-
C2x Will Be the Next ISO Standard for the C Language
Expected to be finalized in 2022, the C2x standard has started its evolution, driven by the C committee. InfoQ had the chance to speak with Jens Gustedt, who is working within the committee to advance the new standard and author of the upcoming book Modern C.
-
Rust 1.30 Brings More Metaprogramming Support and Improved Modules
The latest release of Rust, version 1.30, extends procedural macros by allowing them to define new attributes and function-like macros. Additionally, it streamlines Rust module system by making it more consistent and straightforward.
-
Rust Has Got Existential Types
Version 1.26 of Rust adds support for existential types, improved match bindings, slice patterns, and some useful syntactic sugar. The Rust compiler has also become faster and supports 128 bit integers.
-
Rust 1.25 Moves to LLVM 6
Rust 1.25 upgrades its LLVM to LLVM 6, adds support for nested import groups in use statements, custom struct alignment, and library stabilizations. This latest Rust release does not include, though, much awaited features such as impl Trait, stable SIMD support, and 128-bit integers.
-
Rust 2018 Will Focus on Productivity, WebAssembly, Embedded, and More
The Rust core team has announced the official roadmap for Rust in 2018, which brings productivity to the fore and targets four main domains: Web services, WebAssembly, CLI apps, and embedded devices.
-
Rust 1.6 Brings Stable Support for OS and Embedded Development
In keeping with their release model, the Rust development team has announced the first Rust release of 2016, 1.6. The biggest new feature that Rust 1.6 brings is libcore stabilization, which aims to make it possible to use stable Rust for OS and embedded software development.