Posts mit dem Label LLVM werden angezeigt. Alle Posts anzeigen
Posts mit dem Label LLVM werden angezeigt. Alle Posts anzeigen

Dienstag, 16. Juni 2009

LLVM: Neue Compiler braucht das Land!

In letzter Zeit macht die Low Level Virtual Machine immer mehr von sich Reden. Blöderweise ist der Name doch ein wenig verwirrend und man denkt schnell an die Java VM oder dergleichen. In Wirklichkeit handelt es sich um ein Compilerframework (und eine eigene Sprache) welches einem sehr interessante Möglichkeiten eröffnet. Apple verwendet LLVM unter anderem um OpenCL zu realisieren.
Was mich besonders an LLVM interessiert sind vor allem die Möglichkeiten zur Analyse von Fehlern die es bietet. Hier mal gcc und clang (ein C/C++/ObjC Frontend für LLVM) im Vergleich.

$ gcc-4.2 -fsyntax-only t.c
t.c:7: error: invalid operands to binary + (have 'int' and 'struct A')
$ clang -fsyntax-only t.c
t.c:7:39: error: invalid operands to binary expression ('int' and 'struct A')
return y + func(y ? ((SomeA.X + 40) + SomeA) / 42 + SomeA.X : SomeA.X);
~~~~~~~~~~~~~~ ^ ~~~~~

Clang nagelt den Fehler auf Zeile UND Spalte fest, nebenher verbraucht er zum kompilieren auch noch weniger Speicher und ist auch noch schneller. Ziemlich beeindruckend.

LLVM wird sicherlich den Compilermarkt in der Opensource Welt nachhaltig verändern. So gibt es z.B. Ambitionen FreeBSD komplett mit Clang anstelle von GCC zu übersetzen.

Auch die Rubyfraktion will von LLVM profitieren und so experimentiert das MacRuby-Projekt ebenfalls mit LLVM um Ruby auf dem Mac zu beschleunigen.

Für alle die jetzt neugierig geworden sind gibt es hier einen interessanten Tech Talk zum Thema, genauso wie einen Podcast vom Chaosradio Express

Montag, 15. Juni 2009

Vortrag: LDC - ein D Frontend für LLVM

Im Moment bin ich extrem auf der Suche nach einer modernen Sprache mit der sich ein elegantes Framework für das Programmieren von Applikationen realisieren lässt (schon frustrierend wie wenig der Markt da wirklich bietet, vor allem wenn es darum geht auch auf exotischeren Plattformen zu laufen). D hat einige interessante Ansätze die die Probleme vieler Sprachen löst. Mit LDC stehen jetzt auch die Chancen gut diese Sprache auf weitaus mehr Plattformen zu bringen als bisher, darum habe ich hier mal einen kleinen Vortrag verlinkt der das Projekt erklärt. Leider ist die Tonqualität ziemlich schlecht aber man kann es gerade noch so aushalten.

LDC from Tom Stachowiak on Vimeo.