Вийшов Ruby 2.4.0

Опублікував naruse 25-12-2016
Переклав: Andrii Furmanets

Ми раді оголосити випуск Ruby 2.4.0.

Ruby 2.4.0 - це перший стабільний випуск серії Ruby 2.4. Він вводить багато нових функцій, наприклад:

Впровадження покращення хеш-таблиці (від Vladimir Makarov)

Покращено внутрішню структуру хеш-таблиці (st_table) шляхом впровадження відкритої адресації та масиву порядку включення. Це покращення обговорювалося з багатьма людьми, особливо з Yura Sokolov.

Binding#irb: Запуск сесії REPL, подібної до binding.pry

Під час налагодження ви часто можете використовувати p для перегляду значення змінних. З pry ви можете використовувати binding.pry у вашому додатку для запуску REPL та виконання будь-якого коду Ruby. r56624 вводить binding.irb, який поводиться так само з irb.

Об’єднання Fixnum та Bignum в Integer

Хоча ISO/IEC 30170:2012 не визначає деталей класу Integer, Ruby мав два видимі класи Integer: Fixnum та Bignum. Ruby 2.4 об’єднує їх в Integer. Всі C розширення, які торкаються класу Fixnum або Bignum, потребують виправлення.

Див. також тікет та слайди akr.

String підтримує відображення регістру Unicode

String/Symbol#upcase/downcase/swapcase/capitalize(!) тепер обробляють відображення регістру Unicode замість лише відображення регістру ASCII.

Покращення продуктивності

Ruby 2.4 також містить наступні покращення продуктивності, включаючи зміни мови:

Array#max, Array#min

[x, y].max та [x, y].min оптимізовано, щоб не створювати тимчасовий масив за певних умов.

Regexp#match?

Додано Regexp#match?, який виконує відповідність regexp без створення об’єкта зворотного посилання та зміни $~ для зменшення виділення об’єктів.

Інші покращення продуктивності

Налагодження

Thread#report_on_exception та Thread.report_on_exception

Ruby ігнорує винятки в потоках, якщо інший потік явно не приєднується до них. З report_on_exception = true, ви можете помітити, якщо потік помер через необроблений виняток.

Надішліть нам відгук, що має бути за замовчуванням для report_on_exception та про report-on-GC, який показує звіт, коли потік збирається збирачем сміття без join.

Виявлення deadlock потоків тепер показує потоки з їхнім backtrace та залежністю

Ruby має виявлення deadlock навколо потоків очікування, але його звіт не включає достатньо інформації для налагодження. Виявлення deadlock Ruby 2.4 показує потоки з їхнім backtrace та залежними потоками.

Інші помітні зміни з 2.3

  • Підтримка OpenSSL 1.1.0 (припинення підтримки 0.9.7 або раніше)
  • ext/tk тепер видалено з stdlib Функція #8539
  • XMLRPC тепер видалено з stdlib Функція #12160

Див. NEWS або логи комітів для деталей.

З цими змінами, 2523 файли змінено, 289129 додано(+), 84670 видалено(-) з Ruby 2.3.0!

Веселого Різдва, щасливих свят, та насолоджуйтеся програмуванням з Ruby 2.4!

Завантаження

  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2

    РОЗМІР:   12572424 байтів
    SHA1:   944d2588308391b20a89642472454d1dfe7b2360
    SHA256: 440bbbdc49d08d3650f340dccb35986d9399177ad69a204def56e5d3954600cf
    SHA512: bef7bb53f63fb74073d071cc125fb67b273ed0779ef43c2d2969089b9ca21fff1bd012281c5b748f7a3c24dd26e71730d7248c05a01cb23ab2089eb4d02115fe
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz

    РОЗМІР:   14104044 байтів
    SHA1:   d44a3c50a0e742341ed3033d5db79d865151a4f4
    SHA256: 152fd0bd15a90b4a18213448f485d4b53e9f7662e1508190aa5b702446b29e3d
    SHA512: 21c9f596b42dd9cba7a53963a59fed0c2e0c1eb960a4ac7087ea3eaa991ce9252d32639e1edcb75b1d709bc07c4820a6dc336ab427d0643c6e6498e0eacdbc8b
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.xz

    РОЗМІР:   9906880 байтів
    SHA1:   038804bbd0e77508dd2510b729a9f3b325489b2e
    SHA256: 3a87fef45cba48b9322236be60c455c13fd4220184ce7287600361319bb63690
    SHA512: 975a5388592adc038461e0acebb6c0efee242891b2ea8621476401458efe2bc0fdd317d3bf99beb745b0b3808410efdff33862da29c95c027f457943721e3ab6
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip

    РОЗМІР:   15758757 байтів
    SHA1:   29e1bab11551011718c35a51827edcb55bd656fc
    SHA256: 5c2bbfa26fd6a15a2d70961874b0f3a386206fcc5f698e240dd8b0c9f0f18c5e
    SHA512: 31d932372ce490eeac0a70bc8dcf842909a90435422398d069c05cf01d994936064b8f4e60879e28a8655c1296eb8e180e348cb95e001ed6ca73cda0ff77de23
    

Останні новини

Вийшов Ruby 3.2.11

Вийшов Ruby 3.2.11. Цей реліз містить оновлення gem zlib, яке усуває CVE-2026-27820.

Опублікував hsbt 27-03-2026

Вийшов Ruby 3.3.11

Вийшов Ruby 3.3.11. Цей реліз містить оновлення gem zlib, яке усуває CVE-2026-27820, а також кілька виправлень помилок.

Опублікував hsbt 26-03-2026

Більше новин...