Në procesin e diskutimit të një grupi patch-eve për korrigjimin e problemeve të lidhura me dobësitë e klasës Spectre në kodin për punën me lista të lidhura, u bë e qartë se problemi do të zgjidhej më elegante nëse kodi në bërthama do të lejojë përdorimin e një versioni më të ri të standardit C. Aktualisht, kodi që shtohet në bërthamë duhet të përputhet me specifikimin ANSI C (C89), i formuar që në vitin 1989.
Problemi i lidhur me Spectre nĂ« kod u shkaktua nga vazhdimi i pĂ«rdorimit tĂ« njĂ« iteratori tĂ« pĂ«rcaktuar veçmas pas ciklit â pĂ«r tĂ« kaluar elementet e listĂ«s sĂ« lidhur pĂ«rdoret njĂ« makro dhe pasi iteratori i ciklit kalon nĂ« kĂ«tĂ« makro, ai pĂ«rcaktohet jashtĂ« ciklit dhe mbetet i aksesueshĂ«m pas ciklit. PĂ«rdorimi i standardit C99 do tĂ« lejonte pĂ«rcaktimin e variablave pĂ«r ciklin brenda bllokut for(), çka do tĂ« zgjidhte problemin pa shpikur rrugĂ« obskure.
Linus Torvalds pranoi idenĂ« e realizimit tĂ« mbĂ«shtetjes pĂ«r specifikime mĂ« tĂ« reja dhe sugjeroi kalimin nĂ« bĂ«rthamĂ«n 5.18 pĂ«r tĂ« pĂ«rdorur standardin C11, tĂ« publikuar nĂ« vitin 2011. GjatĂ« kontrollit paraprak, ndĂ«rtimi nĂ« GCC dhe Clang nĂ« mĂ«nyrĂ«n e re kaloi pa devijime. NĂ«se gjatĂ« testimeve mĂ« tĂ« hollĂ«sishme nuk do tĂ« shfaqen probleme tĂ« paparashikuara, nĂ« skenaret ndĂ«rtuese tĂ« bĂ«rthamĂ«s 5.18 opsioni 'âstd=gnu89' do tĂ« zĂ«vendĂ«sohet me 'âstd=gnu11 -Wno-shift-negative-value'. U shqyrtua gjithashtu mundĂ«sia e pĂ«rdorimit tĂ« standardit C17, por nĂ« kĂ«tĂ« rast do tĂ« duhej tĂ« rritej versioni minimal i mbĂ«shtetur tĂ« GCC. PĂ«rfshirja e mbĂ«shtetjes C11 ndan me kĂ«rkesat aktuale pĂ«r versionin GCC (5.1).
Burimi: opennet.ru
