10 pontos por xguru 2023-06-15 | Ainda não há comentários. | Compartilhar no WhatsApp
  • A Shopify desenvolveu um novo parser de Ruby chamado YARP
  • No estágio atual, ele já consegue fazer o parsing do código principal da Shopify/GitHub e dos 100 gems mais populares do RubyGems da mesma forma
  • A aprovação para merge no CRuby foi concedida
  • Os problemas do parser existente do CRuby podem ser classificados, em linhas gerais, em quatro categorias
    • Manutenibilidade: não há documentação, e ele é complexo, o que dificulta mudanças
    • Tolerância a erros: existe uma pequena margem de tolerância, mas mesmo erros triviais impedem a geração da árvore sintática
    • Portabilidade: o parser é profundamente acoplado ao interior do CRuby, então não pode ser usado em outras ferramentas
    • Desempenho: é difícil introduzir técnicas avançadas de otimização
  • Desenvolvimento do YARP
    • Escrito em C
    • Um Recursive Descent Parser escrito manualmente (é a tendência atual nas principais linguagens; gcc/golang também migraram do Bison)
    • Tentaram manter a mesma árvore sintática do CRuby, mas decidiram projetar uma árvore própria
    • Consegue fazer o parsing de 50 mil arquivos Ruby da Shopify em apenas 4,49 segundos (memória de pico de 10,94 MB)
  • Daqui para frente
    • Está previsto integrar o YARP a vários runtimes Ruby
    • Pretendem continuar melhorando velocidade, uso de memória e precisão
    • Matz e a equipe do CRuby concordaram em incluí-lo como biblioteca no Ruby 3.3 (com lançamento previsto para este dezembro)
  • YARP: Yet Another Ruby Parser

Ainda não há comentários.

Ainda não há comentários.