Skip to content

Commit d4b5906

Browse files
authored
Ruby 2.4.0 Released (ruby#1535)
1 parent c0612c0 commit d4b5906

File tree

5 files changed

+251
-13
lines changed

5 files changed

+251
-13
lines changed

_data/branches.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
- name: 2.4
2-
status: preview
3-
date:
2+
status: normal maintenance
3+
date: 2016-12-25
44
eol_date:
55

66
- name: 2.3

_data/downloads.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
preview:
22

3-
- version: 2.4.0-rc1
3+
stable:
4+
5+
- version: 2.4.0
46
url:
5-
bz2: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.tar.bz2
6-
gz: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.tar.gz
7-
xz: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.tar.xz
8-
zip: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.zip
7+
bz2: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2
8+
gz: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz
9+
xz: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.xz
10+
zip: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip
911
sha256:
10-
bz2: 3b156b20f9df0dd62cbeeb8e57e66ea872d2a5b55fabdef1889650122bcc2ea7
11-
gz: e41ada7650eed2a5800534d1201ba7c88f1627085659df994f47ab4c5e327745
12-
xz: 3f014b3186d10676da6c512d14c65db23ccc4bf200fed9d7c6f9a58fd1e3295b
13-
zip: 14e6910e36618cddffeb22bad5f1052f907dc31ec93d4aa945bca0905d8a52c4
14-
15-
stable:
12+
bz2: 440bbbdc49d08d3650f340dccb35986d9399177ad69a204def56e5d3954600cf
13+
gz: 152fd0bd15a90b4a18213448f485d4b53e9f7662e1508190aa5b702446b29e3d
14+
xz: 3a87fef45cba48b9322236be60c455c13fd4220184ce7287600361319bb63690
15+
zip: 5c2bbfa26fd6a15a2d70961874b0f3a386206fcc5f698e240dd8b0c9f0f18c5e
1616

1717
- version: 2.3.3
1818
url:

_data/releases.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# 2.4 series
22

3+
- version: 2.4.0
4+
date: 2016-12-25
5+
post: /en/news/2016/12/25/ruby-2-4-0-released/
36
- version: 2.4.0-rc1
47
date: 2016-12-12
58
post: /en/news/2016/12/12/ruby-2-4-0-rc1-released/
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.4.0 Released"
4+
author: "naruse"
5+
translator:
6+
date: 2016-12-25 00:00:00 +0000
7+
lang: en
8+
---
9+
10+
We are pleased to announce the release of Ruby 2.4.0.
11+
12+
Ruby 2.4.0 is the first stable release of the Ruby 2.4 series.
13+
It introduces many new features, for example:
14+
15+
## [Introduce hash table improvement (by Vladimir Makarov)](https://bugs.ruby-lang.org/issues/12142)
16+
17+
Improve the internal structure of hash table (st_table) by introducing open addressing
18+
and an inclusion order array.
19+
This improvement has been discussed with many people, especially with Yura Sokolov.
20+
21+
## Binding#irb: Start a REPL session similar to `binding.pry`
22+
23+
While you are debugging, you may often use `p` to see the value of variables.
24+
With [pry](https://github.com/pry/pry) you can use `binding.pry` in your application
25+
to launch a REPL and run any Ruby code.
26+
[r56624](https://github.com/ruby/ruby/commit/493e48897421d176a8faf0f0820323d79ecdf94a)
27+
introduces `binding.irb` which behaves like that with irb.
28+
29+
## [Unify Fixnum and Bignum into Integer](https://bugs.ruby-lang.org/issues/12005)
30+
31+
Though [ISO/IEC 30170:2012](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579)
32+
doesn't specify details of the Integer class,
33+
Ruby had two visible Integer classes: Fixnum and Bignum.
34+
Ruby 2.4 unifies them into Integer.
35+
All C extensions which touch the Fixnum or Bignum class need to be fixed.
36+
37+
See also [the ticket](https://bugs.ruby-lang.org/issues/12005) and [akr's slides](http://www.a-k-r.org/pub/2016-09-08-rubykaigi-unified-integer.pdf).
38+
39+
## [String supports Unicode case mappings](https://bugs.ruby-lang.org/issues/10085)
40+
41+
`String/Symbol#upcase/downcase/swapcase/capitalize(!)` now handle
42+
Unicode case mappings instead of only ASCII case mappings.
43+
44+
## Performance improvements
45+
46+
Ruby 2.4 also contains the following performance improvements including
47+
language changes:
48+
49+
### [Array#max, Array#min](https://bugs.ruby-lang.org/issues/12172)
50+
51+
`[x, y].max` and `[x, y].min` are optimized to not create a temporary array
52+
under certain conditions.
53+
54+
### [Regexp#match?](https://bugs.ruby-lang.org/issues/8110)
55+
56+
Added `Regexp#match?`, which executes a regexp match without creating
57+
a back reference object and changing `$~` to reduce object allocation.
58+
59+
### Other performance improvements
60+
61+
* [speed up instance variable access](https://bugs.ruby-lang.org/issues/12274)
62+
63+
## Debugging
64+
65+
### [Thread#report_on_exception and Thread.report_on_exception](https://bugs.ruby-lang.org/issues/6647)
66+
67+
Ruby ignores exceptions in threads unless another thread explicitly joins them.
68+
With `report_on_exception = true`,
69+
you can notice if a thread has died due to an unhandled exception.
70+
71+
Send us feedback what should be the default for `report_on_exception`
72+
and about report-on-GC, which shows a report when a thread is
73+
garbage collected without join.
74+
75+
### [Thread deadlock detection now shows threads with their backtrace and dependency](https://bugs.ruby-lang.org/issues/8214)
76+
77+
Ruby has deadlock detection around waiting threads, but its report doesn't
78+
include enough information for debugging.
79+
Ruby 2.4's deadlock detection shows threads with their backtrace and
80+
dependent threads.
81+
82+
## Other notable changes since 2.3
83+
84+
* Support OpenSSL 1.1.0 (drop support for 0.9.7 or prior)
85+
* ext/tk is now removed from stdlib [Feature #8539](https://bugs.ruby-lang.org/issues/8539)
86+
* XMLRPC is now removed from stdlib [Feature #12160](https://bugs.ruby-lang.org/issues/12160)
87+
88+
See [NEWS](https://github.com/ruby/ruby/blob/v2_4_0/NEWS)
89+
or commit logs for details.
90+
91+
With those changes,
92+
[2523 files changed, 289129 insertions(+), 84670 deletions(-)](https://github.com/ruby/ruby/compare/v2_3_0...v2_4_0)
93+
since Ruby 2.3.0!
94+
95+
Merry Christmas, Happy Holidays, and enjoy programming with Ruby 2.4!
96+
97+
## Download
98+
99+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2>
100+
101+
SIZE: 12572424 bytes
102+
SHA1: 944d2588308391b20a89642472454d1dfe7b2360
103+
SHA256: 440bbbdc49d08d3650f340dccb35986d9399177ad69a204def56e5d3954600cf
104+
SHA512: bef7bb53f63fb74073d071cc125fb67b273ed0779ef43c2d2969089b9ca21fff1bd012281c5b748f7a3c24dd26e71730d7248c05a01cb23ab2089eb4d02115fe
105+
106+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz>
107+
108+
SIZE: 14104044 bytes
109+
SHA1: d44a3c50a0e742341ed3033d5db79d865151a4f4
110+
SHA256: 152fd0bd15a90b4a18213448f485d4b53e9f7662e1508190aa5b702446b29e3d
111+
SHA512: 21c9f596b42dd9cba7a53963a59fed0c2e0c1eb960a4ac7087ea3eaa991ce9252d32639e1edcb75b1d709bc07c4820a6dc336ab427d0643c6e6498e0eacdbc8b
112+
113+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.xz>
114+
115+
SIZE: 9906880 bytes
116+
SHA1: 038804bbd0e77508dd2510b729a9f3b325489b2e
117+
SHA256: 3a87fef45cba48b9322236be60c455c13fd4220184ce7287600361319bb63690
118+
SHA512: 975a5388592adc038461e0acebb6c0efee242891b2ea8621476401458efe2bc0fdd317d3bf99beb745b0b3808410efdff33862da29c95c027f457943721e3ab6
119+
120+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip>
121+
122+
SIZE: 15758757 bytes
123+
SHA1: 29e1bab11551011718c35a51827edcb55bd656fc
124+
SHA256: 5c2bbfa26fd6a15a2d70961874b0f3a386206fcc5f698e240dd8b0c9f0f18c5e
125+
SHA512: 31d932372ce490eeac0a70bc8dcf842909a90435422398d069c05cf01d994936064b8f4e60879e28a8655c1296eb8e180e348cb95e001ed6ca73cda0ff77de23
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.4.0 リリース"
4+
author: "naruse"
5+
translator:
6+
date: 2016-12-25 00:00:00 +0000
7+
lang: ja
8+
---
9+
10+
11+
Ruby 2.4シリーズの最初の安定版である、Ruby 2.4.0がリリースされました。
12+
13+
Ruby 2.4.0 には以下に示すようなたくさんの新機能が含まれています:
14+
15+
## [Introduce hash table improvement by Vladimir Makarov](https://bugs.ruby-lang.org/issues/12142)
16+
17+
従来Rubyのハッシュテーブルの内部実装 (st_table) ではに双方向連結リストとチェイン法を用いた実装が使われていましたが、挿入順の配列にオープンアドレス法を用いることによる高速化が行われました。
18+
この改善に際しては多くの方による議論が行われ、とりわけ Yura Sokolov 氏によって多大な貢献がありました。
19+
20+
## Binding#irb: Start a REPL session like `binding.pry`
21+
22+
[pry](https://github.com/pry/pry) を用いると `binding.pry` とアプリケーションに書くことで、その場で対話型実行環境を起動することができ、デバッグの際に便利です。
23+
[r56624](https://github.com/ruby/ruby/commit/493e48897421d176a8faf0f0820323d79ecdf94a) にて `binding.irb` と書くことで同様なことをirbを用いて行える機能が入りました。
24+
25+
## [Unify Fixnum and Bignum into Integer](https://bugs.ruby-lang.org/issues/12005)
26+
27+
Rubyの標準仕様である [ISO/IEC 30170:2012](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579) ではIntegerクラスの詳細について定めていませんが、これまでRubyにはFixnumとBignum、2つの整数クラスがありました。
28+
Ruby 2.4では従来抽象クラスであったIntegerクラスにこの2つを統合しています。
29+
FixnumクラスやBignumクラスを扱う全てのC拡張ライブラリは修正が必要になります。
30+
31+
詳細は [Redmineチケット](https://bugs.ruby-lang.org/issues/12005)[RubyKaigiでの発表](http://www.a-k-r.org/pub/2016-09-08-rubykaigi-unified-integer.pdf)を参照ください。
32+
33+
## [String supports Unicode case mappings](https://bugs.ruby-lang.org/issues/10085)
34+
35+
`String/Symbol#upcase/downcase/swapcase/capitalize(!)` は従来ASCIIの範囲でのみ大文字小文字を変換していましたが、Ruby 2.4ではUnicodeの仕様にのっとった変換を行うようになります。
36+
37+
## Performance improvements
38+
39+
Ruby 2.4 では以下のような言語レベルでの修正を伴う性能改善が行われています。
40+
41+
### [Array#max, Array#min](https://bugs.ruby-lang.org/issues/12172)
42+
43+
一定の条件下において、`[x, y].max``[x, y].min` が一時的な配列を生成しないようになりました。
44+
45+
### [Regexp#match?](https://bugs.ruby-lang.org/issues/8110)
46+
47+
バックリファレンスの生成や `$~` の変更を行わないことで、極力オブジェクト生成を減らした `Regexp#match?` が追加されました。
48+
49+
### Other performance improvements
50+
51+
* [speed up instance variable access](https://bugs.ruby-lang.org/issues/12274)
52+
53+
## Debugging
54+
55+
### [Thread#report_on_exception and Thread.report_on_exception](https://bugs.ruby-lang.org/issues/6647)
56+
57+
Rubyでは、あるスレッドで発生した例外は、別のスレッドに join されない限り無視されます。
58+
Ruby 2.4 で `report_on_exception = true` を行うと、あるスレッドが例外で終了した場合、標準エラー出力にその旨が出力されます。
59+
60+
Ruby 2.5 において `report_on_exception` のデフォルトの値がどうあるべきか、ある正常終了したスレッドがGCされた場合に通知する機能も必要かなどについてご意見をお持ちの方はお知らせください。
61+
62+
### [Thread deadlock detection now shows threads with their backtrace and dependency](https://bugs.ruby-lang.org/issues/8214)
63+
64+
Rubyにはスレッド待ちのデッドロックを検出する機能がありましたが、その際のエラー出力はデバッグのための十分な情報を出していませんでした。Ruby 2.4ではスレッドのバックトレースや依存関係などを出力します。
65+
66+
## Other notable changes since 2.3
67+
68+
* Support OpenSSL 1.1.0 (drop support for 0.9.7 or prior)
69+
* ext/tk is now removed from stdlib [Feature #8539](https://bugs.ruby-lang.org/issues/8539)
70+
* XMLRPC is now removed from stdlib [Feature #12160](https://bugs.ruby-lang.org/issues/12160)
71+
72+
See [NEWS](https://github.com/ruby/ruby/blob/v2_4_0_preview3/NEWS)
73+
and [ChangeLog](https://github.com/ruby/ruby/blob/v2_4_0_preview3/ChangeLog)
74+
for details.
75+
76+
With those changes,
77+
[2470 files changed, 283051 insertions(+), 64902 deletions(-)](https://github.com/ruby/ruby/compare/v2_3_0...v2_4_0_preview3)
78+
since Ruby 2.3.0!
79+
80+
メリークリスマス。Ruby とともに良き休日をおすごしください。
81+
82+
## Download
83+
84+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2>
85+
86+
SIZE: 12572424 bytes
87+
SHA1: 944d2588308391b20a89642472454d1dfe7b2360
88+
SHA256: 440bbbdc49d08d3650f340dccb35986d9399177ad69a204def56e5d3954600cf
89+
SHA512: bef7bb53f63fb74073d071cc125fb67b273ed0779ef43c2d2969089b9ca21fff1bd012281c5b748f7a3c24dd26e71730d7248c05a01cb23ab2089eb4d02115fe
90+
91+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz>
92+
93+
SIZE: 14104044 bytes
94+
SHA1: d44a3c50a0e742341ed3033d5db79d865151a4f4
95+
SHA256: 152fd0bd15a90b4a18213448f485d4b53e9f7662e1508190aa5b702446b29e3d
96+
SHA512: 21c9f596b42dd9cba7a53963a59fed0c2e0c1eb960a4ac7087ea3eaa991ce9252d32639e1edcb75b1d709bc07c4820a6dc336ab427d0643c6e6498e0eacdbc8b
97+
98+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.xz>
99+
100+
SIZE: 9906880 bytes
101+
SHA1: 038804bbd0e77508dd2510b729a9f3b325489b2e
102+
SHA256: 3a87fef45cba48b9322236be60c455c13fd4220184ce7287600361319bb63690
103+
SHA512: 975a5388592adc038461e0acebb6c0efee242891b2ea8621476401458efe2bc0fdd317d3bf99beb745b0b3808410efdff33862da29c95c027f457943721e3ab6
104+
105+
* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip>
106+
107+
SIZE: 15758757 bytes
108+
SHA1: 29e1bab11551011718c35a51827edcb55bd656fc
109+
SHA256: 5c2bbfa26fd6a15a2d70961874b0f3a386206fcc5f698e240dd8b0c9f0f18c5e
110+
SHA512: 31d932372ce490eeac0a70bc8dcf842909a90435422398d069c05cf01d994936064b8f4e60879e28a8655c1296eb8e180e348cb95e001ed6ca73cda0ff77de23

0 commit comments

Comments
 (0)