インタラクティブなコンパイラ探索 Web サイトです。 C、C++、C#、F#、Rust、Go、D、Haskell、Swift、Pascal、ispc、Python、Java、またはその他の 30 以上のサポートされている言語コンポーネントでコードを編集し、そのコードがコンパイル後にどのように表示されるかを確認します。リアルタイム。
バグレポート · コンパイラリクエスト · 機能リクエスト · 言語リクエスト · ライブラリリクエスト · 脆弱性レポート
言語ごとに複数のコンパイラがサポートされており、さまざまなツールや視覚エフェクトが利用可能で、UI レイアウトは (GoldenLayout のおかげで) 構成可能です。
godbolt.org で試すか、独自のローカル インスタンスを実行してください。このサイトで達成できること、その有用性、およびその使用方法の概要は、ここで参照できます。
Compiler Explorer は、オープンで歓迎的な環境を促進することを目的とした行動規範に従っています。
Compiler Explorer は、C++ 構造がどのようにアセンブリ コードに変換されるかを示すために 2012 年に開始されました。これはtmux
セッションとして開始され、一方のペインではvi
が実行され、もう一方のペインではwatch gcc -S foo.cc -o -
。
それ以来、このウェブサイトは毎週 300 万以上のコンピレーションを提供する公開 Web サイトになりました。
Patreon、GitHub、Paypal で、または Compiler Explorer ストアでクールなギアを購入することで、このプロジェクトを財政的にサポートできます。
リポジトリ Wiki に FAQ セクションが追加されました。ご質問が存在しない場合は、下記のとおりお問い合わせください。お手伝いさせていただきます。 FAQ に重要な点が欠けていることに気付いた場合は、お気軽に投稿していただくか、それを明確にするよう当社に依頼してください。
いくつかのビデオでは、Compiler Explorer のいくつかの機能を紹介しています。
Compiler Explorerの将来の計画について少し洞察を与えるロードマップが利用可能です。
Compiler Explorer は、Node.js 上の TypeScript で書かれています。
互換性のあるバージョンのnode
がインストールされていると仮定すると、Linux ではmake
実行するだけで、ローカル マシン http://localhost:10240/ のポート 10240 でエクスプローラーが起動し、実行できるはずです。これがうまくいかない場合は、すぐに簡単に実行できることが重要であると考えているため、弊社までご連絡ください。現在、 Compiler Explorer では、パスまたはNODE_DIR
(環境変数またはmake
パラメータ) にnode
20 がインストールされている必要があります。
make EXTRA_ARGS='--language LANG'
を指定して実行すると、 LANG
排他的にロードできるようになります。ここで、 LANG
lib/languages.ts
で定義された言語 ID/エイリアスの 1 つです。たとえば、C++ サポートを備えたコンパイラ エクスプローラーのみを実行するには、 make EXTRA_ARGS='--language c++'
を実行します。複数の--language
引数を指定して、複数の言語に制限できます。 Makefile
、実行に必要なすべてのサードパーティ ライブラリを自動的にインストールします。 npm
使用してサーバー側とクライアント側のコンポーネントをインストールします。
開発の場合は、 make dev
使用して、ファイル変更時の自動リロードや起動時間の短縮など、いくつかの便利な機能を有効にすることをお勧めします。
マシン上でmake dev
機能しない場合は、 npm run dev
使用して実行することもできます。
一部の言語では、 rust
、 d
、またはhaskell
など、言語を解読するための追加のツールが必要です。このようなツールは、ツール リポジトリに個別に保管されます。
コンパイラー エクスプローラーの構成は、 etc/config
ディレクトリ内の構成ファイルを介して実行されます。値はkey=value
です。 {type}.local.properties
ファイル内のオプション (ここで、 {type}
はc++
など) は{type}.defaults.properties
ファイル内のすべてをオーバーライドします。 *.local.*
ファイルを無視する.gitignore
ファイルがあるため、これらのファイルは git にチェックインされず、 git pull
時に更新されたバージョンと競合することはありません。詳細については、「コンパイラの追加」を参照してください。
Compiler Explorerに貢献する方法の詳細については CONTRIBUTING.md を確認し、サイトに新しいコンパイラや言語を追加する方法など、実行したいさまざまな作業に関する具体的な詳細については docs フォルダを確認してください。
独自の GCC または同様のバイナリを参照したい場合は、 etc/config/LANG.defaults.properties
を編集するか、必要に応じてLANG
置き換えてLANG.local.properties
という名前で新しいプロパティを作成します。 *.local.properties
ファイルは、プロパティをロードするときに最も高い優先順位を持ちます。
複数のコンパイラや、Godbolt.org などの言語をサポートする場合は、infra プロジェクトでbin/ce_install install compilers
コマンドを使用して、すべてまたは一部のコンパイラをインストールできます。この方法でインストールされたコンパイラーはetc/config/*.amazon.properties
の設定を通じてロードできます。完全なオフライン環境に展開する必要がある場合は、 www.godbolt.ms@443
から取得した構成の一部を削除する必要がある場合があります。
企業設定で実行している場合、デフォルトのストレージ ドライバーが環境に適さない場合は、URL 短縮サービスを内部サービスに置き換えることができます。これを行うには、 lib/shortener/myservice.js
に新しいモジュールを追加し、構成でurlShortenService
変数を設定します。このモジュールは単一の関数をエクスポートする必要があります。例については tinyurl モジュールを参照してください。
asm へのコンパイルやコンパイラーのリストを実行するために使用できる、単純な RESTful API があります。
API ドキュメントはここで見つけることができます。
私たちは Compiler Explorer Discord を運営しています。これは、Compiler Explorer の使用または開発について話し合う場所です。また、cpplang Slack チャネル#compiler_explorer
にも参加しており、公開メーリング リストもあります。
Discord には開発チャンネルがあり、開発メーリング リストもあります。
github で問題を提起するか、Matt に直接メールしてサポートを求めてください。
Compiler Explorer の公式ドメインは次のとおりです。
ドメインでは、https://foo.godbolt.org/ などの任意のサブドメインを許可します。これは、各サブドメインが独立したローカル状態を持つため便利です。また、https://rust.compiler-explorer.com/ などの言語サブドメインは、すでに選択されている言語でロードされます。
Compiler Explorer は、 AUTHORS ファイルにリストされている優秀な人々によって保守されています。
CONTRIBUTORS ファイルにリストされている、 Compiler Explorer の作成に協力してくださった寄稿者に感謝いたします。
また、 Compiler Explorerへの貢献に特に感謝したいと思います。
個人と企業の両方の多くの素晴らしいスポンサーが、Compiler Explorer への資金提供と宣伝を支援してきました。