Ruby 3.2 lançado com suporte WebAssembly

Ruby 3.2 lançado com suporte WebAssembly
Linguagem de programação Ruby 3.1 lançada com compilador JIT Speedy

O novo Ruby 3.2 acaba de ser lançado com suporte WebAssembly. Além disso, vem com YJIT de nível de produção. Os desenvolvedores da linguagem de programação Ruby lançaram uma versão de Natal da mais recente iteração dessa linguagem focada em simplicidade e produtividade.

Com o lançamento do Ruby 3.2 de agora, há uma porta inicial para o WebAssembly usando o WebAssembly System Interface (WASI). Essa porta WASM permite que o Ruby seja executado em um navegador da Web e em outros ambientes baseados em WASM. O suporte WebAssembly/WASI com Ruby parece estar em boa forma para sua estréia inicial, mas com alguns recursos ainda a serem implementados.

Ruby 3.2 lançado com suporte WebAssembly

A outra grande mudança com o Ruby 3.2 é o compilador YJIT agora considerado pronto para produção com a tag “experimental” removida. Ruby introduziu o YJIT no ano passado como um compilador JIT rápido e em processo. 

O YJIT do Ruby atualmente oferece suporte às plataformas x86_64 e AArch64 no Linux, macOS, BSD e outras plataformas Unix. Com a atualização v3.2, agora também há suporte para YJIT no Apple M1/M2, AWS Graviton, Raspberry Pi 4 e outros hardwares. Ruby 3.2 YJIT também é muito mais rápido que Ruby 3.1 e também usa muito menos sobrecarga de memória.

Ruby 3.2 também tem melhorias em sua implementação de regexp, o recurso de sintaxe_suggest foi integrado ao Ruby, ErrorHighlight agora é mais robusto e uma variedade de outros refinamentos de linguagem.

Suporte WebAssembly baseado em WASI

Esta é uma porta inicial do suporte WebAssembly baseado em WASI. Isso permite que um binário CRuby esteja disponível em um navegador da Web, um ambiente Serverless Edge ou outros tipos de incorporadores WebAssembly/WASI. Atualmente, esta porta passa nos conjuntos de testes básicos e de bootstrap sem usar a API Thread.

Downloads e mais informações sobre o lançamento do Ruby 3.2 podem ser encontrados em Ruby-Lang.org.