InfoQ Homepage System Programming Content on InfoQ
-
The Swift Team Open-Sources Swift Algorithms
Swift Algorithms is a new package including a number of sequence and collection algorithms that are going to fill a gap in Swift standard library, writes Apple engineer Nat Cook.
-
Swift Atomics Enables First-Class Atomic Operations in Swift
Swift Atomics aims to allow system programmers to write synchronization constructs directly in Swift.
-
Apple Open Sources System, Swift Library Interfacing with System-Level API
System is a low-level library Apple introduced at its last WWDC conference to provide an idiomatic and type-safe interface to system calls and currency types usually available at the OS level. In keeping with Apple's aim to push Swift as a cross-platform development ecosystem, System has been open-sourced to make it easier for programmers to contribute to its further development across platforms.
-
C++20 Is Now Final, C++23 at Starting Blocks
Originally planned for release last February, C++20 has now received the final technical approval and will be published foreseeably by the end of the year. C++20 will include modules, coroutines, and concepts among its major new features.
-
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.
-
Go 1.15 Improves the Go Linker, Small Object Allocation, and More
The latest release of the Go language, Go 1.15, focuses on improving the toolchain, runtime, and core libraries. Besides improving the linker and allocation for small objects, Go 1.15 deprecates X.509 CommonName, supports a new embedded tzdata package, and more.
-
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.
-
Swift Crypto Brings Apple CryptoKit API to Server-Side Swift
Swift Crypto is a new open-source library for Swift that aims to provide a common API for cryptographic operations on all supported platforms. On macOS, Swift Crypto leverage Apple's CryptoKit framework, while BoringSSL is used for all other platforms.
-
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.
-
Microsoft Exploring Rust as the Solution for Safe Software
Microsoft has been recently experimenting with Rust to improve the safety of their software. In a talk at RustFest Barcelona, Microsoft engineers Ryan Levick and Sebastian Fernandez explained the challenges they faced in using Rust at Microsoft. Part of Microsoft's journey with Rust included rewriting a low-level Windows component, as Adam Burch explained.
-
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.
-
C++20 Feature List Now Frozen: Modules, Coroutines, and Concepts are in; Contracts out
The ISO C++ Committee has closed the feature list for the next C++ standard, dubbed C++20, scheduled to be published by February 2020. C++20 will be a significant revision of C++, bringing modules, coroutines, and concepts, among its major new features.
-
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.
-
Rust Evolution in 2019 Will Aim for Maturity
This year's roadmap for Rust was the result of an open call for blog posts from the community to set out major priorities for the language development throughout 2019, including reshaping the governance model, bringing to light new language features, and improving the compiler.
-
Rust 1.34 Introduces Alternative Registries for Non-Public Crates
The most significant feature in Cargo 1.34 is support for using alternative cargo registries, which could be a game changer in enterprise environments. Additionally, this release also include support for ? in documentation tests, and several improvements to the standard library.