Выпуск языка программирования Ruby 2.4.0
Опубликовано 25 Декабрь 2016 08:20:08
Представлен релиз Ruby 2.4, динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 2.4 является четвёртым значительным выпуском, подготовленным в рамках нового планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2-3 месяца корректирующих выпусков.
Источник: http://www.opennet.ru/opennews/art.shtml?num=45763
Основные улучшения:
- Переработана реализация хэш-таблиц (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.
Источник: http://www.opennet.ru/opennews/art.shtml?num=45763
|
0 | Tweet | Нравится |
|