[ruby-dev:49674] Ruby 2.4.0-preview1 Released
From:
"NARUSE, Yui" <naruse@...>
Date:
2016-06-20 08:59:46 UTC
List:
ruby-dev #49674
We are pleased to announce the release of Ruby 2.4.0-preview1. Ruby 2.4.0-preview1 is the first preview of Ruby 2.4.0. This preview1 is released earlier than usual because it includes so many new features and improvements. Feel free to [send feedback](https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport) since you can still change the features. ## [Unify Fixnum and Bignum into Integer](https://bugs.ruby-lang.org/issues/12005) Though [ISO/IEC 30170:2012](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579) doesn't specify details of the Integer class, CRuby has two visible Integer classes: Fixnum and Bignum. Ruby 2.4 unifies them into Integer. ## [String supports Unicode case mappings](https://bugs.ruby-lang.org/issues/10085) `String/Symbol#upcase/downcase/swapcase/capitalize(!)` now handle Unicode case mappings instead of only ASCII case mappings. ## Performance improvements Ruby 2.4 also contains the following performance improvements including language changes: ### [Array#max, Array#min](https://bugs.ruby-lang.org/issues/12172) `[x, y].max` and `[x, y].min` are optimized to not create a temporary array under certain conditions. ### [Regexp#match?](https://bugs.ruby-lang.org/issues/8110) Added `Regexp#match?`, which executes a regexp match without creating a back reference object and changing `$~` to reduce object allocation. ### Other performance improvements * [speed up instance variable access](https://bugs.ruby-lang.org/issues/12274) ## Debugging ### [Thread#report_on_exception and Thread.report_on_exception](https://bugs.ruby-lang.org/issues/6647) Ruby ignored exceptions in threads unless another thread explicitly joins it. With `report_on_exception = true`, you can notice if a thread has died due to an unhandled exception. Send us feedback what should be the default for `report_on_exception` and about report-on-GC. ### [Thread deadlock detection now shows threads with their backtrace and dependency](https://bugs.ruby-lang.org/issues/8214) Ruby has deadlock detection around waiting threads, but its report doesn't include enough information for debugging. Ruby 2.4's deadlock detection shows threads with their backtrace and dependent threads. Try and enjoy programming with Ruby 2.4.0-preview1, and [send us feedback](https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport)! ## Notable Changes since 2.3 See [NEWS](https://github.com/ruby/ruby/blob/v2_4_0_preview1/NEWS) and [ChangeLog](https://github.com/ruby/ruby/blob/v2_4_0_preview1/ChangeLog) for details. With those changes, [1140 files changed, 33126 insertions(+), 50993 deletions(-)](https://github.com/ruby/ruby/compare/v2_3_0...v2_4_0_preview1) since Ruby 2.3.0! ## Download * <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.tar.bz2> * SIZE: 14108114 bytes * SHA1: 7dcc42548d0724d83b6589ab98f34282845d7bcd * SHA256: 17570f0b84215ca82252f10c167ee50bc075383c018420c6b2601ae1cade0649 * SHA512: c9873e8686eb54dbde61d6e23cd5197beebccd6cb31fd12c82763ebe1fde17095d7514d9d93c2c82b238032c98691df5479dc2d666a8a590e0fc54450ec29cb5 * <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.tar.gz> * SIZE: 17605452 bytes * SHA1: 1003a1e57547d81f4bb979c0f40f242afc284cd5 * SHA256: 80d02f49f40e7ce07b70bee7efda751b0595a349a017306e9fe8caad5da13e64 * SHA512: 4b603ab4ff9ea7e8bb8053aa4b638839d534241466d7f0e4d5bca3f2ea416694c2ea391790f1ffdc07fa538918d27707621741eb0ddc7bd00eb9d7628622787a * <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.tar.xz> * SIZE: 11155800 bytes * SHA1: bc33085277266f5a09a143bf6817affcb77f8e7f * SHA256: 62942c7300727469fe3d2b43e5a5c772d4836cf624a1d644bdece2afaca472c8 * SHA512: dfc2c6642d49fa95383817a6dc82c416b3218ddfdaf882d6d2e5a7da22d0a5ac142e516a57aa96214070f3c7551d275044233ac052c82d67189b01c39847aad4 * <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.zip> * SIZE: 19904781 bytes * SHA1: 25c16ee91bbcb0224f80e20d938f5c08832973f7 * SHA256: fd588aea1558b1171f87a3dd342ee207b8995a2c0a8241d7aa15bcfa16036854 * SHA512: f2fff35ff9157a4b31177b3d6b91bdaad04c22b3c626c3a5e5ec9a31b103f9607b31c909ef27880065cfdbcfa5d6901a6db89d22e0c645666d069c5b6dd1818b ## Release Comment See also the release schedule and other information: [ReleaseEngineering24](https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering24) -- NARUSE, Yui <naruse@airemix.jp>