LINUX.ORG.RU

Мысли о десятилетии развития MoarVM — виртуальной машины языка Raku

 


1

3

19 октября на конференции SPLASH 2021 состоится выступление Джонатана Уортингтона — основного разработчика виртуальной машины MoarVM для языка программирования Raku.

MoarVM явилась результатом юношеского максимализма. Я участвовал в разработке компилятора Raku (на тот момент Perl 6) и, рассматривая виртуальную машину Parrot, на которую мы ориентировались тогда, видя все её проблемы (особенно в части производительности и многопоточности), думал: а не попробовать ли создать что-то получше? Благо, на тот момент свободного времени было предостаточно... В течение нескольких лет с помощью десятков добровольцев удалось полностью заменить Parrot и сделать MoarVM основной средой исполнения. [прим. пер.: существует официальный набор тестов для языка программирования Raku. Любая реализация, проходящая эти тесты, может называться Raku. Уортингтон имеет в виду, что предпочтительной виртуальной машиной для «эталонной» реализации считается MoarVM].

Почти десять лет прошло с момента начала работы над MoarVM.

Простой интерпретатор байт-кода, реализованный на первых порах, неустанно обрастал профессиональным инструментарием: типо-ориентированными оптимизациями, деоптимизацией, подстановками (inlining), заменами на стеке, динамической компиляцией (JIT), статическим анализом времени жизни (области достижимости) объекта (escape analysis).

За перечисленными улучшениями последовали новые: были переработаны некоторые горячие операции, ранее реализованные в целях повышения производительности в виде примитивов уровня виртуальной машины и обернувшиеся бутылочным горлышком, будучи невидимыми для механизмов оптимизации.

Совсем недавно появился новый механизм диспетчеризации, позволивший заменить ряд алгоритмов для обработки особых случаев (например, методов и функций с множественной диспетчеризацией) на единый стандартный способ. Хотя многоязычность никогда не предполагалась при разработке MoarVM, в процессе улучшения производительности и попытке справиться с её растущей сложностью, проект пришел в состояние достаточно сильного абстрагирования от языка программирования Raku.

В выступлении будет сделан обзор пройденного в ходе работы над MoarVM пути, освещены наиболее интересные вызовы, извлечённые уроки и компромиссы на которые пришлось пойти.

Будет описана концепция возобновляемой диспетчеризации, позволяющая ускорить некоторые не поддающиеся ранее оптимизации участки. Также будет рассказано и о проблемах, которые повлекли указанные подходы.

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

★★★★

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

Раз уж критиковать за грамматику, то вот: «некоторые неподдающиеся ранее оптимизации участки.»

-> «поддававшиеся».

По теме, было бы интересно послушать. Записи будут?

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

Чтобы что-то говорить о грамматике, нужно знать на каком языке написан текст. Подозреваю, что Вы предположили русский, но это явно не он – в русском нет таких оборотов речи.

Аффтар, это какой-то новый диалект пердыля?

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

Зачем делать ВМ для мёртвого языка? Или речь идёт о 20-ти летней давности?

Вот, кстати, да. Такое же ощущение возникло. Что, где-то, в тёмном уголке Империи, адепты секты всё гальванизируют и гальванизируют труп бабушки.

Это как есть один дедок, он всё пишет и пишет анализатор языка PL/2. Говорит, его анализатор - самый лучший в мире.

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

Это как есть один дедок, он всё пишет и пишет анализатор языка PL/2. Говорит, его анализатор - самый лучший в мире.

Это не а-ля PL/1.
И зря вы таком тоне о разработчике говорите.
У него много интересных идей.
Даже если он их не реализует в живом коде, не говорит о том что это бредовые фантазии.
Еще раз акцентирую на то, что идеи у него интересные …

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

И зря вы таком тоне о разработчике говорите.

А почему зря-то? Допустим, так: один дедок модернизирует копьё. Обычное древнеримское пехотное копьё. Говорит, у него самое лучшее копьё в мире. А вы мне:

И зря вы таком тоне о разработчике говорите.

У него много интересных идей.

Даже если он их не реализует в живом копье, не говорит о том что это бредовые фантазии.

Еще раз акцентирую на то, что идеи у него интересные

Да я не спорю, так-то, интересные, да. Полутора анонимусам.

tiinn ★★★★ ()

В Development

Ну и в чем новость?

Пристрастие ТСа тащить на главную скандалы/интриги/инсайды, интересные полутора человекам, давно известно. Но раньше это хотя бы походило на новости.

В Development.

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

Я сам оч. скептически относился к Perl6 (ныне Raku), но ошибался. И мне стало стыдно, что я годами даже не пытался узнать чего там и как. Буквально одной презентации хватило чтоб увлечься этой штуковиной. Ну и стабилизировался язык только в 2020 году, так что лучшего времени для начала знакомства с ним и не придумаешь.

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

Когда они новое разрабатывают, это одно. Но, когда они старое разрабатывают - это уже балаган какой-то.

Да нет, идеи есть …

https://pl2-en.livejournal.com/

https://habr.com/ru/post/219419/                           Предложения по учебному языку программирования
                                                           Алексей Подоров @palexisru  https://habr.com/ru/users/palexisru/posts/

https://programmist.livejournal.com/276812.html            Придумывание языка программирования PL2 programmist

https://pl2-rainbow.livejournal.com/                       PL 2 Ошкамошка язык программирования

https://habr.com/ru/company/intel/blog/300884/             Создаем новую OS Действительно новую, реально операционную, и правда систему

https://github.com/jxe/ceml/                               a language for coordinating real-world interaction
                                                           http://nxhx.org/

https://github.com/jxe/jxe.github.com                      my personal website

«Придумывание языка программирования PL2 programmist», конечно все очень спорно и скорее всего ничего он не разработает, но

Смеяться из-за этого над ним НЕ БУДУ!
anonymous ()
Ответ на: комментарий от perl5_guy

грамматика, а не только пунктуация. К ней относится правописание «ввиду – в виду», «также – так же» и прочее.

На будущее. Постарайся выражаться менее вычурно. Не надо тебе деепричастных оборотов, сложносочиненных предложений и прочего говна. Оставь это гуманитариям. Пиши кратко и по делу, без рассусоливаний о том, чего там этот чудак думает про историю своего поделия.

В выступлении будет сделан обзор пройденного в ходе работы над MoarVM пути, освещены наиболее интересные вызовы, извлечённые уроки и компромиссы на которые пришлось пойти.

Ну как так-то? Неужели ты именно ТАК и говоришь?

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

Я переводил цитату, а не пересказывал своими словами. Старался близко к тексту и не надмозгово чтоб. Как бы ты перевёл?

In this session I will review MoarVM’s journey so far, picking out some of the most interesting challenges faced, lessons learned, and trade-offs encountered.

perl5_guy ★★★★ ()

Чувак из Кембриджа пилит новые, не описанные где-то в литературе девяностых, алгоритмы реализации оптимизирующих виртуалок с вменяемым канкаренси, MOP и сложной диспечеризацией, которая мало где есть. Понятно, что это действительно интересно половине анонима, т.к. большинство не работает в этой области, а пользуется уже написанными такими «чудаками» компиляторами.

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

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

Мысль тут может быть только одна: «ненужно в 2021 году никому».

… проект пришел в состояние достаточно сильного абстрагирования от языка программирования Raku.

По существу эта VM ныне не уже как бы и не является именно VM для Raku.
Нужно будет почитать, что там они наваяли и в чем профит ..

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

Ничего грустного. Оч. удобноо сразу запятую написать, чтоб добавить праметр в хэш, например:

Не об этом речь была.
В C++ if ( i = 0 ) и подобные извраты проглотит и не …
Потому как С/C++ разрабатывались для системного программирования.
Поэтому он допускает всякий не читабельный синтаксис, так как считает, что программист «знает что делает».

Крутая++Программа--++Должна--Быть*( Не--*&Читабельной ) ...
anonymous ()
Ответ на: комментарий от perl5_guy

Я тут подумал, ребятки, конфа-то крупная. Может кто-нибудь заметит выступление и деньжат накинет на развитие Raku.

Блин, чувак. Юношеский максимализм - это прекрасно, и я не хочу обламывать, но никто просто так, не даст никому деньги: для этого продукт должен решать какую-то нужную для бизнеса задачу. Вон, Reiser4 был прорывным для своего времени (и возможно таким и остается из-за системы плагинов), но приложения в бизнесе не нашел (в отличие от ZFS или BTRFS [хотя, это то еще дырявое ведро]) и потому им занимаются только энтузиасты…

X-Pilot ★★★★★ ()

Мысли о десятилетии развития MoarVM …

Посмотрел исходники MoarVM и лишний раз подумал о том, что если
разработчик хочет, чтобы его проект развивали и другие программисты, то
в обязательном порядке код должен иметь комменты, поясняющие суть логики, последующего
кода и манулы по API, архитектуре проекта, …
В противном случае

Ай люли, ай люли, а на табло ОДНИ НУЛИ ...
anonymous ()
Ответ на: комментарий от perl5_guy

Там код самодокументируемый прост))0

И что из ПРОСТОГО КОДА вы вот так сразу поймете архитектуру проекта?
Подсистемы проекта, …?

Или о чем вы?

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

Там код самодокументируемый прост))0

Конечно название переменных, функций, … понятные.
Для разработчика все это как-бы это сказать - родное.
Для программиста же который решит развивать проект, нужен не просто «понятный код», а мануалы, которые бы содержали описание всего API и архитектуры проекта.
В противном случае нужно будет самому /без этого никак/ разбираться в том как этот «движок» работает.
Впрочем, не настаиваю в том, что во всем прав.
Это всего лишь сугубое суждение от одного из программистов …

К примеру проект harbour мне понравился.
Потратил не мало времени на его рефакторинг и документирование.
А мог бы и сэкономить время, если бы автор проекта хорошо его документировал.

anonymous ()