Crystal 平台支援¶
Crystal 編譯器可在許多平台上運行並編譯到許多平台,但並非所有平台都獲得同等程度的支援。Crystal 的支援等級分為三個級別,每個級別都有不同的保證。
平台以其「目標三元組」來識別,這是一個字串,用於告知編譯器應該產生什麼類型的輸出。下表中的欄位表示相應的組件是否在指定的平台上運作。
第一級¶
第一級平台可以被認為是「保證運作」的平台。具體來說,它們將滿足以下每個要求
- 為該平台提供官方二進位發行版本。
- 設定自動化測試以運行該平台的測試。
- 提供有關如何使用以及如何建置該平台的說明文件。
僅完全支援維護中的作業系統版本。不保證過時的版本能夠運作,並降至第二級。
目標 | 描述 | 支援版本 | 註解 |
---|---|---|---|
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+ 上運作) |
測試 建置 |
第二級¶
第二級平台可以被認為是「預期運作」的平台。
第一級的要求可能部分滿足,但由於某些原因而無法提供可靠的保證。詳細資訊在註解欄中說明。
目標 | 描述 | 支援版本 | 註解 |
---|---|---|---|
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+ | 測試 建置 |
第三級¶
第三級平台可以被認為是「部分運作」的平台。
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 平台支援的文件,我們以此作為我們的靈感來源。