Увидел свет Rakudo Star, первый готовый к использованию дистрибутив Perl 6
29 июля 2010 года
Разработчики проекта Rakudo объявили (Архивная копия от 14 сентября 2010 на Wayback Machine) о выходе релиза 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 (Архивная копия от 9 ноября 2014 на Wayback Machine);
- Утилита 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://rakudo.org/node/75...) (Архивная копия от 14 сентября 2010 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.