Рубріки: Новини

Мова програмування Ruby оновлена до версії 3.4.0

Дмитро Сімагін

Відбувся реліз Ruby 3.4.0 — нової версії об’єктно-орієнтованої мови програмування, яка увібрала в себе найкращі риси Perl, Java, Python, Smalltalk, Eiffel, Ada та Lisp. Перелік основних покращень Ruby 3.4.0:

  • Додано новий ідентифікатор “it” для посилання на параметр блоку без імені змінної. Ідентифікатор it в цілому схожий на _1, але має більш зручний псевдонім. Тому його варто використовувати в простих випадках, наприклад, в однорядкових блоках.
  • Prism тепер є парсером за замовчуванням. Перемкніть аналізатор за замовчуванням з parse.y на Prism. Це внутрішнє вдосконалення, користувачі не побачать ніяких видимих ​​змін.
  • Бібліотека сокетів тепер містить Happy Eyeballs Version 2 (RFC 8305), останню стандартизовану версію широко поширеного методу роботи. Це покращення дозволяє Ruby забезпечувати ефективні та надійні мережеві з’єднання, адаптовані до сучасних інтернет-середовищ.
  • Продовжено оптимізацію продуктивності JIT-компілятора YJIT, який розвивається командою платформи електронної комерції Shopify в рамках ініціативи щодо збільшення продуктивності Ruby-програм. Новий YJIT застосовує версіонування базових блоків (LBBV — Lazy Basic Block Versioning) замість обробки методів цілком і реалізований у формі інтегрованого JIT-компілятора, написаного мовою Rust. Завдяки LBBV, JIT спочатку компілює тільки початок методу, а частину, що залишилася, компілює через деякий час, після того як у процесі виконання буде визначено типи використовуваних змінних і аргументів.
  • Скорочено споживання пам’яті за рахунок стиснення метаданих та реалізації уніфікованої системи обмежень. Додано опцію “–yjit-mem-size”, за замовчуванням. Додана опція “–yjit-log” для відстеження, який саме код компілюється.
  • Надано можливість динамічного завантаження альтернативних збирачів сміття, зібраних у формі бібліотек. Задіяний за замовчуванням вбудований збирач сміття тепер може бути зібраний у формі окремої бібліотеки.
  • Дозволено передачу в методи іменованих аргументів, які мають значення nil. Аргументи зі значенням “**nil” тепер обробляються як порожній хеш “**{}” без передачі іменованих аргументів у метод.
  • В індексах заборонено передачу блоків та вказівку іменованих аргументів, наприклад, “a[&b]=c” та “o[1, a: 1]”.
  • Оптимізовано метод JSON.parse, який тепер працює в півтора рази швидше за пакет json 2.7.

Останні статті

Zoom випустить фотореалістичних аватарів, які замінять людей на нарадах

Відеосервіс Zoom анонсує технологію цифрових двійників, які самостійно відвідуватимуть робочі зустрічі. Про це пише TechCrunch.…

10.03.2026

Meta купує Moltbook: соціальну мережу для агентів та ботів

IT-гігант Meta (материнська компанія Facebook) офіційно оголосив про придбання Moltbook — вірусної соціальної мережі, яка…

10.03.2026

Китайський агент штучного інтелекту почав таємно майнити криптовалюту

Експериментальний агент штучного інтелекту ROME, якого створили дослідники, пов'язані з китайською компанією Alibaba, продемонстрував неочікувану…

10.03.2026

Заробляли на DDoS-атаках: у Польщі викрито групу школярів-хакерів, наймолодшому 12 років

Центральне бюро боротьби з кіберзлочинністю Польщі (CBZC) провело масштабну операцію, результатом якої стало викриття групи…

10.03.2026

Microsoft випустила Copilot Cowork — мультимодальний інструмент для запуску агентів

Microsoft оголосила про початок інтеграції технологій Anthropic у свої сервіси, представивши новий інструмент Copilot Cowork,…

10.03.2026

Anthropic презентує новий інструмент перевірки пул-реквестів Code Review

Компанія Anthropic оголосила про доступність у Claude Code бета-версії нового інструменту Code Review. Він розробленій…

10.03.2026