tmptrash/irma

Fix unique clone issue

Opened this issue · 0 comments

В целях оптимизации, мы разделяем молекулы и организмы. Это влияет на то будет ли VM выполнять их код или нет. Сейчас только код организмов выполняется. Молекулы остаются "мертвыми". Единственное взаимодействие со средой осуществляется плагином Decay. После клонирования сложно отличить организм от "отходов". По этому в коде в VM.run() в строке, которая выполняет команду split, есть специальный код: const clone = this._createOrg(offset, org, newCode, org.ret === IS_ORG_ID); По сути, если организм перед клонирование содержит уникальное число в регистре ret, то так мы понимаем, что это рождается организм, а не просто выделяются отходы. Потомок повторяет этот же прием со своими детьми и так далее. Тут есть две проблемы:

  • чуть выше по коду из того же ret берется направление клонирования (и оно всегда может быть только одно для организмов)
  • существует только одна возможность создать организм и нет возможности эволюционировать новым подходам

Нужно придумать, как отличать организмы от молекул и при этом не ограничивать их рождение