La version 3.4.0 de Ruby est désormais disponible, ajoutant la référence au paramètre de bloc "it", le support de Happy Eyeballs v2 à la bibliothèque socket et rendant Prism comme parseur par défaut

Ruby 3.4.0 a été publié, et la version 3.4.0 a été publiée. Cette version ajoute la référence au paramètre de bloc 'it', change Prism comme parser par défaut, ajoute le support de la version 2 de Happy Eyeballs à la bibliothèque socket et plus encore.


Ruby 3.4.0 introduit "it"

L'alias it est ajouté pour faire référence à un paramètre de bloc sans nom de variable.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
ary = ["foo", "bar", "baz"]
 
p ary.map { it.upcase } #=> ["FOO", "BAR", "BAZ"]
it se comporte de la même manière que _1. Lorsque l'intention est de n'utiliser que _1 dans un bloc, la possibilité que d'autres paramètres numérotés tels que _2 apparaissent également impose une charge cognitive supplémentaire aux lecteurs. C'est pourquoi it a été introduit en tant qu'alias pratique. Utilisez it dans les cas simples où it parle de lui-même, comme dans les blocs d'une ligne.

Prism est maintenant le parseur par défaut

Cette version change l'analyseur par défaut de parse.y à Prism.

Il s'agit d'une amélioration interne et il devrait y avoir peu de changements visibles pour l'utilisateur.

Pour utiliser le parseur conventionnel, utilisez l'argument de la ligne de commande --parser=parse.y.

La bibliothèque socket intègre désormais la version 2 de Happy Eyeballs

La bibliothèque socket intègre désormais Happy Eyeballs Version 2 (RFC 8305), la dernière version standardisée d'une approche largement adoptée pour améliorer la connectivité dans de nombreux langages de programmation, dans TCPSocket.new (TCPSocket.open) et Socket.tcp. Cette amélioration permet à Ruby de fournir des connexions réseau efficaces et fiables, adaptées aux environnements internet modernes.

Jusqu'à Ruby 3.3, ces méthodes effectuaient la résolution de nom et les tentatives de connexion en série. Avec cet algorithme, elles fonctionnent désormais comme suit :

  • Résolution simultanée de noms IPv6 et IPv4
  • Tentative de connexion aux adresses IP résolues, en donnant la priorité à IPv6, avec des tentatives parallèles échelonnées à des intervalles de 250 ms.
  • Renvoie la première connexion réussie et annule les autres.

Cela permet de minimiser les délais de connexion, même si un protocole ou une adresse IP spécifique est retardé ou indisponible. Cette fonctionnalité est activée par défaut, il n'est donc pas nécessaire de la configurer davantage pour l'utiliser. Pour la désactiver globalement, définissez la variable d'environnement RUBY_TCP_NO_FAST_FALLBACK=1 ou appelez Socket.tcp_fast_fallback=false. Pour le désactiver méthode par méthode, utilisez le mot-clé fast_fallback : false.

Source : Ruby 3.4.0

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des nouvelles fonctionnalités apportées par cette version de Ruby ?

Voir aussi :

La version 3.2 du langage de programmation Ruby est disponible, elle apporte de nombreuses fonctionnalités et améliore les performances

Ruby 3.0.0 est disponible, cette version majeure est annoncée comme étant trois fois plus rapide que Ruby 2 et introduit plusieurs nouvelles fonctionnalités dont les Ractors, RBS et TypeProf