URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 111243
[ Назад ]

Исходное сообщение
"Представлен компилятор Perl 5 в JVM и JavaScript"

Отправлено opennews , 15-Май-17 10:03 
Опубликован (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


Содержание

Сообщения в этом обсуждении
"Представлен компилятор Perl 5 в JVM и JavaScript"
Отправлено Аноним , 15-Май-17 10:04 
>для обеспечения интеграции с Node.js:

Модностильно, молодёжно.


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 10:29 
Я давно ждал этого!

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 11:09 
Ыыыыы, залогинься!

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 20:53 
сегодня на anon.fm

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 10:57 
npm install -g cpan

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 11:07 
JVM на коне.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено omnomnin , 15-Май-17 11:28 
хАчу такой же, только брэйнфак->JVM

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 11:39 
Теперь ты сможешь запускать свой перловый код везд... Wait a minute!

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Zdorovenniy_Krab , 15-Май-17 11:47 
У меня только один вопрос: "ЗАЧЕМ?"

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Andrey Mitrofanov , 15-Май-17 12:43 
> У меня только один вопрос: "ЗАЧЕМ?"

Чужие мозгти - потёмки.  Исследование, компьтер-сайнс, вероятно.  Может быть, для резюме хорошо.  Не диссертация, но типа?  https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00... //"ачивка"........

//и кста, brainfuck там https://git.savannah.gnu.org/cgit/guile.git/tree/module/lang... есть -- кто тут спрашивал, налетай.


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Comdiv , 15-Май-17 11:54 
> не доведена до конца поддержка таких средств, ..., оператор goto

Складывается впечатление, что они воплотили трансляцию не в bytecode, а в Java.


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 12:00 
Мсье никогда не копал бинарник java? А там много goto, очень много.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Comdiv , 15-Май-17 12:05 
В том-то и дело, что в двоичным коде нет проблем с воплощением goto, а вот в исходном коде Java нет возможности использовать goto в чистом виде.

Впрочем, я почитал o goto в Perl, и причина сложностей его воплощения стала понятна - в этом языке это слишком навороченный оператор.


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аспарагус , 15-Май-17 16:41 
Да, я через goto делал разворачивание стека из любого места.
Задача: самописное подобие веб фреймворка в standalone хттп сервере на самом перле.
Можно пройти метку, вызвать 100500 функций и там из любого места дернуть $request->end(); внутри которого готу к той самой метке и весь стек развернется.
В перле готу как исключения может разматывать стек, а не просто в пределах одной функции прыгать.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 18:29 
Интересно бы глянуть пример. Я goto использую для перегрузки функции и для управления кодом.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 12:25 
> Имеются отличия в реализации регулярных выражений, sprintf(), pack() и unpack().

Не порядок, не должно быть отличии.


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Crazy Alex , 15-Май-17 12:36 
Не выйдет без отличий

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 14:00 
Но тогда цель затеи не обретет законченный вид.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Crazy Alex , 15-Май-17 21:04 
Разумеется. Но "только перл может парсить перл".

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено vaka , 15-Май-17 16:24 
А в бэйсик слабО было перевести?

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 15-Май-17 16:34 
Как-то слабо верится в перспективность Perl вообще...

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Qaq be , 15-Май-17 16:54 
Как бы он и не перспективен давно. Разве что ради легаси

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 00:58 
Как бы обновления на metacpan говорят об обратном. Хотя и стоит конкретизировать, что перспективен он только для перл-сообщества.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 04:23 
Пишу на Перле каждый день, сегодня начал делать систему сборки пакетов для Андроида. Что я делаю не так?

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 07:20 
Если вы не знаете ответ на этот вопрос, то у вас большие проблемы.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 16:37 
> Если вы не знаете ответ на этот вопрос, то у вас большие
> проблемы.

Какие?


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 12:36 
https://metacpan.org/pod/Android::Build ?

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 16:37 
Ух ты! Опять я не нужен стал. Пойду полежу.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Вареник , 16-Май-17 02:01 
Perl для узкой тусовки олдскульных фанатиков, из 90-х.

Такая же тусовка через лет 20 будет вокруг забытого всеми Хруста.


"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 16-Май-17 04:22 
Скорее перл не перспективен для петушков с новомодными растами и голангами. Они каждый год новый язык учат.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено angra , 16-Май-17 12:52 
Ты так говоришь про изучение новых ЯП, как будто это что-то плохое.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 17-Май-17 15:37 
Perl - язык на котором можно писать несколько стилями. Он сам как несколько языков. А за десятилетия там столько модулей накопилось, даже и не придумаешь, что на нём не сделать.

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено omnomnom , 17-Май-17 22:04 
Код, который можно прочитать через пару месяцев после его написания?

"Первый выпуск компилятора Perl 5 в JVM от проекта Perlito"
Отправлено Аноним , 18-Май-17 11:01 
Если я в очередной раз напишу что я способен читать свой код написанный годами ранее и также могу читать, понимать и дорабатывать модули из CPAN, то в следующий раз найдется очередной новый нуб который будет снова постить чушь про нечитаемость perl. Ни ума, ни фантазии.