Опубликован (http://blogs.perl.org/users/flavio_s_glock/2017/05/perl5-to-...) первый выпуск Java-бэкенда (https://github.com/fglock/Perlito/blob/master/README-perlito...) компилятора Perlito5 (https://github.com/fglock/Perlito), предназначенного для обеспечения компиляции исходных текстов на языке Perl 5 в байткод JVM, который может быть выполнен в виртуальной машине Java 7. Проект Perlito также предоставляет бэкенды для компиляции Perl 5 в JavaScript, Perl 6 в Perl 5, JavaScript и Python 2.6. В разработке находятся бэкенды для Ruby, Go и Common.Java-бэкнд поддерживает не все возможности Perl, например, невозможно использовать XS-модули, написанные на языке Си, а также пока не доведена до конца поддержка таких средств, как обработка сигналов, оператор goto, tie array/hash, "local @", "~~" и многопоточность. Имеются отличия в реализации регулярных выражений, sprintf(), pack() и unpack(). Вместо XS предлагаются средства для подключения расширений на языке Java - из Perl-кода можно обращаться к классам Java, а из Java-кода запускать функции на языке Perl. Используя данную возможность подготовлены (https://github.com/fglock/Perlito/tree/master/src5/lib/Perli...) Java-аналоги таких XS-модулей, как Digest::SHA1/MD5, List::Util, MIME::Base64 и Scalar::Util.
Perlito осуществляет прозрачную компиляцию в оперативной памяти с последующим запуском подготовленного байткода в JVM при помощи eval. Например, для выполнения Perl-скрипта в JVM можно выполнить:
java -jar perlito5.jar -I src5/lib -e 'print "hello, World!\n"'
По аналогии можно использовать бэкенд (https://github.com/fglock/Perlito/blob/master/README-perlito...) для компиляции Perl в JavaScript, который подходит для организации запуска Perl-кода в браузере (http://fglock.github.io/Perlito/perlito/perlito5.html) или для обеспечения интеграции с Node.js:nodejs perlito5.js -I src5/lib -e ' print "hello, World!\n" '
URL: http://blogs.perl.org/users/flavio_s_glock/2017/05/perl5-to-...
Новость: http://www.opennet.me/opennews/art.shtml?num=46549
>для обеспечения интеграции с Node.js:Модностильно, молодёжно.
Я давно ждал этого!
Ыыыыы, залогинься!
сегодня на anon.fm
npm install -g cpan
JVM на коне.
хАчу такой же, только брэйнфак->JVM
Теперь ты сможешь запускать свой перловый код везд... Wait a minute!
У меня только один вопрос: "ЗАЧЕМ?"
> У меня только один вопрос: "ЗАЧЕМ?"Чужие мозгти - потёмки. Исследование, компьтер-сайнс, вероятно. Может быть, для резюме хорошо. Не диссертация, но типа? https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00... //"ачивка"........
//и кста, brainfuck там https://git.savannah.gnu.org/cgit/guile.git/tree/module/lang... есть -- кто тут спрашивал, налетай.
> не доведена до конца поддержка таких средств, ..., оператор gotoСкладывается впечатление, что они воплотили трансляцию не в bytecode, а в Java.
Мсье никогда не копал бинарник java? А там много goto, очень много.
В том-то и дело, что в двоичным коде нет проблем с воплощением goto, а вот в исходном коде Java нет возможности использовать goto в чистом виде.Впрочем, я почитал o goto в Perl, и причина сложностей его воплощения стала понятна - в этом языке это слишком навороченный оператор.
Да, я через goto делал разворачивание стека из любого места.
Задача: самописное подобие веб фреймворка в standalone хттп сервере на самом перле.
Можно пройти метку, вызвать 100500 функций и там из любого места дернуть $request->end(); внутри которого готу к той самой метке и весь стек развернется.
В перле готу как исключения может разматывать стек, а не просто в пределах одной функции прыгать.
Интересно бы глянуть пример. Я goto использую для перегрузки функции и для управления кодом.
> Имеются отличия в реализации регулярных выражений, sprintf(), pack() и unpack().Не порядок, не должно быть отличии.
Не выйдет без отличий
Но тогда цель затеи не обретет законченный вид.
Разумеется. Но "только перл может парсить перл".
А в бэйсик слабО было перевести?
Как-то слабо верится в перспективность Perl вообще...
Как бы он и не перспективен давно. Разве что ради легаси
Как бы обновления на metacpan говорят об обратном. Хотя и стоит конкретизировать, что перспективен он только для перл-сообщества.
Пишу на Перле каждый день, сегодня начал делать систему сборки пакетов для Андроида. Что я делаю не так?
Если вы не знаете ответ на этот вопрос, то у вас большие проблемы.
> Если вы не знаете ответ на этот вопрос, то у вас большие
> проблемы.Какие?
https://metacpan.org/pod/Android::Build ?
Ух ты! Опять я не нужен стал. Пойду полежу.
Perl для узкой тусовки олдскульных фанатиков, из 90-х.Такая же тусовка через лет 20 будет вокруг забытого всеми Хруста.
Скорее перл не перспективен для петушков с новомодными растами и голангами. Они каждый год новый язык учат.
Ты так говоришь про изучение новых ЯП, как будто это что-то плохое.
Perl - язык на котором можно писать несколько стилями. Он сам как несколько языков. А за десятилетия там столько модулей накопилось, даже и не придумаешь, что на нём не сделать.
Код, который можно прочитать через пару месяцев после его написания?
Если я в очередной раз напишу что я способен читать свой код написанный годами ранее и также могу читать, понимать и дорабатывать модули из CPAN, то в следующий раз найдется очередной новый нуб который будет снова постить чушь про нечитаемость perl. Ни ума, ни фантазии.