Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

В Linux 6.19 появится поддержка Microsoft C Extensions — спустя 20 лет после первого предложения

Новости

Впервые о подобном попросили еще в 2007 году

965 открытий5К показов
В Linux 6.19 появится поддержка Microsoft C Extensions — спустя 20 лет после первого предложения

Уже в следующем релизе ядра Linux появится то, чего не было все время существования проекта: поддержка Microsoft C Extensions.

Два патча с этой функцией уже добавлены в ветку kbuild-next, которая отвечает за сборочную систему ядра. И, по всей видимости, они попадут в окно слияния Linux 6.19.

Что изменится

Патчи включают глобальный флаг компиляции -fms-extensions для GCC и Clang.

Эта опция активирует нестандартные расширения C, поддерживаемые компилятором Microsoft Visual C/C++. Например, возможность анонимно встраивать структуры и объединения (struct/union) друг в друга.

Для разработчиков ядра это значит, что можно будет писать «более элегантный код» и в некоторых случаях даже экономить место в стеке.

Почему это важно

Ранее предложения включить -fms-extensions всплывали в рассылках разработчиков ядра не раз. Первые упоминания датируются еще 2007 годом. Но все это время они так и не доходили до релиза.

Теперь же, когда патчи уже в kbuild-next, их шансы попасть в мейнлайн выше, чем когда-либо.

Разработчик Расмус Виллемоэс, предложивший изменение, объясняет:

«Каждый раз, когда обсуждается включение -fms-extensions, выясняется, что код можно написать и без него. И получается «не слишком ужасно». Но если, как говорит Линус, просто стиснуть зубы и включить этот флаг раз и навсегда, он будет доступен всякий раз, когда ему найдется применение. И отдельным примерам не придется оправдывать его использование».

Что думает Линус Торвальдс

Сам Торвальдс, судя по его последним комментариям в рассылке, не возражает против включения Microsoft C Extensions в Linux 6.19.

Это довольно символично: ядро, десятилетиями противопоставлявшее себя экосистеме Microsoft, теперь официально допускает поведение компилятора из Visual Studio.

Что это даст разработчикам

  • возможность использовать вложенные структуры без явных имен;
  • немного чище и компактнее код в ряде подсистем;
  • унификацию сборки под GCC и Clang;
  • потенциальное упрощение кроссплатформенных драйверов и библиотек.

Не всем идея нравится — часть разработчиков считает неправильным позволять «поведение Microsoft» в коде ядра Linux.

Но если патчи пройдут ревью, то начиная с Linux 6.19 в ядре впервые официально появится поддержка расширений языка C из Visual Studio — шаг, о котором 15 лет назад в рассылке ядра даже не мечтали.

Следите за новыми постами
Следите за новыми постами по любимым темам
965 открытий5К показов