Size: a a a

2020 October 01

AB

Alexey Bolshakov in ErlangRus
Petr Kozorezov
А с hipe не получится собрать полностью проект из-за ограничений. Плюс сколько я последнее время ни пробовал собирать с hipe модули которые для этого подходят (много вычислений в рамках одного модуля), только один раз получил от hipe прирост производительности.
я тоже сколько ни пробовал - не было прироста
источник

LL

Lama Lover in ErlangRus
Иванов Иванов
там небось  на блокировках и переключениях весь профит в трубу вылетает
Почему же... Переключений же нет, когда все модули в native скомпилированы
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Почему же... Переключений же нет, когда все модули в native скомпилированы
ну это смотря какой код в конкретном случае. в целом трудно представить erlang программу в которой постоянного переключения между beam и нативным кодом не будет
источник

LL

Lama Lover in ErlangRus
Иванов Иванов
ну это смотря какой код в конкретном случае. в целом трудно представить erlang программу в которой постоянного переключения между beam и нативным кодом не будет
Ну там у HiPE были конкретные лимитации типа persistent_term, матчить в бинарях и try rescue эликсировский
источник

ИИ

Иванов Иванов... in ErlangRus
у меня опыт не очень большой - но по факту и своих костылей и других библиотек (от парсеров до cql клиентов)  - обосраться какой быстрый нативный код, но при этом чисто эрланговское приложение работает эластичней. чем больше процессов - тем это заметнее.
источник

LL

Lama Lover in ErlangRus
Иванов Иванов
у меня опыт не очень большой - но по факту и своих костылей и других библиотек (от парсеров до cql клиентов)  - обосраться какой быстрый нативный код, но при этом чисто эрланговское приложение работает эластичней. чем больше процессов - тем это заметнее.
Да, это правда
источник

PK

Petr Kozorezov in ErlangRus
Иванов Иванов
там небось  на блокировках и переключениях весь профит в трубу вылетает
нет, я все выполнение пробовал локализовать в одном модуле
источник

ИИ

Иванов Иванов... in ErlangRus
Petr Kozorezov
нет, я все выполнение пробовал локализовать в одном модуле
я так понял это отмирающий инструмент, потому наверно и зарубатья вникать нет смысла
источник

PK

Petr Kozorezov in ErlangRus
Иванов Иванов
я так понял это отмирающий инструмент, потому наверно и зарубатья вникать нет смысла
к сожалению — да, слишком сложный и неподдерживаемый для otp команды
источник

ИИ

Иванов Иванов... in ErlangRus
если jit будет полным и развиваться, то смысла в частичных оптимизациях вообще нет
источник

PK

Petr Kozorezov in ErlangRus
Petr Kozorezov
может вдруг кто-нибудь уже делал для erl_eval поддержку рекордов (аналогично с rr в erl shell)? А то я стал копать код shell и понял, что там за 5 минут не разберёшься.
Если кому интересно, вся идея с подстановкой рекордов в erl_eval заключается в следующем:
- найти где-нибудь Forms с описаниями рекордов
- слепить фэйковый модуль в котором будет описание рекордов и фэйковая функция состоящая из Expr которые мы хотим выполнить
- заменить в этом модуле Expr работающие с рекордами на работу с таплами с помощью волшебного модуля erl_expand_records
- вытащить из фэйковой функции преобразованного выше модуля новые Expr
- и уже их спокойно выполнить

По такой схеме работает shell.
источник

SP

Sergey Prokhorov in ErlangRus
Petr Kozorezov
Если кому интересно, вся идея с подстановкой рекордов в erl_eval заключается в следующем:
- найти где-нибудь Forms с описаниями рекордов
- слепить фэйковый модуль в котором будет описание рекордов и фэйковая функция состоящая из Expr которые мы хотим выполнить
- заменить в этом модуле Expr работающие с рекордами на работу с таплами с помощью волшебного модуля erl_expand_records
- вытащить из фэйковой функции преобразованного выше модуля новые Expr
- и уже их спокойно выполнить

По такой схеме работает shell.
ого... А можно будет где-то на твою реализацию посмотреть?
источник

ML

Maksim Lapshin in ErlangRus
Dmitry Ponyatov
ну типа "интерпретация тормозит,  давайте жабу,  зачем ваш эликсир
Бредятина полная :)

Это я на нашем опыте говорю
источник

AB

Alex Bubnov in ErlangRus
Dmitry Ponyatov
посоветуйте plz ресурс по хакингу своих языков-поделок под BEAM  (Core Erlang итп)
лучший ресурс, имхо - исходники имеющихся проектов. elixir, lfe, joxa(сложна читать, потому что он полностью бутстрапится). можно читать clojerl, там тоже довольно интересно, но абсолютно непрактично.
на http://blog.erlang.org/ есть три поста про core erlang от 2018 года, но core erlang - довольно спорный таргет, и эмитить обычный эрланг(как это делает эликсир) может быть чуть сложнее, но профитней.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Alex Bubnov
лучший ресурс, имхо - исходники имеющихся проектов. elixir, lfe, joxa(сложна читать, потому что он полностью бутстрапится). можно читать clojerl, там тоже довольно интересно, но абсолютно непрактично.
на http://blog.erlang.org/ есть три поста про core erlang от 2018 года, но core erlang - довольно спорный таргет, и эмитить обычный эрланг(как это делает эликсир) может быть чуть сложнее, но профитней.
С чего ты решил, что эликсир эмитит обычный эрланг?
источник

AB

Alex Bubnov in ErlangRus
Źmićer Rubinštejn
С чего ты решил, что эликсир эмитит обычный эрланг?
из эликсирных модулей уже много лет erlang abstract code достается
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Ну если erlang abstract code это обычный эрланг - то как бы да
источник

AB

Alex Bubnov in ErlangRus
Źmićer Rubinštejn
Ну если erlang abstract code это обычный эрланг - то как бы да
ну тут мы можем немного расходиться в понятиях, но по-моему, abstract format это самый что ни на есть эрланг.
источник

PK

Petr Kozorezov in ErlangRus
Sergey Prokhorov
ого... А можно будет где-то на твою реализацию посмотреть?
слушай, там всего ничего кода, но он официально под NDA 😕
источник

PK

Petr Kozorezov in ErlangRus
Я уже поднял тему возможности выкладывания таких частей, но пока ответа нет. Поэтому как смогу покажу.
источник