Разработчики проекта Rakudo объявили о выходе релиза Rakudo Star, в рамках которого представлен полностью работоспособный и готовый к использованию комплект с реализацией языка Perl 6 на базе виртуальной машины Parrot. Дистрибутив включает в себя компилятор Rakudo Perl 6, виртуальную машину Parrot и набор необходимых для разработки программ библиотек и модулей. Несмотря на то, что выпуск пригоден для широкого использования, он в первую очередь позиционируется для проведения экспериментов и начального знакомства разработчиков с особенностями языка Perl6.

Выпуск Rakudo Star является своеобразным компромиссом, родившимся после того, как разработчики осознали, что с момента начала разработки Perl 6 прошло уже 9 лет, а все намеченные планы еще не достигнуты. После оценки ситуации было решено выпустить готовую к использованию неискушенными разработчиками реализацию языка, в которой обеспечить качественную поддержку уже готовых элементов Perl6. Разработчики признают, что производительность Rakudo Star оставляет желать лучшего, в коде остаются некоторые неисправленные ошибки и не все задуманные части спецификации Perl6 поддерживаются. Несмотря на подобные недоработки, Rakudo Star не является тестовой версией и достаточно стабилен для начала внедрения.

Первому релизу решено не присваивать определенный номер версии, а выпустить его как "Rakudo *", так как 1.0 подразумевает законченность релиза, а 0.x может быть воспринята как непригодность к полноценному использованию. В дальнейшем код будет дорабатываться в плане более полной поддержки всех задуманных возможностей. В будущем обновления к Rakudo Star, в которых постепенно будет наращиваться недостающая функциональность, планируется выпускать раз в месяц. По мнению разработчиков, заложенной в первый релиз функциональности должно хватить для знакомства с языком не вовлеченных в разработку Perl 6 программистов и начала создания первых серьезных проектов на Perl 6.

Реализованные в Rakudo Star элементы языка Perl6:

  • Грамматика Perl 6 и регулярные выражения;
  • Списки формальных параметров и сигнатуры;
  • Метаоператоры;
  • Последовательная типизация;
  • Новая мощная объектная модель, включающая поддержку классов и ролей;
  • Отложенные вычисления списков (lazy list evaluation)
  • Мультиметоды (множественная диспетчеризация);
  • Поддержка оператора "умного" сопоставления "~~" (smart matching)
  • Спайки и "autothreading";
  • Перегрузка операторов;
  • Интроспекция;
  • Каррирование;
  • Библиотека с богатым набором встроенных операторов, функций и типов;
  • Интерактивный цикл обработки "чтение-вычисление-вывод";
  • Поддержка Unicode на уровне codepoint-символов;
  • Возобновляемые исключения (resumable exceptions).

Возможности, присутствующие в спецификации Perl 6, но еще не пригодные для использования в Rakudo Star:

  • Вложенное определение пакетов;
  • Бинарные объекты, нативные типы, pack и unpack;
  • Типизированные массивы;
  • Макросы;
  • Определяющие состояние переменные (state variable)
  • Потоки и конкурирующее выполнение;
  • pre и post ограничения;
  • Неблокирующий ввод/вывод;
  • Synopsis 9;
  • Утилита perl6doc или инструменты для манипулирования pod-файлами.

Из включенных в поставку Rakudo Star дополнительных модулей можно отметить:

  • Blizkost - позволяет использовать в Rakudo Perl 6 некоторые созданные для Perl 5 модули;
  • MiniDBI - простой DBI-интерфейс для обращения к базам данных;
  • Zavolaj - позволяет вызывать из Rakudo Perl 6 библиотеки функций, написанные на языке Си;
  • SVG и SVG::Plot - позволяет создавать векторные SVG-изображения;
  • HTTP::Daemon - модуль, позволяющий интегрировать в скрипт функции HTTP-сервера;
  • XML::Writer - генератор XML
  • YAML - позволяет преобразовывать Perl 6 объекты в YAML-представление;
  • Math::Model - модуль для описания и вычисления математических моделей;
  • Config::INI - модуль для парсинга и генерации файлов конфигурации;
  • File::Find - модуль для рекурсивного обхода дерева директорий;
  • LWP::Simple - модуль с функциями для взаимодействия с web-ресурсами.


Источник: http://www.opennet.ru/opennews/art.shtml?num=27471