Meowbe/BSD-2-Clause
ST и IORef 🤔
Alexander
ref на рекорд
Alexander
там + boxing
Alexander
самое похожее на мутабельные объекты это structs
A64m
да, но у меня что-то руки не дошли structs попробовать
A64m
на 8.2 и коллинзовские таблицы быстрее работают
A64m
иногда в разы
A64m
но все равно медленно очень
A64m
секрет тормознутости коллинзовских таблиц мне так раскрыть и не удалось
A64m
может они быстро работали на тех компиляторах, которые актуальными были, когда он их писал?
Alexander
блин похоже хорошая олимпиадка может быть
A64m
теоретически да, размер кода вставки (если без ресайза) примерно как у той, где в дев нулл писали, только кому охота что-то полезное делать?
Alexander
мне
Alexander
но нету времени
A64m
надо попробовать эту таблицу впарить мейнтейнеру какой-нибудь библиотеки, которой от нее польза будет, вроде графовой, какой-нибудь
A64m
А то, похоже, кроме Харропа никому в хаскеле хештаблицы не нужны
Alexander
у нас есть хэштаблицы
Alexander
но никогда не думал их мерять, больше времени на другой код уходит
A64m
ну они вроде есть, кое-кто их бывает использует и т.д., но особого внимания им не уделяется. (unordered-)containers то хоть иногда пытаются побыстрее сделать
A64m
но это и понятно, пользоваться мутабельными контейнерами неудобно
Leonid 🦇
чёт раст чат плоховат
Aliester
почему?
Anonymous
Почему тут так часто вспоминают раст ? Интересно чем он так привлекает хаскеллистов )
A64m
Го чаще
Alexander
раст хороший язык из языков которые не могут позволить себе гц
Leonid 🦇
поправь на "более хороший", пока @A64m_qb0 не сказал что все ЯП говно
Aliester
а С++?
Alexander
@lonokhov это очевидно
Alexander
C++ меньше людят, он сложный
Dmitry
@complexityclass раст похож на настоящий язык, только со странным синтаксисом и недоделанный. зато лезет в embedded
Aliester
людить
Aliester
отличное слово для описывания величины коммюнити
Vladislav
Rust это единственный известный мне язык, который использует linear/affine types для управления памятью.
Vladislav
и который вылез из research-колыбели
Leonid 🦇
Dmitry
но хоть как-то
Dmitry
наш уютненький вообще никак.
Dmitry
кстати, я до сих пор не убежден в несовместимости gc и embedded
Dmitry
gc таки делается инкрементальным
Dmitry
и не обязан работать всегда.
Vladislav
gc не совместим с 0-latency
Dmitry
она не всегда нужна
Vladislav
так и Rust не всегда нужен
Dmitry
и даже в рамках одного языка можно сказать - тут gc можно, тут gc нельзя
Dmitry
в прерывании нельзя
Alexander
c 0-latency совместима бесконечная память
Dmitry
в остальных местах можно
Aliester
компьютеры не всегда нужны
Vladislav
Anonymous
была тут на днях статья про gc в OCaml vs reference counting в Swift, в итоге gc даже не всегда хуже оказался
Dmitry
короч, на 4 kb RAM с gc нормально, я гарантирую
Dmitry
более того, там без gc очень плохо
Dmitry
т.к. gc неким образом расширяет доступную память
A64m
Dmitry
т.е делает её реюз
Vladislav
A64m
который будет куда-нибудь пролезать
Vadim
Anonymous
https://flyingfrogblog.blogspot.ru/2017/12/does-reference-counting-really-use-less.html?m=1
Vadim
действительно - новая, спасибо)
A64m
Alexander
Alexander
там много причин почему он может быть не хуже
Meowbe/BSD-2-Clause
Meowbe/BSD-2-Clause
В стд
A64m
Alexander
да, но там очень просто оказаться в ситуации когда нужно RC,Arc
Alexander
GC ~ RC, Arc
Meowbe/BSD-2-Clause
Мне пока не нужно было использовать
Alexander
т.е. там в зависимости от задачи или одно или другое становится лучше
Meowbe/BSD-2-Clause
Alexander
пишешь какой-нить fingertree/prefix tree и тут же куча RC
Alexander
используешь его из многих потоков - привер Arc
Vladislav
GC хотя бы от циклических ссылок не циклится сам, в отличие от RC
A64m
Мне пока не нужно было использовать
если человек уже измучан плюсовым нарзаном каким-нибудь, то ему уже рефлекторно не требуется, а функциональщик там без РЦ не развернется (да и с рц)
Alexander
если принцип поколений выполняется, то GC начинает выигрывать
Alexander
т.к. аллокации дешевле, а сборка O(live-set)
Meowbe/BSD-2-Clause