Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0
Как сообщает opennet.ru после пяти лет существования проекта и спустя три года с момента первого выпуска традиционно ко Дню Независимости США подготовлен значительный релиз свободного оптимизирующего компилятора RPerl 4.0, позволяющего транслировать код на языке Perl 5 в представление на языке С++ с последующим преобразованием в машинный код при помощи С++-компилятора. Исходные тексты проекта распространяются под лицензиями Artistic и GPL, как и код интерпретатора Perl5.
RPerl является ярким примером успешного проекта, поддерживаемого сообществом. История проекта берет начало с истории основания проекта Perl11. Решение о проекте RPerl родилось 1 января 2013 года. Создателем оптимизирующего компилятора rperl и лидером команды разработчиков является один из трех соучредителей проекта Perl11 Уильям Брэсвелл младший (William N. Braswell, Jr.). Он же является автором свободных книг "Learning RPerl", которая знакомит с rperl и обучает его использованию, и "The Book Of RPerl. True Legends In Programming", посвященной RPerl и оформленной в виде художественного очерка. Интерес к проекту RPerl подтвержден успешным завершением двух кампаний по сбору средств на краудфандинговой платформ kickstarter. Проект также получал финансирование от фонда The Perl Foundation в виде двух грантов на разработку компилятора в сентябре 2015 и феврале 2016 года.
Аббревиатура RPerl с одной стороны означает "Restricted Perl" (ограниченный Perl), так как используется определенное подмножество языка Perl5, которое позволяет скомпилировать исходные тексты в высокопроизводительный исполняемый код за счет использования статических типов C++. С другой стороны, RPerl означает "Revolutionary Perl" (революционный Perl), так как разработчики надеются, что производительность RPerl кардинальным образом изменит индустрию разработки программного обеспечения. Третьим значением RPerl является "Roadrunner Perl" (марафонец perl), так как RPerl действительно быстрый.
Кроме высокой скорости работы приложений, начиная с версии RPerl 2.0 обеспечена возможность использования преимуществ многоядерных систем и облачных платформ за счет автоматического распараллеливания выполнения кода, сохраняя при этом совместимость с существующими и будущими высокопроизводительными вычислительными платформами.
Важные изменения и нововведения:
- Доступны для загрузки двоичные пакеты;
- Включено динамическое связывание с библиотекой libperl.so (использование флагов для динамической линковки $Config::Config{ccdlflags});
- Обеспечена возможность сборки в текущей директории '.' как и в lib/;
- Разрешено использование идентификаторов, начинающихся с символа подчеркивания "_", в тех случаях, когда это не приводит к конфликту с зарезервированными именами C++;
- Обеспечена поддержка pod (plain old documentation), что обеспечило поддержку блочных комментариев;
- Иные доработки по грамматике, типам данных и т. п.