Crystal 플랫폼 지원
Crystal 플랫폼 지원 (Crystal Platform Support)
Crystal 컴파일러는 매우 많은 플랫폼에서 실행되고 또 그 플랫폼용으로 컴파일되지만, 모든 플랫폼이 똑같이 지원되지는 않아요. Crystal의 지원 수준은 세 개의 티어(tier)로 나뉘며, 각 티어마다 보장되는 내용이 다릅니다.
플랫폼은 "타깃 트리플(target triple)"로 식별되는데, 이건 컴파일러에게 어떤 종류의 출력을 만들어야 하는지 알려주는 문자열입니다. 아래 표의 열들은 해당 컴포넌트가 지정된 플랫폼에서 동작하는지를 나타내요.
티어 1 (Tier 1)
티어 1 플랫폼은 "동작이 보장된다"고 생각하면 됩니다. 구체적으로는 다음 요구사항을 각각 충족합니다:
- 해당 플랫폼용 공식 바이너리 릴리스가 제공된다.
- 그 플랫폼에서 테스트를 돌리는 자동화된 테스트가 구성되어 있다.
- 그 플랫폼을 사용하고 빌드하는 방법에 대한 문서가 제공된다.
유지보수되는 운영체제 버전만 완전 지원됩니다. 구식 버전은 동작이 보장되지 않으며 티어 2 로 내려갑니다.
| Target | Description | Supported versions | Comment |
|---|---|---|---|
aarch64-darwin |
Aarch64 macOS (Apple Silicon) |
11+ (testing only on 14) | :material-checkbox-marked-circle: tests :material-checkbox-marked-circle: builds |
x86_64-darwin |
x64 macOS (Intel) |
11+ (testing only on 13; expected to work on 10.7+) |
:material-checkbox-marked-circle: tests :material-checkbox-marked-circle: builds |
x86_64-linux-gnu |
x64 Linux | kernel 4.14+, GNU libc 2.26+ (expected to work on kernel 2.6.22+) |
:material-checkbox-marked-circle: tests :material-checkbox-marked-circle: builds |
x86_64-linux-musl |
x64 Linux | kernel 4.14+, MUSL libc 1.2+ (expected to work on kernel 2.6.22+) |
:material-checkbox-marked-circle: tests :material-checkbox-marked-circle: builds |
티어 2 (Tier 2)
티어 2 플랫폼은 "동작할 것으로 예상된다"고 볼 수 있어요.
티어 1 의 요구사항을 부분적으로 충족하지만, 확실한 보증을 막는 어떤 결함이 있는 상태입니다. 자세한 내용은 Comment 열에 설명되어 있어요.
| Target | Description | Supported versions | Comment |
|---|---|---|---|
aarch64-linux-gnu |
Aarch64 Linux | GNU libc 2.26+ | :material-checkbox-marked-circle: tests :material-selection-ellipse: builds |
aarch64-linux-musl |
Aarch64 Linux | MUSL libc 1.2+ | :material-checkbox-marked-circle: tests :material-selection-ellipse: builds |
arm-linux-gnueabihf |
Aarch32 Linux (hardfloat) |
GNU libc 2.26+ | :material-selection-ellipse: tests :material-selection-ellipse: builds |
i386-linux-gnu |
x86 Linux | kernel 4.14+, GNU libc 2.26+ (expected to work on kernel 2.6.22+) |
:material-selection-ellipse: tests :material-selection-ellipse: builds |
i386-linux-musl |
x86 Linux | kernel 4.14+, MUSL libc 1.2+ (expected to work on kernel 2.6.22+) |
:material-selection-ellipse: tests :material-selection-ellipse: builds |
x86_64-openbsd |
x64 OpenBSD | 7.8+ | :material-selection-ellipse: tests :material-selection-ellipse: builds |
x86_64-freebsd |
x64 FreeBSD | 12+ | :material-selection-ellipse: tests :material-selection-ellipse: builds |
티어 3 (Tier 3)
티어 3 플랫폼은 "부분적으로 동작한다"고 보면 됩니다.
Crystal 코드베이스가 이 플랫폼들을 지원하긴 하지만, 몇 가지 큰 제약이 있어요. 대부분의 경우 표준 라이브러리의 일부가 완전히 지원되지 않습니다.
| Target | Description | Supported versions | Comment |
|---|---|---|---|
x86_64-windows-msvc |
x64 Windows (MSVC) | 10+ (expected to work on Windows 7+) | :material-circle-slice-7: tests :material-checkbox-marked-circle: builds |
x86_64-windows-gnu |
x64 Windows (MinGW-w64) | 10+, MSYS2 UCRT64 / MINGW64 / CLANG64 environment (expected to work on Windows 7+) |
:material-circle-slice-7: tests :material-checkbox-marked-circle: builds |
aarch64-windows-msvc |
ARM64 Windows (MSVC) | 11+ | :material-selection-ellipse: tests :material-selection-ellipse: builds |
aarch64-windows-gnu |
ARM64 Windows (MinGW-w64) | 11+, MSYS2 CLANGARM64 environment |
:material-circle-slice-7: tests :material-checkbox-marked-circle: builds |
aarch64-linux-android |
aarch64 Android | Bionic C runtime, API level 24+ | :material-selection-ellipse: tests :material-selection-ellipse: builds |
x86_64-unknown-dragonfly |
x64 DragonFlyBSD | :material-selection-ellipse: tests :material-selection-ellipse: builds |
|
x86_64-unknown-netbsd |
x64 NetBSD | :material-selection-ellipse: tests :material-selection-ellipse: builds |
|
wasm32-unknown-wasi |
WebAssembly (WASI libc) | Wasmtime 2+ | :material-circle-slice-5: tests |
x86_64-solaris |
Solaris/illumos | :material-selection-ellipse: tests :material-selection-ellipse: builds |
컴파일러 지원 (Compiler support)
컴파일러는 이 플랫폼들을 대상으로 할 수 있지만, 표준 라이브러리 지원은 없습니다(즉 반드시 --prelude=empty로 컴파일해야 해요).
| Target | Description | Supported versions | Comment |
|---|---|---|---|
avr-unknown-unknown |
AVR (Atmel) CPU architecture (Arduino) This target requires declaration of a CPU model (e.g. --mcpu=atmega328) |
!!! info "범례 (Legend)" * :material-selection-ellipse: 자동 테스트나 빌드가 제공되지 않음을 뜻함 * :material-checkbox-marked-circle: 자동 테스트나 빌드가 제공됨을 뜻함 * :material-circle-slice-5: 자동 테스트는 제공되지만 구현이 불완전함을 뜻함
!!! note 우리의 기반이 된 Rust 플랫폼 지원에 관한 명확한 문서를 만들어 준 Rust 팀에 큰 감사를 전합니다.
출처: Crystal 공식 문서
더 알아보기 (Learn more)
- Rust 플랫폼 지원 (Rust platform-support) — Crystal이 영감을 얻은 원본 문서