Выпуск языка программирования Ruby 2.1
После десяти месяцев разработки представлен релиз языка программирования Ruby 2.1. Ruby — мощный и динамический объектно-ориентированный язык программирования, отличающийся высокой эффективностью разработки программ и вобравший в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD (»2-clause BSDL») и «Ruby», которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 2.1 продолжает развитие ветки 2.0 при сохранении полной обратной совместимости. Основные изменения:
Поддержка кэширования методов в VM; Новый сборщик мусора RGenGC; Расширение возможностей конструкции «Refinements» (Module#refine) для повышения безопасности внесения изменений в код на лету; Поддержка нового синтаксиса числовых и комплексных литералов (»42r» для Rational (42, 1), 3.14r» для 3.14.rationalize,»42i» для Complex (0, 42),»42ri» для Complex (0, 42r)); Значения по умолчанию для аргументов ключевых слов теперь могут быть пропущены; Изменено значение, возвращаемое по умолчанию для конструкций «def» (возвращает имя выражения вместо nil); Для ускорения вычислений с данными типа Bignum задействована библиотека GMP; Новые методы String#scrub и String#scrub! для проверки и исправления некорректной строковой последовательности; Новый метод Socket.getifaddrs, ассоциированный с функцией getifaddrs (); Обновление RDoc 4.1.0 и RubyGems 2.2.0; Оптимизация строк «литерал».freeze на уровне VM; В классы Array и Enumerable добавлены новые методы Array#to_h и Enumerable#to_h для преобразования массива/списка из пар ключей и значений в хэш; Поддержка метода Exception#cause, позволяющего обратиться к предыдущему исключению при обработке нового исключения; Обновление библиотек BigDecimal, JSON, NKF, Rake, RubyGems и RDoc; Удаление curses из стандартного набора библиотек (библиотека curses вынесена в отдельный curses.gem).
© OpenNet