diff --git a/pt/news/_posts/2024-10-28-redos-rexml-cve-2024-49761.md b/pt/news/_posts/2024-10-28-redos-rexml-cve-2024-49761.md new file mode 100644 index 0000000000..34cfce30b4 --- /dev/null +++ b/pt/news/_posts/2024-10-28-redos-rexml-cve-2024-49761.md @@ -0,0 +1,31 @@ +--- +layout: news_post +title: "CVE-2024-49761: Vulnerabilidade ReDoS na REXML" +author: "kou" +translator: nbluis +date: 2024-10-28 03:00:00 +0000 +tags: security +lang: pt +--- + +Existe uma vulnerabilidade ReDoS na gem REXML. Esta vulnerabilidade foi atribuída ao identificador CVE [CVE-2024-49761](https://www.cve.org/CVERecord?id=CVE-2024-49761). Recomendamos fortemente a atualização da gem REXML. + +Isso não acontece com Ruby 3.2 ou posterior. Ruby 3.1 é a única versão mantida afetada. Note que Ruby 3.1 atingirá EOL em 2025-03. + +## Detalhes + +Ao analisar um XML que possui muitos dígitos entre `&#` e `x...;` em uma referência de caractere numérico hexadecimal (`&#x...;`). + +Por favor, atualize a gem REXML para a versão 3.3.9 ou posterior. + +## Versões afetadas + +* Gem REXML 3.3.8 ou anterior com Ruby 3.1 ou anterior + +## Créditos + +Agradecimentos a [manun](https://hackerone.com/manun) por descobrir este problema. + +## Histórico + +* Publicado originalmente em 2024-10-28 03:00:00 (UTC) diff --git a/pt/news/_posts/2024-10-30-ruby-3-2-6-released.md b/pt/news/_posts/2024-10-30-ruby-3-2-6-released.md new file mode 100644 index 0000000000..6e07ffd96e --- /dev/null +++ b/pt/news/_posts/2024-10-30-ruby-3-2-6-released.md @@ -0,0 +1,42 @@ +--- +layout: news_post +title: "Ruby 3.2.6 Lançado" +author: nagachika +translator: nbluis +date: 2024-10-30 10:00:00 +0000 +lang: pt +--- + +Ruby 3.2.6 foi lançado. + +Por favor, consulte os [lançamentos no GitHub](https://github.com/ruby/ruby/releases/tag/v3_2_6) para mais detalhes. + +## Download + +{% assign release = site.data.releases | where: "version", "3.2.6" | first %} + +* <{{ release.url.gz }}> + + TAMANHO: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + TAMANHO: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + TAMANHO: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## Comentário do Lançamento + +Muitos committers, desenvolvedores e usuários que forneceram relatórios de bugs nos ajudaram a fazer este lançamento. +Obrigado pelas suas contribuições. diff --git a/pt/news/_posts/2024-11-05-ruby-3-3-6-released.md b/pt/news/_posts/2024-11-05-ruby-3-3-6-released.md new file mode 100644 index 0000000000..f3191cd0d9 --- /dev/null +++ b/pt/news/_posts/2024-11-05-ruby-3-3-6-released.md @@ -0,0 +1,50 @@ +--- +layout: news_post +title: "Ruby 3.3.6 Lançado" +author: k0kubun +translator: nbluis +date: 2024-11-05 04:25:00 +0000 +lang: pt +--- + +Ruby 3.3.6 foi lançado. + +Esta é uma atualização de rotina que inclui correções de bugs menores. +Esta versão também para de notificar sobre a ausência de dependências de gems padrões que serão incorporadas no Ruby 3.5. +Para mais detalhes, por favor, consulte [as notas de lançamento no GitHub](https://github.com/ruby/ruby/releases/tag/v3_3_6). + +## Cronograma de Lançamento + +Conforme [anunciado](https://www.ruby-lang.org/en/news/2024/07/09/ruby-3-3-4-released/) anteriormente, pretendemos lançar a versão estável mais recente do Ruby (atualmente Ruby 3.3) a cada 2 meses após um lançamento `.1`. + +Esperamos lançar o Ruby 3.3.7 em 7 de janeiro. Se surgirem mudanças significativas que impactem um grande número de usuários, podemos lançar uma nova versão antes do previsto. + +## Download + +{% assign release = site.data.releases | where: "version", "3.3.6" | first %} + +* <{{ release.url.gz }}> + + TAMANHO: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + TAMANHO: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + TAMANHO: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## Comentário sobre o Lançamento + +Muitos committers, desenvolvedores e usuários que forneceram relatórios de bugs nos ajudaram a fazer este lançamento. +Obrigado pelas suas contribuições. diff --git a/pt/news/_posts/2024-12-12-ruby-3-4-0-rc1-released.md b/pt/news/_posts/2024-12-12-ruby-3-4-0-rc1-released.md new file mode 100644 index 0000000000..45c8277a4e --- /dev/null +++ b/pt/news/_posts/2024-12-12-ruby-3-4-0-rc1-released.md @@ -0,0 +1,189 @@ +--- +layout: news_post +title: "Ruby 3.4.0 rc1 Lançado" +author: "naruse" +translator: nbluis +date: 2024-12-12 00:00:00 +0000 +lang: pt +--- + +{% assign release = site.data.releases | where: "version", "3.4.0-rc1" | first %} +Estamos felizes em anunciar o lançamento do Ruby {{ release.version }}. + +## Prism + +Alterado o parser padrão de parse.y para Prism. [[Feature #20564]] + +## GC Modular + +* Implementações alternativas de garbage collector (GC) podem ser carregadas dinamicamente + através do recurso de garbage collector modular. Para habilitar este recurso, + configure o Ruby com `--with-modular-gc` no momento da compilação. Bibliotecas de GC podem ser + carregadas em tempo de execução usando a variável de ambiente `RUBY_GC_LIBRARY`. + [[Feature #20351]] + +* O garbage collector embutido do Ruby foi dividido em um arquivo separado em + `gc/default/default.c` e interage com o Ruby usando uma API definida em + `gc/gc_impl.h`. O garbage collector embutido agora também pode ser compilado como uma + biblioteca usando `make modular-gc MODULAR_GC=default` e habilitado usando a + variável de ambiente `RUBY_GC_LIBRARY=default`. [[Feature #20470]] + +* Uma biblioteca experimental de GC é fornecida com base no [MMTk](https://www.mmtk.io/). + Esta biblioteca de GC pode ser compilada usando `make modular-gc MODULAR_GC=mmtk` e + habilitada usando a variável de ambiente `RUBY_GC_LIBRARY=mmtk`. Isso requer + a ferramenta Rust na máquina de compilação. [[Feature #20860]] + +## Mudanças na linguagem + +* Literais de string em arquivos sem um comentário `frozen_string_literal` agora emitem um aviso de descontinuação + quando são mutados. + Esses avisos podem ser habilitados com `-W:deprecated` ou configurando `Warning[:deprecated] = true`. + Para desativar essa mudança, você pode executar o Ruby com o argumento de linha de comando `--disable-frozen-string-literal`. [[Feature #20205]] + +* `it` foi adicionado para referenciar um parâmetro de bloco. [[Feature #18980]] + +* O splatting de palavra-chave `nil` ao chamar métodos agora é suportado. + `**nil` é tratado de maneira semelhante a `**{}`, não passando palavras-chave, + e não chamando nenhum método de conversão. [[Bug #20064]] + +* Passagem de bloco não é mais permitida em índice. [[Bug #19918]] + +* Argumentos de palavra-chave não são mais permitidos em índice. [[Bug #20218]] + +## YJIT + +TL;DR: +* Melhor desempenho na maioria dos benchmarks em plataformas x86-64 e arm64. +* Uso reduzido de memória de metadados de compilação +* Várias correções de bugs. YJIT agora é ainda mais robusto e melhor testado. + +Novos recursos: +* Adiciona limite de memória unificado via opção de linha de comando `--yjit-mem-size` (padrão 128MiB) + que rastreia o uso total de memória do YJIT e é mais intuitivo do que o + antigo `--yjit-exec-mem-size`. +* Mais estatísticas agora sempre disponíveis via `RubyVM::YJIT.runtime_stats` +* Adiciona log de compilação para rastrear o que é compilado via `--yjit-log` + * Final do log também disponível em tempo de execução via `RubyVM::YJIT.log` +* Adiciona suporte para constantes compartilháveis em modo multi-ractor +* Agora pode rastrear saídas contadas com `--yjit-trace-exits=COUNTER` + +Novas otimizações: +* Contexto comprimido reduz a memória necessária para armazenar metadados do YJIT +* Alocador aprimorado com capacidade de alocar registradores para variáveis locais +* Quando o YJIT está habilitado, use mais primitivas Core escritas em Ruby: + * `Array#each`, `Array#select`, `Array#map` reescritos em Ruby para melhor desempenho [[Feature #20182]]. +* Capacidade de inline de métodos pequenos/triviais, como: + * Métodos vazios + * Métodos que retornam uma constante + * Métodos que retornam `self` + * Métodos que retornam diretamente um argumento +* Geração de código especializada para muitos mais métodos em tempo de execução +* Otimiza `String#getbyte`, `String#setbyte` e outros métodos de string +* Otimiza operações bitwise para acelerar a manipulação de bits/bytes de baixo nível +* Várias outras otimizações incrementais + +## Atualizações das classes principais + +Nota: Estamos listando apenas atualizações notáveis das classes principais. + +* Exception + + * `Exception#set_backtrace` agora aceita um array de `Thread::Backtrace::Location`. + `Kernel#raise`, `Thread#raise` e `Fiber#raise` também aceitam este novo formato. [[Feature #13557]] + +* Range + + * `Range#size` agora levanta `TypeError` se o intervalo não for iterável. [[Misc #18984]] + +## Problemas de compatibilidade + +Nota: Excluindo correções de bugs. + +* As mensagens de erro e exibições de backtrace foram alteradas. + * Usa uma aspa simples em vez de um acento grave como uma aspa de abertura. [[Feature #16495]] + * Exibe o nome de classe antes de um nome de método (somente quando a classe tiver um nome permanente). [[Feature #19117]] + * `Kernel#caller`, métodos de `Thread::Backtrace::Location`, etc. também foram alterados de acordo. + + ``` + Antes: + test.rb:1:in `foo': undefined method `time' for an instance of Integer + from test.rb:2:in `
' + + Agora: + test.rb:1:in 'Object#foo': undefined method 'time' for an instance of Integer + from test.rb:2:in '
' + ``` + +## Atualizações da C API + +* `rb_newobj` e `rb_newobj_of` (e macros correspondentes `RB_NEWOBJ`, `RB_NEWOBJ_OF`, `NEWOBJ`, `NEWOBJ_OF`) foram removidos. [[Feature #20265]] +* Removida a função obsoleta `rb_gc_force_recycle`. [[Feature #18290]] + +## Mudanças diversas + +* Passar um bloco para um método que não usa o bloco passado mostrará + um aviso no modo verbose (`-w`). + [[Feature #15554]] + +* Redefinir alguns métodos principais que são especialmente otimizados pelo interpretador + e JIT como `String.freeze` ou `Integer#+` agora emite um aviso de classe de desempenho + (`-W:performance` ou `Warning[:performance] = true`). + [[Feature #20429]] + +Veja lançamentos no GitHub como [Logger](https://github.com/ruby/logger/releases) ou +changelog para detalhes das gems padrão ou gems incluídas. + +Veja [NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md) +ou [logs de commits](https://github.com/ruby/ruby/compare/v3_3_0...{{ release.tag }}) +para mais detalhes. + +Com essas mudanças, [{{ release.stats.files_changed }} arquivos alterados, {{ release.stats.insertions }} inserções(+), {{ release.stats.deletions }} deleções(-)](https://github.com/ruby/ruby/compare/v3_3_0...{{ release.tag }}#file_bucket) +desde Ruby 3.3.0! + +## Download + +* <{{ release.url.gz }}> + + TAMANHO: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + TAMANHO: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + TAMANHO: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## 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. + +[Feature #13557]: https://bugs.ruby-lang.org/issues/13557 +[Feature #15554]: https://bugs.ruby-lang.org/issues/15554 +[Feature #16495]: https://bugs.ruby-lang.org/issues/16495 +[Feature #18290]: https://bugs.ruby-lang.org/issues/18290 +[Feature #18980]: https://bugs.ruby-lang.org/issues/18980 +[Misc #18984]: https://bugs.ruby-lang.org/issues/18984 +[Feature #19117]: https://bugs.ruby-lang.org/issues/19117 +[Bug #19918]: https://bugs.ruby-lang.org/issues/19918 +[Bug #20064]: https://bugs.ruby-lang.org/issues/20064 +[Feature #20182]: https://bugs.ruby-lang.org/issues/20182 +[Feature #20205]: https://bugs.ruby-lang.org/issues/20205 +[Bug #20218]: https://bugs.ruby-lang.org/issues/20218 +[Feature #20265]: https://bugs.ruby-lang.org/issues/20265 +[Feature #20351]: https://bugs.ruby-lang.org/issues/20351 +[Feature #20429]: https://bugs.ruby-lang.org/issues/20429 +[Feature #20470]: https://bugs.ruby-lang.org/issues/20470 +[Feature #20564]: https://bugs.ruby-lang.org/issues/20564 +[Feature #20860]: https://bugs.ruby-lang.org/issues/20860 diff --git a/pt/news/_posts/2024-12-25-ruby-3-4-0-released.md b/pt/news/_posts/2024-12-25-ruby-3-4-0-released.md new file mode 100644 index 0000000000..4baff89108 --- /dev/null +++ b/pt/news/_posts/2024-12-25-ruby-3-4-0-released.md @@ -0,0 +1,343 @@ +--- +layout: news_post +title: "Ruby 3.4.0 Lançado" +author: "naruse" +translator: nbluis +date: 2024-12-25 00:00:00 +0000 +lang: pt +--- + +{% assign release = site.data.releases | where: "version", "3.4.0" | first %} +Estamos felizes em anunciar o lançamento do Ruby {{ release.version }}. Ruby 3.4 adiciona a referência de parâmetro de bloco `it`, +altera o Prism como parser padrão, adiciona suporte ao Happy Eyeballs Versão 2 na biblioteca de socket, melhora o YJIT, +adiciona GC Modular, e muito mais. + +## `it` é introduzido + +`it` foi adicionado para referenciar um parâmetro de bloco sem nome de variável. [[Feature #18980]] + +```ruby +ary = ["foo", "bar", "baz"] + +p ary.map { it.upcase } #=> ["FOO", "BAR", "BAZ"] +``` + +`it` se comporta de maneira muito semelhante a `_1`. Quando a intenção é usar apenas `_1` em um bloco, a possibilidade de outros parâmetros numerados como `_2` aparecer impõe uma carga cognitiva extra aos leitores. Então `it` foi introduzido como um alias prático. Use `it` em casos simples onde `it` representa itself, como em blocos de uma linha. + +## Prism agora é o parser padrão + +Alteração do parser padrão de parse.y para Prism. [[Feature #20564]] + +Esta é uma melhoria interna e deve haver pouca mudança visível para o usuário. Se você notar algum problema de compatibilidade, por favor, reporte para nós. + +Para usar o parser convencional, use o argumento de linha de comando `--parser=parse.y`. + +## A biblioteca de socket agora possui Happy Eyeballs Versão 2 (RFC 8305) + +A biblioteca de socket agora possui [Happy Eyeballs Version 2 (RFC 8305)](https://datatracker.ietf.org/doc/html/rfc8305), a versão padronizada mais recente de uma abordagem amplamente adotada para melhor conectividade em muitas linguagens de programação, em `TCPSocket.new` (`TCPSocket.open`) e `Socket.tcp`. +Esta melhoria permite que o Ruby forneça conexões de rede eficientes e confiáveis, adaptadas aos ambientes modernos da internet. + +Até o Ruby 3.3, esses métodos realizavam a resolução de nomes e tentativas de conexão de forma serial. Com este algoritmo, eles agora operam da seguinte forma: + +1. Realiza a resolução de nomes IPv6 e IPv4 simultaneamente +2. Tenta conexões com os endereços IP resolvidos, priorizando IPv6, com tentativas paralelas escalonadas em intervalos de 250ms +3. Retorna a primeira conexão bem-sucedida enquanto cancela quaisquer outras + +Isso garante atrasos mínimos de conexão, mesmo se um protocolo específico ou endereço IP estiver atrasado ou indisponível. +Este recurso é habilitado por padrão, portanto, configuração adicional não é necessária para usá-lo. Para desativá-lo globalmente, defina a variável de ambiente `RUBY_TCP_NO_FAST_FALLBACK=1` ou chame `Socket.tcp_fast_fallback=false`. Ou para desativá-lo em um método específico, use o argumento `fast_fallback: false`. + +## YJIT + +### TL;DR + +* Melhor desempenho na maioria dos benchmarks em plataformas x86-64 e arm64. +* Uso reduzido de memória através de metadados comprimidos e um limite de memória unificado. +* Várias correções de bugs: YJIT agora é mais robusto e testado exaustivamente. + +### Novos recursos + +* Opções de linha de comando + * `--yjit-mem-size` introduz um limite de memória unificado (padrão 128MiB) para rastrear o uso total de memória do YJIT, + fornecendo uma alternativa mais intuitiva à antiga opção `--yjit-exec-mem-size`. + * `--yjit-log` habilita um log de compilação para rastrear o que é compilado. +* API Ruby + * `RubyVM::YJIT.log` fornece acesso ao final do log de compilação em tempo de execução. +* Estatísticas do YJIT + * `RubyVM::YJIT.runtime_stats` agora sempre fornece estatísticas adicionais sobre + invalidação, inlining e codificação de metadados. + +### Novas otimizações + +* Contexto comprimido reduz a memória necessária para armazenar metadados do YJIT +* Alocar registradores para variáveis locais e argumentos de métodos Ruby +* Quando o YJIT está habilitado, usa mais primitivas Core escritas em Ruby: + * `Array#each`, `Array#select`, `Array#map` reescritos em Ruby para melhor desempenho [[Feature #20182]]. +* Capacidade de inline de métodos pequenos/triviais, como: + * Métodos vazios + * Métodos que retornam uma constante + * Métodos que retornam `self` + * Métodos que retornam diretamente um argumento +* Geração de código especializada para muitos mais métodos em tempo de execução +* Otimiza `String#getbyte`, `String#setbyte` e outros métodos de string +* Otimiza operações bitwise para acelerar a manipulação de bits/bytes de baixo nível +* Suporte a constantes compartilháveis em modo multi-ractor +* Várias outras otimizações incrementais + +## Modular GC + +* Implementações alternativas de garbage collector (GC) podem ser carregadas dinamicamente + através do recurso de garbage collector modular. Para habilitar este recurso, + configure o Ruby com `--with-modular-gc` no momento da compilação. Bibliotecas de GC podem ser + carregadas em tempo de execução usando a variável de ambiente `RUBY_GC_LIBRARY`. + [[Feature #20351]] + +* O garbage collector embutido do Ruby foi dividido em um arquivo separado em + `gc/default/default.c` e interage com o Ruby usando uma API definida em + `gc/gc_impl.h`. O garbage collector embutido agora também pode ser compilado como uma + biblioteca usando `make modular-gc MODULAR_GC=default` e habilitado usando a + variável de ambiente `RUBY_GC_LIBRARY=default`. [[Feature #20470]] + +* Uma biblioteca experimental de GC é fornecida com base no [MMTk](https://www.mmtk.io/). + Esta biblioteca de GC pode ser compilada usando `make modular-gc MODULAR_GC=mmtk` e + habilitada usando a variável de ambiente `RUBY_GC_LIBRARY=mmtk`. Isso requer + a ferramenta Rust na máquina de compilação. [[Feature #20860]] + +## Mudanças na linguagem + +* Literais de string em arquivos sem um comentário `frozen_string_literal` agora emitem um aviso de descontinuação + quando são mutados. + Esses avisos podem ser habilitados com `-W:deprecated` ou configurando `Warning[:deprecated] = true`. + Para desativar essa mudança, você pode executar o Ruby com o argumento de linha de comando `--disable-frozen-string-literal`. [[Feature #20205]] + +* O splatting de palavra-chave `nil` ao chamar métodos agora é suportado. + `**nil` é tratado de maneira semelhante a `**{}`, não passando palavras-chave, + e não chamando nenhum método de conversão. [[Bug #20064]] + +* Passagem de bloco não é mais permitida em índice. [[Bug #19918]] + +* Argumentos de palavra-chave não são mais permitidos em índice. [[Bug #20218]] + +* O nome de nível superior `::Ruby` agora está reservado, e a definição será avisada quando `Warning[:deprecated]`. [[Feature #20884]] + +## Atualizações de classes principais + +Nota: Estamos listando apenas atualizações notáveis das classes principais. + +* Exception + + * `Exception#set_backtrace` agora aceita um array de `Thread::Backtrace::Location`. + `Kernel#raise`, `Thread#raise` e `Fiber#raise` também aceitam este novo formato. [[Feature #13557]] + +* GC + + * `GC.config` adicionado para permitir a configuração de variáveis no Garbage + Collector. [[Feature #20443]] + + * Parâmetro de configuração do GC `rgengc_allow_full_mark` introduzido. Quando `false` + o GC marcará apenas objetos jovens. O padrão é `true`. [[Feature #20443]] + +* Ractor + + * `require` em Ractor é permitido. O processo de requisição será executado no + Ractor principal. + `Ractor._require(feature)` é adicionado para executar o processo de requisição no + Ractor principal. [[Feature #20627]] + + * `Ractor.main?` é adicionado. [[Feature #20627]] + + * `Ractor.[]` e `Ractor.[]=` são adicionados para acessar o armazenamento local + do Ractor atual. [[Feature #20715]] + + * `Ractor.store_if_absent(key){ init }` é adicionado para inicializar variáveis locais do ractor + de forma segura para threads. [[Feature #20875]] + +* Range + + * `Range#size` agora levanta `TypeError` se o intervalo não for iterável. [[Misc #18984]] + +## Atualizações da Biblioteca Padrão + +Nota: Estamos listando apenas atualizações notáveis das bibliotecas padrão. + +* RubyGems + * Adicionada a opção `--attestation` ao gem push. Ela permite armazenar a assinatura no [sigstore.dev] + +* Bundler + * Adicionada uma configuração `lockfile_checksums` para incluir checksums em novos arquivos lockfile. + * Adicionado bundle lock `--add-checksums` para adicionar checksums a um arquivo lockfile existente + +* JSON + + * Melhorias de desempenho do `JSON.parse` cerca de 1,5 vezes mais rápido que json-2.7.x. + +* Tempfile + + * O argumento de palavra-chave `anonymous: true` foi implementado para Tempfile.create. + `Tempfile.create(anonymous: true)` remove o arquivo temporário criado imediatamente. + Assim, as aplicações não precisam remover o arquivo. + [[Feature #20497]] + +* win32/sspi.rb + + * Esta biblioteca agora foi extraída do repositório Ruby para [ruby/net-http-sspi]. + [[Feature #20775]] + +## Problemas de compatibilidade + +Nota: Excluindo correções de bugs. + +* As mensagens de erro e exibições de backtrace foram alteradas. + * Usa uma aspa simples em vez de um acento grave como uma aspa de abertura. [[Feature #16495]] + * Exibe o nome de classe antes de um nome de método (somente quando a classe tiver um nome permanente). [[Feature #19117]] + * `Kernel#caller`, métodos de `Thread::Backtrace::Location`, etc. também foram alterados de acordo. + + ``` + Antes: + test.rb:1:in `foo': undefined method `time' for an instance of Integer + from test.rb:2:in `
' + + Agora: + test.rb:1:in 'Object#foo': undefined method 'time' for an instance of Integer + from test.rb:2:in '
' + ``` + +* A renderização de Hash#inspect foi alterada. [[Bug #20433]] + + * Chaves de símbolo são exibidas usando a sintaxe moderna de chave de símbolo: `"{user: 1}"` + * Outras chaves agora têm espaços ao redor de `=>`: `'{"user" => 1}'`, enquanto anteriormente não tinham: `'{"user"=>1}'` + +* Kernel#Float() agora aceita uma string decimal com a parte decimal omitida. [[Feature #20705]] + + ```rb + Float("1.") #=> 1.0 (anteriormente, um ArgumentError era levantado) + Float("1.E-1") #=> 0.1 (anteriormente, um ArgumentError era levantado) + ``` + +* String#to_f agora aceita uma string decimal com a parte decimal omitida. Note que o resultado muda quando um expoente é especificado. [[Feature #20705]] + + ```rb + "1.".to_f #=> 1.0 + "1.E-1".to_f #=> 0.1 (anteriormente, 1.0 era retornado) + ``` + +* Refinement#refined_class foi removido. [[Feature #19714]] + +## Problemas de compatibilidade da biblioteca padrão + +* DidYouMean + + * `DidYouMean::SPELL_CHECKERS[]=` e `DidYouMean::SPELL_CHECKERS.merge!` foram removidos. + +* Net::HTTP + + * Removidas as seguintes constantes obsoletas: + * `Net::HTTP::ProxyMod` + * `Net::NetPrivate::HTTPRequest` + * `Net::HTTPInformationCode` + * `Net::HTTPSuccessCode` + * `Net::HTTPRedirectionCode` + * `Net::HTTPRetriableCode` + * `Net::HTTPClientErrorCode` + * `Net::HTTPFatalErrorCode` + * `Net::HTTPServerErrorCode` + * `Net::HTTPResponseReceiver` + * `Net::HTTPResponceReceiver` + + Essas constantes foram obsoletas desde 2012. + +* Timeout + + * Rejeita valores negativos para Timeout.timeout. [[Bug #20795]] + +* URI + + * Alterado o parser padrão para compatível com RFC 3986 em vez de RFC 2396. + [[Bug #19266]] + +## Atualizações da C API + +* `rb_newobj` e `rb_newobj_of` (e macros correspondentes `RB_NEWOBJ`, `RB_NEWOBJ_OF`, `NEWOBJ`, `NEWOBJ_OF`) foram removidos. [[Feature #20265]] +* Removida a função obsoleta `rb_gc_force_recycle`. [[Feature #18290]] + +## Mudanças diversas + +* Passar um bloco para um método que não usa o bloco passado mostrará + um aviso no modo verbose (`-w`). + [[Feature #15554]] + +* Redefinir alguns métodos principais que são especialmente otimizados pelo interpretador + e JIT como `String.freeze` ou `Integer#+` agora emite um aviso de classe de desempenho + (`-W:performance` ou `Warning[:performance] = true`). + [[Feature #20429]] + +Veja [NEWS](https://docs.ruby-lang.org/en/3.4/NEWS_md.html) +ou [logs de commits](https://github.com/ruby/ruby/compare/v3_3_0...{{ release.tag }}) +para mais detalhes. + +Com essas mudanças, [{{ release.stats.files_changed }} arquivos alterados, {{ release.stats.insertions }} inserções(+), {{ release.stats.deletions }} deleções(-)](https://github.com/ruby/ruby/compare/v3_3_0...{{ release.tag }}#file_bucket) +desde Ruby 3.3.0! + +Feliz Natal, Boas Festas e aproveite a programação com Ruby 3.4! + +## Download + +* <{{ release.url.gz }}> + + TAMANHO: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + TAMANHO: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + TAMANHO: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## 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. + +[Feature #13557]: https://bugs.ruby-lang.org/issues/13557 +[Feature #15554]: https://bugs.ruby-lang.org/issues/15554 +[Feature #16495]: https://bugs.ruby-lang.org/issues/16495 +[Feature #18290]: https://bugs.ruby-lang.org/issues/18290 +[Feature #18980]: https://bugs.ruby-lang.org/issues/18980 +[Misc #18984]: https://bugs.ruby-lang.org/issues/18984 +[Feature #19117]: https://bugs.ruby-lang.org/issues/19117 +[Bug #19266]: https://bugs.ruby-lang.org/issues/19266 +[Feature #19714]: https://bugs.ruby-lang.org/issues/19714 +[Bug #19918]: https://bugs.ruby-lang.org/issues/19918 +[Bug #20064]: https://bugs.ruby-lang.org/issues/20064 +[Feature #20182]: https://bugs.ruby-lang.org/issues/20182 +[Feature #20205]: https://bugs.ruby-lang.org/issues/20205 +[Bug #20218]: https://bugs.ruby-lang.org/issues/20218 +[Feature #20265]: https://bugs.ruby-lang.org/issues/20265 +[Feature #20351]: https://bugs.ruby-lang.org/issues/20351 +[Feature #20429]: https://bugs.ruby-lang.org/issues/20429 +[Feature #20443]: https://bugs.ruby-lang.org/issues/20443 +[Feature #20470]: https://bugs.ruby-lang.org/issues/20470 +[Feature #20497]: https://bugs.ruby-lang.org/issues/20497 +[Feature #20564]: https://bugs.ruby-lang.org/issues/20564 +[Bug #20620]: https://bugs.ruby-lang.org/issues/20620 +[Feature #20627]: https://bugs.ruby-lang.org/issues/20627 +[Feature #20705]: https://bugs.ruby-lang.org/issues/20705 +[Feature #20715]: https://bugs.ruby-lang.org/issues/20715 +[Feature #20775]: https://bugs.ruby-lang.org/issues/20775 +[Bug #20795]: https://bugs.ruby-lang.org/issues/20795 +[Bug #20433]: https://bugs.ruby-lang.org/issues/20433 +[Feature #20860]: https://bugs.ruby-lang.org/issues/20860 +[Feature #20875]: https://bugs.ruby-lang.org/issues/20875 +[Feature #20884]: https://bugs.ruby-lang.org/issues/20884 +[sigstore.dev]: https://www.sigstore.dev +[ruby/net-http-sspi]: https://github.com/ruby/net-http-sspi diff --git a/pt/news/_posts/2024-12-25-ruby-3-4-1-released.md b/pt/news/_posts/2024-12-25-ruby-3-4-1-released.md new file mode 100644 index 0000000000..1ef49837b7 --- /dev/null +++ b/pt/news/_posts/2024-12-25-ruby-3-4-1-released.md @@ -0,0 +1,39 @@ +--- +layout: news_post +title: "Ruby 3.4.1 Lançado" +author: "naruse" +translator: nbluis +date: 2024-12-25 00:00:00 +0000 +lang: pt +--- + +Ruby 3.4.1 foi lançado. + +Isso corrige a descrição da versão. + +Veja os [lançamentos no GitHub](https://github.com/ruby/ruby/releases/tag/v3_4_1) para mais detalhes. + +## Download + +{% assign release = site.data.releases | where: "version", "3.4.1" | first %} + +* <{{ release.url.gz }}> + + TAMANHO: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + TAMANHO: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + TAMANHO: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} diff --git a/pt/news/_posts/2025-01-15-ruby-3-3-7-released.md b/pt/news/_posts/2025-01-15-ruby-3-3-7-released.md new file mode 100644 index 0000000000..8d450c94fd --- /dev/null +++ b/pt/news/_posts/2025-01-15-ruby-3-3-7-released.md @@ -0,0 +1,43 @@ +--- +layout: news_post +title: "Ruby 3.3.7 Lançado" +author: k0kubun +translator: nbluis +date: 2025-01-15 07:51:59 +0000 +lang: pt +--- + +Ruby 3.3.7 foi lançado. + +Esta é uma atualização de rotina que inclui correções de bugs menores. +Por favor, consulte [as notas de lançamento no GitHub](https://github.com/ruby/ruby/releases/tag/v3_3_7) para mais detalhes. + +## Download + +{% assign release = site.data.releases | where: "version", "3.3.7" | first %} + +* <{{ release.url.gz }}> + + TAMANHO: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + TAMANHO: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + TAMANHO: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## Comentário sobre o Lançamento + +Muitos committers, desenvolvedores e usuários que forneceram relatórios de bugs nos ajudaram a fazer este lançamento. +Obrigado pelas suas contribuições.