BT

Sumário sobre Compatibilidade de bibliotecas Ruby 1.9.1

por Werner Schuster , traduzido por Felipe Rodrigues em 16 Fev 2009 |

Ruby 1.9.1 é o primeiro release estável da série 1.9.x e traz, dentre várias melhorias da linguagem e suas bibliotecas padrão, aumento significante de performance.

Entretando, compatibilidade com código existente pode ser uma barreira quando se está migrando para o 1.9.1. Há diferentes razões para isso. O gem ParseTree, por exemplo, não está disponível porque a nova VM Ruby não mantém um parsetree Ruby após ter parseado o código fonte e compilado em bytecode. Um substituto parcial está disponível na biblioteca Ripper incluida no download do 1.9.x (MacRuby, por exemplo, usa o Ripper para parsear código Ruby para alguns propósitos.). Bibliotecas que somente requerem parsing de código fonte podem superar isso com o Ripper ou com o ruby_parser.
Outra razão em potencial para problemas de compatibilidade são as mudanças súbtas na semântica da linguagem, como variáveis de blocos que agora tem escopo bem definido, bem como outras mudanças.

Qualquer que seja a razão, o release 1.9 em 2007 e agora o release 1.9.1 chamou a atenção para preparar as bibliotecas para o 1.9.x.

De acordo com muitos relatórios, o Rails 2.3 (ou Rails Edge) parece ser compatível com o 1.9.x, já que releases anteriores não parecem sofrer com isso. Ryan Bigg detalhou uma lista de problemas que teve usando o Rails no Ruby 1.9.1. O blog do Phusion Passenger relata que sua mais recente versão é compatível com o 1.9.1 e detalha quais bibliotecas devem ser atualizadas para fazê-lo funcionar. Alguns database adapters estão prontos, como o release 2.8.1 do MySQL adapter que funcoina com o Ruby 1.9.1.

Uma solução interessante para determinar informações de compatibilidade está disponível no http://isitruby19.com/. O site lista Gems Ruby e permite aos usuários relatar suas experiências com compatibilidade. Uma funcionalidade interessante é uma barra verde e vermelha ao lado do nome do Gem, que mostra o número de usuários que relataram o sucesso ou falha daquele Gem no 1.9.
Os resultados devem ser com um pouco de desconfiança, principalmente aqueles Gems com relato de apenas um usuário. No momento da publicação desta notícia, o estava relatado que o Gem ParseTree estava "funcionando", informação contradita por uma mensagem de Ryan Davis, o criador do ParseTree. Também, um rápido teste em executar o ParseTree em uma instâncias do Ruby 1.9.1 falhava com

parse_tree.rb:3:in `': ParseTree doesn't work with ruby 1.9.1 

De qualquer forma, http://isitruby19.com é o lugar para começar quando estiver procurando por respostas de compatibilidade.

O que o está impedindo de migrar para o Ruby 1.9.1?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT