Ruby 2.7, la dernière mise à jour du langage de programmation Ruby, est désormais disponible en version de production. Les améliorations majeures concernent le ramasse-miettes, le filtrage par motifs et la boucle d’évaluation interactive REPL (read-eval-print-loop).

La principale nouveauté de Ruby 2.7 concerne le compactage du ramasse-miettes, qui sert à défragmenter un espace mémoire fragmenté. Comme l’ont expliqué les développeurs de Ruby, certains programmes Ruby multithreads peuvent provoquer une fragmentation de la mémoire, conduisant à un usage important de celle-ci et à une dégradation des performances. La méthode GC.compact comprime les objets du tas de façon à utiliser moins de pages et faciliter sa copie.

Parmi les autres améliorations de Ruby 2.7.0, on peut citer :

- L’ajout d’une capacité expérimentale de filtrage par motifs, qui consiste à assigner une valeur à un objet donné s'il correspond à un motif. À noter que le filtrage par motifs est couramment utilisé dans les langages de programmation fonctionnelle.

- L'édition multilignes est désormais supportée par irb, le shell interactif de Ruby. L'intégration avec rdoc, le système de documentation de Ruby, est également fournie. Avec irb, les développeurs peuvent afficher la référence d'une classe, d'une méthode ou d'un module. De plus, les lignes de source affichées sur binding.irb et les résultats d'inspection des objets de la classe principale sont désormais colorisés.

- La conversion automatique des arguments de mots-clés et de position a été abandonnée. La fonctionnalité sera d’ailleurs supprimée dans Ruby 3.

- Pour ce qui est du compilateur Just-In-Time (JIT) encore expérimental, introduit pour la première fois dans Ruby 2.6, le code JIT-ed est recompilé en code moins optimisé quand une optimisation a été invalidée. De plus, l'inlining est effectué quand une méthode est considérée comme pure. Cependant, de nombreuses méthodes ne sont pas encore considérées comme pures.

- L’ajout d’un Enumerable#tally compte l'occurrence de chaque élément.

- Un paramètre numéroté a été également ajouté comme paramètre de bloc par défaut.

Ruby 2.7 est téléchargeable sur ruby-lang.org.