Login
Newsletter
Werbung

Fr, 14. Mai 2010, 12:00

Software::Entwicklung

LLVM entwickelt eigene libc++-Bibliothek

Das Team um die Low Level Virtual Machine (LLVM) entwickelt einer Ankündigung nach eine neue C++ Standard Library für den C++0x-Standard.

LLVM (Low Level Virtual Machine) definiert einen virtuellen Befehlssatz, der an RISC-Maschinen angelehnt ist, aber reichhaltige Typ- und Datenfluss-Informationen zur Verfügung stellt. Das federführende Team an der University of Illinois in Urbana-Champaign bezeichnet die Entwicklung selbst als eine Compilier-Strategie für effektive Optimierung, einen virtuellen Befehlssatz und eine Compiler-Infrastruktur. Es wird zur Zeit für Forschungen im Bereich von Compilern, Architekturen, Sicherheit und Betriebssysteme verwendet.

Mit einer neuen C++-Standard-Bibliothek unter dem Namen libc++ wollen die Forscher nun eine eigenständige Bibliothek schaffen, die sich komplett an die Standards hält, wenig Speicher verbraucht, sich schnell kompilieren lässt und darüber hinaus eine vollständige ABI-Kompatibilität mit libstdc++ von GCC aufweist. Ein weiteres Ziel der neuen Bibliothek stellt eine hohe Geschwindigkeit dar. So sollen die Funktionen der Neuentwicklung erheblich schneller laufen als bei anderen vergleichbaren Projekten.

Als Grund für die Neuentwicklung nennt das Team drei Punkte. Zum einen benötige das Team eine Sicherheit was das ABI (Application Binary Interface) anbetrifft. In der Vergangenheit war es notwendig, die Schnittstelle zu ändern, um die Geschwindigkeitsziele der libc++ zu erreichen. Darüber hinaus sei es dem Team durch den Wechsel der GNU libstdc++ von ehemals GPLv2 auf die neue Version GPLv3 nicht mehr möglich, die neue Version zu nutzen. Damit müssen die Forscher weiterhin die Version 4.2 der Bibliothek einsetzen. Wollten sie die libstdc++ auch um eine Unterstützung des C++0x-Standards erweitern, müssen sie einen Fork der Bibliothek erstellen. So kommt es auch nicht in Frage, den bereits bestehenden STLport und die Apache libstdcxx zu nutzen. Beide Bibliotheken unterstützen noch nicht C++0x.

Die neue Bibliothek ist laut Aussagen der Entwickler zu 85 Prozent implementiert und getestet. Während der C++98-Standard bereits vollständig implementiert sei, fehlt es dem C++0x lediglich noch an den »future«-, »regex«- und Teilen der »random«-Klassen. Eine Auflistung (PDF) gibt genaue Angaben über die noch nicht unterstützten Funktionen.

Libc++ steht unter den Bedingungen einer »BSD-style«-Lizenz und kann ab sofort direkt vom svn des Projektes heruntergeladen werden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung