Ruby logo

Доступен релиз 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_afterEnumerable#slice_when,Float#next_float, Float#prev_floatFile.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 для разработки дополнений на языке Си удалены вызовы, ранее объявленные устаревшими.