Három héten belül érkezhet a GCC 4.7.0

Címkék

Richard Guenther, a SUSE vezető toolchain mérnöke tegnapelőtt bejelentette a GNU Compiler Collection (GCC) 4.7.0 első kiadásra jelölt változatát. Richard azt tervezi, hogy - ha minden jól megy - három héten belül kiadja a végleges 4.7.0-t. A 4.7-es sorozatról részletesen itt. A bejelentés itt olvasható.

(Egyéb hír, hogy március 1-én megjelent a GCC 4.6.3-as kiadása is.)

Hozzászólások

pont a clanges hír kapcsán írtátok, hogy a gcc összességében nem mindenben felel meg az egyszeri user igényeinek. vajon lesz javulás? mik a trendek? nekem sosem volt gondom vele, a heló world-szintű programjaim mindig tökéletesen fordulnak.

Összességében a gcc-vel együtt lehet élni, mindent lefordít amit kell neki (bugok minden fordítóban vannak), eddig is, és ezután is használható eszköz volt, marad.

Ez persze nem jelenti azt, hogy ne létezhetne jobb, a clang egy modern fejlesztés, az LLVM-mel együtt egy modern kódbázisra épülő modern fordító.
Ez felhasználói szempontból azért érdekes, mert dinamikusan fejlődik, relatíve gyors, és mára a generált kód minőségében is többé kevésbé utolérte a gcc-t. (Legalábbis x86/x86-64-en.)
Egyéb előnyként az érthetőbb hibaüzeneteket szokták még felsorolni.

De azért azt is észre kell venni, hogy mint szinte minden új dolog körül, a clang körül is jókora hype van, valószínűleg az sem mellékes, hogy az Apple is pénzeli/részt vesz a fejlesztésben.

Egy biztos, a gcc még jó ideig velünk lesz...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Én örülök, hogy egy kicsit felkavarta a clang az állóvizet, úgy látszik a gcc fejlesztői eléggé felkötötték a gatyát (ahogy elnézem, 4.8-ra már teljes C++11-támogatás lesz).

A clang hibaüzenetei tényleg érthetőbbek, de a gcc hibáit is lehet érteni, csak rutin kell hozzá. Ami szerintem fontosabb a clang esetében, hogy integrációra fejlesztik (code completion, statikus analízis stb). Míg a gcc esetében éppen azon erőlködnek, hogy ne lehessen máshová integrálni (talán RMS nyilatkozta, hogy a GPL-t megalkotásakor ez volt az egyik cél). Egy év múlva szerintem izgalmasabb lesz a harctér, addigra valószínűleg mindkét fordító szállítja a teljes C++11-et, és akkor már nagyobb hangsúly kerül arra, hogy ki, milyen kódot fordít.

"Míg a gcc esetében éppen azon erőlködnek, hogy ne lehessen máshová integrálni (talán RMS nyilatkozta, hogy a GPL-t megalkotásakor ez volt az egyik cél)."

A gcc megalkotásakor volt olyan cél, hogy ne legyen annyira moduláris, hogy könnyen felhasználhassák a frontendet vagy a backendet a cégek anélkül, hogy a kód visszakerülne a gcc-be.
Több gcc fejlesztő meg van róla győződve, hogy ez az egy az oka annak, hogy anno az Objective-C Apple támogatással elkészült.

Nyilván itt RMS paranoiája erősen megjelent, bár azért 10 éve még nem volt egyértelmű, hogy pl a GPL sértéseket érdemben meg lehet támadni, szóval szerintem a félelem nem volt alaptalan.

Nekem úgy tűnik, hogy a dolog lassan változik, jó példa erre a pluginek megjelenése (lásd dragonegg).

De a clang előadásokon gyakran hangsúlyozzák, hogy a gcc frontendje IDE-be való integrálásra több szempontból is alkalmatlan függetlenül az integrálhatóságtól.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

De azért azt is észre kell venni, hogy mint szinte minden új dolog körül, a clang körül is jókora hype van, valószínűleg az sem mellékes, hogy az Apple is pénzeli/részt vesz a fejlesztésben.

Hala isten. Az XCode 4.2 az osszes hibaja es bughalom lete ellenere nagyon jol megmutatta, h hogyan erdemes integralni egy compilert ahhoz, h egy valoban hasznalhato toolt adjon a fejleszto kezebe es ne csak az a bohockodas jellemezze, mint a gcc-vel valo fejlesztest.

Egyéb előnyként az érthetőbb hibaüzeneteket szokták még felsorolni.

Ez valoban eg es fold, egy egyszeru es gyors pelda:


int bigyo = 0

if (nagyon_megfeltetelezem) {
 bigyo = 42;
}

gcc kozli veled, h az if elott hianyzik, clang meg szo szerint szajon vag, h lehagytad a nulla mogul a pontosvesszot. XCode4 ezt meg tovabb viszi, clangnak koszonhetoen mar a gepeles pillanataban elteveszthetetlenul kozli veled ezeket a szintaktikai, de sokszor szemantikai problemakat is. Ez kis dolognak tunhet, de ha azt nezem, h megsporol egy csomo tanakodassal eltoltott "mi a zanyad van mar megint" pillanatot, akkor mar megeri. Foleg egy hatulgombolosnak.

Ha ezt megfejeli az ember a CSA-val, akkor egy nagyon jo analizatort is kap az ember. Ebben a parosban az a jo, h nagyon konnyu jol integralni egy IDE-be (mondom ezt en, aki mindenfele IDE-t ruhell) es gyorsabban lehet kb. egy nagysagrenddel jobb minosegu kodot irni, mint a regi modszerekkel.

Ezek miatt megertem a hype-ot. Ket oka van annak, h bizonyos projectjeimben meg gcc-t hasznalok, az egyik, h szuksegem van arra a par szazaleknyi elonyre amit jelenleg meg a gcc-t sebessegben femjelzi, a masik h a clang/llvm a hirek szerint sosem fogja tamogatni a futasidoben eldontott, stacken elhelyezett buffereket. Ez utobbi pedig nagymeretu lokalis buffereknel iszonyat mod jol tud jonni ha az ember elsosorban sebessegre torekszik.

---
pontscho / fresh!mindworkz

Az oké, hogy a C-ből is lassan egy interpreteres script nyelvet akarnak csinálni, de ez a kódocska nálam code reviewn nagyon elcsúszna.

Mondjuk ez csak egy személyes vélemény. Mindenki olyan kódot gyárt, amiből meg tud élni.

Az új gcc-nek meg örülünk. ^^

--
GPLv3-as hozzászólás.