Скидка до 60% и курс в подарок 2 дня 09 :56 :09 Выбрать курс
Код

Вышел Ruby 3.2.0 Preview 1 с улучшенной оптимизацией

Разработчики добавили поддержку WebAssembly и Regexp timeout.

В прошлом большом релизе Ruby под номером 3.1.0 появился новый компилятор и дебагер. А в этом релизе авторы работают над поддержкой WASI (The WebAssembly System Interface) и регулярными выражениями.

WebAssembly.  Разработчики добавили первичную поддержку WebAssembly на основе WASI-интерфейса. Это позволит запускать бинарные CRuby-файлы в браузере, бессерверных средах и встроенных WebAssembly/WASI-системах. На данный момент порт проходит базовые и bootstrap-тесты, но не использует Thread API.

Поддержка WebAssembly. Источник: блог Ruby

Регулярные выражения. Добавили задержку (timeout) для Regexp-сравнений. Timeout позволяет задавать время, за которое Regexp-выражение должны проверить, иначе появляется ошибка. Это даст разработчикам возможность предотвращать ReDoS-атаки заранее.

Regexp.timeout = 1.0

/^a*b?a*$/ =~ "a" * 50000 + "x"
#=> Regexp::TimeoutError is raised in one second

Улучшения в оптимизации. Изменили и пофиксили следующие типы данных:

Hash.

  • Hash#shift теперь возвращает nil, если хеш пуст.

MatchData.

  • Добавили MatchData#byteoffset.

Module.

  • Добавили Module.used_refinements.
  • Добавили Module#refinements.
  • Добавили Module#const_added.

Proc.

  • Proc#dup возвращает экземпляр подкласса.
  • Proc#parameters теперь принимает лямбда-ключи.

Refinement.

  • Добавили Refinement#refined_class.

Set.

  • Set теперь доступен как builtin-класс.

String.

  • Добавили String#byteindex и String#byterindex.
  • Обновили версию Unicode до 14.0.0 и Emoji — до 14.0.
  • Добавили String#bytesplice.

Struct.

  • Struct-класс теперь можно инициализировать без keyword_init: true в Struct.new.

Что ещё? Убрали сторонние бандлеры — libyaml, libffi — и сделали функцию поиска паттернов для языков стабильной.

Подробнее прочитать обо всех изменениях можно на сайте Ruby, а протестировать новые функции — в TryRuby Playground.


Онлайн-магистратура по ИТ с государственным дипломом
Реклама. Скилфэктори ООО. ИНН: 9702009530. Erid: 2VtzquYeuiJ
Бесплатный курс «Как зарабатывать в ИТ»
Вы попробуете себя в самых востребованных ИТ-профессиях, напишете первый код и получите персональный карьерный план для старта с нуля.
Подробнее
Интересуетесь технологиями? Выберите бесплатный курс и попробуйте себя в IT
Высшее онлайн-образование от лучших университетов страны и Skillfactory ➞
Станьте востребованным специалистом с дипломом магистра государственного образца и опытом в индустрии.
Реклама. Скилфэктори ООО. ИНН: 9702009530. Erid: 2VtzquZXxga
Подробнее
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована