InfoQ Homepage Embedded Software Dev Content on InfoQ
-
C++26 Draft Finalized with Static Reflection, Contracts, and Sender/Receiver Types
The next major release of C++ reached an important milestone earlier this month, when the ISO C++ committee froze the feature set that will go into C++26. Notable additions include compile-time reflection, contracts, asynchronous execution, and many others.
-
Learning from Embedded Software Development for the Space Shuttle and the Orion MPCV
Software development is much different today than it was at the beginning of the Space Shuttle era because of the tools that we have. But the art and practice of software engineering has not progressed that much since the early days of software development. Compilers are much better and faster, and debuggers are now integrated into development tools, making the task of error detection easier.
-
The Linux Kernel to Support Real-Time Scheduling out-of-the-Box
Linux 6.12 will officially include support for real-time processing in its mainline thanks to a PR that enables PREEMPT_RT on all supported architectures. While aimed at applications requiring deterministic time guarantees, like avionics, robotics, automotive, and communications, it could bring improvements to user experience on the desktop, too.
-
Safe C++ is a new Proposal to Make C++ Memory-Safe
The goal of the Safe C++ proposal is extending C++ by defining a superset of the language that can be used to write code with the strong safety guarantees similarly to code written in Rust. The key to its approach is introducing a new safe context where only a rigorously safe subset of C++ is allowed.
-
Google Launches Pigweed SDK for Embedded Development on Pi Picos and Other Microcontrollers
Recently launched by Google in developer preview, the Pigweed SDK aims to make it easier to develop, debug, test, and deploy embedded C++ applications. At the heart of the SDK lies Bazel, Google's own build system, which has been extended to better support workflows and requirements typical of embedded development.
-
Rust 1.80 Adds Support for Lazy Statics, Extends Ranges in Patterns, and More
Rust 1.80 stabilizes LazyCell and LazyLock, two new types that can be used to delay initialization of data until the first time they are accessed. It also brings support for exclusive ranges as well as a couple of related lint warnings. Additionally, it allows variadic functions without a named parameter for compatibility with C23, stabilizes many APIs, and more.
-
Swift 6 Introduces Embedded Swift for Low-level Programming
Swift 6 brings a new compilation mode aiming to address the specific constraints of embedded devices as well as kernel- and other low-level code. Embedded Swift is a full-featured subset of Swift covering most of the language, including value and reference types, closures, optionals, error handling, generics and more.
-
Rust 1.60 Released with LLVM-Native Code Coverage Along with Rust 2024 Roadmap
Rust 1.60 stabilizes source-based code coverage using LLVM native instrumentation, re-enables incremental compilation by default, and enforces Instant monotonicity guarantees. Additionally, the Rust team has formalized its roadmap for Rust evolution until 2024.
-
Rust 1.59 Supports Inline Assembly, Extends Destructuring, and More
Rust 1.59 now allows developers to include machine-level instructions in Rust programs using asm!. Additionally, destructuring has been extended beyond bindings to include assignments, and generics now support the specification of default values for const parameters.
-
Increasing Collaboration at Ericsson: Hardware and Software Developers Learn Each Other's Language
You can integrate hardware and software development with a cross-border team setup, where it’s important that hardware and software developers speak each other’s languages. The suggestion is to focus on “us” instead of “we” and “them”, and on the technical competence that connects developers over agile or lean terminology.
-
Rust 2021 Edition is Here: Q&A with Armin Ronacher
Rust 2021 Edition hit the road perfectly on schedule on October 21, along with Rust 1.56.0. The latest version of the language includes support for disjoint capture, or patterns in macro rules, and more. InfoQ has taken the chance to speak with Sentry director of engineering, Armin Ronacher, about where Rust is standing now.
-
Rust at Six: New Language Edition and Growing Adoption
Rust has been growing at a steady pace in regard to both its capabilities and industry adoption across the last years. Now at six, Rust is close to a new edition that will introduce new syntax without hampering the Rust ecosystem stability.
-
.NET News Roundup - Week of April 12th, 2021
It's been a busy week for the .NET community, with the release of new Visual Studio previews (Windows and Mac), updates to .NET Core 3.1 and 2.1, new releases from the Azure team, and more. InfoQ examined these and a number of smaller stories in the .NET ecosystem from the week of April 12th, 2021.
-
Rust 1.51 Stabilizes Const Generics MVP, Improves Cargo and Compile Times
Rust 1.51 brings to stable a minimum value proposition for const generics, which enable parametrizing types by constant values, for example integers, as opposed to types or lifetimes. The new Rust release also includes improvements to Cargo with a new feature resolver, and faster compile times on macOS.
-
Rust Asynchronous Runtime Tokio Reaches 1.0
Tokio aims to provide building blocks to write reliable and fast asynchronous programs in Rust. Recently announced Tokio 1.0 supports TCP, UDP, timers, a multi-threaded, work-stealing scheduler, and more.