TL;DR
Erlang/OTP 29.0 has been officially released, bringing new language features, enhanced security defaults, and compiler warnings. Some incompatibilities are introduced, requiring developers to review their code.
Erlang/OTP 29.0 has been officially released, introducing significant new features, security improvements, and some incompatibilities, according to the Erlang team.The release includes support for -unsafe attributes, enabling marking functions as unsafe, with compiler warnings for unsafe calls. The SSH daemon 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. In SSL, the hybrid quantum-resistant algorithm x25519mlkem768 is now the preferred key exchange group. New language features include native records, multi-valued comprehensions, and the is_integer/3 guard BIF. Compiler improvements include better code generation for binary matching and map comprehensions, alongside several new default warnings for deprecated or obsolete practices, such as the catch operator and variable export warnings. The standard library now offers functions for list permutation, and the SSH default key exchange algorithm has been upgraded to mlkem768x25519-sha256, providing quantum resistance.
Why It Matters
This update is important for Erlang developers and security-conscious users, as it enhances language capabilities, improves security defaults, and introduces warnings that promote better coding practices. The changes may require code adjustments due to incompatibilities and new default behaviors.
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 is a major release following previous versions that steadily added features and security measures. Notable prior developments include the introduction of new language constructs and security protocols. The current release continues this trend, emphasizing security defaults and language enhancements, with some features marked as experimental. The release also aligns with ongoing efforts to improve the BEAM virtual machine’s performance and safety.
“Erlang/OTP 29.0 introduces significant new features and security defaults, reflecting our commitment to robust, secure, and efficient systems.”
— Erlang team
“The default disabling of SSH shell and exec services enhances security, making Erlang systems safer out of the box.”
— Erlang security team

USB Dongle Expansion Board for Zero 1.3/Zero W, Plug and Play No Soldering Adapter with SSH & P4wnP1 Support for Developers, Projects
Zero Soldering Setup: Instantly convert your Zero into a USB drive with this plug-and-play expansion board, eliminating complex…
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 features will be or how existing codebases will handle the incompatibilities. Details on migration strategies and full compatibility lists are still emerging.
quantum-resistant SSL/TLS libraries
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What’s Next
Developers are advised to review the release notes and test their applications with Erlang/OTP 29.0. Future updates may include further stability improvements and documentation on migration. The Erlang team is expected to provide guidance for transitioning from earlier versions.

C Programming Absolute Beginner's Guide
Great product!
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What are the main new features in Erlang/OTP 29.0?
The release introduces native records, multi-valued comprehensions, new guard functions, and enhanced security defaults, among other improvements.
Are there any breaking changes or incompatibilities?
Yes, some default behaviors have changed, such as the SSH daemon defaults and compiler warnings, which may require code adjustments.
How does the security update impact existing Erlang applications?
The default disabling of certain SSH services enhances security but may necessitate reconfiguration of SSH settings in existing deployments.
Will existing codebases need modifications for compatibility?
Potentially, especially regarding the new warnings and default behaviors; developers should review the release notes and test their applications accordingly.