Réécrire le parseur Ruby
(railsatscale.com)- 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 ;
gccetgolangsont 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.