|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Вышел Ruby 2.4.0-preview1" |
| 4 | +author: "naruse" |
| 5 | +translator: "gazay" |
| 6 | +date: 2016-06-20 18:00:00 +0900 |
| 7 | +lang: ru |
| 8 | +--- |
| 9 | + |
| 10 | +Мы рады сообщить о выходе релиза 2.4.0-preview1. |
| 11 | + |
| 12 | +Ruby 2.4.0-preview1 – это первое превью Ruby 2.4.0. |
| 13 | +Этот preview1 вышел раньше, чем обычно, так как он содержит очень много |
| 14 | +нововведений и улучшений. |
| 15 | +Пожалуйста, присылайте |
| 16 | +[отзывы](https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport), |
| 17 | +так как вы все еще можете повлиять на нововведения. |
| 18 | + |
| 19 | +## [Объединение Fixnum и Bignum в Integer](https://bugs.ruby-lang.org/issues/12005) |
| 20 | + |
| 21 | +Так как [ISO/IEC 30170:2012](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579) |
| 22 | +не описывает детали класса Integer, |
| 23 | +в CRuby есть два видимых класса Integer: Fixnum и Bignum. |
| 24 | +Ruby 2.4 объединяет их в Integer. |
| 25 | + |
| 26 | +## [String поддерживает работу с прописными и строчными буквами в Unicode](https://bugs.ruby-lang.org/issues/10085) |
| 27 | + |
| 28 | +`String/Symbol#upcase/downcase/swapcase/capitalize(!)` теперь работают и с Unicode, |
| 29 | +а не только с ASCII. |
| 30 | + |
| 31 | +## Улучшения производительности |
| 32 | + |
| 33 | +Ruby 2.4 также содержит следующие улучшения производительности, |
| 34 | +включая изменения в языке: |
| 35 | + |
| 36 | +### [Array#max, Array#min](https://bugs.ruby-lang.org/issues/12172) |
| 37 | + |
| 38 | +`[x, y].max` и `[x, y].min` оптимизированы и не создают временный массив |
| 39 | +в некоторых случаях. |
| 40 | + |
| 41 | +### [Regexp#match?](https://bugs.ruby-lang.org/issues/8110) |
| 42 | + |
| 43 | +Добавлен метод `Regexp#match?`, который выполняет сравнение без создания |
| 44 | +объекта с обратной ссылкой и изменения `$~`. |
| 45 | +Это полезно для уменьшения количества порожденных объектов. |
| 46 | + |
| 47 | +### Другие улучшения в производительности |
| 48 | + |
| 49 | +* [ускорен доступ к переменным объекта](https://bugs.ruby-lang.org/issues/12274) |
| 50 | + |
| 51 | +## Отладка |
| 52 | + |
| 53 | +### [Thread#report_on_exception и Thread.report_on_exception](https://bugs.ruby-lang.org/issues/6647) |
| 54 | + |
| 55 | +Ruby игнорирует ошибки в тредах, если другой тред специально не присоединится к треду с ошибкой. |
| 56 | +С `report_on_exception = true`, вы можете узнать, если тред умер из-за непойманой ошибки. |
| 57 | + |
| 58 | +Присылайте нам фидбек, что должно быть выставлено по умолчанию для `report_on_exception`, и |
| 59 | +про report-on-GC. |
| 60 | + |
| 61 | +### [Отслеживание блокировки в треде теперь показывает треды с их бектрейсами и зависимостями](https://bugs.ruby-lang.org/issues/8214) |
| 62 | + |
| 63 | +В Ruby есть отслеживание блокировки для ожидающих тредов, но его отчеты включают в себя |
| 64 | +недостаточно информации для дебага. Отслеживание блокировок в Ruby 2.4 показывает треды с их |
| 65 | +бектрейсами и зависимыми потоками. |
| 66 | + |
| 67 | +Пробуйте и наслаждайтесь программированием на Ruby 2.4.0-preview1, и присылайте, |
| 68 | +пожалуйста, нам [отзывы](https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport)! |
| 69 | + |
| 70 | +## Значительные изменения от версии 2.3 |
| 71 | + |
| 72 | +Смотрите [новости](https://github.com/ruby/ruby/blob/v2_4_0_preview1/NEWS) |
| 73 | +и [лог изменений](https://github.com/ruby/ruby/blob/v2_4_0_preview1/ChangeLog) |
| 74 | +за подробностями. |
| 75 | + |
| 76 | +Со времени выхода версии 2.3.0 |
| 77 | +[изменено 1140 файлов, добавлено 33126 новых строк(+), удалено 50993 строк(-)](https://github.com/ruby/ruby/compare/v2_3_0...v2_4_0_preview1)! |
| 78 | + |
| 79 | +## Скачать |
| 80 | + |
| 81 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.tar.bz2> |
| 82 | + |
| 83 | + * SIZE: 14108114 bytes |
| 84 | + * SHA1: 7dcc42548d0724d83b6589ab98f34282845d7bcd |
| 85 | + * SHA256: 17570f0b84215ca82252f10c167ee50bc075383c018420c6b2601ae1cade0649 |
| 86 | + * SHA512: c9873e8686eb54dbde61d6e23cd5197beebccd6cb31fd12c82763ebe1fde17095d7514d9d93c2c82b238032c98691df5479dc2d666a8a590e0fc54450ec29cb5 |
| 87 | + |
| 88 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.tar.gz> |
| 89 | + |
| 90 | + * SIZE: 17605452 bytes |
| 91 | + * SHA1: 1003a1e57547d81f4bb979c0f40f242afc284cd5 |
| 92 | + * SHA256: 80d02f49f40e7ce07b70bee7efda751b0595a349a017306e9fe8caad5da13e64 |
| 93 | + * SHA512: 4b603ab4ff9ea7e8bb8053aa4b638839d534241466d7f0e4d5bca3f2ea416694c2ea391790f1ffdc07fa538918d27707621741eb0ddc7bd00eb9d7628622787a |
| 94 | + |
| 95 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.tar.xz> |
| 96 | + |
| 97 | + * SIZE: 11155800 bytes |
| 98 | + * SHA1: bc33085277266f5a09a143bf6817affcb77f8e7f |
| 99 | + * SHA256: 62942c7300727469fe3d2b43e5a5c772d4836cf624a1d644bdece2afaca472c8 |
| 100 | + * SHA512: dfc2c6642d49fa95383817a6dc82c416b3218ddfdaf882d6d2e5a7da22d0a5ac142e516a57aa96214070f3c7551d275044233ac052c82d67189b01c39847aad4 |
| 101 | + |
| 102 | +* <https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview1.zip> |
| 103 | + |
| 104 | + * SIZE: 19904781 bytes |
| 105 | + * SHA1: 25c16ee91bbcb0224f80e20d938f5c08832973f7 |
| 106 | + * SHA256: fd588aea1558b1171f87a3dd342ee207b8995a2c0a8241d7aa15bcfa16036854 |
| 107 | + * SHA512: f2fff35ff9157a4b31177b3d6b91bdaad04c22b3c626c3a5e5ec9a31b103f9607b31c909ef27880065cfdbcfa5d6901a6db89d22e0c645666d069c5b6dd1818b |
| 108 | + |
| 109 | +## Комментарий к релизу |
| 110 | + |
| 111 | +Также вы можете посмотреть план выхода новых версий и получить другую информацию по |
| 112 | +[ссылке](https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering24). |
0 commit comments