Hacker News Digest

31 августа 2025 г. в 19:22 • nibblestew.blogspot.com • ⭐ 201 • 💬 165

OriginalHN

#c++#c++20#compilation#build-systems#rust#precompiled-headers

What to do with C++ modules?

Краткий обзор проблемы C++ модулей

  1. Главное требование
    Если модули не ускоряют сборку минимум в 5 раз (желательно 10×) на реальных проектах, их нужно удалить из стандарта. Все остальные плюсы не стоят вложенных ресурсов.

  2. Что обещали vs. что получили

    • Изначально: «уберём O(N²) из-за заголовков, компиляция станет мгновенной».
    • Сейчас: упор сместился на «изоляцию сборки» (макросы, пространства имён). Это полезно, но редко встречается и не решает главную боль — медленную сборку каждый день.
  3. Почему всё так плохо

    • Модули приняли в C++20, несмотря на предупреждения о невозможности реализации.
    • Реализация заняла >5 лет и всё ещё не готова.
    • Стандарт не описывает, как именно компилятор и сборочная система должны взаимодействовать: имена файлов, каталоги, зависимости — всё на совести разработчиков.
    • Компиляторные команды отказываются «превращаться в систему сборки» и блокируют любые предложения.
  4. Итог
    Проект превратился в «интеграционный ад». Пока нет массовых 5-10-кратных ускорений, дальнейшие инвестиции — просто затягивание «затратной ямы».