10 points par xguru 2023-06-15 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Shopify a développé un nouveau parseur Ruby appelé YARP
  • À ce stade, il peut déjà parser à l’identique le code principal de Shopify/GitHub ainsi que les 100 gems RubyGems les plus populaires
  • Son intégration dans CRuby a été approuvée
  • Les problèmes du parseur historique de CRuby peuvent être classés en quatre grandes catégories
    • Maintenabilité : absence de documentation et complexité rendant les modifications difficiles
    • Tolérance aux erreurs : une légère marge de tolérance existe, mais même de petites erreurs empêchent la génération de l’arbre syntaxique
    • Portabilité : le parseur est profondément couplé à l’intérieur de CRuby, ce qui le rend inutilisable dans d’autres outils
    • Performances : difficile d’y introduire des techniques d’optimisation avancées
  • Développement de YARP
    • Écrit en C
    • Un parseur récursif descendant écrit à la main (tendance actuelle dans les principaux langages ; gcc et golang sont aussi passés de Bison à autre chose)
    • L’objectif était de conserver le même arbre syntaxique que CRuby, mais il a finalement été décidé de concevoir son propre arbre
    • Capable de parser 50 000 fichiers Ruby de Shopify en 4,49 secondes seulement (mémoire pic : 10,94 Mb)
  • Et ensuite
    • YARP devrait être intégré à divers runtimes Ruby
    • La vitesse, l’utilisation mémoire et la précision continueront d’être améliorées
    • Matz et l’équipe CRuby ont convenu de l’inclure comme bibliothèque dans Ruby 3.3 (sortie prévue en décembre)
  • YARP : Yet Another Ruby Parser

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.