Original-URL des Artikels: https://www.golem.de/news/sccache-mozilla-baut-geteilten-compiler-cache-in-rust-1611-124651.html    Veröffentlicht: 23.11.2016 11:39    Kurz-URL: https://glm.io/124651

SCCACHE

Mozilla baut geteilten Compiler-Cache in Rust

Ein weiteres wichtiges Stück Infrastruktur bei Mozilla ist in die Sprache Rust portiert worden: der geteilte Compiler-Cache (Sccache). Builds verschiedener Systeme können damit ihre Ergebnisse teilen, was dank Rust jetzt schneller geht.

Mit dem Programm Ccache können Programmierer ihre Kompiliervorgänge beschleunigen, weil damit nicht jedes Mal der komplette Code neu übersetzt wird, unveränderte Teile werden einfach wieder aus dem Cache übernommen. Mozilla-Entwickler haben diese Idee um einen Shared Cache in Sccache erweitert, um den Cache auf verschiedene Systeme und Build-Server verteilen zu können. Sccache ist nun in Rust neu geschrieben worden.

Wie der zuständige Enwickler Ted Mielczarek in seinem Blog schreibt, sei die Umsetzung in Rust bereits von Anfang an geplant gewesen. Zum Beginn der Arbeiten an Sccache seien Rust und sein Ökosystem aber noch nicht reif genug für eine derartige Aufgabe gewesen. Deshalb sei Sccache zunächst in Python erstellt worden. Der Port habe sich wegen verschiedener anderer Aufgaben auf einen Zeitraum von über sieben Monaten erstreckt.

Schnellere Build-Zeiten dank Rust

Der Wechsel von Python auf Rust habe das System ersten Tests zufolge erheblich beschleunigt. Vor allem der Configure-Schritt sei sowohl unter Linux als auch unter MacOS deutlich schneller als bisher, aber auch die Zeit zum Kompilieren konnte damit reduziert werden. Unter Windows seien die Zahlen wegen einer zu großen Variabilität der Ergebnisse noch nicht vergleichbar.

Die in Rust erstellte Version 2 von Sccache kann wie sein bekannteres Pendant Ccache ein lokales Verzeichnis auf dem Rechner zum Vorhalten der Dateien nutzen. Für den eigentlichen Zweck, das Vorhalten eines geteilten Compiler-Caches, wird derzeit der Simple Storage Service (S3) von Amazons Cloud-Angebot genutzt. Als Compiler unterstützt das Programm zurzeit GCC, Clang und MSVC.

Das Werkzeug soll künftig so erweitert werden, dass es auch außerhalb von Mozilla einfach eingesetzt werden kann, da es Probleme löse, die sicher auch andere Unternehmen haben.  (sg)


Verwandte Artikel:
LLVM 6.0: Clang bekommt Maßnahme gegen Spectre-Angriff   
(09.03.2018, https://glm.io/133241 )
Facepunch Studios: Rust will nun ohne Early Access überleben   
(09.02.2018, https://glm.io/132687 )
Juli 2018: Chrome bestraft Webseiten ohne HTTPS   
(09.02.2018, https://glm.io/132689 )
Google: Chrome wird künftig mit Clang statt Visual C++ entwickelt   
(06.03.2018, https://glm.io/133171 )
Arduino: IDE 1.9 implementiert heiß ersehnte Funktion   
(14.10.2017, https://glm.io/130613 )

© 1997–2020 Golem.de, https://www.golem.de/