Dans la préversion de Ruby 2.7, des améliorations ont été apportées au nettoyage de la mémoire avec CG.compact, une méthode de compactage des objets. Les autres nouveautés portent sur le REPL, sur une capacité expérimentale de filtrage de motifs et sur le compilateur Just-In-Time.

Certains programmes Ruby multi-threaded peuvent fragmenter la m�moire et d�grader la vitesse d�ex�cution. Dans la pr�version 2.7 du langage, le garbage collection permet d'effectuer une d�fragmentation. (Cr�dit : Ruby)

Certains programmes Ruby multi-threaded peuvent fragmenter la mémoire et dégrader la vitesse d’exécution. Dans la préversion 2.7 du langage, le garbage collection permet d’effectuer une défragmentation. (Crédit : Ruby)

La version 2.7 de Ruby, dernière mise à jour du langage de programmation open source, est désormais disponible en préversion avec un lancement général prévu pour décembre 2019. Elle apporte des améliorations sur le nettoyage de la mémoire (garbage collection), le filtrage par motif et le REPL (read-eval-print-loop, lire-évaluer-afficher-boucler). Une des nouveautés de cette préversion concerne le compactage du ramasse-miettes, qui sert à défragmenter un espace mémoire fragmenté. La méthode GC.compact compacte les objets dans le « heap » de façon à utiliser moins de pages. Comme l’a expliqué l’équipe de développement de Ruby, certains programmes Ruby multithreads peuvent provoquer une fragmentation de la mémoire qui se traduit par un usage intense de celle-ci et une altération de la vitesse.

Parmi les autres améliorations de Ruby 2.7.0, une capacité expérimentale de filtrage de motifs permet d’assigner une valeur à un objet donné s’il correspond à un motif. Le filtrage est très utilisé dans les langages de programmation fonctionnels. L’édition multi-lignes est désormais supportée dans irb, le shell interactif de Ruby. L’intégration avec rdoc, le système de documentation de Ruby, est également disponible. 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 sources affichées sur binding.irb et l’inspection des résultats pour les objets de classe core sont maintenant colorisés.

Le code JIT recompilé si une optimisation est invalidée

Concernant le compilateur Just-In-Time (JIT) encore expérimental, introduit pour la première fois dans Ruby 2.6, le code JIT est recompilé dans un code moins optimisé si une optimisation est invalidée. De plus, la fonction inline est appliquée quand la méthode est considérée comme pure. Cependant, de nombreuses méthodes ne sont pas encore considérées comme pures. Un Enumerable# compte l’occurrence de chaque élément. Un opérateur de référence de méthode, . :, est inclus à titre expérimental. Enfin, un paramètre numéroté a également été ajouté à titre expérimental comme paramètre de bloc par défaut.

La preview release de Ruby 2.7, ainsi que les versions stables de Ruby, sont téléchargeables à partir du site ruby-lang.org.

0 CommentsClose Comments

laissez un commentaire

Abonnez-vous à la newsletter

Obtenez les derniers messages et articles dans votre e-mail

 

Nous nous engageons à ne pas envoyer de spam :)