Ist eine interaktive Website zur Compiler-Erkundung. Bearbeiten Sie Code in C, C++, C#, F#, Rust, Go, D, Haskell, Swift, Pascal, ispc, Python, Java oder einer der anderen über 30 unterstützten Sprachkomponenten und sehen Sie, wie dieser Code nach der Kompilierung aussieht Echtzeit.
Fehlerbericht · Compiler-Anfrage · Funktionsanfrage · Sprachanfrage · Bibliotheksanfrage · Sicherheitslücke melden
Für jede Sprache werden mehrere Compiler unterstützt, es stehen viele verschiedene Tools und Visualisierungen zur Verfügung und das UI-Layout ist konfigurierbar (dank GoldenLayout).
Probieren Sie es auf godbolt.org aus oder führen Sie Ihre eigene lokale Instanz aus. Eine Übersicht darüber, was Sie mit der Website erreichen können, warum sie nützlich ist und wie Sie sie verwenden, finden Sie hier.
Compiler Explorer folgt einem Verhaltenskodex, der darauf abzielt, eine offene und einladende Umgebung zu fördern.
Der Compiler Explorer wurde 2012 gestartet, um zu zeigen, wie C++-Konstrukte in Assemblercode übersetzt werden. Es begann als tmux
-Sitzung mit vi
in einem Bereich und watch gcc -S foo.cc -o -
in dem anderen Bereich.
Seitdem hat es sich zu einer öffentlichen Website entwickelt, auf der wöchentlich über 3.000.000 Zusammenstellungen bereitgestellt werden.
Sie können dieses Projekt finanziell auf Patreon, GitHub, Paypal oder durch den Kauf cooler Ausrüstung im Compiler Explorer Store unterstützen.
Es gibt jetzt einen FAQ-Bereich im Repository-Wiki. Sollte Ihre Frage nicht dabei sein, kontaktieren Sie uns bitte wie unten beschrieben, damit wir Ihnen weiterhelfen können. Wenn Sie feststellen, dass in den FAQ ein wichtiger Punkt fehlt, können Sie gerne dazu beitragen und/oder uns bitten, dies zu klären.
In mehreren Videos werden einige Funktionen des Compiler Explorers vorgestellt:
Es ist eine Roadmap verfügbar, die einen kleinen Einblick in die zukünftigen Pläne für den Compiler Explorer gibt.
Der Compiler Explorer ist in TypeScript auf Node.js geschrieben.
Vorausgesetzt, Sie haben eine kompatible Version von node
installiert, sollten Sie unter Linux durch einfaches Ausführen make
einen Explorer starten, der auf Port 10240 auf Ihrem lokalen Computer ausgeführt wird: http://localhost:10240/. Wenn dies bei Ihnen nicht funktioniert, kontaktieren Sie uns bitte, da wir es für wichtig halten, dass Sie schnell und einfach loslegen können. Derzeit erfordert der Compiler Explorer die Installation node
20, entweder im Pfad oder unter NODE_DIR
(einer Umgebungsvariablen oder make
Parameter).
Wenn Sie make EXTRA_ARGS='--language LANG'
ausführen, können Sie ausschließlich LANG
laden, wobei LANG
eine für die in lib/languages.ts
definierten Sprach-IDs/Aliase ist. Um beispielsweise den Compiler Explorer nur mit C++-Unterstützung auszuführen, führen Sie make EXTRA_ARGS='--language c++'
aus. Sie können mehrere Argumente --language
angeben, um die Eingabe auf mehr als eine Sprache zu beschränken. Das Makefile
installiert automatisch alle zur Ausführung erforderlichen Bibliotheken von Drittanbietern. Verwenden von npm
zur Installation serverseitiger und clientseitiger Komponenten.
Für die Entwicklung empfehlen wir die Verwendung make dev
, um einige nützliche Funktionen zu aktivieren, wie z. B. das automatische Neuladen bei Dateiänderungen und kürzere Startzeiten.
Sie können auch npm run dev
zum Ausführen verwenden, wenn make dev
auf Ihrem Computer nicht funktioniert.
Einige Sprachen benötigen zusätzliche Tools, um sie zu entschlüsseln, z. B. rust
, d
oder haskell
. Solche Tools werden separat im Tools-Repository aufbewahrt.
Die Konfiguration des Compiler-Explorers erfolgt über Konfigurationsdateien im Verzeichnis etc/config
. Werte sind key=value
. Optionen in einer Datei {type}.local.properties
(wobei {type}
c++
oder ähnlich ist) überschreiben alles in der Datei {type}.defaults.properties
. Es gibt eine .gitignore
Datei zum Ignorieren von *.local.*
Dateien, sodass diese nicht in git eingecheckt werden und Sie sich nicht mit aktualisierten Versionen herumschlagen müssen, wenn Sie git pull
ausführen. Weitere Informationen finden Sie unter Hinzufügen eines Compilers.
In CONTRIBUTING.md finden Sie detaillierte Informationen darüber, wie Sie zum Compiler Explorer beitragen können. Im Ordner „docs“ finden Sie spezifische Details zu verschiedenen Dingen, die Sie möglicherweise tun möchten, z. B. wie Sie der Site neue Compiler oder Sprachen hinzufügen.
Wenn Sie es auf Ihr eigenes GCC oder ähnliche Binärdateien verweisen möchten, bearbeiten Sie entweder etc/config/LANG.defaults.properties
oder erstellen Sie ein neues mit dem Namen LANG.local.properties
und ersetzen Sie LANG
nach Bedarf. *.local.properties
Dateien haben beim Laden von Eigenschaften die höchste Priorität.
Wenn Sie mehrere Compiler und Sprachen wie godbolt.org unterstützen möchten, können Sie den Befehl bin/ce_install install compilers
im Infra-Projekt verwenden, um alle oder einige der Compiler zu installieren. Auf diese Weise installierte Compiler können über die Konfiguration in etc/config/*.amazon.properties
geladen werden. Wenn Sie die Bereitstellung in einer vollständig Offline-Umgebung durchführen müssen, müssen Sie möglicherweise einige Teile der Konfiguration entfernen, die von www.godbolt.ms@443
abgerufen werden.
Bei der Ausführung in einer Unternehmensumgebung kann der URL-Verkürzungsdienst durch einen internen ersetzt werden, wenn der Standardspeichertreiber für Ihre Umgebung nicht geeignet ist. Fügen Sie dazu ein neues Modul in lib/shortener/myservice.js
hinzu und legen Sie die Variable urlShortenService
in der Konfiguration fest. Dieses Modul sollte eine einzelne Funktion exportieren. Ein Beispiel finden Sie im Modul tinyurl.
Es gibt eine einfache Restful-API, die zum Kompilieren in ASM und zum Auflisten von Compilern verwendet werden kann.
Die API-Dokumentation finden Sie hier.
Wir betreiben einen Compiler-Explorer-Discord, der ein Ort ist, an dem über die Verwendung oder Entwicklung des Compiler-Explorers diskutiert werden kann. Wir sind auch auf dem cpplang-Slack-Kanal #compiler_explorer
vertreten und haben eine öffentliche Mailingliste.
Es gibt einen Entwicklungskanal auf Discord und auch eine Entwicklungs-Mailingliste.
Fühlen Sie sich frei, ein Problem auf Github anzusprechen oder Matt direkt eine E-Mail zu senden, um weitere Hilfe zu erhalten.
Im Folgenden sind die offiziellen Domänen für Compiler Explorer aufgeführt:
Die Domänen erlauben beliebige Subdomänen, z. B. https://foo.godbolt.org/, was praktisch ist, da jede Subdomain einen unabhängigen lokalen Status hat. Außerdem werden Sprach-Subdomains wie https://rust.compiler-explorer.com/ mit der bereits ausgewählten Sprache geladen.
Der Compiler Explorer wird von den großartigen Leuten gepflegt, die in der AUTHORS-Datei aufgeführt sind.
Wir möchten den in der Datei CONTRIBUTORS aufgeführten Mitwirkenden danken, die bei der Gestaltung des Compiler Explorer mitgewirkt haben.
Wir möchten uns auch besonders bei diesen Personen für ihre Beiträge zum Compiler Explorer bedanken:
Viele großartige Sponsoren, sowohl Einzelpersonen als auch Unternehmen, haben zur Finanzierung und Förderung des Compiler Explorer beigetragen.