• Shopify ने YARP नाम का एक नया Ruby parser विकसित किया
  • मौजूदा स्तर पर, Shopify/GitHub के main code और RubyGems के लोकप्रिय top 100 gems को बिल्कुल उसी तरह parse किया जा सकता है
  • CRuby में merge की मंजूरी मिल चुकी है
  • CRuby के मौजूदा parser की समस्याओं को मोटे तौर पर 4 श्रेणियों में बाँटा जा सकता है
    • maintainability: documentation नहीं है, और यह जटिल है इसलिए बदलाव करना मुश्किल है
    • error tolerance: थोड़ी बहुत tolerance है, लेकिन मामूली error पर भी syntax tree बन नहीं पाता
    • portability: parser, CRuby के internal implementation से गहराई से जुड़ा है, इसलिए दूसरे tools में इसका उपयोग संभव नहीं है
    • performance: उन्नत optimization techniques को अपनाना कठिन है
  • YARP का विकास
    • C में लिखा गया
    • हाथ से लिखा गया Recursive Descent Parser (आजकल प्रमुख भाषाओं का यही trend है; gcc/golang भी Bison से बदले हैं)
    • CRuby के समान syntax tree बनाए रखने की कोशिश की गई, लेकिन अंततः अपना tree design करने का निर्णय लिया गया
    • Shopify की 50,000 Ruby files को सिर्फ 4.49 सेकंड में parse कर सकता है (peak memory 10.94Mb)
  • आगे की योजना
    • विभिन्न Ruby runtimes में YARP को integrate करने की योजना है
    • speed, memory usage और accuracy को लगातार बेहतर किया जाएगा
    • Matz और CRuby टीम ने Ruby 3.3 (इस साल दिसंबर में रिलीज़ होने की योजना) में इसे library के रूप में शामिल करने पर सहमति दी
  • YARP: Yet Another Ruby Parser

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.