10 ポイント 投稿者 xguru 2023-06-15 | まだコメントはありません。 | WhatsAppで共有
  • ShopifyがYARPという新しいRubyパーサを開発
  • 現時点で、Shopify/GitHubのメインコードおよびRubyGemsの人気上位100 gemを同様にパース可能
  • CRubyへのマージが承認済み
  • 既存のCRubyパーサの問題点は大きく4種類に分類できる
    • 保守性: ドキュメントがなく、複雑で変更が難しい
    • エラー耐性: 多少の許容範囲はあるが、些細なエラーでも構文木が生成されない
    • 移植性: パーサがCRuby内部と深く結びついており、他のツールでは利用できない
    • 性能: 高度な最適化技術を導入しにくい
  • YARPの開発
    • Cで記述
    • 手書きのRecursive Descent Parser(近年の主要言語のトレンド。gcc/golangもBisonから移行)
    • CRubyと同一の構文木を維持しようとしたが、独自の木を設計する方針に決定
    • Shopifyの5万件のRubyファイルを4.49秒でパース可能(ピーク時メモリ 10.94Mb)
  • 今後
    • さまざまなRubyランタイムにYARPを統合予定
    • 速度、メモリ使用量、正確性を引き続き改善予定
    • MatzとCRubyチームは、Ruby 3.3(今年12月リリース予定)にライブラリとして含めることで合意
  • YARP: Yet Another Ruby Parser

まだコメントはありません。

まだコメントはありません。