- A hozzászóláshoz be kell jelentkezni
- 2484 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
"a heló world-szintű programjaim mindig tökéletesen fordulnak"
:-)))
Megette a fene ha még ezt se tudja lefordítani. Régen elfelejtették volna az egészet, a fejlesztők meg nem programot fejlesztenének hanem gázt. :-)
- A hozzászóláshoz be kell jelentkezni
Ö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
- A hozzászóláshoz be kell jelentkezni
Ez nem baj mert legalább jobban fejlődnek.
- A hozzászóláshoz be kell jelentkezni
É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.
- A hozzászóláshoz be kell jelentkezni
"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
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
a clang/llvm a hirek szerint sosem fogja tamogatni a futasidoben eldontott, stacken elhelyezett buffereket.
biztos, hogy nem? clang, version 3.0 lefordította szó nélkül:
void func(char *c)
{
char cc[strlen(c) + 1];
strcpy(cc, c);
printf("'%s'\n", cc);
}
- A hozzászóláshoz be kell jelentkezni
Ez spec jo hir, nekem multkor egy hasonlora beszolt, h nana es ne is probalkozzak vele soha tobbet.
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
dehat ez szabvanyos c99 ficsur :)
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
amire beszolt, az nem VLA volt szerintem, hanem egy struktura, aminek volt egy ilyen mezoje (linux is triggerel par ilyet). amugy meg a megoldast ugy hivjak, hogy alloca meg egy kis extra gepeles ;)
- A hozzászóláshoz be kell jelentkezni
Speciel az lehet, nem ma volt az a musor. Kosz. :)
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Mondjuk nem is arra lett írva, hogy bárki is code reviewolja, hanem hogy megnézzem, hogy a clang elfogadja e a runtime eldöntött méretű tömb deklarálását a stacken.
Na de milyen jó, hogy ez nálad nem menne át... s főleg hogy ezt tudjuk.
- A hozzászóláshoz be kell jelentkezni
Pedig bizonyos kis meretu tomboknel nem tartom rossz megoldasnak. Pl. ha max 10 elem lehet, akkor a malloc/calloc/free/stb. overhead-jet nem feltetlenul tartom jonak. Persze, olyat is lehetne hogy ettol meg fix meretu a tomb, de ha a fordito ilyet is tud, akkor miert ne?
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni