Size: a a a

Compiler Development

2021 February 08

МБ

Михаил Бахтерев... in Compiler Development
Alexander Tchitchigin
Послушайте, Михаил, как мы только что узнали, уважаемый Дим — опытный разработчик, давайте не будем унижать его интеллектуальные способности, объясняя ему очевидные для всех вещи. 😊
? Мне в самом деле интересно, как это делают.
источник

AT

Alexander Tchitchigi... in Compiler Development
Михаил Бахтерев
? Мне в самом деле интересно, как это делают.
По факту (в Rust) — используют арены (вектора), индексы вместо указателей и ручную сборку мусора. 🤷‍♀️
источник

DB

Danil Braindead in Compiler Development
Дмитрий К
Я много чего автор. В данном случае скорее релевантно то, что я автор $mol_atom, который мемоизирует вычисления, автоматически инвалидирует кеш при изменении зависимостей и автоматически его очищает, когда он никому не интересен.
> Когда он никому не интересен
Когда ? Какой алгоритм вы для этого используете ?
источник

DB

Danil Braindead in Compiler Development
Поскольку между инвалидацией кеша и https://t.me/CompilerDev/79465, есть прямая зависимость, о которой вы видимо пока не догадываетесь 🙂
источник

ДК

Дмитрий К in Compiler Development
Danil Braindead
> Когда он никому не интересен
Когда ? Какой алгоритм вы для этого используете ?
Всё просто. Любой контейнер знает от кого он зависит и кто зависит от него. Эта информация собирается динамически при исполнении.
источник

AT

Alexander Tchitchigi... in Compiler Development
Danil Braindead
Поскольку между инвалидацией кеша и https://t.me/CompilerDev/79465, есть прямая зависимость, о которой вы видимо пока не догадываетесь 🙂
Ну что ж Вы только в чат зашли и сразу личные выпады совершаете! Не надо так... 😉
источник

DB

Danil Braindead in Compiler Development
Дмитрий К
Всё просто. Любой контейнер знает от кого он зависит и кто зависит от него. Эта информация собирается динамически при исполнении.
То есть между контейнерами есть некая ассоциация ?
источник

ДК

Дмитрий К in Compiler Development
Danil Braindead
То есть между контейнерами есть некая ассоциация ?
Контейнеры образуют DAG с двусторонними ссылками между узлами.
источник

DB

Danil Braindead in Compiler Development
Дмитрий К
Контейнеры образуют DAG с двусторонними ссылками между узлами.
Отлично, то есть вы переизобретаете классический алгоритм GC в вашей интерпретации https://en.wikipedia.org/wiki/Reference_counting#Graph_interpretation
источник

ДК

Дмитрий К in Compiler Development
Danil Braindead
Отлично, то есть вы переизобретаете классический алгоритм GC в вашей интерпретации https://en.wikipedia.org/wiki/Reference_counting#Graph_interpretation
RC - это совсем о другом. У меня же РП. Можете тут почитать: https://habhub.hyoo.ru/#search/author=nin-jin/repo=HabHub/article=7
Прокси там реализуются через замыкания.
источник

AT

Alexander Tchitchigi... in Compiler Development
Дмитрий К
Контейнеры образуют DAG с двусторонними ссылками между узлами.
"DAG с двусторонними ссылками" — забавный оксюморон. 😊
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
"DAG с двусторонними ссылками" — забавный оксюморон. 😊
Да, тоже улыбнулся :)
источник

ДК

Дмитрий К in Compiler Development
Alexander Tchitchigin
"DAG с двусторонними ссылками" — забавный оксюморон. 😊
Это разные уровни представления, а не оксюморон.
источник

AT

Alexander Tchitchigi... in Compiler Development
Дмитрий К
Это разные уровни представления, а не оксюморон.
Кто бы сомневался. 😊
источник

А

Антон in Compiler Development
Alexander Tchitchigin
Кто бы сомневался. 😊
Так ты на чьей стороне?))
источник

AT

Alexander Tchitchigi... in Compiler Development
Антон
Так ты на чьей стороне?))
Я на той стороне, которая хотела бы чтобы тут не было сторон и войн между ними. 😊
источник

А

Антон in Compiler Development
Тогда меньше сарказма имхо)
источник

M

MrSmith in Compiler Development
Михаил Бахтерев
Дело не в программистах. В большинстве случаев приходится писать самопальные сборщики мусора, потому что только в runtime известно, когда данные больше не понадобятся. Не всегда самопальное надёжнее и эффективнее сборщика языка. Стандартно делают арены, но арены - такое себе по экономичности и эффективности решение.
Должен быть способ сделать что то среднее
источник

M

MrSmith in Compiler Development
К примеру анотации предоставить компилятору
источник

K

Kir in Compiler Development
MrSmith
Должен быть способ сделать что то среднее
Регионы памяти, например
источник