Abo
  • Services:

Warp: Facebook veröffentlicht C/C++-Präprozessor

Mit Warp ersetzt Facebook den C-Präprozessor der GNU Compiler Collection und erreicht damit deutlich schnellere Builds. Der Erfinder der Programmiersprache D und Compiler-Experte Walter Bright hat Warp für Facebook in D geschrieben.

Artikel veröffentlicht am ,
Ein C/C++-Präprozessor in D: Warp von Facebook
Ein C/C++-Präprozessor in D: Warp von Facebook (Bild: Facebook, Screenshot: Golem.de)

Es werde häufig angenommen, dass die Zeit, die der Präprozessor zum Verarbeiten des Codes benötigt, im Vergleich zur gesamten Kompilierzeit eher vernachlässigbar ist, schreiben die Facebook-Entwickler in ihrem Blog. Das stimme aber nicht immer, denn durch das Ersetzen des C-Präprozessors aus der GNU Compiler Collection durch den eigens geschriebenen Warp, habe sich die Build-Zeit um 10 bis 40 Prozent verringert.

Stellenmarkt
  1. Hanseatisches Personalkontor, Hamburg
  2. UNIQ GmbH, Holzwickede

Diese Geschwindigkeitssteigerungen erreicht Warp unter anderem dadurch, dass der Präprozessor "einmal geöffnete und geladene Dateien zwischenspeichert", um diese später eventuell wieder zu verwenden. Darüber hinaus werde Warp nur einmal gestartet und arbeite dann sämtliche Dateien ab, statt den Präprozessor für jede einzelne Datei neu aufzurufen.

Warp wurde von D-Erfinder und Compiler-Entwickler Walter Bright in D geschrieben. So nutzt das Werkzeug auch einige Besonderheiten der Sprache aus, was ebenfalls zu der Beschleunigung beitragen soll. Dazu zählen allen voran die sogenannten Ranges und Algorithmen. Diese vereinfachten die Arbeit mit Unit-Tests und die Beurteilung der Leistung bestimmter Code-Bestandteile, um notfalls nachzubessern.

Außerdem nutzt Warp viele moderne Compiler-Optimierungen wie Inline-Ersetzungen, das Speichern von Structs in Registern, auch wenn diese größer als ein einzelnes Register sind, sowie das Über- und Zurückgeben von POD-Structs in Registern.

Weitere Einzelheiten zu Warp finden sich in der Ankündigung von Facebook. Der Code des unter der BSD-ähnlichen Boost Software License veröffentlichten Präprozessors Warp steht über Github zum Download bereit. Bis jetzt ist das Bauen von Warp nur unter CentOS getestet worden, die Unterstützung für weitere Betriebssysteme soll aber folgen.



Anzeige
Top-Angebote
  1. (heute u. a. Asus ROG Maximus X Code Mainboard 319€, Xiaomi Pocophone F1 64GB Handy 319€)
  2. 89,90€ statt 122,90€
  3. 0,00€

Folgen Sie uns
       


Fazit zu Spider-Man (PS4)

Spider-Man ist trotz ein paar kleiner Schwächen ein gelungenes Spiel, dem wir mit viel Freude ins Netz gehen.

Fazit zu Spider-Man (PS4) Video aufrufen
iOS 12 im Test: Auch Apple will es Nutzern leichter machen
iOS 12 im Test
Auch Apple will es Nutzern leichter machen

Apple setzt mit iOS 12 weniger auf aufsehenerregende Funktionen als auf viele kleine Verbesserungen für den Alltag. Das erinnert an Google und Android 9, was nicht zwingend schlecht ist.
Ein Test von Tobias Költzsch

  1. Apple iOS 12.1 verrät neues iPad Pro
  2. Apple Siri-Kurzbefehle-App für iOS 12 verfügbar

Retrogaming: Maximal unnötige Minis
Retrogaming
Maximal unnötige Minis

Nanu, die haben wir doch schon mal weggeschmissen - und jetzt sollen wir 100 Euro dafür ausgeben? Mit Minikonsolen fahren Anbieter wie Sony und Nintendo vermutlich hohe Gewinne ein, dabei gäbe es eine für alle bessere Alternative: Software statt Hardware.
Ein IMHO von Peter Steinlechner

  1. Streaming Heilloses Durcheinander bei Netflix und Amazon Prime
  2. Sicherheit Ein Lob für Twitter und Github
  3. Linux Mit Ignoranz gegen die GPL

Elektroroller-Verleih Coup: Zum Laden in den Keller gehen
Elektroroller-Verleih Coup
Zum Laden in den Keller gehen

Wie hält man eine Flotte mit 1.000 elektrischen Rollern am Laufen? Die Bosch-Tochter Coup hat in Berlin einen Blick hinter die Kulissen der Sharing-Wirtschaft gewährt.
Ein Bericht von Friedhelm Greis

  1. Neue Technik Bosch verkündet Durchbruch für saubereren Diesel
  2. Halbleiterwerk Bosch beginnt Bau neuer 300-mm-Fab in Dresden
  3. Zu hohe Investionen Bosch baut keine eigenen Batteriezellen

    •  /