Gleam 1.19 change sa méthode compilation Erlang
lun, 12/10/2026 - 07:21
Actualité de la rédaction de Programmez !
Gleam 1.19.0 modifie sa manière de compiler pour la machine virtuelle Erlang (BEAM). Jusqu’à présent, il générait du code Erlang, repris ensuite par le compilateur Erlang. Il génère désormais des « abstract forms », une représentation intermédiaire de ce compilateur, chargées directement sous leur forme binaire, évitant une partie du travail de compilation.
Pour rappel, Gleam est un langage safe type et à haute montée en charge pour la machine virtuelle Erlang et les runtimes Javascript.
Cela doit permettre un avantage sur le temps de build : sur le benchmark langcompilebench de José Valim (100 modules de 100 fonctions), migrer vers les abstract forms donne un compilateur plus rapide en version 1.19 qu’avec la v1.17. Les métadonnées de position renvoient maintenant au source Gleam, si bien que les numéros de ligne des rapports de crash et des stacktraces sont exacts, alors qu'ils pouvaient auparavant ne désigner que la fonction la plus proche. Gleam ne génère pas directement le bytecode BEAM, qui peut changer à chaque version de la machine virtuelle, alors que les abstract forms sont stables. Elixir fait le même choix.
Le serveur de langage gère les labels, et la commande compile-package accepte --no-dev, un pas vers le support de Gleam dans Mix et rebar3. Une version 1.19.1, publiée le 7 octobre, corrige les commandes export javascript-prelude et export typescript-prelude.
Annonce : https://gleam.run/news/gleam-doesnt-compile-to-erlang-source-anymore/
Correctif 1.19.1 : https://github.com/gleam-lang/gleam/blob/v1.19.1/CHANGELOG.md

