10 poin oleh xguru 2023-06-15 | Belum ada komentar. | Bagikan ke WhatsApp
  • Shopify mengembangkan parser Ruby baru bernama YARP
  • Pada tingkat saat ini, parser ini dapat mem-parsing kode utama Shopify/GitHub serta 100 gem RubyGems terpopuler dengan hasil yang sama
  • Penggabungannya ke CRuby telah disetujui
  • Parser lama CRuby saat ini secara garis besar memiliki empat kategori masalah
    • Kemudahan pemeliharaan: tidak ada dokumentasi dan terlalu kompleks sehingga sulit diubah
    • Toleransi kesalahan: ada sedikit toleransi, tetapi bahkan kesalahan kecil pun membuat pohon sintaks tidak dapat dibuat
    • Portabilitas: parser sangat terikat dengan internal CRuby sehingga tidak bisa digunakan oleh alat lain
    • Kinerja: sulit menerapkan teknik optimasi tingkat lanjut
  • Pengembangan YARP
    • Ditulis dalam C
    • Recursive Descent Parser yang ditulis manual (ini adalah tren di bahasa-bahasa utama saat ini; gcc/golang juga beralih dari Bison)
    • Awalnya ingin mempertahankan pohon sintaks yang sama dengan CRuby, tetapi akhirnya memutuskan merancang pohon sendiri
    • Dapat mem-parsing 50 ribu file Ruby milik Shopify hanya dalam 4,49 detik (memori puncak 10,94Mb)
  • Ke depan
    • Berencana mengintegrasikan YARP ke berbagai runtime Ruby
    • Akan terus meningkatkan kecepatan, penggunaan memori, dan akurasi
    • Matz dan tim CRuby telah sepakat untuk menyertakannya sebagai library di Ruby 3.3 (dijadwalkan rilis Desember ini)
  • YARP: Yet Another Ruby Parser

Belum ada komentar.

Belum ada komentar.