Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Ruby 2.6 est disponible en version stable
Avec un nouveau compilateur JIT en mode expérimental et un nouveau module pour analyser du code Ruby

Le , par Olivier Famien

216PARTAGES

13  0 
Toute comme l'année dernière avec la version 2.5, l'équipe de Ruby vient d'annoncer la disponibilité de la version stable de Ruby 2.6 en ce jour de la fête de Noël. Un très beau cadeau que les utilisateurs de ce langage sauront apprécier à sa juste valeur en cette fin d'année.

Dans cette nouvelle version du langage multiparadigme, l’équipe de Ruby annonce l’intégration d’un nouveau compilateur Just-In-Time (abrégé JIT). La compilation JIT également appelée compilation dynamique ou compilation à la volée est généralement implémentée pour améliorer les performances d’un programme lors de son exécution. Pour se faire, le compilateur JIT traduit dans un premier temps le code source du programme en bytecode, puis dans une seconde étape il va transformer le bytecode en code natif au moment de l’exécution. Il faut noter que le bytecode sera compilé en code natif en fonction de la fréquence d’appel de ce code. Les bytecodes les plus souvent utilisés seront à l’avance compilés en code machine natif afin d’améliorer les performances du programme exécuté.

Pour ce qui concerne le nouveau compilateur JIT de Ruby, l’équipe de Ruby explique que contrairement aux compilateurs JIT traditionnels qui fonctionnent en processus, le compilateur JIT de Ruby écrit le code C sur le disque et utilise un compilateur C commun pour générer du code natif. Selon les mainteneurs de Ruby 2.6, les tests d’évaluation ont montré que les codes compilés avec le nouveau compilateur JIT étaient environ 1,7 fois plus rapides pour les charges de travail gourmandes en ressources CPU que ceux compilés avec celui de Ruby 2.5. Cependant, le gain de performances obtenues avec ce nouveau compilateur JIT ne pourra pas être également appliqué aux applications web. Des travaux supplémentaires sont encore nécessaires. Aussi, étant donné que des correctifs et améliorations doivent encore être apportés, le compilateur JIT a été désactivé par défaut et relégué au stade expérimental.

À côté de ce nouveau compilateur qui a atterri dans cette dernière version de Ruby 2.6, un nouveau module RubyVM::AbstractSyntaxTree qui analyse une chaîne de caractères donnée comme du code Ruby et retourne des nœuds d’arbre de syntaxe abstraite (abrégé ASA) a été ajouté à Ruby 2.6. Dans les détails, cela se fait par la méthode parse_file qui ouvre et analyse le fichier donné en tant que code Ruby et renvoie les nœuds de l’arbre de syntaxe abstraite.


Au menu des nouveautés, nous avons également la classe RubyVM::AbstractSyntaxTree::Node qui a été ajoutée dans cette nouvelle version stable de Ruby 2.6. Pour ceux qui utilisent le module RubyVM::AbstractSyntaxTree, il faut savoir que les nœuds de l’arbre de la syntaxe abstraite sont des instances de la classe RubyVM :: AbstractSyntaxTree :: Node.

Tout comme le nouveau compilateur, le nouveau module et la nouvelle classe intégrés ont été marqués comme fonctionnalités expérimentales. Il va falloir donc les utiliser avec beaucoup de prudence et ne pas hésiter à rapporter les bogues qui pourraient survenir.

Au-delà de ces nouvelles fonctionnalités, nous avons également des améliorations de performance à plusieurs niveaux, comme avec les blocs qui sont désormais 2,6 fois plus rapides que dans la version 2.5 de Ruby ou encore avec les méthodes Fiber.yield et Fiber#resume qui sont environ 5 fois plus rapides sur Linux 64 bits. Pour les programmes utilisant beaucoup la classe Fiber, l’on peut espérer une amélioration de performance de l’ordre de 5 %.

Source : Ruby

Et vous ?

Avez-vous testé la nouvelle version de Ruby ;?

Quel est votre avis sur les nouvelles fonctionnalités et améliorations apportées ;?

Voir aussi

La version stable de Ruby 2.5 est disponible avec des améliorations de performance de l’ordre de 5 à 10 % et l’ajout de nouvelles fonctionnalités
Ruby sort en version 2.1.1 pour marquer son 21e anniversaire
Un développeur estime que Ruby on Rails est dépassé et conseille aux entreprises de se tourner vers Node.js, partagez-vous ce point de vue ;?
Le livre « ;Hello Ruby ;» ambitionne d’apprendre aux enfants les rudiments de la programmation, Que pensez-vous de cette initiative ;?
JRuby 1.6 passe en RC, support de Ruby 1.9.2 et compatibilité Windows pour l’implémentation alternative de Ruby sur la JVM

Une erreur dans cette actualité ? Signalez-le nous !