Quench в деле: собираем Redis и Lua, без прикрас

Короткий пост-демонстрация, без лишней воды. Не буду пересказывать, что такое Quench и зачем он появился — об этом был отдельный текст. Здесь просто хочу показать реальную сборку на живых проектах, с реальным выводом в терминале, без монтажа и без вырезанных неудобных строк.

Начнём с тяжёлого — Redis. Реальная база данных, сотни тысяч строк кода, куча объектных файлов, разные зависимости внутри проекта. Сборка идёт с санитайзерами адреса и undefined behavior включёнными — то есть не облегчённый прогон для красивой цифры, а честная сборка с диагностикой на борту. Кэш символов срабатывает почти по всем объектникам, для архивной библиотеки инструмент сам замечает, что она архивная, и переключается на однопроходную линковку вместо попытки распараллелить то, что параллелить бессмысленно. Дальше — обычный gcc, полный список объектников, финальная линковка, и результат: собранный redis-server за три с небольшим секунды суммарного времени, при этом заняты три процессорных ядра почти на все сто процентов.

Quench в деле: собираем Redis и Lua, без прикрас

Дальше — Lua, для контраста. Меньше проект, но интереснее в другом смысле: здесь видно, как Quench собирает библиотеку в два прохода линковки, а финальную сборку исполняемого файла отдаёт zig c++ с явным указанием таргета x86_64-linux-gnu — то есть кросс-тулчейн подключается сам, без ручных танцев с флагами. Санитайзеры снова включены. Итог — собранный интерпретатор менее чем за секунду, и тут же запущенный лайв-REPL Lua 5.5.0, который сразу готов принимать команды.

Quench в деле: собираем Redis и Lua, без прикрас

Никакой синтетики, никаких заранее прогретых кэшей для красивой цифры на скриншоте — оба вывода настоящие, прямо из терминала, со всеми предупреждениями и техническими деталями, которые обычно вырезают из демонстраций. Если хочется погонять на своём проекте — ловите ссылки.
Репозиторий:

Документация:

11