AccueilActualités informatiqueLangage de programmation : Ruby 3.1 introduit un nouveau débogueur et un...

Langage de programmation : Ruby 3.1 introduit un nouveau débogueur et un compilateur JIT

En 2021, les éditeurs du langage de programmation Ruby ne dérogeront pas à leur tradition vieille de plus de 25 ans, qui consiste à proposer une nouvelle version à chaque Noël. Selon l’annonce faite sur le blog Ruby, Ruby 3.1 apporte un certain nombre de nouvelles fonctionnalités, sans toutefois rompre la compatibilité avec la version principale 3.0, sortie il y a 12 mois. Outre le débogueur debug.gem entièrement remanié, les développeurs reçoivent entre autres le nouveau compilateur Just-in-Time YJIT.

Sommaire

Des performances accrues sont l’une des promesses du débogueur debug.gem nouvellement écrit, qui remplace le lib/debug.rb précédemment inclus dans le bundle. Parmi les nouvelles fonctions, on trouve également le débogage multi-processus et multi-thread, une fonction de traçage et d’enregistrement/reproduction. Les développeurs Ruby peuvent également utiliser debug.gem dans Visual Studio Code et Google Chrome, ce qui permet également le débogage à distance.

La deuxième grande nouveauté, comme déjà annoncé lors de la Preview de Ruby 3.1, est le compilateur Just-in-Time YJIT, qui doit remplacer le MJIT introduit en 2018 dans la version 2.6. Le compilateur JIT basé sur les méthodes utilisé jusqu’à présent n’a apparemment pas vraiment convaincu dans la pratique, malgré l’accès à un compilateur C externe ainsi que quelques améliorations de performance dans l’intervalle. L’équipe Ruby a donc décidé de passer au compilateur JIT en cours YJIT, développé à l’origine par Shopify, qui se base sur le Basic Block Versioning ainsi que sur un compilateur JIT intégré. Avec le Lazy Basic Block Versioning (LBBV), YJIT compile d’abord le début d’une méthode – le reste suit progressivement, dès que le type des arguments et des variables est déterminé de manière dynamique. En tant que fonction encore expérimentale, YJIT reste toutefois désactivé par défaut dans Ruby 3.1. Ceux qui souhaitent déjà utiliser le nouveau compilateur peuvent l’activer avec la commande --yjit mais uniquement sur les plateformes x86-64 pour le moment.

Une autre nouveauté activée par défaut est error_highlight. Le Gem doit entre autres offrir une recherche d’erreurs plus détaillée dans le backtrace, comme le montre l’exemple suivant.

$ ruby test.rb
test.rb:1:in `<main>': undefined method `time' for 1:Integer (NoMethodError)

1.time {}
 ^^^^^
Did you mean?  times

Dans l’IRB (Interactive Ruby Shell), on trouve désormais une fonction d’autocomplétion. Dès que les développeurs saisissent du code, une boîte de dialogue apparaît avec un choix de complétion dans lequel ils peuvent cliquer sur Onglet et Maj+Tab peuvent naviguer. Si des documents sont installés pour une sélection, leur contenu peut être consulté en cliquant sur Alt+d lire

Un aperçu complet de toutes les nouveautés de Ruby 3.1 est disponible dans le communiqué de presse de la version.

Inventé en 1993 par le développeur japonais Yukihiro « Matz » Matsumoto, le langage de programmation Ruby est essentiellement orienté objet, mais supporte également d’autres paradigmes et concepts tels que le typage dynamique, les réflexions et le nettoyage automatique de la mémoire. Les programmes écrits en Ruby sont interprétés au moment de l’exécution, et l’avantage est que le code n’est pas particulièrement complexe.

Ruby est disponible en open source et est spécialement utilisé pour le développement web. Des plateformes telles que GitHub, Shopify, Stripe et AirBnB utilisent activement Ruby. Le framework web « Ruby on Rails » écrit en Ruby a donné un coup de fouet au langage il y a 15 ans, mais il a également fait la une des journaux en 2021 : Tout d’abord, une bibliothèque supprimée en raison de problèmes de licence a eu un effet domino, puis une mésaventure des fondateurs de Basecamp et de Ruby on Rails lors de l’annonce de nouvelles directives de gouvernance a provoqué un exode des collaborateurs.

Plus d'articles