|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Ruby 2.4.0-preview2 Released" |
| 4 | +author: "naruse" |
| 5 | +translator: |
| 6 | +date: 2016-09-08 18:00:00 +0900 |
| 7 | +lang: en |
| 8 | +--- |
| 9 | + |
| 10 | +We are pleased to announce the release of Ruby 2.4.0-preview2. |
| 11 | + |
| 12 | +Ruby 2.4.0-preview2 is the second preview of Ruby 2.4.0. |
| 13 | +This preview2 is released to get feedback from the community. |
| 14 | +Feel free to |
| 15 | +[send feedback](https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport) |
| 16 | +since you can still influence the features. |
| 17 | + |
| 18 | +## [Unify Fixnum and Bignum into Integer](https://bugs.ruby-lang.org/issues/12005) |
| 19 | + |
| 20 | +Though [ISO/IEC 30170:2012](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579) |
| 21 | +doesn't specify details of the Integer class, |
| 22 | +Ruby had two visible Integer classes: Fixnum and Bignum. |
| 23 | +Ruby 2.4 unifies them into Integer. |
| 24 | +All C extensions which touches Fixnum or Bignum class needs to be fixed. |
| 25 | + |
| 26 | +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). |
| 27 | + |
| 28 | +## [String supports Unicode case mappings](https://bugs.ruby-lang.org/issues/10085) |
| 29 | + |
| 30 | +`String/Symbol#upcase/downcase/swapcase/capitalize(!)` now handle |
| 31 | +Unicode case mappings instead of only ASCII case mappings. |
| 32 | + |
| 33 | +## Performance improvements |
| 34 | + |
| 35 | +Ruby 2.4 also contains the following performance improvements including |
| 36 | +language changes: |
| 37 | + |
| 38 | +### [Array#max, Array#min](https://bugs.ruby-lang.org/issues/12172) |
| 39 | + |
| 40 | +`[x, y].max` and `[x, y].min` are optimized to not create a temporary array |
| 41 | +under certain conditions. |
| 42 | + |
| 43 | +### [Regexp#match?](https://bugs.ruby-lang.org/issues/8110) |
| 44 | + |
| 45 | +Added `Regexp#match?`, which executes a regexp match without creating |
| 46 | +a back reference object and changing `$~` to reduce object allocation. |
| 47 | + |
| 48 | +### Other performance improvements |
| 49 | + |
| 50 | +* [speed up instance variable access](https://bugs.ruby-lang.org/issues/12274) |
| 51 | + |
| 52 | +## Debugging |
| 53 | + |
| 54 | +### [Thread#report_on_exception and Thread.report_on_exception](https://bugs.ruby-lang.org/issues/6647) |
| 55 | + |
| 56 | +Ruby ignores exceptions in threads unless another thread explicitly joins them. |
| 57 | +With `report_on_exception = true`, |
| 58 | +you can notice if a thread has died due to an unhandled exception. |
| 59 | + |
| 60 | +Send us feedback what should be the default for `report_on_exception` |
| 61 | +and about report-on-GC, which show a report when a thread is GCed without join. |
| 62 | + |
| 63 | +### [Thread deadlock detection now shows threads with their backtrace and dependency](https://bugs.ruby-lang.org/issues/8214) |
| 64 | + |
| 65 | +Ruby has deadlock detection around waiting threads, but its report doesn't |
| 66 | +include enough information for debugging. |
| 67 | +Ruby 2.4's deadlock detection shows threads with their backtrace and |
| 68 | +dependent threads. |
| 69 | + |
| 70 | +Try and enjoy programming with Ruby 2.4.0-preview2, and |
| 71 | +[send us feedback](https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport)! |
| 72 | + |
| 73 | +## Notable Changes since 2.3 |
| 74 | + |
| 75 | +* Support OpenSSL 1.1.0 |
| 76 | +* ext/tk is now removed from stdlib [Feature #8539] |
| 77 | + |
| 78 | +See [NEWS](https://github.com/ruby/ruby/blob/v2_4_0_preview2/NEWS) |
| 79 | +and [ChangeLog](https://github.com/ruby/ruby/blob/v2_4_0_preview2/ChangeLog) |
| 80 | +for details. |
| 81 | + |
| 82 | +With those changes, |
| 83 | +[2353 files changed, 289057 insertions(+), 73847 deletions(-)](https://github.com/ruby/ruby/compare/v2_3_0...v2_4_0_preview2) |
| 84 | +since Ruby 2.3.0! |
| 85 | + |
| 86 | +## Download |
| 87 | + |
| 88 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview2.tar.bz2> |
| 89 | + |
| 90 | + * SIZE: 12463225 bytes |
| 91 | + * SHA1: 95a501624f1cf4bb0785d3e17afd0ad099f66385 |
| 92 | + * SHA256: 2224c55b2d87b5c0f08d23a4618e870027dbc1cffbfb4a05efd19eac4ff4cf1d |
| 93 | + * SHA512: 0c9a59a2f57a99c4ee8539a30f41da1de7547566203f89d856e1be9dbb44365754e6c470145dc9336eb324e0feb2f53d9fef18a1564968ac21f9ee528905949f |
| 94 | + |
| 95 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview2.tar.gz> |
| 96 | + |
| 97 | + * SIZE: 15586514 bytes |
| 98 | + * SHA1: 492a13c4ddc1c0c218433acb00dcf7ddeef96fe0 |
| 99 | + * SHA256: fec544836428aada2dc593a8cc42ce330798a805e49ecb807a0e21b386fd0b14 |
| 100 | + * SHA512: 5a3de852a7611e79f38219ed7bb13772aaabb25538ca843d38743180a0cc939a4e34c008b61d578da785285196b6b8882270bddc17cbed481237db8afa4c54e4 |
| 101 | + |
| 102 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview2.tar.xz> |
| 103 | + |
| 104 | + * SIZE: 9886832 bytes |
| 105 | + * SHA1: 95d5fd7d54d86497194f69ec433755a517dcde8f |
| 106 | + * SHA256: 6c2d25bedc50c2f19b0e349f0ffd9b9a83000d9cb6a677bf5372fb493d33e16a |
| 107 | + * SHA512: b9bd898d17583103ee61b4764ac86eb62c9661fca1f41ff0d06a15965a0a1ba581491d4b8a342e527d63e102b6ddcb2acebdabe5b246409ce9711e13f9428d5b |
| 108 | + |
| 109 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview2.zip> |
| 110 | + |
| 111 | + * SIZE: 17401564 bytes |
| 112 | + * SHA1: 5f3a5b2fd03f70d49e74ec36be3e0c110f6c17cc |
| 113 | + * SHA256: 4d0e466148283ad52208b1e1b70b018aefb7fa95b490fc862d5ea4ca284ecdd2 |
| 114 | + * SHA512: 0ef2098d995238580245a4bcee843641199c1194189be13614611e2ffec329278072319a799d409eaf13b1cff45f05a0eae02d9ea8ccc69058fa49e03eca0130 |
| 115 | + |
| 116 | +## Release Comment |
| 117 | + |
| 118 | +See also the release schedule and other information: |
| 119 | + |
| 120 | +[ReleaseEngineering24](https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering24) |
0 commit comments