Publiée fin décembre, la version 1.14.0 de Gleam apporte son lot d’améliorations et d’évolutions. Parmi elles, le langage supporte dorénavant l’annotation`@external` pour les types externes, donnant ainsi aux développeurs la capacité de spécifier une définition de type Erlang ou TypeScript à utiliser. La fonctionnalité des types externes permet de déclarer un type Erlang ou JavaScript référençable dans Gleam. Mais en étant externe, le compilateur Gleam ne peut pas produire de définition précise pour les types Erlang ou TypeScript générés. Par conséquent, le compilateur a dû utiliser le type « any », correct mais vague, de chaque langage.

Dans les autres évolutions, Gleam se penche sur la correspondance de motifs pour le contrôle de flux. Pour l’améliorer, le langage a introduit une technique dite d’élagage par interférence qui accélère les performances et détecter davantage de motifs redondants dans le code. Dans la version 1.14.0, il étend cette méthode à des segments entiers de code.

Une normalisation des nombres

De même, la dernière itération pousse la normalisation des nombres dans l'analyse de correspondance de motifs, ce qui permet d'obtenir un code plus rapide. Les nombres peuvent être écrits dans différents formats dans Gleam (décimal, octal, hexadécimal, etc., ou la notation scientifique peut être utilisée pour représenter les nombres à virgule flottante). Le compilateur normalise désormais ces valeurs en interne vers une représentation canonique unique.

Gleam 1.14.0 comprend par ailleurs des tests d’égalité plus rapides. Les performances des opérateurs `==` et `!=` ont été améliorées pour les variantes de types personnalisés sans champ lors de la compilation en JavaScript. De plus, la syntaxe de mise à jour des enregistrements peut désormais servir dans les définitions de constantes. Enfin, le langage comprend la dernière mise à jour de l’API du compilateur Elixir. Elle corrige ainsi certaines alertes émises par les versions précédentes de Gleam.