Zkuste opravit alespon ty nejkriklavejsi veci jako „skompilovat“, „vyvyji“ atd…
Názory k článku
Clang/LLVM: potenciální konkurent překladače gcc
Re: Ach ta cestina...
celé vláknoAsi bych uprednostnil „zkompilovat“, ale „skompilovat“ taky neni uplne spatne, slova jako „sbalit“, „srovnat“ znamenaji v podstate totez a predpona „s“ zde ma stejnou logiku. No a pri vyvoji pro Linux vyju docela casto… Takze na Clang/LLVM se docela tesim, treba budu konecne mene vyvyjet a vice vyvijet:-)
Re: Ach ta cestina...
celé vláknoTak tak, nadeje na lepsi zitrky :-)
Re: Ach ta cestina...
celé vláknoNe tak úplně. Kompilace je především změna stavu, proto „z-“. „Sbalit“ a „srovnat“ označují činnosti, kde se něco skládá fyzicky k sobě/dohromady, aniž by se to nějak měnilo.
Nicméně v jazyce neplatí vždycky tak úplně jasná logická pravidla. A v situacích, kdy je možná dvojí interpretace prostě rozhoduje to, co je zavedené. „Skompilovat“ jsem zatím neviděl a ta interpretace mi navozuje celkem jednoznačně představu někoho, kdo pomocí pěstí či jiných hrubých metod provádí něco nepěkného někomu (něčemu) jinému. :-)
Re: Ach ta cestina...
celé vláknoNicméně v jazyce neplatí vždycky tak úplně jasná logická pravidla – notoricky známé: moucha, šestý pád o mouchě.
Re: Clang/LLVM: potenciální konkurent překladače gcc
celé vláknoJak je na tom Clang s dodrzovanim agresivnejsich pozadavku na kod?
– textove konstanty jsou const char*
- strict aliasing
- etc…
Re: Clang/LLVM: potenciální konkurent překladače gcc
celé vláknoclang je obecne striktnejsi nez gcc (mimojine i diky tomu defaultnimu C99)
Kvalita výsledného kódu
celé vláknoClang, přesněji řečeno llvm, generuje kód srovnatelný s tím, jaký produkuje gcc 4.2 (dosavadní systémový překladač na FreeBSD, ale jinak považovaný za zastaralý). S gcc 4.4 se nedá srovnávat ani zdaleka, a to nemluvně o tom, že gcc teprve začíná využívat možností nového frameworku Graphite. Díky tomu se gcc začíná blížit úrovni srovnatelné s intelovským kompilátorem icc, u clangu ne něco takového hudbou vzdálené budoucnosti. Clang je skvělý nástroj je spoustou výhod, ale kvalita generovaného kódu k ním zatím rozhodně nepatří.
Re: Kvalita výsledného kódu
celé vláknoJe otazka rychlosti a udrzitelnotsi vyvoje. LLVM ma dobrou architekturu, kod a postupuje velmi rychle.
GCC vnitrnosti jsou mirne receno *!@%@#$.
Re: Kvalita výsledného kódu
celé vláknoTy mas hodne divoke predstavy, prej blizi se kvalitou kodu icc. Pokud to myslis tak, ze se blizi asymptoticky s casovou konstantou tak 100 let tak mozna :) Zatim je stale pro C a C++ nejlepsi icc pak visual c pak dlouho, predlouho nic, jeste jedno nic a teprve pak gcc a clang kteri si navzajem slapou na paty podle pouziteho testu.
Re: Kvalita výsledného kódu
celé vlákno[citation needed]
Re: Kvalita výsledného kódu
celé vláknoNebolo tazke najst benchmark, ktory vyvracia toto tvrdenie a to som si ho ani nemusel falsovat sam :)
http://eigen.tuxfamily.org/index.php?…
Re: Kvalita výsledného kódu
celé vláknoZajimave.
Parfait closed source?
celé vláknoJe mozne ten parfait niekde zohnat? Na stranke sun-u nie je nic len prezentacie, rad by som ten parfait vyskusal. Vie niekto kde sa k tomu da dostat?
Re: Parfait closed source?
celé vláknoAFAIK není ani proprietární, ani OSS. Prostě není. Ale IIRC na lkml někdo říkal, že ho nejspíš časem uvolní jako OSS. Pravidelně kvůli tomu kontroluji stránky parfait, jestli k tomu už nedošlo.
licencia
celé vláknoPekný PR článok.
Oplatilo by sa ešte dodať, že oba produkty (clang+llvm a gcc) sú distribuované pod odlišnými licenciami.
Väčšine ľudí to je asi ukradnuté (je im jedno akú to má licenciu, hlavne že si svoj program vedia skompilovať).
Potom sú tu menšiny, ktoré majú nezmieriteľne opačné názory (určite chceme BSD vs. určite chceme GNU GPL).
unlikely(), bariery, atd.
celé vláknoMuze programator rict LLVM bytekodu (a tedy i programu v nejakem jazyce nad nim) veci typu „tahle podminka je skoro vzdycky nepravdiva“?
p = malloc(…);
if (unlikely(!p))
fatal(„…“);
Jak se v LLVM udela instrukce pametove bariery (nutna napriklad pro user-space RCU)?
Jak se v LLVM rekne „pokud nekdo zavola tuhle funkci ve void kontextu, ma dostat warning“, umi podminenou kompilaci podle konstantnosti argumentu? Treba gcc dela veci typu memcpy() jinak, pokud je velikost argumentu znama. Jde tam rict „tenhle argument funkce je printf-like formatovaci string, davej warning pokud nasledujici parametry maji odlisne typy nez se pise ve stringu“?
-Yenya
Re: unlikely(), bariery, atd.
celé vlákno1) clang ma __builtin_expect
2) http://llvm.org/…LangRef.html#…
3) nerozumim otazce, co je void kontext?
4) llvm ma ruzne optimalizace, zrovna memcpy tam takhle optimalizovane myslim
neni
5) checkovani parametru C funkci je zalezitost C frontendu… clang parametry printfu checkuje
python
celé vlákno„LLVM používá jako svůj optimalizační backend v podstatě každý „open source jazyk“, který existuje“ – to je veľmi nepresne povedané a veľmi zavádzajúce, taký python llvm nepoužíva ani náhodou. Existuje alternatívna implementácia pythonu, ktorá sa snaží použiť llvm (unladen swallow), ale od kvality mainstreamovej má ďaleko.
Re: python
celé vláknoTo je pravda, ale zrovna u Pythonu se vyvojari tak nejak dohodli, ze pokud bude mit unladen swallow lepsi vysledky nez CPython, tak se bude jeho kod dostavat do CPythonu.
Sotek...
celé vláknoZatím je tato snaha omezena na architektury i386 and
amd64.

