Etikettarkiv: STA

LLVM 3.0 släppt

Version 3.0 av kompilatorsystemet LLVM släpptes den första december.

LLVM-loggan.

LLVM är ett öppen kod-projekt (med BSD-liknande licens) som sponsras av bland annat Apple, och är även den kompilator som finns i Apples utvecklingsmiljö Xcode – både för iOS och Mac OS X. Dock är LLVM inte specifikt för Mac, utan finns till många olika OS, bland annat som del av FreeBSD sedan ett drygt år tillbaka. Här är och en lista på produkter, system och projekt där LLVM används.

Det jag gillar med LLVM och inte minst dess C-kompilator clang är att dess förmåga att detektera fel och generera bra felmeddelanden. Speciellt i jämförelse med gcc är clang mycket mer hjälpsam. I mina tester genererar clang+LLVM mer kompakt kod än gcc, och oftast även snabbare program. Dessutom kompilerar oftast clang+LLVM snabbare än gcc.

LLVM inkluderar inte bara clang, utan flera andra bra verktyg. Debuggern LLDB är fortfarande ett relativt ungt verktyg, men är redan riktigt bra. Inte minst att LLDB går att integrera med Python öppnar upp för automatiserad debugging och analys. Ett annat verktyg i familjen jag tidigare skrivit om är den statiska kodanalysator som finns till clang.

Clang STA-rapport.
Exempel på rapport från Clangs STA-verktyg.

Det pågår även ett aktivt arbete med att utveckla nya funktioner runt LLVM. Projektet SAFECode är ett exempel. SAFECode försöker att genom en kombination av statiska och dynamiska kontrollmekanismer generera säker kod med minimala kostnader i form av kodstorlek och prestanda.

LLVM+clang är stabila verktyg som integrerar väl med befintliga kompileringsmijöer, speciellt GCC. Om du använder GCC men inte redan testat LLVM+clang tycker jag att det är dags att göra det.