Когда это нужно
Этот контракт нужен для сравнения, повтора или аудита запуска. Одного «того же входа» недостаточно, пока не названы байты исходника, идентификатор исполнителя, ресурсный профиль и наблюдаемые каналы.
Разбор примера
Детерминированный запуск не обещает завершить любую программу. Он обещает закреплённые наблюдения либо чистый именованный отказ в заданном ресурсном профиле. Время по часам — эксплуатационное наблюдение, а не семантическое значение программы.
Как рассуждать
- Наблюдаемые оси: байты stdout, байты диагностики, статус выхода, порядок предупреждений, отчёт ресурсов, проекция значения и при необходимости идентичность артефакта/происхождения.
- Native и WASM могут иметь разные пределы и при этом чисто сообщать профильные ресурсные результаты.
- Повтор закрепляет исходник, идентификатор исполнителя, пределы и проекцию наблюдений до сравнения байтов.
Быстрый выбор
| Что закрепить до сравнения | Зачем | Пример наблюдения |
|---|---|---|
| байты исходника и входа | нормализация текста меняет идентичность | байты значения или диагностики |
| исполнитель и профиль | явно задаются пределы и поддержка | статус выхода и ресурсный отчёт |
| проекция наблюдений | детали среды вне наблюдения не входят в утверждение | stdout и порядок предупреждений |
| корпус и базовая линия | результат не должен выбирать набор проверки | совпадение, расхождение, несравнимость |
| идентичность артефакта при необходимости | свидетельство называет проверенный объект | квитанция или хэш движка |
Частая ошибка
Один лишь тайм-аут по настенным часам не является семантическим отчётом ресурсов.
Текущие границы
- Совпадение в ограниченной кампании не является эквивалентностью всего языка или доказательством отсутствия расхождений.
Куда дальше
Справочник сред выполнения показывает исполнителей с происхождением, а проверяемые поверхности — точный охват поддерживаемых сравнений.