Skip to content

Commit 5ddf5cd

Browse files
meisyalJuanitoFatas
authored andcommitted
Translate Ruby 2.6.0-rc1 released news (id) (#1945)
1 parent d110924 commit 5ddf5cd

File tree

1 file changed

+176
-0
lines changed

1 file changed

+176
-0
lines changed
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.6.0-rc1 Rilis"
4+
author: "naruse"
5+
translator: "meisyal"
6+
date: 2018-12-06 00:00:00 +0000
7+
lang: id
8+
---
9+
10+
Kami dengan senang hati mengumumkan rilis dari Ruby 2.6.0-rc1.
11+
12+
Ruby 2.6.0-rc1 adalah kandidat rilis pertama dari Ruby 2.6.0.
13+
Kandidat ini memperkenalkan beberapa fitur baru dan perbaikan performa,
14+
sebagai contoh:
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-rc1, 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::AbstractSyntaxTree [Eksperimental]
48+
49+
Ruby 2.6 mengenalkan modul `RubyVM::AbstractSyntaxTree`.
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::AbstractSyntaxTree::Node` juga diperkenalkan. Anda bisa
55+
mendapatkan informasi lokasi dan *children node* dari objek `Node`. Fitur ini
56+
eksperimental. 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+
* Menambahkan mode *oneshot* [[Feature#15022]](https://bugs.ruby-lang.org/issues/15022)
88+
* Mode ini mengecek "apakah setiap baris dieksekusi minimal sekali atau tidak",
89+
daripada "berapa banyak setiap baris dieksekusi". Sebuah *hook* untuk setiap
90+
baris ditembakan paling banyak sekali dan setelah itu penanda *hook* dihapus,
91+
sebagai contoh ini berjalan dengan *zero overhead*.
92+
* Menambahkan argumen kata kunci `:oneshot_lines` pada Coverage.start.
93+
* Menambahkan argumen kata kunci `:stop` dan `:clear` pada Coverage.result.
94+
Jika `clear` *true* maka mengubah *counter* menjadi nol. Jika `stop` *true*
95+
maka nonaktifkan pengukuran *coverage*.
96+
* Coverage.line_stub, yang mana adalah sebuah fungsi pembantu yang sederhana
97+
yang dapat membuat "stub" dari baris *coverage* dari sebuah kode sumber yang
98+
diberikan.
99+
100+
* `FileUtils#cp_lr`. [[Feature #4189]](https://bugs.ruby-lang.org/issues/4189)
101+
102+
## Perbaikan performa
103+
104+
* Mempercepat `Proc#call` karena kami tidak peduli `$SAFE` lagi.
105+
[[Feature #14318]](https://bugs.ruby-lang.org/issues/14318)
106+
107+
Dengan *benchmark* `lc_fizzbuzz` yang menggunakan `Proc#call` berkali-kali
108+
kami dapat mengukur x1.4 kemajuan [[Bug #10212]](https://bugs.ruby-lang.org/issues/10212).
109+
110+
* Mempercepat `block.call` di mana `block` diterima parameter *block*. [[Feature #14330]](https://bugs.ruby-lang.org/issues/14330)
111+
112+
Ruby 2.5 memperbaiki performa *block passing*. [[Feature #14045]](https://bugs.ruby-lang.org/issues/14045)
113+
Selain itu, Ruby 2.6 memperbaiki performa dari pemanggilan *passed block*.
114+
Dengan mikro *benchmark* kami dapat mengamati x2.6 kemajuan.
115+
116+
* Transient Heap (theap) diperkenalkan. [[Bug #14858]](https://bugs.ruby-lang.org/issues/14858) [[Feature #14989]](https://bugs.ruby-lang.org/issues/14989)
117+
theap adalah *heap* yang diatur untuk *short-living memory object* yang
118+
diarahkan oleh kelas tertentu (Array, Hash, Object, dan Struct). Sebagai
119+
contoh, membuat objek Hash yang kecil dan *short-living* 2x lebih cepat.
120+
Dengan rdoc *benchmark*, kami mengamati 6-7% kemajuan.
121+
122+
## Perubahan penting lainnya sejak 2.5
123+
124+
* `$SAFE` adalah sebuah proses *state* global dan kita dapat mengatur ke `0` lagi. [[Feature #14250]](https://bugs.ruby-lang.org/issues/14250)
125+
126+
* Menempatkan parameter `safe_level` ke `ERB.new` tidak berlaku lagi. Argumen
127+
`trim_mode` dan `eoutvar` diubah menjadi argumen kata kunci. [[Feature #14256]](https://bugs.ruby-lang.org/issues/14256)
128+
129+
* Mendukung versi Unicode 11. Ini akan direncanakan untuk mendukung versi 12
130+
dan 12.1 pada rilis TEENY dari Ruby 2.6.
131+
132+
* Menggabungkan RubyGems 3.0.0.beta2. Opsi `--ri` dan `--rdoc` dihapus. Mohon
133+
gunakan opsi `--document` dan `--no-document`.
134+
135+
* Menggabungkan [Bundler](https://github.com/bundler/bundler) sebagai gem
136+
*default*.
137+
138+
Lihat [NEWS](https://github.com/ruby/ruby/blob/v2_6_0_rc1/NEWS)
139+
atau [commit logs](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc1)
140+
untuk detail.
141+
142+
Dengan perubahan tersebut,
143+
[6376 berkas berubah, 227364 sisipan(+), 51599 terhapus(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc1)
144+
sejak Ruby 2.5.0!
145+
146+
Nikmati memprogram dengan Ruby 2.6.0-rc1!
147+
148+
## Unduh
149+
150+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc1.tar.gz>
151+
152+
SIZE: 16823448 bytes
153+
SHA1: 889db7731fd43f6dbf7f31ffdb0a29bba1a8d356
154+
SHA256: 6d6183639ed9c02320d7132e97c65489a39e24d8b55fc4ed35ac53d1189cb61d
155+
SHA512: ad101adee5c43f3645561e73970f15d4e9141f707da69a92e224575c665949e18ca53389e5315fca2ea3934d77967a59e304353cde4a915537e7c4e4ee20be73
156+
157+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc1.zip>
158+
159+
SIZE: 20737499 bytes
160+
SHA1: 457e39aee1978da5e42af42a6ad230421544aa07
161+
SHA256: 2bcdf468de499e4d6983d60d63dcc883f4c54fdc05a08a54eb93d315477bc4cc
162+
SHA512: 0842fae8a199f6c1e76f5d775edbf468e18a54f0419324eb73595e0268c728c71733371d71dc2fa342105dbc487987ca5556948a9ef067276a7b5f552462802a
163+
164+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc1.tar.bz2>
165+
166+
SIZE: 14607078 bytes
167+
SHA1: 269fe9d414d7731e4a63959fadffe5c50c08ce0e
168+
SHA256: b4e9c0e8801946e9f0baba30948955f4341e9e04f363c206b7bd774208053eb5
169+
SHA512: cbd6281b2aab6fbce3f699c1ab57e5423304dca7a547a0b3cd4e8e980326dc7b85b2ca2bfaf3f3a648d40f4222fdf1740d81d422790ee7ae1ba1ed33eb11e3e8
170+
171+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc1.tar.xz>
172+
173+
SIZE: 11851908 bytes
174+
SHA1: 3b93fdf1c5bd969ab4fe0a8176a6cf64e4597e6e
175+
SHA256: 21d9d54c20e45ccacecf8bea4dfccd05edc52479c776381ae98ef6a7b4afa739
176+
SHA512: 3d93d8d80e4900e8b3a27f904ed60581cebc6c55f4ab7acafc81e95001f92f3ea4ddec2da6169b1ed5e0146f7b7c35c1c13b3243955d5825c72170834fe933f3

0 commit comments

Comments
 (0)