10 Punkte von xguru 2023-06-15 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Shopify hat einen neuen Ruby-Parser namens YARP entwickelt
  • Auf dem aktuellen Stand kann er den Hauptcode von Shopify/GitHub sowie die 100 beliebtesten Gems auf RubyGems identisch parsen
  • Der Merge in CRuby wurde genehmigt
  • Die Probleme des bestehenden CRuby-Parsers lassen sich grob in vier Kategorien einteilen
    • Wartbarkeit: keine Dokumentation vorhanden, komplex und daher schwer zu ändern
    • Fehlertoleranz: Es gibt zwar etwas Toleranz, aber schon bei kleinen Fehlern wird kein Syntaxbaum erzeugt
    • Portabilität: Der Parser ist eng an das Innere von CRuby gekoppelt und kann deshalb in anderen Tools nicht verwendet werden
    • Performance: Die Einführung fortgeschrittener Optimierungstechniken ist schwierig
  • Entwicklung von YARP
    • In C geschrieben
    • Ein von Hand geschriebener Recursive Descent Parser (der aktuelle Trend bei wichtigen Programmiersprachen; auch gcc/golang sind von Bison umgestiegen)
    • Man wollte zunächst denselben Syntaxbaum wie CRuby beibehalten, entschied sich dann aber für einen eigenen Baum
    • Kann Shopifys 50.000 Ruby-Dateien in nur 4,49 Sekunden parsen (Peak-Speicher 10,94 MB)
  • Ausblick
    • YARP soll in verschiedene Ruby-Runtimes integriert werden
    • Geschwindigkeit, Speicherverbrauch und Genauigkeit sollen weiter verbessert werden
    • Matz und das CRuby-Team haben zugestimmt, es in Ruby 3.3 (geplante Veröffentlichung im Dezember dieses Jahres) als Bibliothek aufzunehmen
  • YARP: Yet Another Ruby Parser

Noch keine Kommentare.

Noch keine Kommentare.