LINUX.ORG.RU

Parrot 1.0

 , , ,


0

0

17 марта тихо и незаметно вышла финальная версия виртуальной машины для динамических языков Parrot. Примечательна она тем, что её планируют сделать бэкэндом для реализации Perl 6. Кроме Perl, для Parrot разрабатываются реализации Tcl, JavaScript, Scheme, PHP, Python (полный список поддерживаемых языков - https://trac.parrot.org/parrot/wiki/Languages).

Что касается изменений, то их с момента выхода версии 0.9.1 не так уж и много:

  • Обновлённая документация
  • Pynie, Cardinal и APL теперь являются самостоятельными проектами
  • ABC, Squaak, и Befunge перемещены в примеры
  • Расширенный генератор оболочек для новых языков
  • Новая утилита parrotbug

>>> Подробности

★★☆

Проверено: JB ()

Ну вот нафига??? Расплодились, панимаешь. А так все сейчас юзают свои виртуальные машины. Сомневаюсь, что что-то изменится.

DiKeert ★★
()
Ответ на: комментарий от ovax

Печально ,как бы эта технология не оказалась там же где сейчас перл .
Нет конечно на свалке врядли будет,но не шибко где применятся будет.
(Вот у Арнольда для булгалтерии понадобились спициалисты по фортрану -пришлось бабло делить с фирмой IBM но разве это показатель)
Хотя с одной стороны раrrот оптимизировали для скриптовых языков ,так моно и net тоже же на месте не стояли .

maximnik0 ★★
()

Да вы что? За Parrot будущее. Для какой ещё виртуальной машины найдёшь эффективную реализацию революционного языка Befunge?

naryl ★★★★★
()

> вышла финальная версия

Это версия далеко не финальная. Это просто очередной выпуск, согласно плану, главное в котором -- стабилизация API для разработчиков компиляторов.

Выпуск пригодной для продакшена версии VM будет 2.0 и состоится через год. А пока идет активная разработка Rakudo (Perl6 на Parrot)

http://github.com/rakudo/rakudo

zukontar
()
Ответ на: комментарий от zukontar

> Выпуск пригодной для продакшена версии VM будет 2.0 и состоится через год. А пока идет активная разработка Rakudo (Perl6 на Parrot) 

всмысле _компилятор_ Perl6 будет выполняться в Parrot-ной виртаульной машине?

ато хотел-было Perl6 выучить, но связь с Хаскелом (на котором написан какойто из компиляторов-или-интерпретаторов Perl6) -- както притупил всё желаение связыватсья с этим...

...

/me уходит в Википедию....

mkfifo
()
Ответ на: комментарий от maximnik0

>Печально ,как бы эта технология не оказалась там же где сейчас перл .

Доктор, неужто положение больного такое тяжелое?

DNA_Seq ★★☆☆☆
()

а с ее помощью можно собрать бинарник, который без нее сможет работать на другой машине?

ossa ★★
()
Ответ на: комментарий от DNA_Seq

>Доктор, неужто положение больного такое тяжелое?
Разработка перл 5 прекратилась 1.5 года назат ,где то 6 месяцев назад прекратили потдержку багофиксов (правда несколько компаний которые
занимаются коммерческой деятельностью заявили что секьюрити заплатки будут выкладовать ) .В перл 6 не удалось сохранить совместимость с перлом 5 версии как планировали ,а разработчики могут и не захотеть дожидатся перла 6 а портировать проекты на другой язык .
Как я повторял кое где до сих пор используется фортран но это не показатель ,да у перла громаднейшая база и за счет этой базы он еще шевелится ,но согласто статистике софтфорса новых проектов на перле практически нет ,ну не превликает такая ситуация молодых разработчиков с языком когда старая версия не развивается а в новой непонятно что творится.

maximnik0 ★★
()
Ответ на: комментарий от ossa

>а с ее помощью можно собрать бинарник, который без нее сможет >работать на другой машине?
Ну в версии которую выкладовали к диску Линукс формат эту опцию транслятор предусматривал ,но обьем кода чудовищный , нелло ворд занимает около 11 мгб .

maximnik0 ★★
()
Ответ на: комментарий от Bioreactor

Пока что единственный живой проект на этом чуде - это rakudo - он же перл6. Делается впринципе неплохо, уже вот год он как вылез из анабиоза. Стаёт вполне юзабельным, планирую задействовать, но иногда валится в корку:)

А вообще по теме - паррот весьма неплохой, концепция вм и простая и в то же время более-менее универсальная. Если это будет подкреплено работающим перл6, и прочими, пусть не слишком популярными проектами - уже хорошо. Закапывать его точно не надо, если сдохнет - то сам:) А если сам не сдохнет - никому плохо от этого не будет.

ixrws ★★★
()
Ответ на: комментарий от ossa

> а с ее помощью можно собрать бинарник, который без нее сможет работать на другой машине?

Если только в бинарнике будет, в том числе, и сама vm.
А почему вы этот вопрос не задаёте явистам ?

ovax ★★★
()

Продолжают затачивать интерфейс под тыканье пальцами, а не стилусом. Отстой.

tereshchenko ★★
()

Надо ж тебе, я думал, его уже забросили, а он, оказывается, уже до 1.0 вырос, что не может не радовать. Кстати, правильно ли я понимаю, что из программы, скажем, на brainfuck, можно будет вызвать процедуру, скажем, на befunge?

Laz ★★★★★
()
Ответ на: комментарий от Bioreactor

> А вот Pugs, согласно Профессору, круче, ибо написан на Haskell'е.

Какое-то бессмысленное определение крутости.
Разумней оценивать продукт по соотношению ресурсы/производительность.

Можно на хаскеле написать отрыжку, равно как и на фортране конфетку :)

ovax ★★★
()
Ответ на: комментарий от ovax

Pugs == 16 000 тестов

Parrot == 2300 тестов

Я не специалист по Perl (как пользователя вполне устраивает 5), так что я могу заблуждаться.

Bioreactor ★★★★★
()
Ответ на: комментарий от maximnik0

> Разработка перл 5 прекратилась 1.5 года назат ,где то 6 месяцев назад прекратили потдержку багофиксов

Ну это не совсем так. 5.8.9 вышел в декабре 2008-го, и это действительно последний релиз ветки 5.8, хотя ActiveState обещали его поддерживать и дальше. А вот с 5.10 ситуация туманная. Тут многое зависит от того, как будет Ракудо развиваться. Если будет успех и этот проект перетянет многих разработчиков, то у 5.10 нет будущего, что в общем то к лучшему. Правда у меня большие сомнения в том, что Perl 6 сможет стать популярным. Язык всё же довольно сложный.

> В перл 6 не удалось сохранить совместимость с перлом 5 версии как планировали ,а разработчики могут и не захотеть дожидатся перла 6 а портировать проекты на другой язык

Совместимость и не планировали. Perl 6 - совершенно другой язык. Портировать работающие проекты на него никто не будет. Тут хотя бы основные библиотеки портировать - работы на десять лет хватит :)

> да у перла громаднейшая база и за счет этой базы он еще шевелится

Вот именно. И за счёт этой базы Perl 5 ещё очень долго проживет. А там глядишь и Perl 6 дойдет до приемлимого состояния. Так что отставить нытьё! Ещё пару лет назад я сам считал, что Perl6 - труп, однако последнее время Rakudo и Parrot очень здорово прогрессируют.

Hjorn
()
Ответ на: комментарий от ovax

а что явисты? gcj сто лет уже как есть, +Excelsior JET

thevery ★★★★
()
Ответ на: комментарий от Bioreactor

Проследуйте в никнейм. Ибо согласно заветам Профессора, тому, кто говорит о чём не понимает, там самое место.

JFYI,
Parrot - 11k+ тестов. И это только на VM (плюс небольшая кучка вокруг)
Тестов на Pugs нет. Есть оффициальный test suite на спецификацию языка. 16k+ тестов. Из них Pugs проходит тысяч 5.
Rakudo из них проходит 7k+.

Bacek
()
Ответ на: комментарий от Laz

> Кстати, правильно ли я понимаю, что из программы, скажем, на brainfuck, можно будет вызвать процедуру, скажем, на befunge

В этом весь замысел.

Hjorn
()
Ответ на: комментарий от Bioreactor

> И в каких реальных проектах применяется это чудо?
Уважаемый А-где-это-уже-применяется, откуда по Вашему мнению в списке успешных решений на основе любой технологии появляется первый пункт?

llvm тоже когда-то никто не применял. А сейчас X.org, MacOS X...

naryl ★★★★★
()

Отлично, сегодня соберу и начну понемногу внедрять для повседневных нужд.

kranky ★★★★★
()
Ответ на: комментарий от naryl

> А сейчас X.org, MacOS X...

Ничего не понял, кроме как "АПВОВНВ?"

На сотню инноваций приходится одна действительно толковая технология.

Есть принцип "Pluralitas non est ponenda sine necessitate" (с).

Perl 5 стандартно установлен в MacOS X. Я уже не говорю про другие *BSD и Linux.

В каких проектах реально используется Parrot?

Bioreactor ★★★★★
()
Ответ на: комментарий от naryl

Мечтать о лаврах К.Латтнера можно. Можно мечтать. Мечтать... Ибо, как говорится, if wishes were horses, beggars would ride.

Только надо еще и работать, чтобы взяли на работу в компанию типа Яббл.

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

Пагсу до rakudo+parrot как до луны теперь. И уже не важно что он писан на Ъхаскеле, С между прочим - тоже Ъ;

А вот важно то, что биндинги для перл6, по крайней мере прямые, читай низкоуровневые, благодаря pir, можно ваять почти в автоматическом режиме. Вообще потенциал тут несравним, пагс же чо-то начинает уже плохо пахнет, а ракудо развивается.

Основная же проблема перл6 и его достоинство - это его сложность и гибкость, как уже было вполне справедливо указано выше - это помет помешать популярности. Ко всем прикольчикам перла, прибавился сумасшедший ООП + архитектура parrot. Плюс ещё с десяток новшеств. Впрочем перловщикам понравится, я вот уже тащусь:) Правда боюсь обвинения в красноглазиньи теперь будут представлены к любому, кто пишет что-то на perl6:D

ixrws ★★★
()
Ответ на: комментарий от Bioreactor

>В каких проектах реально используется Parrot?

Вы предлагаете его ставить стандартно ради чего? Ради того чтобы баш заменить на pir ?:D

Поймите, он будет ставиться - когда будет потребность. Будет потребность, когда хотя бы perl6 выйдет в положение не сваливающейся в корку беты и как следствие на нём можно будет писать более-менее сложный код. Мне вот он сейчас интересен в роли написания небольших графических приложений, то есть в роли Валы, как пистон часто используют. Думаю найдутся и другие, кому он интересен. В общем время покажет - жив ли паррот или скорее мёртв.

ixrws ★★★
()
Ответ на: комментарий от thevery

> а нафига оно тогда нужно-то?

Ну русским же языком сказано "Ко всем прикольчикам перла, прибавился сумасшедший ООП + архитектура parrot. Плюс ещё с десяток новшеств. Впрочем перловщикам понравится, я вот уже тащусь":

%)

tailgunner ★★★★★
()
Ответ на: комментарий от thevery

Для ответа на вопрос лучше почитать "откровения" Ларри. Нужно оно для того, чтобы создать новое поколение perl, фактически perl6 он также похож с perl как Ada c modula. Да, родня, но не более. А зачем? Затем же, зачем вообще идёт развитие - чтобы сделать лучше, чтобы отсечь неполучившееся.

ixrws ★★★
()
Ответ на: комментарий от Bioreactor

> Мечтать о лаврах К.Латтнера можно. Можно мечтать. Мечтать... Ибо, как говорится, if wishes were horses, beggars would ride.

> Только надо еще и работать, чтобы взяли на работу в компанию типа Яббл.


Не совсем понятно как это относится к теме.

> В каких проектах реально используется Parrot?


Какая разница? llvm несмотря на все преимущества тоже когда-то никто не использовал. К счастью нашлись люди, не игнорирующие проекты только на основании того, что их никто не использует.

Попробуйте не искать success stories, а посмотреть чем Parrot лучше/хуже аналогов и на основании этого делать выводы.

naryl ★★★★★
()

А что у Parrot с производительностью сейчас, и что планируется в дальнейшем?

Сможет ли Python, откомпилированный в Parrot, когда-нибудь обогнать CPython?

Davidov ★★★★
()
Ответ на: комментарий от Davidov

>Сможет ли Python, откомпилированный в Parrot, когда-нибудь обогнать CPython?

Задал вопрос несколько некорректно.

Будет ли в перспективе код на Python работать в Parrot быстрее, чем в CPython.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

> Будет ли в перспективе код на Python работать в Parrot быстрее, чем в CPython.

Технически это возможно, ИМХО. Только Питона для Parrot нету :)

tailgunner ★★★★★
()
Ответ на: комментарий от thevery

>> Совместимость и не планировали.

> даже обратную!? а нафига оно тогда нужно-то?

Тащить груду костылей из Perl5 ни у кого нет желания. Да и зачем? Для старого кода есть надежный проверенный Perl 5.8. Пожалуй название Perl 6 неудачное, оно вводит людей в заблуждение.

Hjorn
()
Ответ на: комментарий от Hjorn

>> Совместимость и не планировали.
> даже обратную!? а нафига оно тогда нужно-то?
По крайне мере из интерьвью в линукс формат ,совместимость планировали ,при обнаружении старых инструкций перл 6 работал бы как перл 5 и включались старые библиотеки .
Но в отладки оказалось очень сложное и от совместимости отказались .

maximnik0 ★★
()
Ответ на: комментарий от tailgunner

>Только Питона для Parrot нету :)

Мне кажется, я некоторое время назад видел, по крайней мере, частичную имплементацию Python для Parrot.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

> видел, по крайней мере, частичную имплементацию Python для Parrot.

Эта реализация даже не все тесты проходила. Я бы сказал, что это значит "реализации Питона нет".

tailgunner ★★★★★
()
Ответ на: комментарий от Manhunt

> Гуру, расскажите, как соотносятся parrot и llvm?

Я хоть и не гуру, но скажу - никак. Отдаленная аналогия в том, что LLVM - это многоязыковая VM для статических языков, Parrot - для динамических.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Но LLVM изначально планировался как многоязыковый компилятор в единый байткод над которым удобно проводить всевозможные оптимизации и компилировать в машинный код для любой архитектуры. Виртуальная машина для этого байткода появилась позже... ЕМНИП.

naryl ★★★★★
()

Скажите, а с производительностью его языков как? Можно ли утверждать, что js@parrot будет аналогом perl6@parrot? И можно ли будет мешать конструкции, вроде:

var a=function(b){

b=~s/foo/bar/ig;

return(a);

}

?

Можно ли отсылать машину в спячку, вроде:

showFormToUser(foo); - показали форму и заснули

print foo.username; - уже есть наши данные

?

А то я тут нашел прикольный проектик по прикручиванию spidermonkey к веб-серверу и написанию серверной логики на JS. У автора получалось до 15000 запросов в секунду обработать. Мне понравилось. Было бы прикольно, если бы аналогичную систему можно было бы построить на этом, при этом смешивая поддерживаемые языки.

EmStudio
()
Ответ на: комментарий от tailgunner

> Отдаленная аналогия в том, что LLVM - это многоязыковая VM для статических языков, Parrot - для динамических.

Динамичность всего лишь подразумевает порождение нового кода и новых структур данных рантайм. Виртуальной машине не по барабану, статический язык, или динамический?

Manhunt ★★★★★
()
Ответ на: комментарий от naryl

> Но LLVM изначально планировался как многоязыковый компилятор в единый байткод над которым удобно проводить всевозможные оптимизации

IIRC, LLVM был прежде всего набором инструкций, в который должны были компилироваться разные языки. Потом над этими _уже скомпилированными_ программами должны были проводиться оптимизации.

В любом случае, проекты схожи именно на уровне идей.

tailgunner ★★★★★
()
Ответ на: комментарий от Manhunt

> Динамичность всего лишь подразумевает порождение нового кода и новых структур данных рантайм

Это не имеет отношения к динамичности (такое возможно хоть в трижды насквозь статической Яве). Динамичность - это проверка типов в рантайме.

> Виртуальной машине не по барабану, статический язык, или динамический?

Нет. Почитай о Parrot - это именно _VM для динамических языков_.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.