|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Ruby 2.3.0 Released" |
| 4 | +author: "naruse" |
| 5 | +translator: |
| 6 | +date: 2015-12-25 00:00:00 +0000 |
| 7 | +lang: en |
| 8 | +--- |
| 9 | + |
| 10 | +We are pleased to announce the release of Ruby 2.3.0. |
| 11 | + |
| 12 | +This is the first stable release of Ruby 2.3 series. |
| 13 | +It introduces many new features and improvements for example: |
| 14 | + |
| 15 | +A [Frozen String Literal Pragma](https://bugs.ruby-lang.org/issues/11473) |
| 16 | +is introduced. |
| 17 | +With Ruby 2.1, `"str".freeze` has been optimized to reduce object allocation. |
| 18 | +Ruby 2.3 introduces a new magic comment and command line option to |
| 19 | +freeze all string literals in the source files. |
| 20 | +Additionally for debugging, you can get where the object is created on |
| 21 | +`"can't modify frozen String"` error by |
| 22 | +`--debug=frozen-string-literal` command line option. |
| 23 | + |
| 24 | +A [safe navigation operator](https://bugs.ruby-lang.org/issues/11537) |
| 25 | +([so-called lonely operator](https://instagram.com/p/-M9l6mRPLR/)) `&.`, |
| 26 | +which already exists in C#, Groovy, and Swift, is introduced to ease |
| 27 | +`nil` handling as `obj&.foo`. `Array#dig` and `Hash#dig` are also added. |
| 28 | +Note that this behaves as [try! of ActiveSupport](http://apidock.com/rails/Object/try%21), |
| 29 | +which specially handle only nil. |
| 30 | + |
| 31 | +The [did_you_mean gem is bundled](https://bugs.ruby-lang.org/issues/11252). |
| 32 | +The did_you_mean gem |
| 33 | +shows the candidates on the `NameError` and `NoMethodError` to ease |
| 34 | +debugging. |
| 35 | + |
| 36 | +[RubyVM::InstructionSequence#to_binary and .load_from_binary](https://bugs.ruby-lang.org/issues/11788) are introduced as experimental feature. With these features, we can make a ISeq (bytecode) pre-compilation system. |
| 37 | + |
| 38 | +Ruby 2.3 includes many performance tuning fixes. |
| 39 | +For example, |
| 40 | +[reconsider method entry data structure](https://bugs.ruby-lang.org/issues/11278), |
| 41 | +[introducing new table data structure](https://bugs.ruby-lang.org/issues/11420), |
| 42 | +[optimize Proc#call](https://bugs.ruby-lang.org/issues/11569), |
| 43 | +machine code level tuning for object allocation and method calling code, |
| 44 | +and other many optimizations. |
| 45 | + |
| 46 | +For a complete list of new features and compatibility notes, please see |
| 47 | +[NEWS](https://github.com/ruby/ruby/blob/v2_3_0/NEWS) and |
| 48 | +[ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0/ChangeLog). |
| 49 | + |
| 50 | +With those changes, [1097 files changed, 97466 insertions(+), 58685 deletions(-)](https://github.com/ruby/ruby/compare/v2_2_0...v2_3_0) since Ruby 2.2.0! |
| 51 | + |
| 52 | +## Download |
| 53 | + |
| 54 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.tar.bz2> |
| 55 | + * SIZE: 14126752 bytes |
| 56 | + * SHA1: 7e717ef7a0a1523ad696b5fe693f7f7a613a3810 |
| 57 | + * SHA256: e9b0464e50b2e5c31546e6b8ca8cad71fe2d2146ccf88b7419bbe9626af741cb |
| 58 | + * SHA512: e397f321d4338edba8d005d871408775f03d975da90c8abcfdb457a1bc7e6c87efe58c53b2c3bc122e9f58f619767b271bcc8d5d9663ed4b4288c60556e8d288 |
| 59 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.tar.gz> |
| 60 | + * SIZE: 17623519 bytes |
| 61 | + * SHA1: 2deaf3ccbbfc5e08d3d840a4f1c33ff5f62f931d |
| 62 | + * SHA256: cb1c745bda33ba9e812b48c87852571ef6486f985c5e6ff4508a137d1c9734a3 |
| 63 | + * SHA512: 83022f99775eb139beec281d59029dcc7c59de1e313182685b0a785334ac53d0c445212460d00d065169b922949263f30a1f981e19fc6e59814e79e6e53ae8e0 |
| 64 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.tar.xz> |
| 65 | + * SIZE: 11249780 bytes |
| 66 | + * SHA1: e1dfca06cd3c2cf6456a7feb0b1cd0752bde1a3b |
| 67 | + * SHA256: 7c3119268af87c137f415301b299281762453ad78f86e35562be014dabd67b11 |
| 68 | + * SHA512: ab3376145d95a2188e6345984f0e5592c8d33515d7046a2ab2565dc418fa2306cdcf797aae9494d4d10446ada54ba638d8a8ad2d4b7510544d7eaea3de4faa87 |
| 69 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.zip> |
| 70 | + * SIZE: 19841531 bytes |
| 71 | + * SHA1: db7fa5291d90e0a9c6f75c0cd068bc54050520d6 |
| 72 | + * SHA256: 90d036fd1ec40aa8f5493821ac162bf69f505c5977db54afe53b8bf689d79b9d |
| 73 | + * SHA512: 05784df420018aaae7d09d41e872df708e861cacc74dc8ee97a9e3ac7458cb12b937523ad6def34d5ae2890a0cf037a8d61e365beb88d28acd84879b9391ad65 |
0 commit comments