Ruby 2.7 améliore le garbage collection, la correspondance de modèles

Ruby 2.7, la dernière mise à jour du langage de programmation Ruby, est désormais disponible en tant que version de production. La nouvelle version apporte des améliorations dans le garbage collection, la correspondance de modèles et REPL (read-eval-print-loop).

Nouveau dans Ruby 2.7 est le garbage collection de compactage, qui est utilisé pour défragmenter un espace mémoire fragmenté. La GC.compactméthode compacte les objets dans le tas afin que moins de pages soient utilisées. Les membres de l'équipe de développement Ruby ont expliqué que certains programmes Ruby multithreads peuvent provoquer une fragmentation de la mémoire, ce qui entraîne une utilisation élevée de la mémoire et une dégradation de la vitesse.

Les autres améliorations de Ruby 2.7.0 incluent:

  • Une capacité expérimentale de correspondance de modèle, qui peut traverser un objet donné et attribuer une valeur si elle correspond à un modèle. La correspondance de modèles est largement utilisée dans les langages de programmation fonctionnels.
  • L'édition multiligne est désormais prise en charge dans irble shell Ruby interactif. L'intégration avec rdoc, le système de documentation 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 source affichées binding.irbet inspectent les résultats pour les objets de la classe principale sont désormais colorisées.
  • La conversion automatique des mots clés et des arguments positionnels est obsolète. Cette fonctionnalité sera supprimée dans Ruby 3.
  • Pour le compilateur JIT (juste-à-temps) encore expérimental, introduit pour la première fois dans Ruby 2.6, le code JIT-ed est recompilé en code moins optimisé lorsqu'une optimisation a été invalidée. De plus, l'intégration de méthode est effectuée lorsqu'une méthode est considérée comme pure. Cependant, de nombreuses méthodes ne sont pas encore considérées comme pures.
  • Un Enumerable#tally compte l'occurrence de chaque élément.
  • Un paramètre numéroté est également introduit comme paramètre de bloc par défaut.

Vous pouvez télécharger Ruby 2.7 depuis ruby-lang.org.