10 puntos por xguru 2023-06-15 | Aún no hay comentarios. | Compartir por WhatsApp
  • Shopify desarrolló un nuevo parser de Ruby llamado YARP
  • En su estado actual, puede hacer el mismo parsing del código principal de Shopify/GitHub y de las 100 gems más populares de RubyGems
  • Se aprobó su merge en CRuby
  • El parser existente de CRuby puede clasificarse en aproximadamente 4 tipos de problemas
    • Mantenibilidad: no tiene documentación y es complejo, por lo que es difícil de modificar
    • Tolerancia a errores: tiene un pequeño margen de tolerancia, pero incluso con errores menores no se genera un árbol sintáctico
    • Portabilidad: el parser está profundamente acoplado al interior de CRuby, por lo que no puede usarse en otras herramientas
    • Rendimiento: es difícil incorporar técnicas avanzadas de optimización
  • Desarrollo de YARP
    • Escrito en C
    • Un Recursive Descent Parser escrito a mano (es la tendencia actual en los principales lenguajes; gcc/golang también cambiaron desde Bison)
    • Se intentó mantener el mismo árbol sintáctico que CRuby, pero se decidió diseñar su propio árbol
    • Puede parsear 50 mil archivos Ruby de Shopify en solo 4.49 segundos (memoria pico de 10.94Mb)
  • A futuro
    • Planean integrar YARP en varios runtimes de Ruby
    • Seguirán mejorando la velocidad, el uso de memoria y la precisión
    • Matz y el equipo de CRuby acordaron incluirlo como librería en Ruby 3.3 (previsto para lanzarse este diciembre)
  • YARP: Yet Another Ruby Parser

Aún no hay comentarios.

Aún no hay comentarios.