Ruby parser को फिर से लिखना
(railsatscale.com)- 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
अभी कोई टिप्पणी नहीं है.