Вийшов Ruby 2.4.0-preview3

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

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

Ruby 2.4.0-preview3 - це третій preview Ruby 2.4.0. Цей preview3 випущено, щоб отримати відгуки від спільноти. Не соромтеся надсилати відгуки , оскільки ви все ще можете впливати на функції.

Впровадження покращення хеш-таблиці (від 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 та залежними потоками.

Спробуйте та насолоджуйтеся програмуванням з Ruby 2.4.0-preview3, та надішліть нам відгук!

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

Див. NEWS та ChangeLog для деталей.

З цими змінами, 2470 файлів змінено, 283051 додано(+), 64902 видалено(-) з Ruby 2.3.0!

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

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

    РОЗМІР:   12615328 байтів
    SHA1:   fefe49f6a7d5b642936c324f3b05aaac827355db
    SHA256: 305a2b2c627990e54965393f6eb1c442eeddfa149128ccdd9f4334e2e00a2a52
    SHA512: 6602c65a7b1e3bc680acc48217108f4335e84fdd74a9cf06f2e2f9ad00a2fccacf9fa035a912bc9d5cc3f0c7a5e21475971dfac37b0364311ef3645f25c7ddf9
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview3.tar.gz

    РОЗМІР:   15758023 байтів
    SHA1:   f6a6ec9f7fedad0bf4efee2e42801cc963f60dca
    SHA256: c35fe752ccfabf69bf48e6aab5111c25a05938b428936f780638e2111934c9dd
    SHA512: 68556d5252b6813b4c8eeba32733e940207f80694b5c5d20e69bf01eb52929ed2466496b05a895a5ad4831d430695e17624eb35b728b2d4d7cf02df756ac48b4
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview3.tar.xz

    РОЗМІР:   9957596 байтів
    SHA1:   66592b1a52f985638d639e7c3dd6bdda4e0569d0
    SHA256: b14be2b5c80bff0d6894ae2b37afdb17a968413e70236ec860f3e2d670b4c317
    SHA512: 5be20f0b2609745790c2b22f2228e69a840f63c34a117a1f95fd5436af211f0a6db2758d513d3e095a2d97c53c80793579cb2a1e00e70cf72c487a88c4a40d33
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-preview3.zip

    РОЗМІР:   17579012 байтів
    SHA1:   15d08cff952da3844ae54887b7f74b12d47c9ee2
    SHA256: b95a8f67fb7d6e852db77c5660c8878c14d68eb72c5501dac164a7e640ecb06e
    SHA512: fa15e1b7ab0cab56c9a580e1b1e2fee250ee0b9c59546079675a1931a36e37131bd37d64033c75e05d8e9d9fcc33ce7850254d3acaca2136cf3bd08b070244f0
    

Коментар до випуску

Див. також розклад випуску та іншу інформацію:

ReleaseEngineering24

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

Вийшов Ruby 4.0.0

Ми раді повідомити про випуск Ruby 4.0.0. Ruby 4.0 представляє “Ruby Box” та “ZJIT”, а також додає багато покращень.

Опублікував naruse 25-12-2025

Новий вигляд документації Ruby

Слідом за ре-дизайном ruby-lang.org, ми маємо більше новин, щоб відсвяткувати 30-річчя Ruby: docs.ruby-lang.org має повністю новий вигляд завдяки Aliki — новій темі за замовчуванням для...

Опублікував Stan Lo 23-12-2025

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