Erlang/OTP 29.0

TL;DR

Erlang/OTP 29.0 is now available, featuring support for unsafe attributes, native records, multi-valued comprehensions, and improved security defaults. The update also includes compiler warnings and performance improvements.

Erlang/OTP 29.0 has been officially released, introducing new language features, security enhancements, and compiler warnings that impact developers and system administrators.

The release includes support for -unsafe attributes, enabling marking 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. In SSL, the hybrid post-quantum algorithm x25519mlkem768 is now the preferred key exchange group. The module io_ansi allows for terminal styling, and the new ct_doctest module facilitates testing documentation examples. The default working directory placement has shifted, and there are no longer 32-bit Windows builds available.

Language enhancements include native records, considered experimental, and the new is_integer/3 guard for range checks. Multi-valued comprehensions are supported, allowing more complex data manipulations. The compiler now provides several default warnings, including deprecated catch operator use, variable export warnings, and obsolete guard tests, which will be removed in OTP 30. The standard library has added functions for list permutation, and the SSH key exchange algorithm defaults to a hybrid quantum-resistant protocol, mlkem768x25519-sha256, offering enhanced security against quantum attacks.

Why It Matters

This update is significant for Erlang developers and system administrators because it enhances language capabilities, improves security defaults, and introduces compiler warnings that promote better coding practices. The default disabling of SSH services reduces attack surfaces, aligning with security best practices. Support for quantum-resistant algorithms marks a critical step in preparing Erlang systems for future cryptographic challenges.

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 focused on performance and security improvements. The introduction of native records and multi-valued comprehensions reflects ongoing language evolution. The shift to default security settings in SSH aligns with industry standards. Historically, Erlang has prioritized system reliability and security, and this release continues that trend with notable enhancements.

“Erlang/OTP 29.0 introduces significant language features and security improvements, reinforcing Erlang’s commitment to robust, secure systems.”

— Erlang/OTP team

“The default disabling of SSH services and the adoption of post-quantum algorithms reflect our focus on security and future-proofing.”

— Erlang/OTP project lead

Amazon

quantum-resistant SSL/TLS libraries

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

Details about the full impact of native records’ stability and adoption are still emerging, as they are marked experimental. Compatibility issues with older systems or tools are yet to be fully assessed, and the long-term effects of new compiler warnings are still being observed.

Songs of the Nations: American Indian Music Adapted for the Native American Flute

Songs of the Nations: American Indian Music Adapted for the Native American Flute

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Next steps include monitoring community feedback on native records and security defaults, as well as tracking adoption of the new features in production environments. Further updates may address any issues arising from this release, and documentation will evolve accordingly.

Mastering Linux Security and Hardening: Secure your Linux server and protect it from intruders, malware attacks, and other external threats

Mastering Linux Security and Hardening: Secure your Linux server and protect it from intruders, malware attacks, and other external threats

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 introduced as an alternative to traditional tuple-based records, considered experimental in this release, offering improved type safety and performance.

How does the security default change in SSH impact users?

By default, the SSH daemon disables shell and exec services, reducing potential attack vectors. Users must explicitly enable these services if needed, enhancing system security.

What is the significance of the new post-quantum algorithm?

The default key exchange algorithm, mlkem768x25519-sha256, provides resistance against quantum computer attacks, ensuring cryptographic security for the future.

Are there any major backward compatibility concerns?

Some incompatibilities are possible due to deprecated features like the catch operator warning and changes in default behaviors. Developers should review the release notes for detailed guidance.

You May Also Like

A Forth-inspired language for writing websites

A developer has created Forge, a stack-based language inspired by Forth, allowing users to build websites with a unique, minimalist approach and integrated rendering.

Apple Silicon costs more than OpenRouter

Recent analysis shows Apple Silicon’s hardware costs surpass OpenRouter’s for local AI model inference, impacting cost-efficiency and deployment choices.

Google says criminal hackers used AI to find a major software flaw

Google reports that cybercriminals leveraged AI tools to identify a critical software vulnerability, raising security concerns worldwide.

Where to buy a non-Apple, non-Google smartphone

Explore options for purchasing smartphones that avoid Apple and Google OSes, including de-Googled Android and Linux-based devices, with current available models.