Skip to content

Commit 1f54908

Browse files
committed
Translate Ruby 2.6.0-preview3 released news (id)
1 parent cf216f8 commit 1f54908

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.6.0-preview3 Rilis"
4+
author: "naruse"
5+
translator: "meisyal"
6+
date: 2018-11-06 00:00:00 +0000
7+
lang: id
8+
---
9+
10+
Kami dengan senang hati mengumumkan rilis dari Ruby 2.6.0-preview3.
11+
12+
Ruby 2.6.0-preview3 ada *preview* ketiga menuju Ruby 2.6.0.
13+
preview3 ini dirilis untuk mengetes fitur baru sebelum datang
14+
*Release Candidate*.
15+
16+
## JIT
17+
18+
Ruby 2.6 memperkenalkan sebuah implementasi awal dari *compiler* JIT
19+
(Just-in-time).
20+
21+
*Compiler* JIT bertujuan untuk memperbaiki performa dari program Ruby apapun
22+
yang dieksekusi. Berbeda dengan JIT *compiler* biasanya pada bahasa pemrograman
23+
lain, *compiler* JIT dari Ruby melakukan kompilasi JIT melalui sebuah jalan
24+
unik, yang mencetak kode C ke sebuah *disk* dan mengeluarkan proses *compiler*
25+
C untuk menghasilkan kode asli.
26+
Lihat juga: [MJIT organization by Vladimir Makarov](https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization).
27+
28+
Bagaimana cara menggunakan: Tetapkan `--jit` pada *command line* atau `$RUBYOPT`
29+
*environment variable*. Menetapkan `--jit-verbose=1` memperbolehkan untuk
30+
mencetak informasi dasar dari kompilasi JIT yang berjalan. Lihat `ruby --help`
31+
untuk pilihan lainnya.
32+
33+
Tujuan utama dari rilis JIT ini adalah untuk menyediakan sebuah kesempatan untuk
34+
mengecek jika ini berjalan di *platform* Anda dan menemukan risiko keamanan
35+
sebelum rilis 2.6. *Compiler* JIT didukung hanya ketika Ruby dibuat oleh GCC,
36+
Clang, atau Microsoft VC++, yang mana dibutuhkan saat *runtime*. Jika
37+
sebaliknya, Anda tidak dapat menggunakannya.
38+
39+
Sampai versi 2.6.0-preview3, kami telah meraih 1.7x performa lebih cepat
40+
dibanding Ruby 2.5 pada CPU-*intensive non-trivial benchmark workload* yang
41+
dikenal dengan Optcarrot <https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208>.
42+
Kami akan memperbaiki performa pada *memory-intensive workload* seperti
43+
aplikasi Rails.
44+
45+
Nantikan era baru dari performa Ruby.
46+
47+
## RubyVM::AST [Eksperimental]
48+
49+
Ruby 2.6 mengenalkan modul `RubyVM::AST`.
50+
51+
Modul ini memiliki *method* `parse` yang mem-*parse string* dari kode Ruby yang
52+
diberikan dan mengembalikan AST (Abstract Syntax Tree) *node*, dan *method*
53+
`parse_file` yang mem-*parse* berkas dan mengembalikan AST *node*.
54+
Kelas `RubyVM::AST::Node` juga mengenalkan Anda agar mendapatkan informasi
55+
lokasi dan *children node* dari objek `Node`. Fitur ini eksperimental.
56+
Kesesuaian struktur dari AST *node* tidak dijamin.
57+
58+
## Fitur-fitur Baru
59+
60+
* Menambahkan sebuah alias baru `then` pada `Kernel#yield_self`. [[Fitur #14594]](https://bugs.ruby-lang.org/issues/14594)
61+
62+
* `else` tanpa `rescue` sekarang menyebabkan sebuah *syntax error*. [EKSPERIMENTAL]
63+
64+
* penamaan konstan bisa dimulai dengan sebuah huruf kapital non-ASCII. [[Fitur #13770]](https://bugs.ruby-lang.org/issues/13770)
65+
66+
* endless range [[Fitur #12912]](https://bugs.ruby-lang.org/issues/12912)
67+
68+
Sebuah endless range, `(1..)`, diperkenalkan. Ini berjalan tanpa ada akhirnya. Biasanya digunakan untuk kasus:
69+
70+
ary[1..] # identik dengan ary[1..-1] tanpa magical -1
71+
(1..).each {|index| ... } # inifinite loop dari indeks 1
72+
ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... }
73+
74+
* Menambahkan `Binding#source_location`. [[Feature #14230]](https://bugs.ruby-lang.org/issues/14230)
75+
76+
*Method* ini mengembalikan sumber lokasi dari *binding*, sebuah *array* dua
77+
elemen dari `__FILE__` dan `__LINE__`. Secara tradisi, informasi yang sama
78+
mungkin dapat diambil dengan `eval("[__FILE__, __LINE__]", binding)`, tetapi
79+
kami sedang merencanakan untuk mengubah perilaku ini sehingga `Kernel#eval`
80+
mengabaikan sumber lokasi *binding* [[Bug #4352]](https://bugs.ruby-lang.org/issues/4352).
81+
Sehingga, pengguna seharusnya menggunakan *method* yang baru diperkenalkan ini
82+
daripada `Kernel#eval`.
83+
84+
* Menambahkan pilihan `:exception` agar `Kernel#system` mengeluarkan *error*
85+
daripada mengembalikan `false`. [[Feature #14386]](https://bugs.ruby-lang.org/issues/14386)
86+
87+
## Perbaikan performa
88+
89+
* Mempercepat `Proc#call` karena kami tidak peduli `$SAFE` lagi.
90+
[[Feature #14318]](https://bugs.ruby-lang.org/issues/14318)
91+
92+
Dengan *benchmark* `lc_fizzbuzz` yang menggunakan `Proc#call` berkali-kali
93+
kami dapat mengukur x1.4 kemajuan [[Bug #10212]](https://bugs.ruby-lang.org/issues/10212).
94+
95+
* Mempercepat `block.call` di mana `block` diterima parameter *block*. [[Feature #14330]](https://bugs.ruby-lang.org/issues/14330)
96+
97+
Ruby 2.5 memperbaiki performa *block passing*. [[Feature #14045]](https://bugs.ruby-lang.org/issues/14045)
98+
Selain itu, Ruby 2.6 memperbaiki performa dari pemanggilan *passed block*.
99+
Dengan mikro *benchmark* kami dapat mengamati x2.6 kemajuan.
100+
101+
* Transient Heap (theap) dikenalkan. [Bug #14858] [Feature #14989]
102+
theap adalah *heap* yang diatur untuk *short-living memory object* yang
103+
diarahkan oleh kelas tertentu (Array, Hash, Object, dan Struct). Sebagai
104+
contoh, membuat objek Hash yang kecil dan *short-living* 2x lebih cepat.
105+
Dengan rdoc *benchmark*, kami mengamati 6-7% kemajuan.
106+
107+
## Perubahan penting lainnya sejak 2.5
108+
109+
* `$SAFE` adalah sebuah proses *state* global dan kita dapat mengatur ke `0` lagi. [[Feature #14250]](https://bugs.ruby-lang.org/issues/14250)
110+
111+
* Menempatkan parameter `safe_level` ke `ERB.new` tidak berlaku lagi. Argumen
112+
`trim_mode` dan `eoutvar` diubah menjadi argumen kata kunci. [[Feature #14256]](https://bugs.ruby-lang.org/issues/14256)
113+
114+
* Menggabungkan RubyGems 3.0.0.beta2. Opsi `--ri` dan `--rdoc` dihapus. Mohon
115+
gunakan opsi `--document` dan `--no-document`.
116+
117+
* Menggabungkan [Bundler](https://github.com/bundler/bundler) sebagai gem
118+
*default*.
119+
120+
Lihat [NEWS](https://github.com/ruby/ruby/blob/v2_6_0_preview3/NEWS)
121+
atau [commit logs](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview3)
122+
untuk detail.
123+
124+
Dengan perubahan tersebut,
125+
[6474 berkas berubah, 171888 sisipan(+), 46617 terhapus(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview3)
126+
sejak Ruby 2.5.0!
127+
128+
Nikmati memprogram dengan Ruby 2.6.0-preview3!
129+
130+
## Unduh
131+
132+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.gz>
133+
134+
SIZE: 17071670 bytes
135+
SHA1: 67836fda11fa91e0b988a6cc07989fbceda025b4
136+
SHA256: 60243e3bd9661e37675009ab66ba63beacf5dec748885b9b93916909f965f27a
137+
SHA512: 877278cd6e9b947f5bb6ed78136efb232dcc9c5c218b7236576171e7c3cd7f6b7d10d07d8402014a14aba1fcd1913a4370f0725c561ead41d8a3fe92029f7f76
138+
139+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.zip>
140+
141+
SIZE: 21537655 bytes
142+
SHA1: 45f3c90dfffe03b746f21f24152666e361cbb41a
143+
SHA256: 9152af9e700349dcfa2eec196dd91587d42d70a6837fa2c415ebba1167587be1
144+
SHA512: 335de36cf56706326f4acc4bbd35be01e0ac5fff30d0a69b2e1630ba4c78f0e711822d1623d0099a517c824b154917d2f60be192dfb143a422cf1d17b38e1183
145+
146+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.bz2>
147+
148+
SIZE: 14973451 bytes
149+
SHA1: 5f2df5d8c5a3888ccb915d36a3532ba32cda8791
150+
SHA256: 1f09a2ac1ab26721923cbf4b9302a66d36bb302dc45e72112b41d6fccc5b5931
151+
SHA512: d1693625723796e8902f3e4c4fae444f2912af9173489f7cf18c99db2a217afc971b082fce7089e39f8edd54d762d2b4e72843c8306ed29b05ccb15ac03dbb5b
152+
153+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.xz>
154+
155+
SIZE: 12291692 bytes
156+
SHA1: 7f8216247745215e9645568e7a02140f9a029b31
157+
SHA256: 9856d9e0e32df9e5cdf01928eec363d037f1a76dab2abbf828170647beaf64fe
158+
SHA512: b4d3b17ecf96272c43cd7518c0b54dee63fc1150ad143e1d9c9d708506fe78676c80eb96cc47b8d46d1128bd483a53f16c944963a03d1f99f00131b74714df7b

0 commit comments

Comments
 (0)