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 平台支持文档,我们用它作为我们文档的灵感来源。