Как генератор тестов помог стабилизировать компилятор в Zing VM

18:30 /Зал 2 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Стабильность и функциональная корректность — это то, чего ждут пользователи Java-машин. А ещё они ждут, что скомпилированный ими код будет работать быстро. Для этого существуют компиляторные оптимизации, но чем агрессивнее они улучшают код, тем больше проблем в них может быть скрыто.

Так как же помирить такие противоречивые цели, как скорость и корректность скомпилированного кода? Особенно если ваш компилятор основан на LLVM, и в него вливаются десятки тысяч строк изменений каждую неделю? Как находить скрытые баги у себя дома до того, как пользователь наткнётся на один из них?

В этом докладе мы расскажем, как мы ищем функциональные проблемы в компиляторе Java-машины Zing, используя автоматический генератор тестовых программ на языке Java.


Максим Казанцев

Максим Казанцев

Инженер компиляторов в Azul Systems. Последние 4 года занимается оптимизирующими JIT-компиляторами для виртуальных машин. С 2017 года работает над Zing VM, активно коммитит в LLVM. До этого работал над виртуальными машинами ART и Dalvik в компании Intel, внёс свой вклад в Android Open Source Project.