10 điểm bởi xguru 2023-06-15 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Shopify đã phát triển một parser Ruby mới tên là YARP
  • Ở mức hiện tại, có thể phân tích cú pháp giống hệt trên mã chính của Shopify/GitHub và 100 gem RubyGems phổ biến nhất
  • Đã được chấp thuận để merge vào CRuby
  • Parser hiện tại của CRuby có thể được phân loại vấn đề thành khoảng 4 nhóm
    • Khả năng bảo trì: không có tài liệu, phức tạp nên khó thay đổi
    • Khả năng chịu lỗi: có một chút dung sai, nhưng chỉ với lỗi nhỏ cũng không thể tạo cây cú pháp
    • Tính di động: parser gắn chặt với nội bộ CRuby nên không thể dùng trong các công cụ khác
    • Hiệu năng: khó áp dụng các kỹ thuật tối ưu hóa nâng cao
  • Phát triển YARP
    • Viết bằng C
    • Recursive Descent Parser được viết thủ công (đây là xu hướng của các ngôn ngữ lớn hiện nay; gcc/golang cũng đã chuyển từ Bison)
    • Ban đầu cố gắng giữ cây cú pháp giống CRuby, nhưng đã quyết định thiết kế cây riêng
    • Có thể phân tích cú pháp 50.000 tệp Ruby của Shopify chỉ trong 4,49 giây (bộ nhớ đỉnh 10,94Mb)
  • Trong thời gian tới
    • Dự kiến sẽ tích hợp YARP vào nhiều runtime Ruby khác nhau
    • Sẽ tiếp tục cải thiện tốc độ, mức sử dụng bộ nhớ và độ chính xác
    • Matz và nhóm CRuby đã đồng ý đưa vào dưới dạng thư viện trong Ruby 3.3 (dự kiến phát hành vào tháng 12 năm nay)
  • YARP: Yet Another Ruby Parser

Chưa có bình luận nào.

Chưa có bình luận nào.