io_uring Gains New Process Creation Functionality

2024-12-20

LWN.net reports on the development of a new process creation feature for the io_uring subsystem. This functionality is implemented via two new io_uring operations: IORING_OP_CLONE, which creates a new process, and IORING_OP_EXEC, which performs an execveat() system call to load a new program. This promises increased efficiency and allows for more complex logic, such as path searching, to be executed asynchronously within the kernel. However, the feature is still in its early stages and has limitations, such as requiring synchronous execution of io_uring operations within the new process. Future development aims to increase flexibility and eventually merge the feature into the mainline Linux kernel.

Read more

Fish Shell 4.0 Released: Rewritten in Rust for Enhanced Performance

2024-12-19

Fish shell, a command-line shell known for its user-friendliness and smart features, has released version 4.0. The biggest change is a complete rewrite of the codebase from C++ to Rust, resulting in improved modern computing efficiency. Version 4.0 also boasts many new features, such as more natural keybindings and enhanced history search, designed to make the command line experience easier and more enjoyable. To ensure stability, the project has released a public beta inviting all users to participate in testing.

Read more
Development

Guile-powered Emacs: A Bold Rewrite Project

2024-12-16

Emacs, renowned for its extensibility, faces performance and expressiveness limitations with its core language, Emacs Lisp (Elisp). To address this, the Guile-Emacs project aims to replace Elisp in Emacs with Guile Lisp. After years of development and dormancy, Guile-Emacs has been revived by developers Robin Templeton and Larry Valkama. The project aims to leverage Guile's compiler and performance advantages to improve Emacs' speed and extensibility while maintaining Elisp compatibility. The ultimate goal is to rewrite a significant portion of Emacs's C code in Lisp, significantly enhancing its customizability. While facing technical and political challenges, the project presents exciting possibilities for the future of Emacs.

Read more
Development

Rust Compiler: A Query-Based Incremental Compilation Architecture

2024-12-13

To address the efficiency issues of traditional pipeline-based compilation, the Rust compiler employs a query-based incremental compilation architecture. This architecture breaks down the compilation process into a series of interdependent queries, utilizing a compilation database to cache intermediate results. This allows recompilation only of necessary code sections. Similar to a build system's dependency management, this significantly improves compilation speed, especially beneficial in scenarios like IDE integration. While introducing complexity, this approach offers a more stable and efficient incremental compilation experience for Rust compared to gradual improvements to traditional methods, now default for development builds.

Read more
3

Git Project Deadlocked Over Rust Integration

2024-12-13

The Git project is embroiled in a heated debate over the integration of the Rust programming language. Proponents argue that Rust's memory safety and ease of refactoring would enhance Git's security and developer experience. However, opponents express concerns that Rust integration could compromise support for niche platforms like NonStop, potentially hindering Git's long-term viability. NonStop's prevalence in the financial sector, its reliance on Git, and the lack of a Rust compiler for the platform complicate the issue. The discussion ultimately reached no resolution, leaving the Git project grappling with a critical decision between maintaining broad platform support and improving security and developer experience.

Read more
Development Platform Support