Erlang/OTP 29.0

TL;DR

Erlang/OTP 29.0 has been officially released, offering new features like native records, multi-valued comprehensions, and enhanced security defaults. The update also includes compiler warnings and JIT improvements. Some features remain experimental, and users should review changes for compatibility.

Erlang/OTP 29.0 has been officially released, introducing a range of new features, security enhancements, and compiler warnings, according to the Erlang team. This major update impacts developers working on Erlang-based applications by offering improved safety defaults and language capabilities.

The release includes support for -unsafe attributes to mark functions as unsafe, with the compiler generating warnings for unsafe calls. The SSH daemon now defaults to disabled for shell and exec services, aligning with the ‘secure by default’ principle, and the SFTP subsystem is no longer enabled by default. The default key exchange group for SSL has shifted to the post-quantum hybrid algorithm x25519mlkem768, enhancing security against quantum attacks.

Language features now support native records, which are true data types similar to traditional records but more integrated into the language. Multi-valued comprehensions are supported, allowing more expressive list operations, and the new is_integer/3 guard simplifies type and range checks. The compiler now issues warnings for deprecated or obsolete code patterns, including the catch operator and certain variable exports, with options to disable these warnings. JIT improvements optimize code for binary matching and map comprehensions, increasing performance.

Why It Matters

This update is significant because it enhances the security posture of Erlang applications, especially with the default disabling of SSH services and the adoption of quantum-resistant algorithms. The new language features and compiler warnings assist developers in writing safer, more efficient code, while the experimental native records open pathways for future data handling improvements. Overall, Erlang/OTP 29.0 represents a step forward in both security and language capabilities, impacting enterprise and telecom systems built on Erlang.

Amazon

Erlang/OTP 29.0 development tools

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Erlang/OTP 29.0 follows previous releases that steadily added features like improved compiler diagnostics and language enhancements. The move to disable SSH services by default and adopt post-quantum algorithms reflects ongoing efforts to prioritize security in distributed systems. Support for native records and multi-valued comprehensions aligns with Erlang’s evolution towards more expressive and efficient programming constructs. This release continues the trend of balancing innovation with stability, although some features like native records are marked as experimental, indicating future changes may occur.

“Erlang/OTP 29.0 introduces significant security defaults and language enhancements designed to improve safety and performance.”

— Erlang/OTP team

“Native records are an experimental feature that we believe will enhance data modeling in future releases.”

— Erlang/OTP project lead

Amazon

secure SSH server for enterprise

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It is not yet clear how widely adopted the new native records will become, given their experimental status. The impact of default SSH service disabling on existing deployments remains to be seen, and some warnings introduced by the compiler can be disabled, which may influence their effectiveness. Compatibility issues with older codebases are also still being assessed.

Amazon

post-quantum cryptography SSL certificates

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Developers are encouraged to review the detailed release notes and test their applications against Erlang/OTP 29.0. Future updates may include stabilization of native records and further security enhancements. Erlang teams will likely monitor feedback and bug reports to refine features in subsequent minor releases.

Amazon

Erlang native records programming books

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

What are native records in Erlang/OTP 29.0?

Native records are a new data type that provides a true data structure similar to traditional records but integrated into the language, currently marked as experimental.

How does the new security default affect SSH services?

The SSH daemon now defaults to disabled for shell and exec services, enhancing security by preventing arbitrary code execution unless explicitly enabled.

What are the main language improvements in this release?

Support for multi-valued comprehensions, the is_integer/3 guard, and native records are key language enhancements in Erlang/OTP 29.0.

Are there any breaking changes in this release?

Yes, some incompatibilities are noted, such as the removal of 32-bit Windows builds and deprecated features like the catch operator warning. Developers should review the detailed release notes for specifics.

You May Also Like

WinUI 3 Performance: A Leap Forward

Microsoft’s WinUI 3 demonstrates major performance enhancements, reducing latency and resource usage, promising a more responsive Windows app experience.

The newest AI boom pitch: Host a mini data center at your home

SPAN plans to install mini data centers in new homes, offering subsidized power and internet, aiming to expand AI compute capacity and reduce infrastructure costs.

How to Stop Laptop Overheating on a Desk Setup

An effective guide to preventing laptop overheating on your desk setup reveals essential tips to keep your device cool and perform optimally.

How Fast Does Claude, Acting as a User Space IP Stack, Respond to Pings?

A test measures how quickly Claude, acting as a user space IP stack, responds to ICMP ping requests, revealing insights into AI-driven network processing.