Skip to content

Commit e4852af

Browse files
committed
Translate Ruby 2.5.0 Released (pt)
1 parent 6ae5e7f commit e4852af

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.5.0 Released"
4+
author: "naruse"
5+
translator: "jcserracampos"
6+
date: 2017-12-25 00:00:00 +0000
7+
lang: pt
8+
---
9+
10+
Temos o prazer de anunciar o lançamento de Ruby 2.5.0.
11+
12+
Ruby 2.5.0 é a primeira versão estável da série Ruby 2.5.
13+
Esta versão introduz muitas novas funcionalidades e melhorias de performance.
14+
As mudanças notáveis são as seguintes:
15+
16+
## Novas funcionalidades
17+
18+
* `rescue`/`else`/`ensure` passam a ser permitidos diretamente em
19+
blocos `do`/`end`.
20+
[[Funcionalidade #12906]](https://bugs.ruby-lang.org/issues/12906)
21+
* Adiciona `yield_self` em um bloco yield no seu contexto.
22+
Ao contrário de `tap`, retorna o resultado do bloco.
23+
[[Funcionalidade #6721]](https://bugs.ruby-lang.org/issues/6721)
24+
* Adiciona suporte a mensuração de cobertura de ramificação e cobertura de método.
25+
A cobertura de ramificação indica quais ramificações (_branches_) são executadas e quais não.
26+
A cobertura de método indica quais métodos são invocados e quais não.
27+
Ao executar uma suíte de testes com essas novas funcionalidades, você saberá quais
28+
ramificações e métodos são executados e mensurará a cobertura total da suíte de
29+
testes mais estritamente.
30+
[[Funcionalidade #13901]](https://bugs.ruby-lang.org/issues/13901)
31+
* Hash#slice [[Funcionalidade #8499]](https://bugs.ruby-lang.org/issues/8499)
32+
e Hash#transform_keys [[Funcionalidade #13583]](https://bugs.ruby-lang.org/issues/13583)
33+
* Struct.new pode criar classes que aceitam _keywords_ como argumento.
34+
[[Funcionalidade #11925]](https://bugs.ruby-lang.org/issues/11925)
35+
* Enumerable#any?, all?, none? e one? passam a aceitar um _pattern_ como argumento.
36+
[[Funcionalidade #11286]](https://bugs.ruby-lang.org/issues/11286)
37+
* Pesquisa de constante de alto nível foi removida.
38+
[[Funcionalidade #11547]](https://bugs.ruby-lang.org/issues/11547)
39+
* Uma das mais amadas bibliotecas, pp.rb, agora é automaticamente carregada.
40+
Você não precisa mais escrever `require "pp"`.
41+
[[Funcionalidade #14123]](https://bugs.ruby-lang.org/issues/14123)
42+
* Imprime _backtrace_ e mensagens de erro em ordem reversa (primeiro as chamadas mais antigas,
43+
chamadas mais recentes por último). Quando um _backtrace_ grande aparece no seu terminal (TTY),
44+
você pode facilmente achar a linha causadora no final do seu _backtrace_.
45+
Perceba que a ordem só é reversa quando o _backtrace_ é imprimido
46+
diretamente no terminal.
47+
[[Funcionalidade #8661]](https://bugs.ruby-lang.org/issues/8661) [experimental]
48+
49+
## Melhorias de performance
50+
51+
* Cerca de 5-10% de melhoria de performance ao remover todas as instruções `trace`
52+
do _bytecode_ geral (sequências de instrução).
53+
The `trace` instruction was added to support the `TracePoint`.
54+
Entretanto, na maioria dos casos, `TracePoint` não é utilizado e instruções `trace`
55+
são sobrecargas puras. Ao invés, nós usamos uma técnica de instrumentação dinâmica.
56+
Veja [[Funcionalidade #14104]](https://bugs.ruby-lang.org/issues/14104) para mais detalhes.
57+
* Passagem de bloco por um parâmetro de bloco (por exemplo `def foo(&b); bar(&b); end`)
58+
está cerca de 3 vezes mais rápida do que no Ruby 2.4 por causa da técnica "_Lazy Proc allocation_".
59+
[[Funcionalidade #14045]](https://bugs.ruby-lang.org/issues/14045)
60+
* Mutex está reescrito para ser menor e mais rápido.
61+
[[Funcionalidade #13517]](https://bugs.ruby-lang.org/issues/13517)
62+
* ERB agora gera código a partir de um template duas vezes mais rápido do que no Ruby 2.4.
63+
* Melhora a performance de alguns métodos internos como `Array#concat`,
64+
`Enumerable#sort_by`, `String#concat`, `String#index`, `Time#+` e mais.
65+
* IO.copy_stream usa copy_file_range(2) para copiar usando offloading.
66+
[[Funcionalidade #13867]](https://bugs.ruby-lang.org/issues/13867)
67+
68+
## Outras mudanças notáveis desde 2.4
69+
70+
* SecureRandom agora prefere fontes fornecidas pelo sistema operacional ao invés de OpenSSL.
71+
[[Bug #9569]](https://bugs.ruby-lang.org/issues/9569)
72+
* Promove cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr,
73+
scanf, sdbm, stringio, strscan, webrick, zlib de bibliotecas padrões
74+
para gems padrões.
75+
* Atualiza para [Onigmo](https://github.com/k-takata/Onigmo/) 6.1.3.
76+
* Adiciona [operador ausente](https://github.com/k-takata/Onigmo/issues/87).
77+
* Note que [Ruby 2.4.1](https://www.ruby-lang.org/en/news/2017/03/22/ruby-2-4-1-released/) também inclui esta mudança.
78+
* Atualiza para Psych 3.0.2.
79+
* Atualiza para RubyGems 2.7.3.
80+
* Atualiza para RDoc 6.0.1.
81+
* [Altera o _lexer_ de um baseado em IRB para Ripper](https://github.com/ruby/rdoc/pull/512).
82+
Isto melhora consideravelmente a velocidade de geração de documentação.
83+
* Corrige uma quantidade significativa de bugs que existiam há 10 anos.
84+
* Adiciona suporte para a nova sintaxe de Ruby desde as últimas mudanças.
85+
* Atualiza a versão suportads de Unicode para 10.0.0.
86+
* `Thread.report_on_exception` agora é definido como `true` por padrão.
87+
Esta alteração ajuda a debugar programas multithreads.
88+
[[Funcionalidade #14143]](https://bugs.ruby-lang.org/issues/14143)
89+
* IO#write agora recebe múltiplos argumentos.
90+
[[Funcionalidade #9323]](https://bugs.ruby-lang.org/issues/9323)
91+
92+
Veja as [novidades](https://github.com/ruby/ruby/blob/v2_5_0/NEWS)
93+
ou [histórico de commits](https://github.com/ruby/ruby/compare/v2_4_0...v2_5_0)
94+
para detalhes.
95+
96+
Com essas mudanças,
97+
[6158 arquivos alterados, 348484 inserções(+), 82747 remoções(-)](https://github.com/ruby/ruby/compare/v2_4_0...v2_5_0)
98+
desde Ruby 2.4.0!
99+
100+
Feliz natal, feliz ano novo e divirta-se programando com Ruby 2.5!
101+
102+
## Download
103+
104+
* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz>
105+
106+
SIZE: 15834941 bytes
107+
SHA1: 58f77301c891c1c4a08f301861c26b1ea46509f6
108+
SHA256: 46e6f3630f1888eb653b15fa811d77b5b1df6fd7a3af436b343cfe4f4503f2ab
109+
SHA512: 0712fe68611f5d0cd6dd54b814f825478e64b6a62bdf67bce431f4dca2dc00b1a33f77bebfbcd0a151118a1152554ab457decde435b424aa1f004bc0aa40580d
110+
111+
* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.zip>
112+
113+
SIZE: 19495617 bytes
114+
SHA1: 700b6f55d689a5c8051c8c292b9e77a1b50bf96e
115+
SHA256: 94559ea6e3c619423da604e503ce1dc1c465d6e0747a07fbdc5f294acaf14c24
116+
SHA512: e4324064cee8c65b80192e3eff287e915d2d40464d300744c36fb326ae4b1846911400a99d4332192d8a217009d3a5209b43eb5e8bc0b739035bef89cc493e84
117+
118+
* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2>
119+
120+
SIZE: 13955820 bytes
121+
SHA1: 827b9a3bcffa86d1fc9ed96d403cb9dc37731688
122+
SHA256: d87eb3021f71d4f62e5a5329628ac9a6665902173296e551667edd94362325cc
123+
SHA512: 8f6fdf6708e7470f55bc009db2567cd8d4e633ad0678d83a015441ecf5b5d88bd7da8fb8533a42157ff83b74d00b6dc617d39bbb17fc2c6c12287a1d8eaa0f2c
124+
125+
* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.xz>
126+
127+
SIZE: 11292472 bytes
128+
SHA1: 9c7babcf9e299be3f197d9091024ae458f1a1273
129+
SHA256: 1da0afed833a0dab94075221a615c14487b05d0c407f991c8080d576d985b49b
130+
SHA512: 55714a33d7661fe8b432f73c34fd67b49699f8b79df1cbd680a74899124d31111ab0f444677672aac1ba725820182940d485efb2db0bf2bc96737c5d40c54578

0 commit comments

Comments
 (0)