Size: a a a

2020 June 18

SP

Sergey Prokhorov in ErlangRus
Иванов Иванов
тут давали ссылку с удобным дизассеблером же намедни
в ассемблере не будет видно как обновляется мап. Это уже внутри инструкции решается
источник

SP

Sergey Prokhorov in ErlangRus
Vasilii Demidenok
Хм, кто-нибудь помнит на маленьких мапах при апдейте ключей - будет полное реструктурирование объекта, сравнимое с созданием тапла, или хуже?
да, будет. Не помню на память threshold правда
источник

c

corsars in ErlangRus
А если серьезно то можно ли сказать что в списке [A,B,C|D]  A,B,C это голова а D - это хвост ? Именно так и написанно в книге Франческо... что меня смущает
источник

V

Vasilii Demidenok in ErlangRus
Sergey Prokhorov
да, будет. Не помню на память threshold правда
понял, пасиб
источник

SP

Sergey Prokhorov in ErlangRus
источник

SP

Sergey Prokhorov in ErlangRus
источник

V

Vasilii Demidenok in ErlangRus
👍
источник

c

corsars in ErlangRus
Прямо как на C:

#include "sys.h"
#include "erl_vm.h"
#include "global.h"
#include "erl_process.h"
#include "error.h"
#define ERL_WANT_HIPE_BIF_WRAPPER__
#include "bif.h"
источник

c

corsars in ErlangRus
🤗
источник

SP

Sergey Prokhorov in ErlangRus
Насчёт аргументов в стектрейсах - насколько помню только определённые типы исключений (из тех что генерирует сама VM) включают в себя аргументы функции (кажется только badarg и function_clause) и сделано это потому что:
1. Конкретно эти типы исключений сложно анализировать если нет аргументов
2. До недавнего времени VM сохраняла все данные последнего exception внутри структуры процесса бесконечно долго (до следующего exception или пока процесс не умрёт) и если аргументы были развесистые, то это могло требовать много памяти; как раз чтобы это вылечить выпилили erlang:get_stacktrace()
источник

PK

Petr Kozorezov in ErlangRus
Vasilii Demidenok
Хм, кто-нибудь помнит на маленьких мапах при апдейте ключей - будет полное реструктурирование объекта, сравнимое с созданием тапла, или хуже?
Дизассемблер тебе ничего не даст, там будет уход в bif'ы. А мелкие мапы (<32), если не ошибаюсь это сортированные листы и перестройка их будет соответствующая.
источник

SP

Sergey Prokhorov in ErlangRus
Petr Kozorezov
Дизассемблер тебе ничего не даст, там будет уход в bif'ы. А мелкие мапы (<32), если не ошибаюсь это сортированные листы и перестройка их будет соответствующая.
> сортированные листы
сортированные таплы если точнее =)
источник

PK

Petr Kozorezov in ErlangRus
Sergey Prokhorov
> сортированные листы
сортированные таплы если точнее =)
фиксированного размера?
источник

PK

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

PK

Petr Kozorezov in ErlangRus
Sergey Prokhorov
> сортированные листы
сортированные таплы если точнее =)
упс, не сразу понял твоё уточнение) вопросов нет)
источник

ИИ

Иванов Иванов... in ErlangRus
Sergey Prokhorov
Насчёт аргументов в стектрейсах - насколько помню только определённые типы исключений (из тех что генерирует сама VM) включают в себя аргументы функции (кажется только badarg и function_clause) и сделано это потому что:
1. Конкретно эти типы исключений сложно анализировать если нет аргументов
2. До недавнего времени VM сохраняла все данные последнего exception внутри структуры процесса бесконечно долго (до следующего exception или пока процесс не умрёт) и если аргументы были развесистые, то это могло требовать много памяти; как раз чтобы это вылечить выпилили erlang:get_stacktrace()
полезная инфо. спасибо!
источник

A

Alexander in ErlangRus
Ilya
сейчас напишу что я хочу, мне нужен редактор такой что бы я мог дебажить смысли ка это работает.
Я в коде редакторе указываю точку остановки и нажимаю комилировать F5
дальше код выполняеться до точки остановки и ждем пока я не нажму продолжить выполнение.
Код по сути скомпилирован только он выполняется не сразу весь а ждет пока я его дебажу
отладка для эрланга в классическом смысле бессмысленна, потому что есть много процессов и у них есть таймауты на обработку данных. пока ты будешь сидеть в отладчике , сработает таймаут
источник

V

Vasilii Demidenok in ErlangRus
Тоже так думал, пока не поработал с системами где infinity таймаут это норма. В таких случаях дебаггер выручал ни раз. Но это скорее исключение из правил.
источник

ММ

Михаил Малюк... in ErlangRus
Vasilii Demidenok
Тоже так думал, пока не поработал с системами где infinity таймаут это норма. В таких случаях дебаггер выручал ни раз. Но это скорее исключение из правил.
а дебажить-то приходилось не на предмет внезапных зависаний системы? :D
источник

V

Vasilii Demidenok in ErlangRus
Вопрос видимо риторический. А так зависит от дизайна системы. Отдельные подсистемы вполне могут обладать другими требованиями по таймаутам.
источник