|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Ruby 2.3.0 リリース" |
| 4 | +author: "naruse" |
| 5 | +translator: sorah |
| 6 | +date: 2015-12-25 17:00:00 +0000 |
| 7 | +lang: ja |
| 8 | +--- |
| 9 | + |
| 10 | +Ruby 2.3 シリーズの最初の安定版である、Ruby 2.3.0 のリリースをお知らせします。 |
| 11 | + |
| 12 | +Ruby 2.3.0 には以下に示すようなたくさんの新機能が含まれています: |
| 13 | + |
| 14 | +[Frozen String Literal プラグマ](https://bugs.ruby-lang.org/issues/11473) が導入されました。 |
| 15 | +Ruby 2.1 では既に、オブジェクトアロケーション削減のために `"str".freeze` が最適化されていましたが、これは、1 ファイル中の全 String リテラルを freeze する新しいマジックコメントとコマンドラインオプションになります。 |
| 16 | +また、`can't modify frozen String` エラーのデバッグを容易にするため、当該エラーにおいてどこで対象の String オブジェクトが作成されたかを表示する `--debug=frozen-string-literal` コマンドラインオプションが追加されました。 |
| 17 | + |
| 18 | +[safe navigation operator](https://bugs.ruby-lang.org/issues/11537) ([lonely operator](https://instagram.com/p/-M9l6mRPLR/) `&.` とも呼ばれています) が導入されました。これは `nil` の扱いをやりやすくするものです。既に C#, Groovy, Swift などでも同様の機能が存在します。 |
| 19 | +また、`Array#dig`, `Hash#dig` も追加されました。 |
| 20 | +safe navigation operator は、`nil` のみを取り扱う [ActiveSupport における try!](http://api.rubyonrails.org/v4.2.5/classes/Object.html#method-i-try-21) と同様の挙動をする事について注意してください。 |
| 21 | + |
| 22 | +[did_you_mean gem がバンドル](https://bugs.ruby-lang.org/issues/11252) されました。 |
| 23 | +この gem は `NameError` と `NoMethodError` の発生時、デバッグを容易にするため、正しい名前と思われる候補を合わせて表示します。 |
| 24 | + |
| 25 | +[RubyVM::InstructionSequence#to_binary と .load_from_binary](https://bugs.ruby-lang.org/issues/11788) が experimental feature として追加されました。 |
| 26 | +これらを活用することにより、ISeq (バイトコード) をプリコンパイルする仕組みを実装することができます。 |
| 27 | + |
| 28 | +また、Ruby 2.3.0 にはさまざまなパフォーマンス改善が含まれています。例えば、 |
| 29 | +[method entry データ構造の再検討](https://bugs.ruby-lang.org/issues/11278), |
| 30 | +[新しい table data 構造](https://bugs.ruby-lang.org/issues/11420), |
| 31 | +[Proc#call 最適化](https://bugs.ruby-lang.org/issues/11569), |
| 32 | +オブジェクトアロケーションとメソッド呼び出しのコードにおけるマシンコードレベルでの最適化, |
| 33 | +[よりスマートな instance variable データ構造](https://bugs.ruby-lang.org/issues/11170), |
| 34 | +[Socket#sendmsg/recvmsg における exception: false キーワード引数のサポート](https://bugs.ruby-lang.org/issues/11229) |
| 35 | +などが上げられます。その他の改善については NEWS ファイルの Implementation improvements セクションをごらんください。 |
| 36 | + |
| 37 | +その他、全新機能のリストや互換性については、[NEWS](https://github.com/ruby/ruby/blob/v2_3_0/NEWS) と [ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0/ChangeLog) をごらんください。 |
| 38 | + |
| 39 | +なお、Ruby 2.2.0 から [2946 ファイルが変更され, 104057 行追加, 59478 行の削除](https://github.com/ruby/ruby/compare/v2_2_0...v2_3_0) が行われました! |
| 40 | + |
| 41 | +メリークリスマス。Ruby とともに良き休日をおすごしください。 |
| 42 | + |
| 43 | +## ダウンロード |
| 44 | + |
| 45 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2> |
| 46 | + |
| 47 | + SIZE: 14185617 bytes |
| 48 | + SHA1: 6c8a832d49d22755ea8c45b6d53faf2ccc6d6ac9 |
| 49 | + SHA256: ec7579eaba2e4c402a089dbc86c98e5f1f62507880fd800b9b34ca30166bfa5e |
| 50 | + SHA512: 77b707359e754c3616699d21697752741497c719dc3d6fdfb55ed639e76d52560d293ae54cbe5c63be78dc73fbe60f1b8615d704d017bdfe1994aa9747d26a6c |
| 51 | + |
| 52 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz> |
| 53 | + |
| 54 | + SIZE: 17648682 bytes |
| 55 | + SHA1: 2dfcf7f33bda4078efca30ae28cb89cd0e36ddc4 |
| 56 | + SHA256: ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507 |
| 57 | + SHA512: 914d0201ecefaeb67aca0531146d2e89900833d8d2a597ec8a19be94529ab6b4be367f9b0cee2868b407288896cc14b64d96150223cac0aef8aafc46fc3dd7cc |
| 58 | + |
| 59 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.xz> |
| 60 | + |
| 61 | + SIZE: 11294412 bytes |
| 62 | + SHA1: 96e620e38af351c8da63e40cfe217ec79f912ba1 |
| 63 | + SHA256: 70125af0cfd7048e813a5eecab3676249582bfb65cfd57b868c3595f966e4097 |
| 64 | + SHA512: d893c5e6db5a0533e0da48d899c619964388852ef90e7d1b92a4363d5f189cd2dba32a009581f62b9f42a8e6027975fc3c18b64faf356f5e3ac43a8d69ec5327 |
| 65 | + |
| 66 | +* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.zip> |
| 67 | + |
| 68 | + SIZE: 19840511 bytes |
| 69 | + SHA1: 3f88617568d9a4f491e8b32dca532363f73eaa71 |
| 70 | + SHA256: 8270bdcbc6b62a18fdf1b75bd28d5d6fc0fc26b9bd778d422393a1b98006020a |
| 71 | + SHA512: a3f397bb3c9c19d9b797552c5d60bb01c82db884cfa966df84881125bea35713cffd99f88fb86b271bae72d9cfb09ad9b33838cffcf6365c091459479914fdef |
| 72 | + |
0 commit comments