Crystalプラットフォームサポート¶
Crystalコンパイラは、多くのプラットフォームで動作し、コンパイルできますが、すべてのプラットフォームが均等にサポートされているわけではありません。Crystalのサポートレベルは、それぞれ異なる保証を持つ3つのティアに分類されます。
プラットフォームは、「ターゲットトリプル」と呼ばれる文字列で識別されます。この文字列は、コンパイラにどのような種類の出力を作成するべきかを指示します。下の列は、対応するコンポーネントが指定されたプラットフォームで動作するかどうかを示しています。
ティア1¶
ティア1プラットフォームは、「動作が保証されている」と考えることができます。具体的には、次の要件をすべて満たします。
- 公式バイナリリリースがプラットフォーム用に提供されます。
- 自動テストが設定され、プラットフォームのテストが実行されます。
- プラットフォームの使用およびビルド方法に関するドキュメントが提供されています。
保守されているオペレーティングシステムのバージョンのみが完全にサポートされます。古いバージョンは動作が保証されず、ティア2に分類されます。
ターゲット | 説明 | サポートされているバージョン | コメント |
---|---|---|---|
aarch64-darwin |
Aarch64 macOS (Apple Silicon) |
11+ (テストは14のみ) | テスト ビルド |
x86_64-darwin |
x64 macOS (Intel) |
11+ (テストは13のみ;10.7以降で動作すると予想) |
テスト ビルド |
x86_64-linux-gnu |
x64 Linux | カーネル4.14以降、GNU libc 2.26以降 (カーネル2.6.18以降で動作すると予想) |
テスト ビルド |
x86_64-linux-musl |
x64 Linux | カーネル4.14以降、MUSL libc 1.2以降 (カーネル2.6.18以降で動作すると予想) |
テスト ビルド |
ティア2¶
ティア2プラットフォームは、「動作すると予想される」と考えることができます。
ティア1の要件は部分的に満たされている場合がありますが、何らかの理由で確実な保証ができない場合があります。「コメント」列に詳細が記載されています。
ターゲット | 説明 | サポートされているバージョン | コメント |
---|---|---|---|
aarch64-linux-gnu |
Aarch64 Linux | GNU libc 2.26以降 | テスト ビルド |
aarch64-linux-musl |
Aarch64 Linux | MUSL libc 1.2以降 | テスト ビルド |
arm-linux-gnueabihf |
Aarch32 Linux (ハードフロート) |
GNU libc 2.26以降 | テスト ビルド |
i386-linux-gnu |
x86 Linux | カーネル4.14以降、GNU libc 2.26以降 (カーネル2.6.18以降で動作すると予想) |
テスト ビルド |
i386-linux-musl |
x86 Linux | カーネル4.14以降、MUSL libc 1.2以降 (カーネル2.6.18以降で動作すると予想) |
テスト ビルド |
x86_64-openbsd |
x64 OpenBSD | 6+ | テスト ビルド |
x86_64-freebsd |
x64 FreeBSD | 12+ | テスト ビルド |
ティア3¶
ティア3プラットフォームは、「部分的に動作する」と考えることができます。
Crystalコードベースはこれらのプラットフォームをサポートしていますが、いくつかの大きな制限があります。最も典型的なのは、標準ライブラリの一部が完全にサポートされていないことです。
ターゲット | 説明 | サポートされているバージョン | コメント |
---|---|---|---|
x86_64-windows-msvc |
x64 Windows (MSVC) | 7+ | テスト ビルド |
aarch64-windows-msvc |
ARM64 Windows (MSVC) | 11+ | テスト ビルド |
aarch64-linux-android |
aarch64 Android | Bionic Cランタイム、APIレベル24以降 | テスト ビルド |
x86_64-unknown-dragonfly |
x64 DragonFlyBSD | テスト ビルド |
|
x86_64-unknown-netbsd |
x64 NetBSD | テスト ビルド |
|
wasm32-unknown-wasi |
WebAssembly (WASI libc) | Wasmtime 2以降 | テスト |
x86_64-solaris |
Solaris/illumos | テスト ビルド |
コンパイラサポート¶
このコンパイラはこれらのプラットフォームをターゲットにできますが、標準ライブラリはサポートされていません(つまり、`--prelude=empty` を使用してコンパイルする必要があります)。
ターゲット | 説明 | サポートされているバージョン | コメント |
---|---|---|---|
avr-unknown-unknown |
AVR(Atmel)CPUアーキテクチャ(Arduino) このターゲットには、CPUモデルの宣言が必要です(例:`--mcpu=atmega328`) |
凡例
- は、自動テストまたはビルドが利用できないことを意味します。
- は、自動テストまたはビルドが利用可能であることを意味します。
- は、自動テストは利用可能ですが、実装が不完全であることを意味します。
注記
Rustのプラットフォームサポートに関する非常に明確なドキュメントを作成してくれたRustチームに多大な感謝を申し上げます。これは、私たちのドキュメント作成のインスピレーションとなりました。