2018-03-07

clang-cl

2018-03-07 09:01 pm
waqur: (Default)
Браузер Google Chrome с недавних пор собирается под Windows с использованием компилятора clang-cl: https://news.ycombinator.com/item?id=16524313

clang-cl — это форк компилятора clang, поддерживаемый компанией Google. Смысл форка — обеспечить полную совместимость clang с MSVC: возможность линковать obj-файлы, произведённые обоими компиляторами в один dll/exe с помощью любого из компоновщиков; полная совместимость генерируемых obj-файлов с MSVC по формату отладочной информации, так, чтобы их можно было отлаживать из Visual Studio; полная совместимость по C++ ABI, включая раскрутку стека при исключениях. Разумеется, собранные бинарники не тянут зависимости наподобие libgcc_s и тулчейн лицензионно чист от GNU GPL.

А ещё clang-cl, в отличие MSVC, поддерживает ассемблерные вставки в 64-битном режиме.

Вся затея длится уже более четырёх лет, и судя по всему, достигла достаточной степени стабильности для испытания на хомячках пользователях браузера Chrome.

О целях мы можем только догадываться:
  • Google хочет иметь возможность кросс-компиляции браузера Chrome и других проектов из Linux, и чтобы они при этом не несли отпечатки mingw-шной второсортности, такие как зависимость от libgcc_s_dw2-1.dll, невозможность нормальной отладки и несовместимость по исключениям

  • Google не хочет использовать MSVC, в последних версиях которого CRT содержит обязательную телеметрию (вызовы ETW)

  • Google хочет использовать в исходниках Chrome новейшие фичи C++17 без опасения за совместимость кода, сгенерированного будущими версиями компилятора, с Windows 7

  • Находящийся под контролем Google и независимый от Microsoft'а SDK для разработки Win32-приложений — часть более общего плана, как-то связанного с другими проектами Google, например ОС Fuchsia


Сам по себе факт появления не-Microsoft'овского SDK для разработки Win32-приложений — не такое уж и большое дело, в середине 90-х такие SDK поддерживали фирмы Borland и Watcom. Но в последнее время из-за отсутствия реальной конкуренции Microsoft обнаглела, начала воспринимать Win32 SDK как свою собственность, и слегка съехала с катушек, например сломала совместимость последних версией компилятора с Windows XP, натолкала в CRT телеметрии и т.п. Надеюсь, что эта разработка Google будет держать MS в тонусе и содействовать общей адекватности в этой сфере.

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

На этой странице

Автор стиля

Развернуть

No cut tags
Page generated 2025-09-11 10:19 am
Powered by Dreamwidth Studios