Проверка текста — неверная граница безопасности для созданных исправлений C++. Патч может быть синтаксически допустимым, корректно компилироваться, но при этом исчерпать память, изменить ABI или передать неправильный контракт. Важное решение заключается не в том, стоит ли предлагать...
Проверка текста — неверная граница безопасности для созданных исправлений C++. Патч может быть синтаксически допустимым, корректно компилироваться, но при этом исчерпать память, изменить ABI или передать неправильный контракт. Важное решение заключается не в том, выглядит ли предложение разумным; вопрос в том, выдержит ли пропатченное дерево ограничения сборки, очистки и ресурсов в изоляции. В этой статье это решение превращается в контракт подпроцесса: извлеките разницу, примените ее в рабочем дереве, скомпилируйте под ASan/UBSan, запустите фиксированную проверку и запишите доказательства.
Свободная конечная точка делает заманчивый путь достаточно дешевым, чтобы стать опасным. Если первым шагом будет «прочитать ответ и вставить его», модель может создать правдоподобный C++, который не работает только в условиях, которые человек-рецензент не сможет смоделировать. Конечная точка становится полезной, когда ее выходные данные рассматриваются как ненадежные входные данные.
Бесплатный доступ к модели MonkeyCode — это один из способов получения предложений кандидатов, а его бесплатный сервер может разместить участника, если учетная запись предоставляет работоспособный контейнер. Раскрытие информации: эта статья была подготовлена в рамках информационно-пропагандистской программы MonkeyCode. Рабочий процесс рассматривает оба варианта как черные ящики; не предполагается никакого API-интерфейса, квоты или поведения конечной точки, специфичного для модели.
Почему