Основные улучшения:
- Переработана реализация хэш-таблиц (st_table), внесены улучшения связанные с переходом на использование открытой адресации для борьбы с коллизиями и применением упорядоченных массивов вместо списков с двойным связыванием. В среднем новая реализация обеспечивает 50% ускорения работы с хэшами;
- Добавлена возможность binding.irb для запуска REPL-сеансов по аналогии с binding.pry;
- Типы Fixnum и Bignum преобразованы в универсальный тип Integer. Все Си-расширения, из которых выполняется обращение к классам Fixnum и Bignum, должны быть переработаны;
- В строковых операциях String/Symbol#upcase/downcase/swapcase/capitalize реализована поддержка маппинга строчных/прописных символов для Unicode (ранее подобный маппинг был доступен только для ASCII-символов);
- Внесена серия оптимизаций производительности. В частности, ускорена работа "Array#max" и "Array#min", реализации "[x, y].max" и "[x, y].min" избавлены от создания временных массивов для некоторых ситуаций, добавлена операция "Regexp#match?" позволяющая обработать регулярное выражение без создания объекта с обратными ссылками, ускорены операции доступа к экземплярам переменных;
- Добавлены отладочные вызовы "Thread#report_on_exception" и "Thread.report_on_exception" позволяющие отследить исключения при завершении потоков или выполнении операций сборки мусора. Расширены механизмы обнаружения взаимных блокировок в потоках, при выявлении которых обеспечен вывод обратных трассировок и списка зависимых потоков;
- Добавлена поддержка OpenSSL 1.1.0. Прекращена поддержка OpenSSL 0.9.7 и более ранних выпусков;
- Из stdlib удалены компоненты ext/tk и XMLRPC.
Комментариев нет:
Отправить комментарий