2025-01-17

How Does Ada's Memory Safety Compare Against Rust?

An in-depth comparison of memory safety features between Rust and Ada programming languages, examining how each handles common memory-related errors like buffer overflows, use-after-free, and race conditions, while highlighting their unique approaches to preventing these issues through compile-time checks and runtime protections.

Original archive.is archive.ph web.archive.org

Log in to get one-click access to archived versions of this article.

read comments on news aggregators:

Related articles

0.14.0 Release Notes

Zig 0.14.0 introduces major updates including expanded cross-compilation capabilities, improved target support, and incremental compilation features aimed at reducing edit/compile/debug cycle latency, along with significant build system upgrades and language changes.

Effective Rust

A comprehensive guide presenting 35 specific methods to enhance Rust programming practices, covering essential topics from type systems to FFI boundaries. The guide is structured into six main sections, focusing on types, traits, concepts, dependencies, tooling, and advanced Rust features. Each item provides detailed insights for writing more effective and maintainable Rust code.

Smart Pointers Can't Solve Use-After-Free

Smart pointers in C++ cannot fully prevent use-after-free vulnerabilities due to internal raw pointers in types beyond user control. Examples with std::vector, std::span, and std::lock_guard demonstrate how iterator invalidation and pointer mismanagement can still lead to memory safety issues regardless of smart pointer usage.

Abusing C to implement JSON Parsing with Struct Methods

A detailed guide on building a JSON parser in C, focusing on creating a memory-safe implementation with an ergonomic API and struct-attached functions as methods. Key features include comprehensive compiler flags setup, robust memory management, and simplified JSON value representation.

Sponsor @servo on GitHub Sponsors

Servo, a web browser rendering engine written in Rust, offers developers a lightweight, high-performance solution for embedding web technologies. Originally created by Mozilla Research in 2012 and now under Linux Foundation Europe, the project focuses on WebGL and WebGPU support for desktop, mobile, and embedded applications. The project advances web standards and platform development through its unique approach, distinct from Gecko and WebKit.

Securing tomorrow's software: the need for memory safety standards

Memory safety vulnerabilities have been a persistent security challenge costing billions, prompting a call for industry-wide standardization and secure-by-design practices. Recent advancements in memory-safe languages like Rust and hardware technologies offer promising solutions for widespread adoption. Google advocates for establishing a common framework to assess memory safety assurances and drive industry-wide adoption of secure practices.

Gleam, coming from Erlang

A developer shares their experience building a feed aggregator using Gleam, a type-safe language running on the Erlang VM. The article explores Gleam's features, including its type system, error handling, and OTP integration, while highlighting both strengths and challenges in implementing a real-world application.

Tokio + prctl = nasty bug

A detailed analysis of a bug in HyperQueue where tasks were unexpectedly terminated after 10 seconds due to an interaction between tokio thread management, PR_SET_PDEATHSIG, and process spawning optimization. The bug emerged from moving process spawning to a worker thread, causing processes to receive SIGTERM when tokio cleaned up idle threads.