Skip to content

Commit 963104f

Browse files
Translate Ruby 2.7.0-preview1 Released (pt)
Translate Ruby 2.7.0-preview1 Released (pt)
2 parents 0920607 + 7431bb4 commit 963104f

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---
2+
layout: news_post
3+
title: "Lançado Ruby 2.7.0-preview1"
4+
author: "naruse"
5+
translator: "jcserracampos"
6+
date: 2019-05-30 00:00:00 +0000
7+
lang: pt
8+
---
9+
10+
Temos o prazer de anunciar o lançamento da versão de Ruby 2.7.0-preview1.
11+
12+
Uma versão de pré-visualização (preview) é lançada para coletar opiniões para a versão final planejada para ser lançada em dezembro.
13+
Ela introduz várias novas funcionalidades e melhorias de performance, mais notavelmente:
14+
15+
* Compactação no coletor de lixo
16+
* Pattern Matching
17+
* Melhoria do REPL
18+
19+
## Compactação no coletor de lixo (Compaction GC)
20+
21+
Esta versão introduz compactação na coleta de lixo (Compaction GC) que pode desfragmentar um espaço de memória fragmentado.
22+
23+
Alguns programas multithread Ruby podem causar fragmentação de memória, conduzindo a alto uso de memória e velocidade degradada.
24+
25+
O método `GC.compact` é introduzido para compactar a heap. Esta funcionalidade compacta objetos ativos na heap para que menos
26+
páginas possam ser usadas e a heap possa ser mais _CoW friendly_. [#15626](https://bugs.ruby-lang.org/issues/15626)
27+
28+
## Pattern Matching [Experimental]
29+
30+
Pattern matching, funcionalidade amplamenta utilizada em linguagens para programação funcional, é introduzida como uma funcionalidade experimental. [#14912](https://bugs.ruby-lang.org/issues/14912)
31+
Ela pode examinar um dado objeto e definir seu valor se um padrão for .
32+
33+
```ruby
34+
json ='{
35+
"nombre": "Alice",
36+
"edad": 30,
37+
"hijos": [
38+
{
39+
"nombre": "Bob",
40+
"edad": 2
41+
}
42+
]
43+
}'
44+
case JSON.parse('{...}', symbolize_names: true)
45+
in {name: "Alice", children: [{name: "Bob", age: age}]}
46+
p age
47+
...
48+
end
49+
```
50+
51+
Para mais detalhes, por favor, veja [Pattern matching - New feature in Ruby 2.7](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7).
52+
53+
## Aprimoramento de REPL
54+
55+
`irb`, ambiente interativo empacotado (REPL; Read-Eval-Print-Loop), agora suporta edição em múltiplas linhas. É fomentado por `reline`, implementação pura em Ruby compatível de `readline`.
56+
Também prove integração com rdoc. Em `irb` você pode exibir a referência para uma dada classe, módulo ou método. [#14683](https://bugs.ruby-lang.org/issues/14683), [#14787](https://bugs.ruby-lang.org/issues/14787), [#14918](https://bugs.ruby-lang.org/issues/14918)
57+
Além de, linhas de código mostradas em `binding.irb` e resultados de inspeções para objetos de classes principais agora são colorizados.
58+
59+
<video autoplay="autoplay" controls="controls" muted="muted" width="576" height="259">
60+
<source src="https://cache.ruby-lang.org/pub/media/irb_improved_with_key_take2.mp4" type="video/mp4">
61+
</video>
62+
63+
## Outras novas funcionalidades notáveis
64+
65+
* Um operador de referência de método, <code>.:</code>, é introduzido como uma característica experimental. [#12125](https://bugs.ruby-lang.org/issues/12125), [#13581](https://bugs.ruby-lang.org/issues/13581)
66+
67+
* Parâmetro numerado como o parâmetro de bloco padrão é introduzida como uma característica experimental. [#4475](https://bugs.ruby-lang.org/issues/4475)
68+
69+
* Um intervalo sem começo é introduzido experimentalmente. Pode não ser tão útil
70+
como um intervalo sem fim, mas seria bom para o propósito do DSL. [#14799](https://bugs.ruby-lang.org/issues/14799)
71+
72+
ary[..3] # indêntico a ary[0..3]
73+
rel.where(sales: ..100)
74+
75+
* `Enumerable#tally` é adicionado. Ele conta a ocorrência de cada elemento.
76+
77+
["a", "b", "c", "b"].tally
78+
#=> {"a"=>1, "b"=>2, "c"=>1}
79+
80+
## Melhorias de desempenho
81+
82+
* JIT [Experimental]
83+
84+
* Código em JIT é recompilado para código menos otimizado quando uma suposição de otimização é invalidada.
85+
86+
* _Inlining_ de método é executado quando um método é considerado puro. Essa otimização ainda é experimental e muitos métodos NÃO são considerados puros ainda
87+
88+
* Valor padrão de `--jit-min-calls` é alterado de 5 para 10,000
89+
90+
* Valor padrão `--jit-max-cache` é alterado de 1,000 para 100
91+
92+
## Outras mudanças notáveis desde 2.6
93+
94+
* `Proc.new` e `proc` sem bloco em um método invocado com um bloco é alertado agora.
95+
96+
* `lambda` sem bloco em um método invocado com um bloco produz um erro.
97+
98+
* Atualiza versão do Unicode e Emoji de 11.0.0 para 12.0.0. [[Feature #15321]](https://bugs.ruby-lang.org/issues/15321)
99+
100+
* Atualiza versão do Unicode para 12.1.0, adicionando suporte para U+32FF SQUARE ERA NAME REIWA. [[Feature #15195]](https://bugs.ruby-lang.org/issues/15195)
101+
102+
* `Date.jisx0301`, `Date#jisx0301` e `Date.parse` provisoriamente suportam a nova era Japonesa como uma extensão informal, até o novo JIS X 0301 seja emitido. [[Feature #15742]](https://bugs.ruby-lang.org/issues/15742)
103+
104+
* Requere compiladores para suportar C99 [[Misc #15347]](https://bugs.ruby-lang.org/issues/15347)
105+
* Detalhes do nosso dialeto: <https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/C99>
106+
107+
Veja [NEWS](https://github.com/ruby/ruby/blob/v2_7_0_preview1/NEWS) ou [commit logs](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview1) para mais detalhes.
108+
109+
Com essas mudanças, [1727 arquivos modificados, 76022 inserções(+), 60286 remoções(-)](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview1) desde Ruby 2.6.0!
110+
111+
Aproveite programando com Ruby 2.7!
112+
113+
## Download
114+
115+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.gz>
116+
117+
SIZE: 16021286 bytes
118+
SHA1: 2fbecf42b03a9d4391b81de42caec7fa497747cf
119+
SHA256: c44500af4a4a0c78a0b4d891272523f28e21176cf9bc1cc108977c5f270eaec2
120+
SHA512: f731bc9002edd3a61a4955e4cc46a75b5ab687a19c7964f02d3b5b07423d2360d25d7be5df340e884ca9945e3954e68e5eb11b209b65b3a687c71a1abc24b91f
121+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.zip>
122+
123+
SIZE: 20283343 bytes
124+
SHA1: 7488346fa8e58203a38158752d03c8be6b1da65b
125+
SHA256: fdf25573e72e1769b51b8d541d0e1a894a5394dbfdf1b08215aa093079cca64c
126+
SHA512: b3b1f59dce94c242ef88a4e68381a4c3a6f90ba0af699083e5a1a00b0fb1dce580f057dad25571fe789ac9aa95aa6e9c071ebb330328dc822217ac9ea9fbeb3f
127+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.bz2>
128+
129+
SIZE: 14038296 bytes
130+
SHA1: f7e70cbc2604c53a9e818a2fc59cd0e2d6c859fa
131+
SHA256: d45b4a1712ec5c03a35e85e33bcb57c7426b856d35e4f04f7975ae3944d09952
132+
SHA512: a36b241fc1eccba121bb7c2cc5675b11609e0153e25a3a8961b67270c05414b1aa669ce5d4a5ebe4c6b2328ea2b8f8635fbba046b70de103320b3fdcb3d51248
133+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.xz>
134+
135+
SIZE: 11442988 bytes
136+
SHA1: 45e467debc194847a9e3afefb20b11e6dc28ea31
137+
SHA256: 8c546df3345398b3edc9d0ab097846f033783d33762889fd0f3dc8bb465c3354
138+
SHA512: d416e90bfa3e49cc0675c4c13243c8ec319b7a0836add1bd16bd7662d09eaf46656d26e772ef3b097e10779896e643edd8a6e4f885147e3235257736adfdf3b5
139+
140+
## O que é Ruby?
141+
142+
Ruby foi primeiramente desenvolvido por Matz (Yukihiro Matsumoto) em 1993 e agora é desenvolvido como Open Source. Ele é executado em múltiplas plataformas e é usado em todo o mundo, especialmente para desenvolvimento web.

0 commit comments

Comments
 (0)