Size: a a a

2019 November 09

ML

Maksim Lapshin in ErlangRus
cleverfox 🦊
Ну если он не понимает
он просто придумал  себе свою собственную терминологию и требует, чтобы остальные соблюдали её.
источник

AP

Alexander Petrovsky in ErlangRus
Очередной булшит, ну понятно
источник

ML

Maksim Lapshin in ErlangRus
Maksim Lapshin
он просто придумал  себе свою собственную терминологию и требует, чтобы остальные соблюдали её.
это вообще частая  причина таких непониманий. Человек пытается что-то обсудить, а сам даже не допускает мысли, что его терминология иная, чем у собеседников.
источник

ЕГ

Евгений Гребенюк in ErlangRus
никто не баловался с run_erl и to_erl под win?
источник

ML

Maksim Lapshin in ErlangRus
Евгений Гребенюк
никто не баловался с run_erl и to_erl под win?
честно говоря, они и под линуксом то постепенно теряют актуальность
источник

ЕГ

Евгений Гребенюк in ErlangRus
надо посмотреть может что то новое появилось, сейчас в проекте run_erl на старте "дочерних" нод
источник

ML

Maksim Lapshin in ErlangRus
Евгений Гребенюк
надо посмотреть может что то новое появилось, сейчас в проекте run_erl на старте "дочерних" нод
Systemd :(
источник

ML

Maksim Lapshin in ErlangRus
Не люблю его, бажный, непродуманный, но его тащат как дефолт везде
источник

ЕГ

Евгений Гребенюк in ErlangRus
Maksim Lapshin
Не люблю его, бажный, непродуманный, но его тащат как дефолт везде
это run_erl?
источник

ML

Maksim Lapshin in ErlangRus
не, systemd.  У run_erl есть проблемы, но он топорный и в целом к нему без претензий.

А у systemd проблемы в дизайне и в реализации
источник

СИ

Сергей Иванов in ErlangRus
cleverfox 🦊
Он так проектировался. И ему это удается
>Он так проектировался. И ему это удается

не в защиту оратора, но erl_crashdump  это обыденность
источник

c🦊

cleverfox 🦊 in ErlangRus
Сергей Иванов
>Он так проектировался. И ему это удается

не в защиту оратора, но erl_crashdump  это обыденность
Но все же стоит признать что это случается не столь часто как могло бы 😂
источник

СИ

Сергей Иванов in ErlangRus
cleverfox 🦊
Но все же стоит признать что это случается не столь часто как могло бы 😂
да. ведь идеология let it crash )
источник

ML

Maksim Lapshin in ErlangRus
Сергей Иванов
>Он так проектировался. И ему это удается

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

СИ

Сергей Иванов in ErlangRus
а вот по поводу nif - насколько нормальная практика инициализировать в onload nif локальный статически атом (типа static ERL_NIF_TERM ok = enif_make_atom(...)) и ипользовать его игнорируя unload, reload и тд?
или такие вещи надо переинициализировать и передевать в priv?
источник

ML

Maksim Lapshin in ErlangRus
#define ATOM(name) atm_##name
#define DECL_ATOM(name) ERL_NIF_TERM atm_##name = 0
#define LOAD_ATOM(name) atm_##name = enif_make_atom(env,#name)



DECL_ATOM(ok);

static int
load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info)
{
 LOAD_ATOM(ok);
....

...
  return ATOM(ok);

игнорируй unload, reload и т.п.  Атом не связан с env, его можно сравнивать:    

if(a == ATOM(ok)) {
...
источник

СИ

Сергей Иванов in ErlangRus
>Атом не связан с env,

вообще он создается же в контексте env, и срок жизни их совпадает. в доке так написано.
источник

СИ

Сергей Иванов in ErlangRus
только не понятно 1) сколлько этот env живет 2) что происходит если библиотека перегружается
источник

СИ

Сергей Иванов in ErlangRus
Maksim Lapshin
#define ATOM(name) atm_##name
#define DECL_ATOM(name) ERL_NIF_TERM atm_##name = 0
#define LOAD_ATOM(name) atm_##name = enif_make_atom(env,#name)



DECL_ATOM(ok);

static int
load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info)
{
 LOAD_ATOM(ok);
....

...
  return ATOM(ok);

игнорируй unload, reload и т.п.  Атом не связан с env, его можно сравнивать:    

if(a == ATOM(ok)) {
...
ну я примерно так и делаю . есть структура инициализируемая в onload
static {
 ...
} atoms;
но вот сейчас гоняю unload , upgrade и как-то не понятно пока как оно должно работать
источник

СИ

Сергей Иванов in ErlangRus
Callback environment

   Passed as the first argument to all the non-NIF callback functions (load, upgrade, unload, dtor, down and stop). Works like a process bound environment but with a temporary pseudo process that "terminates" when the callback has returned. Terms may be created in this environment but they will only be accessible during the callback.
источник