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)