The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В ядре Linux 5.18 планируют разрешить использование стандарта языка Си C11"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "В ядре Linux 5.18 планируют разрешить использование стандарт..." +2 +/
Сообщение от Аноним (-), 26-Фев-22, 16:07 
> Вроде пишется по конкретный компилятор?

Оно как бы так стало не потому что так всем очень нравится, а потому что в стандарте НЕТ некоторых вещей требующихся для написания ядер, бутлоадеров, фирмварей и прочего. Номинально есть freestanding, но он только о том что кто должен и не должен реализовывать. А про то как разместить вот эту функцию в вон той секции, и как кастомно компоновать адресацию, лэйаут памяти и проч - там ничего нет. И тут оказывается что вот эта хрень - компилер специфична. И вы либо вообще обламываетесь, либо кодите под кого-то конкретного. Используя extended фишки которых в стандартах НЕТ.

Со временем GCC как-то стал более-менее золотым стандартом этсамого. И даже шланг и в меньшей степени другие, типа tcc какого-нибудь, стали обезьянить как некоторые нестандартные вещи делаются. Сейчас ядро линуха и clang'ом вроде собирается, плюс-минус. У оного мощный статический анализатор, лишний раз код прозвонить - идея некоторым нравится.

> А про остальные портируется (с ответственностью на тех, кто портирует).
> Или я чего то не понимаю? Зачем тащить скраб, когда он не нужен?

Можно самому изобретать велик, при том - с ржавой рамой из водопроводных труб и деревянными колесами, потому что под рукой ничего лучше не было, так что слепили подобие велика из того что есть. Ездит же как-то? А можно и более нормальный взять, если уж есть.

> Зачем синтаксический сахар, когда он вносит больше неопределённости?

Никакой неопределенности оно не вносит. А делать велосипед самому из ржавых труб может и задолбать, особенно если можно и получше чем это. Самолично хреначить детект истинных размеров типов и из этого крафтить потребные exact width типы, обвесив столь же самопальными квазиассертами из гамна и палок вида #define assert(cond, why) typedef char why[cond ? 1 : -1] - это имнено оно! И даже еррор при обломе - кривой. А в C11 это все есть сразу и не через зад.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
В ядре Linux 5.18 планируют разрешить использование стандарта языка Си C11, opennews, 25-Фев-22, 18:02  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру