aboutsummaryrefslogtreecommitdiff
path: root/docs/appendices/script-vm.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-18 19:32:56 +0300
committerValentin Popov <valentin@popov.link>2026-07-18 19:32:56 +0300
commita7b434aeb2e1c79131e4919f6b0cbf66cdc06599 (patch)
tree69173457e4c5a567e40041d6dd4f8a256cf13a5d /docs/appendices/script-vm.md
parent6c444d63c552df058685a85284b4166c540514a0 (diff)
downloadfparkan-a7b434aeb2e1c79131e4919f6b0cbf66cdc06599.tar.xz
fparkan-a7b434aeb2e1c79131e4919f6b0cbf66cdc06599.zip
docs(ai): recover expression evaluator contract
Diffstat (limited to 'docs/appendices/script-vm.md')
-rw-r--r--docs/appendices/script-vm.md11
1 files changed, 7 insertions, 4 deletions
diff --git a/docs/appendices/script-vm.md b/docs/appendices/script-vm.md
index 0664bdf..5e6adb8 100644
--- a/docs/appendices/script-vm.md
+++ b/docs/appendices/script-vm.md
@@ -24,10 +24,13 @@ defaults и bindings она dispatches Init/start, на каждом tick обн
budget. Опасное удаление идёт через World3D queue и общий deferred lifecycle.
До восстановления opcode table package mode читает header/strings/symbols/
-event offsets/raw bytecode losslessly. Disassembly mode использует подтверждённую
-`ai.dll` jump table. Unknown opcode нельзя пропустить как один byte: это ломает
-синхронизацию. Для каждого доказанного opcode фиксируются number, size,
-operands, control flow, effects, errors и минимальный test.
+event offsets/raw bytecode losslessly. Статический анализ уже выделил отдельный
+five-way evaluator condition records (`ai.dll` VA `0x10005180`): tags `1..5`,
+type guards, object lookup и completion flag. Это не следует выдавать за
+instruction dispatcher или jump table `.scr`: bytecode opcode table всё ещё
+требует отдельного доказательства. Unknown opcode нельзя пропустить как один
+byte: это ломает синхронизацию. Для каждого доказанного opcode фиксируются
+number, size, operands, control flow, effects, errors и минимальный test.
TMA properties остаются four raw `u32` words плюс имя, пока consumer/schema не
задаст тип (integer/float bits/ObjectId/enum/fixed-point/index). В том числе