Erlang/OTP 29.0
(erlang.org)- Le daemon SSH désactive désormais par défaut les services shell et exec, empêchant ainsi les utilisateurs authentifiés d’exécuter du code Erlang arbitraire tant que cela n’est pas configuré explicitement
- Au démarrage du daemon SSH, le sous-système SFTP n’est lui non plus plus activé par défaut, ce qui renforce les paramètres de sécurité par défaut
- L’attribut
-unsafea été ajouté pour permettre de marquer les fonctions non sûres, et le compilateur génère désormais par défaut des avertissements pour les appels à des fonctions qu’Erlang/OTP considère toujours comme non sûres xrefpeut détecter les appels à des fonctions non sûres ainsi que les fonctions non documentées, et le filtrage de l’attributignore_xrefest maintenant géré directement parxref- Dans la configuration SSL par défaut, x25519mlkem768 est devenu le groupe d’échange de clés le plus privilégié, et l’algorithme d’échange de clés SSH par défaut a lui aussi été remplacé par
mlkem768x25519-sha256, qui combine ML-KEM-768 et X25519 - Dans le chemin de code par défaut du système Erlang, le répertoire de travail courant
.a été déplacé de la première à la dernière position, modifiant ainsi l’ordre de chargement - Les builds Erlang/OTP 32 bits pour Windows ne sont plus fournis
- Les native records de EEP-79 ont été implémentés et sont considérés comme une fonctionnalité expérimentale dans Erlang/OTP 29
- Ajout du guard BIF
is_integer/3, des compréhensions à valeurs multiples basées sur EEP 78, ainsi que de la liaison de variables à l’intérieur des compréhensions via la fonctionnalitécompr_assign - Le compilateur ajoute désormais par défaut des avertissements pour
catch, l’export de variables hors des sous-expressions,and/or, ainsi que pour les motifs d’alias de correspondance comme{a,B} = {X,Y}, avec des options de désactivation pour chacun - Les anciens guard tests seront retirés du langage dans Erlang/OTP 30, et les avertissements existants sur l’usage de guards obsolètes continuent de s’appliquer
io_ansipermet d’émettre des séquences ANSI/Virtual Terminal Sequence dans le terminal, etct_doctestpermet de tester les exemples présents dans la documentation des modules Erlang et dans les fichiers de documentation
1 commentaires
Commentaires sur Hacker News
Les améliorations ont l’air plutôt bonnes. Le fait de désactiver par défaut le démon SSH ainsi que SFTP est un bon changement du point de vue de la sécurité
Le module io_ansi a aussi l’air assez chouette. Aujourd’hui, Erlang n’est pas vraiment réputé pour la création d’applications en ligne de commande complexes, donc l’ajout à la bibliothèque standard pourrait beaucoup aider à l’avenir. La manière dont
fwritefonctionne naturellement entre les nœuds, c’est exactement le genre d’avantage qu’on attend d’ErlangL’ajout de Native Records est aussi intéressant. En ce moment, en Elixir, on a l’impression qu’on mélange records, tuples et maps selon les cas, donc je suis curieux de voir comment ce sera utilisé à l’avenir. Comme le dit l’EEP, les records existants ne vont sans doute pas disparaître complètement, mais cela semble être une amélioration importante
https://www.erlang.org/doc/apps/ssh/ssh.html
https://www.erlang.org/docs/29/apps/stdlib/io_ansi.html
https://github.com/erlang/eep/pull/81
Le démon SSH désactive désormais par défaut les services shell et exec, conformément au principe secure by default. Sauf configuration explicite, cela empêche un utilisateur authentifié d’exécuter du code Erlang arbitraire
Le sous-système SFTP n’est lui non plus plus activé par défaut au démarrage du démon SSH
Pour ceux qui se demandent ce que signifie OTP dans Erlang/OTP, à l’origine c’est un ensemble de bibliothèques et de principes destiné aux télécoms, pour standardiser la création d’applications hautement fiables et tolérantes aux pannes
L’idée de base vaut le coup d’être parcourue rapidement dans l’introduction des « OTP Design Principles »
https://www.erlang.org/doc/system/design_principles.html
Si votre application en production est sur une version antérieure à 29, il peut être préférable de mettre à jour au plus vite vers cette version ou vers le dernier correctif. Je viens juste de déployer en production, et le scan de sécurité automatique a remonté 2 CVE CRITIQUES datées de février à mai 2026, ainsi que plusieurs éléments à risque élevé
Je me demande s’il y a encore des gens qui utilisent Erlang pour de nouveaux projets
Je sais qu’il y a ici beaucoup d’amateurs d’Elixir, mais je parle d’Erlang pur
Si vous utilisez encore Erlang, qu’est-ce qui vous le fait préférer à Elixir ?
Elixir ne m’apporte pas d’avantage concret par rapport à Erlang. Il a sûrement des qualités, mais Erlang correspond mieux à ma façon de penser. J’aimerais aussi aborder l’apprentissage ou l’entraide comme une activité sociale, mais je ne trouve pas vraiment d’endroit qui me convienne
Quelqu’un peut expliquer l’architecture interne ?
https://blog.stenmans.org/theBeamBook/
Je suis curieux de voir comment les records vont trouver leur place dans l’écosystème
Intéressant. Je me demande s’il existera un jour un monde où Elixir compilera les maps en native records
Quelqu’un sait si WhatsApp repose encore sur Erlang ?
Ils utilisent Erlang depuis le début des années 2010, et c’est à cette époque que l’industrie tech a découvert que WhatsApp supportait plus de 400 millions d’utilisateurs actifs avec une équipe d’environ 30 ingénieurs
J’avais contacté à l’époque l’un de leurs ingénieurs, qui a gentiment répondu par e-mail à quelques questions lorsque je vivais aux États-Unis. On a fini par prendre un café, et nous sommes encore en contact aujourd’hui
On peut dire qu’Erlang reste encore aujourd’hui une partie importante de WhatsApp
L’ajout du support de l’attribut
-unsafe, parfait, le moment idéal pour tout réécrire en Rust /sFranchement, je ne sais pas qui utilise Erlang. J’ai utilisé Rails puis essayé Phoenix, et j’ai trouvé beaucoup plus difficile d’aboutir à quelque chose
Je ne comprends pas l’enthousiasme autour de Phoenix
Pour un développeur solo, Rails est probablement le système de web app le plus productif. Les LLM écrivent aussi très bien du code Ruby on Rails. Même si le corpus d’entraînement Python est énorme, d’après mon expérience ils s’en sortent bien mieux qu’avec Django
J’écris les applis expérimentales en Rails, puis je les réécris en Go quand elles se stabilisent. Quand le périmètre de l’application est flou, partir directement en Go consomme bien plus de tokens, alors que Rails est très efficace pour ça
Aujourd’hui, React ou Angular ne sont même plus nécessaires, sur Rails j’utilise Hotwire et sur Go j’utilise HTMX
Le forum Erlang lui-même utilise Discourse, écrit en Rails
Vous gagneriez à élargir un peu votre horizon
method_missing, et on perd davantage de temps à comprendre comment ça fonctionneElixir/Phoenix est plus explicite sur ce point, donc bien plus confortable à long terme pour la maintenance, c’est-à-dire dès qu’on dépasse la première semaine. Il n’y a pas d’état caché, pas besoin de se demander d’où vient
ModuleName.method(params), ni de configurer quoi que ce soit pour exécuter cette méthode : il suffit de lui passer les bons arguments. L’inconvénient, c’est surtout un écosystème de packages prêts à l’emploi plus réduitEcto n’est pas mal non plus
Claude Code écrit très bien du code Elixir
De façon assez surprenante, avec ou sans LLM, on est plus productif avec une technologie qu’on connaît déjà