GCC 13.5 iznāca 11. septembrī ar vairāk nekā 265 kļūdu labojumiem. Tas ir pēdējais plānotais GCC 13 sērijas laidiens. Sērijas lapa tagad sākas ar iekavās liktu piezīmi, ka šī sērija vairs netiek uzturēta.
Starp 13.4 un 13.5 pagāja vairāk nekā 15 mēneši. 13.4 iznāca 2025. gada 5. jūnijā, 13.3 gadu pirms tam, 2024. gada 21. maijā. Sērijas pirmais laidiens 13.1 ir datēts ar 2023. gada 26. aprīli. Zars nostrādāja trīs gadus un četrarpus mēnešus.
Laidienā ir tikai labojumi
GCC dokumentācija 13.5 apraksta īsi: tas ir kļūdu labojumu laidiens, kurā salabotas regresijas, kas 13.4 versijā parādījās salīdzinājumā ar agrākām GCC versijām. Jaunas valodas iespējas šeit nav pievienotas.
Divi izņēmumi ir aparatūras atbalsta pusē. GCC 13.5 pazīst 23 jaunas AVR ierīces: AVR32DA un AVR64DA sēriju S variantus, AVR128DA S variantus, AVR32EB14 līdz AVR32EB32 un pa četriem čipiem AVR16LA un AVR32LA sērijā. Intel pusē izmaiņa iet pretējā virzienā. Instrukcija CLDEMOTE vairs netiek ieslēgta ar karodziņu -march=alderlake. Tāpat tā izņemta no raptorlake un meteorlake mērķiem, jo šajos procesoros instrukcija ir atslēgta.
Sērijas lapā rindiņa par uzturēšanu stāv virs visa pārējā satura:
(This release series is no longer supported.)
Ko praktiski nozīmē slēgts zars
Slēgts zars nozīmē, ka GCC 13 kodā upstream vairs nelabo neko. Ja kāds pēc šodienas atradīs kļūdu koda ģenerācijā GCC 13.5, jauna komita 13. zarā vairs neparādīsies. Labojums būs vai nu jāraksta pašam, vai jāgaida no distributīva uzturētāja, kas GCC 13 vēl pako.
Kompilatora kļūdas koda ģenerācijā nav biežas, toties tās ir nepatīkamas. Binārais fails uzbūvējas bez brīdinājuma un uzvedas nepareizi tikai konkrētā optimizācijas līmenī vai konkrētā arhitektūrā. Tieši tādas kļūdas visbiežāk nonāk punktu laidienos. Skaitlis 265 pusotrā gadā ir normāls nobriedušam kompilatora zaram, kurā jaunu iespēju vairs nepievieno.
Kompilators atšķiras no bibliotēkas ar to, ka tā kļūda neparādās izpildlaikā kā avārija. Tā parādās kā nepareizi uzbūvēta programma, kuru neviens testu komplekts pat nemeklē. Tāpēc lielie projekti, kas piegādā binārus, kompilatora versiju piespiež konkrētu un maina reti.
Ubuntu 24.04 LTS ar GCC 13 dzīvos vēl gadus
Noklusējuma C kompilators Ubuntu 24.04 LTS izlaidumā ir gcc-13. Standarta atbalsts šim izlaidumam beidzas 2029. gada aprīlī. Canonical pakotni turēs vēl gandrīz trīs gadus pēc tam, kad upstream zars ir aizvērts. Visi labojumi šajā laikā būs Ubuntu uzturētāju pašu ielāpi vai atlases no jaunākiem GCC zariem.
Red Hat pusē ir atsevišķa pakotne gcc-toolset-13, ko var uzlikt blakus sistēmas kompilatoram RHEL 8 un RHEL 9 sistēmās. Red Hat gcc-toolset laidieniem dod divu gadu atbalsta logu, tāpēc GCC Toolset 13 tur jau ir aiz muguras. Sistēmas kompilators RHEL 9 joprojām ir GCC 11.
Izstrādātājiem, kas piegādā binārus šīm platformām, secinājums ir vienkāršs. GCC 13 paliek ražošanā vēl ilgi. Kļūdas tajā tagad ir katras distribūcijas pašas problēma.
Pāreja uz GCC 14 un jaunāku nav bezmaksas
GCC 16.1 iznāca 30. aprīlī, 16.2 šā gada 7. augustā. GCC 17 gaidāms nākamgad pavasarī. Lēciens no 13 uz jebko jaunāku vecākiem C projektiem ir sāpīgs, jo GCC 14 vairākus brīdinājumus pārvērta par kļūdām pēc noklusējuma: implicit-function-declaration, implicit-int, int-conversion, incompatible-pointer-types un return-mismatch. Kods, kas ar GCC 13 būvējās ar garu brīdinājumu sarakstu, ar GCC 14 vienkārši neuzbūvēsies. GCC šīs izmaiņas uzskaita pārejas lapā.
Ātrākais veids, kā pārbaudīt savu projektu, ir uzlikt gcc-14 vai gcc-15 blakus esošajam kompilatoram un palaist būvējumu ar CC=gcc-14. Ja konfigurācijas skripts ir vecs autoconf, visdrīzāk kritīs tieši tas. Pats projekta kods var būt pilnīgā kārtībā. GCC pārejas lapa šo gadījumu min atsevišķi: vecie autoconf testi bieži pārbauda funkcijas esamību bez deklarācijas.
Kas notiek ar vecajiem zariem tālāk
GCC zaru dzīves cikls ir paredzams. Katru gadu pavasarī iznāk jauna galvenā versija. Vecākajiem zariem punktu laidieni kļūst retāki. Aptuveni pēc trim gadiem zars tiek slēgts. GCC 12 zars beidzās 2025. gada 11. jūlijā ar versiju 12.5, tagad kārta pienākusi 13. zaram. Uzturēšanā paliek 14., 15. un 16. sērija, pēdējie laidieni tajās ir 14.4 no 26. jūnija, 15.3 no 12. jūnija un 16.2 no 7. augusta.
Distributīvi ar garu atbalsta ciklu upstream kompilatoru tādējādi pārdzīvo par vairākiem gadiem. Kompilatora uzturēšanas slogs šajā periodā pāriet uz pakotņu uzturētājiem. Tieši tāpēc Canonical, Red Hat un SUSE tur savas GCC komandas, kas strādā gan upstream, gan ar saviem iesaldētajiem zariem.
GCC 13 sērijas lapā tagad ir uzskaitīti pieci laidieni: 13.1, 13.2, 13.3, 13.4 un 13.5. Sestā nebūs.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.