Вийшов Ruby 3.3.0-preview1
Опублікував naruse 12-05-2023
Переклав: Andrii Furmanets
Раді повідомити про вихід Ruby 3.3.0-preview1. Ruby 3.3 додає новий чистий Ruby JIT компілятор під назвою RJIT, використовує Lrama як генератор парсерів та багато покращень продуктивності, особливо YJIT.
RJIT
- Впроваджено чистий Ruby JIT компілятор RJIT та замінено MJIT.
- RJIT підтримує лише архітектуру x86_64 на платформах Unix.
- На відміну від MJIT, він не потребує компілятора C під час виконання.
- RJIT існує лише для експериментальних цілей.
- Ви повинні продовжувати використовувати YJIT у виробництві.
- Якщо зацікавлені у розробці JIT для Ruby, будь ласка, перегляньте презентацію k0kubun на День 3 RubyKaigi.
Використання Lrama замість Bison
- Заміна Bison на генератор парсерів Lrama LALR Feature #19637
- Якщо зацікавлені, будь ласка, перегляньте Майбутнє бачення Ruby Parser
YJIT
- Значні покращення продуктивності порівняно з 3.2
- Підтримка splat та rest аргументів покращена.
- Регістри виділяються для операцій стеку віртуальної машини.
- Більше викликів з опціональними аргументами компілюється.
Integer#!=,String#!=,Kernel#block_given?,Kernel#is_a?,Kernel#instance_of?,Module#===спеціально оптимізовані.- Змінні екземпляра більше не виходять до інтерпретатора з мегаморфними формами об’єктів.
- Метадані для скомпільованого коду використовують набагато менше пам’яті.
- Покращена генерація коду на ARM64
- Опція запуску YJIT в режимі паузи, а потім увімкнення вручну
--yjit-pauseтаRubyVM::YJIT.resume- Це може використовуватися для увімкнення YJIT лише після того, як ваш застосунок завершить завантаження
- Опція трасування виходів тепер підтримує вибірку
--trace-exits-sample-rate=N
- Кілька виправлень помилок
Інші помітні нові можливості
Мова
Покращення продуктивності
defined?(@ivar)оптимізовано з Object Shapes.
Інші помітні зміни з версії 3.2
Проблеми сумісності
Примітка: Виключаючи виправлення помилок функцій.
Видалені константи
Наступні застарілі константи видалено.
Видалені методи
Наступні застарілі методи видалено.
Проблеми сумісності стандартної бібліотеки
ext/readline виведено з експлуатації
- У нас є
reline, яка є чистою реалізацією Ruby, сумісною з APIext/readline. Ми покладаємося наrelineу майбутньому. Якщо вам потрібно використовуватиext/readline, ви можете встановитиext/readlineчерез rubygems.org за допомогоюgem install readline-ext. - Нам більше не потрібно встановлювати бібліотеки, такі як
libreadlineабоlibedit.
Оновлення C API
Оновлені C API
Наступні API оновлено.
Видалені C API
Наступні застарілі API видалено.
Оновлення стандартної бібліотеки
Оновлено наступні default gems.
- RubyGems 3.5.0.dev
- bigdecimal 3.1.4
- bundler 2.5.0.dev
- csv 3.2.7
- fiddle 1.1.2
- fileutils 1.7.1
- irb 1.6.4
- optparse 0.4.0.pre.1
- psych 5.1.0
- reline 0.3.3
- stringio 3.0.7
- strscan 3.0.7
- syntax_suggest 1.0.4
- time 0.2.2
- timeout 0.3.2
- uri 0.12.1
Оновлено наступні bundled gems.
- minitest 5.18.0
- rbs 3.1.0
- typeprof 0.21.7
- debug 1.8.0
Див. GitHub releases, такі як Logger, або changelog для деталей default gems або bundled gems.
Див. NEWS або журнали комітів для подробиць.
Унаслідок цих змін 1922 файлів змінено, 75283 вставок(+), 44896 видалень(-) з часу Ruby 3.2.0!
Завантаження
-
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz
SIZE: 20428213 SHA1: 5445eec1cd9ddb44e03e74568cac94209c91b42d SHA256: c3454a911779b8d747ab0ea87041030d002d533edacb2485fe558b7084da25ed SHA512: 0f891f140ddc6372aa7c4459f8784126e0c341db7b80e72c51e441c5153c43c2d7b965f7807c076862ac84b9b8b0c6a66bbf66fc341746016151397bb21c782a -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz
SIZE: 15074600 SHA1: 4c22ebca287c87811e1050bf4d59b7d32255b212 SHA256: ae300b49e06c13087dd163b97eddd38db895dc8e0c9904284119795d75303fbb SHA512: 46c1134dba5810847f7f6b4298900a91f5225679d7873548b271f4ef2ad1dc168722562a2e468a2ccf136314176ee613d8c7792fd4411a3f7a44c80b93b417ee -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip
SIZE: 24846962 SHA1: 31774fa653c54107b6afc30adda3a0350d8f41d2 SHA256: 6ecafecf83f2cacf446b2326012f2b6ee1a0614d8dd29bb1fb3f105c27e2c553 SHA512: 794bef847fefbbdbbdced85975a00c9289ef6464810408af3f0f2055052d6b5ef5576dbd41e0d87bb73f1ad276d8e27c36018610f8e2b9936828c0e692f611f0
Що таке Ruby
Ruby уперше розробив Matz (Yukihiro Matsumoto) у 1993 році, і зараз вона розвивається як Open Source. Вона працює на багатьох платформах і використовується по всьому світу, особливо для веброзробки.
Останні новини
Вийшов Ruby 3.2.10
Вийшов Ruby 3.2.10.
Опублікував hsbt 14-01-2026
Вийшов Ruby 4.0.1
Вийшов Ruby 4.0.1.
Опублікував k0kubun 13-01-2026
Вийшов 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