Size: a a a

2019 October 26

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Evgeny M.
Мутабельность тоже думаю будет недешева
Ну как сказать, определённые алгоритмы по скорости будут в десятки, сотни раз и более быстрее. Ускорить hot path в 100 раз, не покидая языка - где-то такое ускорение явно будет оправданно.
источник

EM

Evgeny M. in ErlangRus
А с учетом поведения бинарей даже сложно представить весь геморрой
источник

EM

Evgeny M. in ErlangRus
Придется структуры как-то лочить, чтобы мутабельность была атомарной при переключении контекста
источник

EM

Evgeny M. in ErlangRus
Короче это будет ящик пандоры
источник

EM

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

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Evgeny M.
Мне кажется мутабельность может быть ок как оптимизация компилятора. ручная создаст больше проблем чем пользы
Она создаст проблемы при бездумном использовании. Для случаев, где и так чтобы оптимизировать нужно идти в nif/C/Rust и так далее - это может быть решением, которое полезно по причинам: не используется другой язык(легче сделать и мейнтейнить), не нужно переключать контекст между beam/не beam. А те же проблемы, что нужно решать для мутабельных структур данных - в тех же нифах никуда не исчезают.
источник

АН

Алексей Новоселов in ErlangRus
Нужна мутабельная структура, используй ETS таблицу, в чем проблема-то?
источник

TH

Taras Halturin in ErlangRus
Тут проблема в том, что пытаются вкрутить шурупы молотком )). Эрланг хорош, но не во всём. Увы.
источник

ML

Maksim Lapshin in ErlangRus
Алексей Новоселов
Нужна мутабельная структура, используй ETS таблицу, в чем проблема-то?
Ты так говоришь, будто ets бесплатный :)

1 микросекунда на изменение поля. Представь себе мегагерцовый процессор!
источник

АН

Алексей Новоселов in ErlangRus
ну да, нейронки на ets'ах не посчитаешь
источник

В

Вертолетчик in ErlangRus
Если переписать часть кода на Си, то потом окажется, что, например, erlang:element в топе... тупо потому что к нему обращений больше... и понеслась. Проходили... забили
источник
2019 October 27

С

Саша in ErlangRus
Экспериментирую с разбором бинарного файла.

<<Mark:32, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<Mark:32, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<77,84,104,100,0,0,0,6,0,1,0,2,0,240,77,84,114,107,0,0,0,
 28,0,255,88,4,4,2,24,...>>


В переменной. Mark попадает число, а там находятся 4 ascii буквы. Как правильно описать сегмент для Mark, чтобы туда попала строка из четырех символов или 4 байта?
источник

С

Саша in ErlangRus
<<Mark:32/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<Mark:32/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
** exception error: no match of right hand side value <<77,84,104,100,0,0,0,6,0,1,0,2,0,240,77,84,114,107,
                                                       0,0,0,28,0,255,88,4,4,2,24,...>>
так не получается
источник

ML

Maksim Lapshin in ErlangRus
Mark:4/binary
источник

С

Саша in ErlangRus
<<Mark:4/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<Mark:4/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
** exception error: no match of right hand side value <<77,84,104,100,0,0,0,6,0,1,0,2,0,240,77,84,114,107,0,0,0,
                                                       28,0,255,88,4,4,2,24,...>>
источник

С

Саша in ErlangRus
а вообще заработало
источник

С

Саша in ErlangRus
перезагрузил eshell
источник

С

Саша in ErlangRus
а почему тогда после появления эксепшена конструкция перестает работать?
источник

С

Саша in ErlangRus
<<Mark:4/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<Mark:4/binary, Size:32/integer, Type:16/integer, NumTracks:16/integer, Tempo:16/integer, Body/binary>> = BinaryData.
<<77,84,104,100,0,0,0,6,0,1,0,2,0,240,77,84,114,
 107,0,0,0,28,0,255,88,4,4,2,24,...>>
(emacs@alex)7> Mark.
Mark.
<<"MThd">>
источник

ML

Maksim Lapshin in ErlangRus
Чет я забыл, что это за атом
источник