Ir para o conteúdo
ou

Software livre Brasil

Tela cheia Sugerir um artigo
 Feed RSS

Noticias do Ruby

7 de Julho de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

As notícias mais recentes do Ruby-Lang em Português.


Lançado Ruby 2.7.2

2 de Outubro de 2020, 11:00, por Notícias sobre Ruby - 0sem comentários ainda

Ruby 2.7.2 foi lançado.

Esta versão contém incompatibilidade intencional. Alertas de depreciação estão desativadas por padrão no 2.7.2 em diante. Você pode ativar esses alertas de depreciação especificando as opções -w ou -W:deprecated na linha de comando. Por favor, veja os tópicos abaixo para detalhes.

Esta versão contém a nova versão de webrick com uma correção de seguração descrita neste artigo.

Veja commit logs para outras alterações.

Download

  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.bz2

    SIZE: 14708724
    SHA1: 7e30ca324464eab2f4c2a56d8ab4a37174998062
    SHA256: 65a590313d244d48dc2ef9a9ad015dd8bc6faf821621bbb269aa7462829c75ed
    SHA512: f07592cce4de3532c0fa1c84d53a134527d28ba95e310cd3487ac321c49ee680faeace285de544ee6db432a90aa7538a1d49ff10c72b235968ca362ef9be621d
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.gz

    SIZE: 16836767
    SHA1: cb9731a17487e0ad84037490a6baf8bfa31a09e8
    SHA256: 6e5706d0d4ee4e1e2f883db9d768586b4d06567debea353c796ec45e8321c3d4
    SHA512: e80dc16b60149d0d6fedf0ba7b556ae460ff328ee63e9d9e41f5021f67addcc98159cb27bddccaebd6e4b1cddf29266f1c01c32d9ec8bb665aed63c0a2295f2f
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.xz

    SIZE: 12037052
    SHA1: 82a1fe683460caa8edb6199707f2905634e5ffcc
    SHA256: 1b95ab193cc8f5b5e59d2686cb3d5dcf1ddf2a86cb6950e0b4bdaae5040ec0d6
    SHA512: 7972278b096aa768c7adf2befd26003e18781a29ca317640317d30d93d6e963ded197724c8e2f1dfe1e838c5647176d414a74732a62e931fb50d6f2e0f777349
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.zip

    SIZE: 20618242
    SHA1: 9acee3d4e9399c3a2ddc2dd078dd2ee26327cc8f
    SHA256: c6b8597e5414f2b01a7cb25095319f2b0e780c95a98fee1ccf1ef022acf93dcc
    SHA512: 5f3a8d78bbd3d9700e5f0434d0cec2072816c02f5d5b55f24d4f9f0621c0c89f796e9ada32ed65f052a321845dd29709a1b76170c7dd0250bea6f8c18953a366
    

Comentário de Versão

Obrigado às várias pessoas que fizeram commits, pessoas desenvolvedoras e usuárias que informaram bugs e contribuíram para que esta versão fosse possível.

Escrito por nagachika em 02/10/2020
Traduzido por jcserracampos



CVE-2020-25613: Potencial Vulnerabilidade de Smuggling de Requisições HTTP no WEBrick

29 de Setembro de 2020, 6:30, por Notícias sobre Ruby - 0sem comentários ainda

Uma potencial vulnerabilidade de smuggling de requisições HTTP no WEBrick foi reportada. Essa vulnerabilidade recebeu o identificador CVE CVE-2020-25613. Nós recomendamos fortemente que atualize a gem webrick.

Detalhes

WEBrick era muito tolerante contra um cabeçalho Transfer-Encoding inválido. Isso pode levar interpretações inconsistentes entre WEBrick e alguns servidores de proxy HTTP, o que pode poermite que uma pessoa atacante “contrabandeie” uma requisição. Veja CWE-444 em detalhes.

Por favor, atualiaze a gem webrick para a versão 1.6.1 ou superior. Você pode usar gem update webrick para atualizá-la. Se você está usando bundle, por favor, adicione gem "webrick", ">= 1.6.1" ao seu Gemfile.

Versões afetadas

  • webrick gem 1.6.0 ou inferior
  • versões empacotadas de webrick no ruby 2.7.1 ou inferior
  • versões empacotadas de webrick no ruby 2.6.6 ou inferior
  • versões empacotadas de webrick no ruby 2.5.8 ou inferior

Créditos

Agradecimentos a piao por ter descoberto este problema.

Histórico

  • Originalmente publicado em 2020-09-29 06:30:00 (UTC)

Escrito por mame em 29/09/2020
Traduzido por jcserracampos



Lançado Ruby 3.0.0 Preview 1

25 de Setembro de 2020, 0:00, por Notícias sobre Ruby - 0sem comentários ainda

Temos o prazer de anunciar o lançamento do Ruby 3.0.0-preview1.

Ele apresenta uma série de novos recursos e melhorias de desempenho.

RBS

RBS é uma linguagem para descrever os tipos de programas Ruby. Os verificadores de tipo, incluindo criador de perfil de tipos e outras ferramentas de suporte ao RBS, compreenderão os programas Ruby muito melhor com as definições do RBS.

Você pode escrever a definição de classes e módulos: métodos definidos na classe, variáveis de instância e seus tipos e relações de herança / mix-in. O objetivo do RBS é oferecer suporte a padrões comumente vistos em programas Ruby e permite escrever tipos avançados, incluindo tipos de união, sobrecarga de método e genéricos. Ele também oferece suporte à duck typing com tipos de interface.

Ruby 3.0 vem com gem rbs, que permite analisar e processar definições de tipo escritas em RBS.

A seguir está um pequeno exemplo de RBS.

module ChatApp
  VERSION: String

  class Channel
    attr_reader name: String
    attr_reader messages: Array[Message]
    attr_reader users: Array[User | Bot]              # `|` significa união de tipos, `User` ou `Bot`.

    def initialize: (String) -> void

    def post: (String, from: User | Bot) -> Message   # Sobrecarga de método é suportada.
            | (File, from: User | Bot) -> Message
  end
end

Veja README da gem rbs para mais detalhes.

Ractor (experimental)

Ractor é uma abstração concorrente semelhante a um modelo de ator, projetada para fornecer um recurso de execução paralela sem preocupações com a segurança do thread.

Você pode fazer vários ractores e executá-los em paralelo. Ractor permite fazer programas paralelos thread-safe porque ractors não podem compartilhar objetos normais. A comunicação entre os ractores é apoiada pela troca de mensagens.

Para limitar o compartilhamento de objetos, o Ractor apresenta várias restrições à sintaxe do Ruby (sem vários Ractors, não há mudanças).

A especificação e implementação não estão amadurecidas e serão alteradas no futuro, portanto, esse recurso é marcado como experimental e mostra o aviso de recurso experimental se um Ractor for criado.

O pequeno programa a seguir calcula prime? em paralelo com dois ractores e cerca de x2 vezes mais rápido com dois ou mais núcleos do que o programa sequencial.

require 'prime'

# n.prime? com inteiros r1 e r2 enviados rodando em parelelo
r1, r2 = *(1..2).map do
  Ractor.new do
    n = Ractor.recv
    n.prime?
  end
end

# envio de parâmetros
r1.send 2**61 - 1
r2.send 2**61 + 15

# aguardando os resultados de expr1, expr2
p r1.take #=> true
p r2.take #=> true

Veja doc/ractor.md para mais detalhes.

Scheduler (Experimental)

Thread#scheduler é introduzido para interceptar operações bloqueantes. Isso permite concorrência leve sem alterar o código existente.

Classes/métodos atualmente suportados:

  • Mutex#lock, Mutex#unlocke Mutex#sleep
  • ConditionVariable#wait
  • Queue#pop e SizedQueue#push
  • Thread#join
  • Kernel#sleep
  • IO#wait, IO#read, IO#write e métodos correlatos (ex.: #wait_readable, #gets, #puts etc.).
  • IO#select não é suportado.

O ponto de entrada atual para concorrência é Fiber.schedule {...} no entanto, está sujeito a alterações no momento em que o Ruby 3 for lançado.

Atualmente, existe um agendador de teste disponível em Async::Scheduler. Veja doc/scheduler.md para mais detalhes. [Feature #16786]

cuidado: Este recurso é fortemente experimental. O nome e o recurso serão alterados na próxima versão de prévia.

Outros novos recursos notáveis

  • A instrução de atribuição para a direita foi adicionada.
  fib(10) => x
  p x #=> 55
  
  • A definição de método sem fim foi adicionada.
  def square(x) = x * x
  
  • Find pattern foi adicionada.
  case ["a", 1, "b", "c", 2, "d", "e", "f", 3]
  in [*pre, String => x, String => y, *post]
    p pre  #=> ["a", 1]
    p x    #=> "b"
    p y    #=> "c"
    p post #=> [2, "d", "e", "f", 3]
  end
  
  • Hash#except agora é nativo.
  h = { a: 1, b: 2, c: 3 }
  p h.except(:a) #=> {:b=>2, :c=>3}
  
  • A visualização da memória é adicionada como um recurso experimental

    • Este é um novo conjunto C-API para trocar uma área de memória bruta, como uma matriz numérica e uma imagem de bitmap, entre bibliotecas de extensão. As bibliotecas de extensão também podem compartilhar os metadados da área de memória que consiste na forma, no formato do elemento e assim por diante. Usando esses tipos de metadados, as bibliotecas de extensão podem compartilhar até mesmo uma matriz multidimensional de forma adequada. Este recurso é projetado com referência ao protocolo de buffer do Python.

Melhorias de desempenho

  • Muitas melhorias foram implementadas no MJIT. Veja NEWS em detalhes.

Outras mudanças notáveis desde 2.7

  • Os argumentos de palavra-chave são separados de outros argumentos.
    • Em princípio, códigos que imprimem um aviso no Ruby 2.7 não funciona. Veja o documento em detalhe.
    • A propósito, o encaminhamento de argumentos agora suporta argumentos principais.
    def method_missing(meth, ...)
      send(:"do_#{ meth }", ...)
    end
    
  • O recurso de $SAFE foi completamente removido; agora é uma variável global normal.

  • A ordem de backtrace foi revertida em Ruby 2.5, mas foi cancelada. Agora ele se comporta como Ruby 2.4; uma mensagem de erro e o número da linha onde ocorre a exceção são impressos primeiro e seus chamadores são impressos posteriormente.

  • Algumas bibliotecas padrão são atualizadas.
    • RubyGems 3.2.0.rc.1
    • Bundler 2.2.0.rc.1
    • IRB 1.2.6
    • Reline 0.1.5
  • As seguintes bibliotecas não são mais gem padrão. Instale as gems correspondentes para usar esses recursos.
    • net-telnet
    • xmlrpc
  • Promove gems padrão para gems nativas.
    • rexml
    • rss
  • Promova stdlib para gem padrão. As seguintes gems padrão foram publicadas em rubygems.org
    • abbrev
    • base64
    • English
    • erb
    • find
    • io-nonblock
    • io-wait
    • net-ftp
    • net-http
    • net-imap
    • net-protocol
    • nkf
    • open-uri
    • optparse
    • resolv
    • resolv-replace
    • rinda
    • securerandom
    • set
    • shellwords
    • tempfile
    • time
    • tmpdir
    • tsort
    • weakref

Veja NEWS ou commit logs para mais detalhes.

Com essas mudanças, 3385 arquivos alterados, 150159 inserções(+), 124949 deleções(-) desde Ruby 2.7.0!

Por favor, experimente Ruby 3.0.0-preview1 e nos dê qualquer feedback!

Download

  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0-preview1.tar.bz2

    SIZE: 15538340
    SHA1: 032697f3ace0a697cd72f68bac0032c31a8328d4
    SHA256: 013bdc6e859d76d67a6fcd990d401ed57e6e25896bab96d1d0648a877f556dbb
    SHA512: 3a6a6458d9c5f06555ab8705160f6b071f4dbe9d2a91cd7848852633657b495c480d74e4b2ff2cebddda556118d26bbb271160c989bc970bb1b5cb234e868d2f
    
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0-preview1.tar.gz

    SIZE: 17747808
    SHA1: 2842d2af2568d74c8d4071f5f536889a6b149202
    SHA256: ce8bd7534e7ec2a870b24d2145ea20e9bbe5b2d76b7dfa1102dbee5785253105
    SHA512: b94892951f842a1538f4b99022606ac2c0b5031f1ede7eef3833a8caa9ed63e9b22868509173bfefb406f263c65211db75597b152b61f49e5ba2a875fce63a27
    
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0-preview1.tar.xz

    SIZE: 12703060
    SHA1: 91d9fbe87504924148deeec90199d6ff4d7dcf56
    SHA256: aa7cce0c99f4ea2145fef9b78d74a44857754396790cd23bad75d759811e7a2a
    SHA512: dca5dcc965c434371947c100864090e29e649e19ae24b8bb2e88a534ebd8220c5a086035a999b1e8b1cd5ec154a6985a8d8dfea56095d712d62aeea7a2054f7d
    
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0-preview1.zip

    SIZE: 22002645
    SHA1: 4b5b61066373daf0a947d3fafe2645788504a164
    SHA256: a39a48ed9a8ca2c83d65d225a1bb3db331c6587a77ba156c20e630c1b4bfc23b
    SHA512: 10f6f28715a52093d7d9da82d1678147091b45e2f279e463626adea8efbf181485daa42565e5086057ffb45a097ffb8ff395c572b247b6b5da27d85933cf58a8
    

3.0.0-preview2 trailer

Planejamos incluir [“type-profiler”] (https://github.com/mame/ruby-type-profiler) que é um recurso de análise de tipo estático. Fique ligado!

O que é Ruby

Ruby foi desenvolvido pela primeira vez por Matz (Yukihiro Matsumoto) em 1993, e agora é desenvolvido como Open Source. Ele roda em várias plataformas e é usado em todo o mundo, especialmente para desenvolvimento web.

Escrito por naruse em 25/09/2020
Traduzido por jcserracampos



Competição 2020 Fukuoka Ruby Award - Submissões serão julgadas por Matz

16 de Outubro de 2019, 0:00, por Notícias sobre Ruby - 0sem comentários ainda

Entusiastas de Ruby,

O governo de Fukuoka, Japão, juntamente com “Matz” Matsumoto gostariam de lhe convidar a entrar na seguinte competição de Ruby. Se você desenvolveu algum programa interessante em Ruby, sinta-se, por favor, encorajado(a) a aplicar.

2020 Fukuoka Ruby Award Competition - Grande Prêmio - 1 milhão de ienes!

Prazo para inscrição: 11 de dezembro de 2019

Fukuoka Ruby Award

Matz e um grupo de painelistas selecionarão os(as) vencedores(as) da Fukuoka Competition. O grande prêmio da Fukuoka Competition será 1 milhão de ienes. Ganhedores anteriores incluem Rhomobile (USA) e APEC Climate Center (Korea).

http://myfukuoka.com/category/news/ruby-news/

Programas inscritos na competição não precisam ser escritos inteiramente em Ruby, mas deve se aproveitar das características únicas de Ruby.

Projetos devem ter sido desenvolvidos ou completados nos últimos 12 meses para serem elegíveis. Por favor, visite o seguinte site de Fukuoka para detalhes adicionais e se inscrever:

http://www.digitalfukuoka.jp/events/215 ou http://www.digitalfukuoka.jp/uploads/event_detail/file/536/RubyAward_ApplicationForm_2020.doc

Por favor, envie sua aplicação por e-mail para award@f-ruby.com

“Matz testará e revisará seu código conte, então é muito importante se inscrever. A competição é gratuíta.”

Obrigado!

Escrito por Fukuoka Ruby em 16/10/2019
Traduzido por jcserracampos



Lançado Ruby 2.4.9

2 de Outubro de 2019, 9:00, por Notícias sobre Ruby - 0sem comentários ainda

Ruby 2.4.9 foi lançado.

Esta versão é um reenpacotamento da 2.4.8 porque o tarball da versão Ruby 2.4.8 anterior não instalava. (Veja [Bug #16197] em detalhes.) Essencialmente, não existem mudanças exceto pelo número de versão entre 2.4.8 e 2.4.9.

Ruby 2.4 está sob o estado de fase de manutenção de segurança, até o fim de março de 2020. Depois dessa data, manutenção de Ruby 2.4 será finalizada. Recomendamos que comece a planejar a migração para novas versões de Ruby, como a 2.6 ou 2.5.

Download

  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.9.tar.bz2

    SIZE: 12509600
    SHA1: e47fcae4862b3fa441df2ca7f2f64ad7b37db489
    SHA256: f72bdef50246ef047ba3ce9c59d2081b949feb16f9a04e008108e98f1a995e99
    SHA512: d485444dcd025a261a16bd740dae63c0aa23e4138a095584e7a83aec47af34415c7d9cbc1313e92da2ec416b11bfddf20bb1a7b60c80f12906d11ef27409b3e8
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.9.tar.gz

    SIZE: 14133507
    SHA1: da07b802cf7598547f98b7b2d8fc8ff5f03dbef4
    SHA256: f99b6b5e3aa53d579a49eb719dd0d3834d59124159a6d4351d1e039156b1c6ae
    SHA512: 94aba73f48870b5fdb34f7c9eb0419c0a3b962884df6462ef27e69db306829cad0cfc0ac6b9ba445bcb4282b070b75fcbdb3142af2a744252f25ef0052edf04d
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.9.tar.xz

    SIZE: 10078316
    SHA1: ae41ac14f98073ba9e6e8ba732580a846286261c
    SHA256: 0c4e000253ef7187feeb940a01a1c7594f28d63aa16f978e892a0e2864f58614
    SHA512: 9046575315c29c789427c2d00c832f0c0970e47fd158bbe8e4f2df5cff2ea9c06c65c3493adb4656e5b32ebfdc546092911f98a8ad7f698bc001c290db5888c7
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.9.zip

    SIZE: 15765536
    SHA1: 5fa8a25fda7fb938bbbd45cf2c585a35875118ff
    SHA256: 4ad1c32554319661f2872bb978ff2cd520bc4593681a6476b4c5e7f330172d8b
    SHA512: e87aa613738563572a69ba179f3028994d86bcdc2e990b538aadde87d07aab67ebb7e35a019028cd51187a171368b277b7c79b6cb2e6b3497f0bb9abbe25cfdc
    

Comentário de Versão

Obrigado a todas as pessoas que ajudaram com esta versão.

Escrito por usa em 02/10/2019
Traduzido por jcserracampos



Tags deste artigo: ruby