Ditulis oleh naruse tanggal 2016-12-25
Diterjemahkan oleh meisyal
Kami dengan senang hati mengumumkan rilis dari Ruby 2.4.0.
Ruby 2.4.0 adalah rilis stable pertama dari rangkaian Ruby 2.4. Rilis ini memperkenalkan banyak fitur, sebagai contoh:
Memperkenalkan penyempurnaan hash table (oleh Vladimir Makarov)
Menyempurnakan struktur internal dari hash table (st_table) dengan memperkenalkan open addressing dan sebuah inclusion order array. Penyempurnaan ini telah didiskusikan oleh banyak orang, khususnya Yura Sokolov.
Binding#irb: Memulai sebuah sesi REPL mirip dengan binding.pry
Selama Anda melakukan debugging, Anda mungkin sering menggunakan p
untuk
melihat nilai dari variabel-variabel. Dengan pry
Anda dapat menggunakan binding.pry
pada aplikasi Anda untuk meluncurkan
sebuah REPL dan menjalankan kode Ruby apapun.
r56624
memperkenalkan binding.irb
yang memiliki perilaku seperti itu dengan irb.
Menyatukan Fixnum dan Bignum ke dalam Integer
Meskipun ISO/IEC 30170:2012 tidak memerinci detail dari kelas Integer, Ruby telah memiliki dua kelas Integer: Fixnum dan Bignum. Ruby 2.4 menyatukan mereka ke dalam Integer, Semua ekstensi C yang bersentuhan dengan kelas Fixnum atau Bignum perlu untuk diperbaiki.
Lihat juga tiket dan akr’s slides.
String mendukung Unicode case mappings
String/Symbol#upcase/downcase/swapcase/capitalize(!)
sekarang menangani
Unicode case mappings selain hanya ASCII case mappings.
Perbaikan performa
Ruby 2.4 juga mencakup perbaikan performa berikut termasuk perubahan bahasa:
Array#max, Array#min
[x, y].max
dan [x, y].min
dioptimalkan untuk tidak membuat sebuah array
sementara dalam kondisi tertentu.
Regexp#match?
Penambahan Regexp#match?
, yang mengeksekusi sebuah regexp match tanpa
membuat sebuah objek referensi kembali dan mengubah $~
untuk mengurangi
alokasi objek.
Perbaikan performa lainnya
Debugging
Thread#report_on_exception dan Thread.report_on_exception
Ruby mengabaikan exception pada thread kecuali jika thread lain secara
langsung bergabung dengannya. Dengan report_on_exception = true
, Anda dapat
memperhatikan jika sebuah thread telah mati karena unhandled exception.
Kirimkan umpan balik apa yang seharusnya default untuk report_on_exception
dan tentang report-on-GC, yang menunjukkan sebuah laporan ketika sebuah
thread di-garbage collected tanpa join.
Thread deadlock detection sekarang menampilkan thread dengan backtrace dan dependency-nya
Ruby memiliki deadlock detection saat menunggu thread-thread, tetapi laporannya tidak mengandung cukup informasi untuk debugging. Deadlock detection dari Ruby 2.4 menunjukkan thread-thread dengan backtrace dan dependency-nya.
Perubahan penting lainnya sejak 2.3
- Mendukung OpenSSL 1.1.0 (memberhentikan dukungan untuk 0.9.7 atau sebelumnya)
- ext/tk sekarang dihapus dari stdlib Fitur #8539
- XMLRPC sekarang dihapus dari stdlib Fitur #12160
Lihat NEWS atau riwayat commit untuk detail.
Dengan perubahan tersebut, 2523 berkas berubah, 289129 sisipan(+), 84670 terhapus (-) sejak Ruby 2.3.0!
Selamat Natal, Selamat berlibur, dan nikmati memprogram dengan Ruby 2.4!
Unduh
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2
SIZE: 12572424 bytes SHA1: 944d2588308391b20a89642472454d1dfe7b2360 SHA256: 440bbbdc49d08d3650f340dccb35986d9399177ad69a204def56e5d3954600cf SHA512: bef7bb53f63fb74073d071cc125fb67b273ed0779ef43c2d2969089b9ca21fff1bd012281c5b748f7a3c24dd26e71730d7248c05a01cb23ab2089eb4d02115fe
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz
SIZE: 14104044 bytes SHA1: d44a3c50a0e742341ed3033d5db79d865151a4f4 SHA256: 152fd0bd15a90b4a18213448f485d4b53e9f7662e1508190aa5b702446b29e3d SHA512: 21c9f596b42dd9cba7a53963a59fed0c2e0c1eb960a4ac7087ea3eaa991ce9252d32639e1edcb75b1d709bc07c4820a6dc336ab427d0643c6e6498e0eacdbc8b
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.xz
SIZE: 9906880 bytes SHA1: 038804bbd0e77508dd2510b729a9f3b325489b2e SHA256: 3a87fef45cba48b9322236be60c455c13fd4220184ce7287600361319bb63690 SHA512: 975a5388592adc038461e0acebb6c0efee242891b2ea8621476401458efe2bc0fdd317d3bf99beb745b0b3808410efdff33862da29c95c027f457943721e3ab6
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip
SIZE: 15758757 bytes SHA1: 29e1bab11551011718c35a51827edcb55bd656fc SHA256: 5c2bbfa26fd6a15a2d70961874b0f3a386206fcc5f698e240dd8b0c9f0f18c5e SHA512: 31d932372ce490eeac0a70bc8dcf842909a90435422398d069c05cf01d994936064b8f4e60879e28a8655c1296eb8e180e348cb95e001ed6ca73cda0ff77de23