Выпуск языка программирования 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).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.