Linux ïåðåéä¸ò íà èñïîëüçîâàíèå ñòàíäàðòà C11 â âåðñèè 5.18 èëè îäíîé èç ñëåäóþùèõ |
Âî âðåìÿ îáñóæäåíèÿ íàáîðà ïàò÷åé, ñâÿçàííûõ ñ èñïðàâëåíèåì óÿçâèìîñòåé êëàññà Spectre â êîäå äëÿ ðàáîòû ñî ñâÿçàííûìè ñïèñêàìè, ñòàëî ÿñíî, ÷òî ïðîáëåìó óäàëîñü áû ðåøèòü áîëåå èçÿùíî, åñëè áû â ÿäðî äîïóñêàëñÿ êîä, èñïîëüçóþùèé ñòàíäàðò ñòàðøå C89. Ñåé÷àñ êîä â ÿäðå äîëæåí ñîîòâåòñòâîâàòü Ñ89 (ñ GNU ðàñøèðåíèÿìè) íà îñíîâå ñïåöèôèêàöèè, ñôîðìèðîâàííîé åù¸ â 1989 ãîäó. Ñâÿçàííàÿ ñî Spectre ïðîáëåìà áûëà â òîì, ÷òî äëÿ ïåðåáîðà ýëåìåíòîâ ñïèñêà èñïîëüçóåòñÿ ìàêðîñ. Òàê êàê ïåðåìåííàÿ öèêëà ïåðåäà¸òñÿ â ýòîò ìàêðîñ, òî îíà îïðåäåëÿåòñÿ âíå ñàìîãî öèêëà è îñòà¸òñÿ äîñòóïíà ïîñëå öèêëà. Èñïîëüçîâàíèå áîëåå íîâûõ ñòàíäàðòîâ ÿçûêà C ïîçâîëèò îïðåäåëÿòü ïåðåìåííûå äëÿ öèêëà ïðÿìî â áëîêå for.
 ñâÿçè ñ ýòèì, Ëèíóñ Òîðâàëüäñ ïðåäëîæèë ïîïðîáîâàòü ïåðåéòè â ÿäðå 5.18 íà ñòàíäàðò C99, êîòîðûé áûë îïóáëèêîâàí â 1999 ãîäó, íà ÷òî ïîëó÷èë âñòðå÷íîå ïðåäëîæåíèå ïåðåéòè ñðàçó íà C11. Ïðè ïðîâåðêå ñáîðêè â GCC è Clang ñ íîâûì ñòàíäàðòîì ïðîáëåì ïîêà íå âîçíèêëî è, åñëè ïðè áîëåå òùàòåëüíîì òåñòèðîâàíèè ñèòóàöèÿ íå èçìåíèòñÿ, â ñáîðî÷íûõ ñêðèïòàõ ÿäðà 5.18 îïöèÿ --std=gnu89 áóäåò çàìåíåíà íà --std=gnu11 -Wno-shift-negative-value.
 ñëó÷àå íåóäà÷è, ïåðåõîä áóäåò îòëîæåí íà îäèí èç ñëåäóþùèõ âûïóñêîâ.
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |