Size: a a a

pro.graphon (and gamedev)

2021 April 24

AP

Alexander Potapov in pro.graphon (and gamedev)
Отсылаешься к Dataflow based architecture?
источник

A

Arelav in pro.graphon (and gamedev)
Вообще мне нравится идея описания исполнения всего кода как графа зависимостей. Но кажется на практике проблемы начинаются на стыке разных либ/приложений?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Дааааа
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
В смысле, адаптирование данных под чужие компоненты?
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Самая большая проблема - у системы больше нет чёткого состояния в какой-то момент времени
источник

A

Arelav in pro.graphon (and gamedev)
Можно форкать процесс и убивать его если нужен дамп
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Я про то что порядок независимых операций недетерминирован
источник

A

Arelav in pro.graphon (and gamedev)
Ну я в том смысле что у тебя если ты пишешь не на своем языке, а на плюсах, должна быть какая то абстракция над кодом, условный intel tbb, и пропихнуть ее в какие то системы, которые не используют не получится.
источник

A

Arelav in pro.graphon (and gamedev)
Какая разница?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Кстати, да(
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Но вызовы функций чужой библиотеки представимы как зависимости
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Ввод, типа цикла сообщений Windows — это тоже какая-то операция, выдающая данные, от которых можно иметь зависимость
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
У тебя в момент времени X условно произошла ошибка, после которой нужно восстановиться. Но состояние всей системы может находится в промежуточном невалидном виде и соответственно ни к чему нельзя обращаться
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Но тебе состояние всего-всего-всего и не нужно обычно, тебе на конкретной стадии нужны данные только для неё
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
А как наличие временной шкалы позволит восстановиться в огромной архитектуре?
источник

A

Arelav in pro.graphon (and gamedev)
Кажется обычно если у тебя на стадии х может произойти ошибка у тебя в графе будет два ребра из х одно типо success другое fail. А ошибки про которые ты ничего не знаешь, решаются только перезапуском подсистемы/всей системы и для большинства систем это кажется ок?
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
В случае однопоточного приложения - очевидно, порядок инструкций детерминирован. В случае многопоточного уже не очевидно, и решается как известно убого, обычно через барьер ака мутекс для приведения всего к нужному стейту
источник

A

Arelav in pro.graphon (and gamedev)
>очевидно
Нет
>Детерминирован
Ну как бы нет. Ты наблюдаешь только happens before
источник

A

Arelav in pro.graphon (and gamedev)
Ну и есть другие варианты помимо мьютексов/барьеров, ну и идея с графами задач/данных как раз про то чтобы иметь возможность решать это иначе, чем тупо воткнем мьютекс
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Есть команда/инструкция/сигнал, по которому вылетает ошибка. Она происходит после/во время какой-то инструкции. Все детерминированно
источник