Size: a a a

2019 November 11

EM

Evgeny M. in ErlangRus
подозреваю потому что нет возможности проверить с побочным эффектом функция или без
источник

EM

Evgeny M. in ErlangRus
и решили не заморачиваться
источник

EM

Evgeny M. in ErlangRus
плюс еще подозреваю что предполагается что гварды должны быть всегда быстрыми
источник

СИ

Сергей Иванов in ErlangRus
Evgeny M.
подозреваю потому что нет возможности проверить с побочным эффектом функция или без
ну можно же хотя-бы nif для этого разрешить. они же не проверяют код nif
источник

EM

Evgeny M. in ErlangRus
из ниф можно наделать таких побочных эффектов что ой-ой ой
источник

СИ

Сергей Иванов in ErlangRus
Evgeny M.
из ниф можно наделать таких побочных эффектов что ой-ой ой
согласен, но под свою ответственность же можно было. подозреваю что тут что-то с динамической компиляцией связано скорее.
ну ладно, т.е. без кодирования никак не обойтись в данном случае?
источник

EM

Evgeny M. in ErlangRus
никак. Только самому генерировать модуль с функциями с помощью erl_syntax
может быть есть какие-то хаки типа считать бинарь модуля в память, заменить прямо в бинаре константу на другую, но я в реале такого не видел и не советую
источник

СИ

Сергей Иванов in ErlangRus
Evgeny M.
никак. Только самому генерировать модуль с функциями с помощью erl_syntax
может быть есть какие-то хаки типа считать бинарь модуля в память, заменить прямо в бинаре константу на другую, но я в реале такого не видел и не советую
по-старинке еще
erlc  -D<Name>=<Value>
источник

EM

Evgeny M. in ErlangRus
ну да, или так. Можно кстати сгенерировать модуль не через erl_syntax а просто обычный erl файл, и собрать его модулем compile
источник

EM

Evgeny M. in ErlangRus
но через erl_syntax красивее
источник

TH

Taras Halturin in ErlangRus
а какой кейс вызывает потребность так часто читать конфиг? может проще сделтаь доставку значений пушем при изменении, а не пулить так часто?
источник

EM

Evgeny M. in ErlangRus
ну использовать переменные из конфига приходится постоянно, а перечитывать как раз редко. поэтому и заморачиваются с компиляцией в модуль, которая меленная, но использование его после компиляции очень быстрое
источник

c🦊

cleverfox 🦊 in ErlangRus
Taras Halturin
а какой кейс вызывает потребность так часто читать конфиг? может проще сделтаь доставку значений пушем при изменении, а не пулить так часто?
Если у тебя десятки тысяч процессов-воркеров то хранение конфига в каждом процессе не так дёшево
источник

TH

Taras Halturin in ErlangRus
Так речь не про хранение всеми процессами конфига... Он получил данные, взял, что ему интересно и всё. Разве это требует доп ресурс?
источник

EM

Evgeny M. in ErlangRus
ну вот смотри, есть короткоживущие процессы-обработчики http соединений, на каждый запрос надо использовать несколько десятков переменных изз настроек, иногда по нескольку раз
источник

TH

Taras Halturin in ErlangRus
В своих кейсах обычно дизайню event based, что подразумевает пуш событий. Поэтому и стало интересно, какой кейс требует пуллинга в таких количествах
источник

EM

Evgeny M. in ErlangRus
варианта два - или городить модуль, или использовать get_env, который по сути чтение из ets
источник

EM

Evgeny M. in ErlangRus
причем бывает что настрйока это не просто целое число, а какой-нибудь длинный список. добавляется нагрузка на копирование между процессами
источник

СИ

Сергей Иванов in ErlangRus
Yuri Pipchenko
Не хватает биндинга с произвольной C/C++ либой. Чтобы взять хидер, натравить на него некий генератор и получить на выходе Эрланг-модуль со всеми методами из этой либы. А? Как вам такое?
вот прям сейчас в поиске попалась:
https://github.com/parapluu/nifty
источник

YP

Yuri Pipchenko in ErlangRus
Смотрю. Спасибо!
источник