25 декабря состоялся первый стабильный релиз ветки Ruby 2.4. В ней представлено много новых возможностей.
- Улучшения хеш-таблицы (Владимир Макаров). Введены открытая адресация и упорядоченные в порядке добавления массивы. Это обсуждено со многими людьми, в особенности с Юрой Соколовым.
- Привязка #irb: Старт сессии REPL по аналогии с
binding.pry. Вместо логирования переменных множественными вызовамиpможно подключить pry черезbinding.pryдля запуска из приложения REPL и выполнения любого Ruby-кода. Теперь в поставку языка включёнbinding.irb, который позволяет проделать то же самое с irb. - Fixnum и Bignum объединены в Integer. Все C-расширения, затрагивающие классы Fixnum или Bignum, нужно поправить.
- Поддержка соответствий заглавных символов Unicode.
String/Symbol#upcase/downcase/swapcase/capitalize(!)теперь работают не только с ASCII. - Улучшения производительности.
Array#maxиArray#minбольше не создают временный массив при некоторых условиях. ДобавленRegexp#match?, выполняющий проверку регулярного выражения без создания объекта с обратной ссылкой и изменения$~. Ускорен доступ к переменным экземпляров.
Улучшения отладки:
Thread#report_on_exceptionиThread.report_on_exception. Ruby игнорирует исключения в потоках, если к ним явно не присоединён другой поток. Сreport_on_exception = trueможно отследить, что поток умер из-за необработанного исключения. Присылайте отзывы, нужно ли включить эту опцию по умолчанию, равно как и report-on-GC, которая сообщает о сборке мусора в неприсоединённом потоке.- Отлов тупиков в потоках теперь отображает для потоков трассировку и зависимые потоки.
Другие значимые изменения с версии 2.3:
- Поддержка OpenSSL 1.1.0 (прекращена поддержка 0.9.7 и более ранних).
- Из stdlib убраны ext/tk и XMLRPC.
>>> Подробности
>>> Источник







