Yukihiro “Matz” Matsumoto, o criador do Ruby, está trabalhando no Spinel — um compilador ahead-of-time (AOT) que transforma código-fonte Ruby em executáveis nativos independentes. Ele o apresentou na RubyKaigi 2026 com uma demonstração ao vivo, e os resultados são impressionantes: 11,6x mais rápido que o miniruby nos benchmarks, com cargas de trabalho intensivas em computação alcançando ganhos de 24–87x.
Como funciona
O pipeline de compilação do Spinel tem três estágios:
- Parsing — um binário em C (
spinel_parse) usa o libprism para fazer o parsing do Ruby e serializar a AST. - Geração de código — um binário Ruby auto-hospedado (
spinel_codegen) realiza inferência de tipos de programa inteiro e gera C otimizado. - Compilação — um compilador C padrão produz um binário independente, sem dependências de runtime além de libc e libm.
A parte de auto-hospedagem é o detalhe mais interessante. O backend do compilador é um arquivo Ruby de 21.000 linhas que o próprio Spinel compila em um binário nativo. O compilador compila a si mesmo.
O Spinel foi originalmente implementado em C (18 mil linhas, branch c-version), depois reescrito em Ruby (branch ruby-v1) e, por fim, reescrito em um subconjunto de Ruby auto-hospedado (master atual).
O que ele suporta
O Spinel cobre um subconjunto substancial do Ruby: classes, herança, mixins, pattern matching, exceções, blocos, lambdas, concorrência baseada em fiber e os tipos de dados centrais que você esperaria (strings, arrays, hashes, ranges, regexes, bigints com promoção automática).
O que ele deliberadamente exclui diz muito sobre a filosofia de design: sem eval, sem send, sem method_missing, sem define_method, sem threads. Esses são os recursos que tornam o Ruby quase impossível de compilar de forma eficiente — cada call site se torna um possível despacho para qualquer lugar. Ao traçar uma linha clara, o Spinel pode realizar otimizações agressivas que uma implementação geral de Ruby não consegue.
Construído com IA em ~1 mês
De acordo com a discussão no Hacker News, Matz desenvolveu o Spinel com assistência de IA em aproximadamente um mês. Um comentarista resumiu bem: “A IA transformará programadores 10x em programadores 100x. Ou, no caso do Matz, talvez programadores 100x em programadores 500x.” O arquivo de geração de código de 21.000 linhas é produto dessa colaboração — ambicioso em escopo, gerado a um ritmo que seria incomum sem ferramentas de IA.
Onde ele se encaixa
O Spinel não é um substituto para o CRuby. Ele está mais para o que o PreScheme era para o Scheme — um subconjunto compilável projetado para casos de uso específicos. Se o seu código Ruby evita metaprogramação pesada, o Spinel poderia transformá-lo em um binário rápido e livre de dependências. Pense em ferramentas de CLI, scripts de processamento de dados e tarefas intensivas em computação, onde tempo de inicialização e throughput importam.