Skip to content

Commit ad783e5

Browse files
authored
Translate ruby-2-6-0-released news (tr) (#2088)
* Translate ruby-2-6-0-released news (tr) * Use "sürüm" instead of "yayın" for convenience * Improve meaning * Improve meaning
1 parent 0c613d5 commit ad783e5

File tree

1 file changed

+194
-0
lines changed

1 file changed

+194
-0
lines changed
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.6.0 Yayınlandı"
4+
author: "naruse"
5+
translator: "İsmail Arılık"
6+
date: 2018-12-25 00:00:00 +0000
7+
lang: tr
8+
---
9+
10+
Ruby 2.6.0'ın sürümünü duyurmaktan memnuniyet duyarız.
11+
12+
Bu sürüm birkaç yeni özellik ve performans artışı getirmektedir, en önemlileri:
13+
14+
* Yeni bir JIT derleyicisi.
15+
* `RubyVM::AbstractSyntaxTree` modülü.
16+
17+
## JIT [Deneysel]
18+
19+
Ruby 2.6 bir JIT (Just-In-Time) derleyicisinin ilk uygulamasını barındırmaktadır.
20+
21+
JIT derleyicisi, Ruby programlarının performansını iyileştirmeyi amaçlamaktadır.
22+
İşlem içinde çalışan geleneksel JIT derleyicilerinin aksine, Ruby'nin JIT derleyicisi, C kodunu diske yazar ve yerel kod oluşturmak için yaygın bir C derleyicisini ortaya çıkarır.
23+
Bununla ilgili daha fazla ayrıntı için, [Vladimir Makarov'un MJIT organizasyonu](https://bugs.ruby-lang.org/projects/ruby/wiki/MJIT#MJIT-organization)na bakın.
24+
25+
JIT derleyicisini etkinleştirmek için, komut satırında ya da `$RUBYOPT` çevre değişkeninde `--jit`'i belirtin.
26+
`--jit-verbose=1`'i belirtmek, JIT derleyicisinin ek bilgileri yazdırmasına neden olacaktır.
27+
Diğer seçenekler için `ruby --help`'in çıktısını ya da [belgelendirme](https://bugs.ruby-lang.org/projects/ruby/wiki/MJIT#Basic-usage)yi okuyun.
28+
29+
JIT derleyicisi, Ruby, çalışma zamanında var olması gereken GCC, Clang, ya da Microsoft VC++ ile inşa edildiğinde desteklenir.
30+
31+
Ruby 2.6.0 itibariyle, [Optcarrot](https://github.com/mame/optcarrot) isimli CPU yoğunluklu, basit olmayan bir kıyaslamada Ruby 2.5'e göre [1.7 kat hızlı performans](https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208) başardık.
32+
Fakat, bu hala deneysel ve şu anda Rails uygulamaları gibi birçok diğer hafıza yoğunluklu iş yükleri bundan faydalanamayabilir.
33+
Daha fazla ayrıntı için, [Ruby 2.6 JIT - İlerleme ve Gelecek](https://medium.com/@k0kubun/ruby-2-6-jit-progress-and-future-84e0a830ecbf)'e bakın.
34+
35+
Ruby'nin performansının yeni çağı için takipte kalın.
36+
37+
## `RubyVM::AbstractSyntaxTree` [Deneysel]
38+
39+
Ruby 2.6 `RubyVM::AbstractSyntaxTree` modülünü tanıtır.
40+
**Bu modülün gelecek uyumlulukları garanti değildir**.
41+
42+
Bu modül bir `parse` metoduna sahiptir, bu metod verilen karakter dizisini Ruby kodu olarak ayrıştırır ve kodun AST (Abstract Syntax Tree) düğümlerini döndürür.
43+
`parse_file` metodu verilen dosyayı Ruby kodu olarak açar ve ayrıştırır ve AST düğümlerini döndürür.
44+
45+
`RubyVM::AbstractSyntaxTree::Node` sınıfı ayrıca tanıtılır.
46+
`Node` nesnelerinden kaynak konumu ve çocuk düğümlerini alabilirsiniz.
47+
Bu özellik deneyseldir.
48+
49+
## Dikkate Değer Diğer Yeni Özellikler
50+
51+
* `#then` isminde `Kernel#yield_self` için bir takma ad eklenmesi.
52+
[[Özellik #14594]](https://bugs.ruby-lang.org/issues/14594)
53+
54+
* Sabit isimleri ASCII olmayan bir büyük harf ile başlayabilir.
55+
[[Özellik #13770]](https://bugs.ruby-lang.org/issues/13770)
56+
57+
* Sonsuz aralıkların tanıtılması.
58+
[[Özellik #12912]](https://bugs.ruby-lang.org/issues/12912)
59+
60+
Bir sonsuz aralık, `(1..)`, sonu yokmuş gibi çalışır.
61+
İşte bazı tipik kullanım durumları:
62+
63+
ary[1..] # sihirli -1 olmadan ary[1..-1] ile aynıdır
64+
(1..).each {|index| ... } # 1 dizininden başlayarak değerleri numaralandırır
65+
ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... }
66+
67+
* `Enumerable#chain` ve `Enumerator#+`'yı ekle.
68+
[[Özellik #15144]](https://bugs.ruby-lang.org/issues/15144)
69+
70+
* `Proc` ve `Method`'a `<<` ve `>>` fonksiyon birleştirme operatörlerini ekle.
71+
[[Özellik #6284]](https://bugs.ruby-lang.org/issues/6284)
72+
73+
f = proc{|x| x + 2}
74+
g = proc{|x| x * 3}
75+
(f << g).call(3) # -> 11; f(g(3)) ile aynıdır
76+
(f >> g).call(3) # -> 15; g(f(3)) ile aynıdır
77+
78+
* `Binding#source_location`'ı ekle.
79+
[[Özellik #14230]](https://bugs.ruby-lang.org/issues/14230)
80+
81+
Bu metod bağlayıcının kaynak konumunu döndürür, bu, `__FILE__` ve `__LINE__`'ın 2 öğeli bir dizisidir.
82+
Teknik olarak konuşursak, bu, `eval("[__FILE__, __LINE__]", binding)` ile aynıdır.
83+
Fakat, bu davranışı, `Kernel#eval`'in bağlayıcının kaynak konumunu boşvereceği şekilde değiştirmeyi planlıyoruz [[Hata #4352]](https://bugs.ruby-lang.org/issues/4352).
84+
Yani, `Kernel#eval` yerine `Binding#source_location` kullanılması tavsiye edilir.
85+
86+
* `Kernel#system`'e bir `exception:` seçeneği eklenmesi, bu özellik başarısızlık durumunda `false` döndürülmesi yerine bir istisna yükseltilmesine neden olur.
87+
[[Özellik #14386]](https://bugs.ruby-lang.org/issues/14386)
88+
89+
* `Coverage`'a bir tek atış modu eklenmesi.
90+
[[Özellik#15022]](https://bugs.ruby-lang.org/issues/15022)
91+
92+
* Bu mod, "her satırın kaç kere çalıştığı" yerine "her satırın en az bir kere çalışıp çalışmadığını" kontrol eder.
93+
Her satır için bir kanca sadece bir kez ateşlenir, ve bu ateşlendiği zaman, kanca bayrağı silinecektir, yani bu kanca sıfır ek yük ile çalışır.
94+
* `Coverage.start`'a `oneshot_lines:` anahtar kelime argümanı eklenmesi.
95+
* `Coverage.result`'a `stop:` ve `clear:` anahtar kelime argümanları eklenmesi.
96+
Eğer `clear` doğruysa, sayıcılar sıfır olarak ayarlanır.
97+
Eğer `stop` doğruysa, kapsama ölçümü devre dışı bırakılır.
98+
* `Coverage.line_stub`, verilen bir kaynak koddan satır kapsamasının "stub"ını oluşturan basit bir yardımcı fonksiyondur.
99+
100+
* `FileUtils#cp_lr`'nin eklenmesi.
101+
Bu, aynı `cp_r` gibi çalışır fakat kopyalama yerine bağlar.
102+
[[Özellik #4189]](https://bugs.ruby-lang.org/issues/4189)
103+
104+
## Performans iyileştirmeleri
105+
106+
* `$SAFE` için olan geçici yer ayrımı kaldırılarak `Proc#call`'un hızlandırılması.
107+
[[Özellik #14318]](https://bugs.ruby-lang.org/issues/14318)
108+
109+
`Proc#call`'u sayısız kere çağıran `lc_fizzbuzz` kıyaslamasında 1.4 kat performans iyileştirmesi gözlemledik.
110+
[[Hata #10212]](https://bugs.ruby-lang.org/issues/10212)
111+
112+
* `block` bir blok parametresi olarak geçirildiğinde `block.call`'un hızlandırılması.
113+
[[Özellik #14330]](https://bugs.ruby-lang.org/issues/14330)
114+
115+
Ruby 2.5'te tanıtılan blok ele alımı etrafındaki iyileştirmelerle birleştirince, blok değerlendirmesi şimdi Ruby 2.6'daki bir küçük kıyaslamada 2.6 kat daha hızlı yapılır.
116+
[[Özellik #14045]](https://bugs.ruby-lang.org/issues/14045)
117+
118+
* Geçici yığın (`theap`) tanıtılır.
119+
[[Hata #14858]](https://bugs.ruby-lang.org/issues/14858)
120+
[[Özellik #14989]](https://bugs.ruby-lang.org/issues/14989)
121+
122+
`theap`, belirli sınıflar (`Array`, `Hash`, `Object`, ve `Struct`) tarafından işaret edilen kısa yaşayan hafıza nesneleri için yönetilen bir yığındır.
123+
Küçük ve kısa yaşayan Hash nesneleri yapmak 2 kat hızlıdır.
124+
rdoc kıyaslaması ile %6-7 performans artışı gözlemledik.
125+
126+
* Fiber'in bağlam değiştirme performansını dikkate değer bir şekilde iyileştirmek için eşyordamların yerel gerçeklemeleri (`arm32`, `arm64`, `ppc64le`, `win32`, `win64`, `x86`, `amd64`) yapıldı.
127+
[[Özellik #14739]](https://bugs.ruby-lang.org/issues/14739)
128+
129+
64-bit Linux'te `Fiber.yield` ve `Fiber#resume` yaklaşık olarak 5 kat daha hızlıdır.
130+
Fiber yoğunluklu programlar tümünde %5'e kadar iyileşme bekleyebilir.
131+
132+
## 2.5'ten beri diğer dikkate değer değişiklikler
133+
134+
* `$SAFE` şimdi bir işlem evrensel durumu ve `0`'a geri ayarlanabilir.
135+
[[Özellik #14250]](https://bugs.ruby-lang.org/issues/14250)
136+
137+
* `ERB.new`'e `safe_level` geçirmek kullanımdan kaldırıldı.
138+
`trim_mode` and `eoutvar` argümanları anahtar kelime argümanlarına çevrildi.
139+
[[Özellik #14256]](https://bugs.ruby-lang.org/issues/14256)
140+
141+
* Unicode desteği sürüm 11'e güncellendi.
142+
Ruby 2.6'nın gelecek UFACIK bir sürümünde Unicode sürümü 12 ve 12.1 için destek ekleme planlarımız var.
143+
Bu, [yeni Japon dönemi](http://blog.unicode.org/2018/09/new-japanese-era.html) için destek içerecek.
144+
145+
* RubyGems 3.0.1'i birleştir.
146+
`--ri` ve `--rdoc` seçenekleri silindi.
147+
Lütfen bunlar yerine `--document` ve `--no-document` seçeneklerini kullanın.
148+
149+
* [Bundler](https://github.com/bundler/bundler) şimdi varsayılan bir gem olarak kuruluyor.
150+
151+
* İstisna işleme bloklarında, `rescue` olmadan `else` şimdi bir sözdizimi hatasına neden oluyor.
152+
[DENEYSEL][[Özellik #14606]](https://bugs.ruby-lang.org/issues/14606)
153+
154+
Daha fazla ayrıntı için [NEWS](https://github.com/ruby/ruby/blob/v2_6_0/NEWS)'e ya da [işleme logları](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0)na bakın.
155+
156+
Bu değişiklikler ile, Ruby 2.5.0'dan beri [6437 dosya değişti, 231471 ekleme yapıldı(+), 98498 silme yapıldı(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0)!
157+
158+
Mutlu Noeller, Mutlu Tatiller, ve Ruby 2.6 ile programlamanın keyfini çıkarın!
159+
160+
## Bilinen Problem
161+
162+
_(Bu bölüm 28 Ocak 2019'da eklendi.)_
163+
164+
* [Büyük çok baytlı karakter dizileri gönderirken Net::Protocol::BufferedIO#write, NoMethodError yükseltiyor](https://github.com/ruby/ruby/pull/2058)
165+
166+
## İndirin
167+
168+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.gz>
169+
170+
BOYUT: 16687800 bytes
171+
SHA1: c95f4e86e21390270dad3ebb94491fd42ee2ce69
172+
SHA256: f3c35b924a11c88ff111f0956ded3cdc12c90c04b72b266ac61076d3697fc072
173+
SHA512: 01f886b0c0782a06315c4a46414e9f2b66ee634ba4349c8e0697f511793ae3c56d2ad3cad6563f2b0fdcedf0ff3eba51b9afab907e7e1ac243475772f8688382
174+
175+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.zip>
176+
177+
BOYUT: 20582054 bytes
178+
SHA1: a804e63d18da12107e1d101918a3d8f4c5462a27
179+
SHA256: 8a4fb6ca58202495c9682cb88effd804398bd0ef023e3e36f001ca88d8b5855a
180+
SHA512: 16d66ec4a2c6a2e928d5b50e094a5efa481ac6e4d5ed77459d351ef19fe692aa59b68307e3e25229eec5f30ae2f9adae2663bafe9c9d44bfb45d3833d77839d4
181+
182+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.bz2>
183+
184+
BOYUT: 14585856 bytes
185+
SHA1: b8638eb806efbf7b6af87b24ccc6ad915f262318
186+
SHA256: c89ca663ad9a6238f4b1ec4d04c7dff630560c6e6eca6d30857c4d394f01a599
187+
SHA512: ca3daf9acf11d3db2900af21b66231bd1f025427a9d2212b35f6137ca03f77f57171ddfdb99022c8c8bcd730ff92a7a4af54e8a2a770a67d8e16c5807aa391f1
188+
189+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.xz>
190+
191+
BOYUT: 11918536 bytes
192+
SHA1: 9ddaeba3505d2855460c8c653159fc0ac8928c0f
193+
SHA256: acb00f04374899ba8ee74bbbcb9b35c5c6b1fd229f1876554ee76f0f1710ff5f
194+
SHA512: c56eaf85ef7b79deb34ee4590b143c07f4fc83eb79775290761aee5a7c63374659613538a41f25706ed6e19e49d5c67a1014c24d17f29948294c7abd0b0fcea8

0 commit comments

Comments
 (0)