Найти в Дзене
9 подписчиков

Материалы к моему докладу "О чём я говорю, когда говорю о тестировании корректности работы компиляторов"


Примеры кода к докладу - https://github.com/ligurio/snippets/tree/master/highload-2022


Страница доклада Антона Солдатова "Как мы работаем над стабильностью нашей реализации Lua" на сайте конференции.

Тот самый баг, который Mike Pall закрыл как неприемлимый. Интересно, что он сначала написал про небезопасное выполнение недоверенного байткода в LuaJIT FAQ, а потом закрыл баг сославшись на эту часть FAQ.

Фаззеры для C/C++ компиляторов: CSmith и YARPGen
Слайды про YARPGen.

Попытки рандимизированного тестирования PUC Rio Lua:


Материалы про фаззер для JavaScript - FuzzIL:

Слайды про Alive2.
Слайды, диссертация и пейпер про Alive. Что интересно - авторы CSmith заметили, что чаще всего баги появляются в одной конкретной оптимизации InstCombine, и, чтобы фокусно тестировать эту оптимизацию, они решили проверить корректность оптимизаций с помощью LLVM IR и SMT-решателя. Вот ещё слайды про Alive.

Проект Cosetta.

Баг в PyPy, найденный с помощью SMT-решателя.
1 минута