Выпуск языка программирования Ruby 2.2.0

Доступен релиз Ruby 2.2, динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD (»2-clause BSDL») и «Ruby», которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 2.2 является вторым значительным выпуском, подготовленным в рамках нового планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2–3 месяца корректирующих выпусков. В настоящее время уже началась работа над фреймворком Rails 5.0, в котором будут задействованы новые возможности Ruby 2.2. Основные улучшения:

Представлен инкрементальный сборщик мусора, примечательный сокращением задержек во время значительных чисток мусора; В сборщик мусора включены изменения, позволившие обеспечить чистку мусора для объектов типа Symbol при сохранении совместимости с расширениями на языке Си. Внесённое изменение привело к сокращению потребления памяти при использовании объектов типа Symbol; В сборочном сценарии configure.in добавлена опция »--with-jemalloc » для сборки с библиотекой jemalloc, что должно привести к увеличению производительности операций управления памятью. Использование jemalloc пока позиционируется как экспериментальная возможность; Экспериментальная поддержка использования системного вызова vfork (2) совместно с вызовами system () и spawn (), которая позволяет существенно сократить накладные расходы при выполнении внешних команд из процессов большого размера; В базовых библиотеках реализована поддержка спецификации Unicode 7.0 и добавлены новые методы Enumerable#slice_after, Enumerable#slice_when, Float#next_float, Float#prev_float, File.birthtime, File#birthtime и String#unicode_normalize; Обновлены поставляемые в комплекте сторонние библиотеки и компоненты: Psych 2.0.8, Rake 10.4.2, RDoc 4.2.0, RubyGems 2.4.5, test-unit 3.0.8, minitest 5.4.3. Объявлена устаревшей библиотека mathn; Из API для разработки дополнений на языке Си удалены вызовы, ранее объявленные устаревшими.

© OpenNet