Поддержка платформ в Crystal
Компилятор Crystal работает на множестве платформ и компилирует программы для них, однако поддержка разных платформ неодинакова. Уровни поддержки Crystal разделены на три категории, каждая из которых предусматривает свой набор гарантий.
Платформы обозначаются «тройкой целевой платформы» — строкой, которая сообщает компилятору, какой тип выходного файла следует создать. Столбцы ниже показывают, работает ли соответствующий компонент на указанной платформе.
Уровень 1
Платформы уровня 1 можно считать «гарантированно работающими». В частности, каждая из них отвечает следующим требованиям:
- Для платформы выпускаются официальные бинарные версии.
- Настроено автоматическое тестирование платформы.
- Доступна документация по использованию платформы и сборке для неё.
| Целевая платформа | Компилятор | Стандартная библиотека | Описание |
|---|---|---|---|
| x86_64-darwin | ✓ | ✓ | 64-разрядная OSX (10.7+, Lion+) |
| x86_64-linux-gnu | ✓ | ✓ | 64-разрядный Linux (2.6.18+) |
Уровень 2
Платформы уровня 2 можно считать «ожидаемо собирающимися». Автоматические тесты для них не запускаются, поэтому работоспособность сборки не гарантируется. Однако такие платформы часто работают достаточно хорошо, и мы всегда рады патчам!
| Целевая платформа | Компилятор | Стандартная библиотека | Описание |
|---|---|---|---|
| aarch64-darwin | ✓ | ✓ | 64-разрядная ARM OSX (Apple Silicon) |
| aarch64-linux-gnu | ✓ | ✓ | 64-разрядный Linux ARM (GNU, hardfloat) |
| aarch64-linux-musl | ✓ | ✓ | 64-разрядный Linux ARM (MUSL, hardfloat) |
| arm-linux-gnueabihf | ✓ | ✓ | 32-разрядный Linux ARM (GNU, hardfloat) |
| i386-linux-gnu | ✓ | ✓ | 32-разрядный Linux (2.6.18+) |
| i386-linux-musl | ✓ | ✓ | 32-разрядный Linux (MUSL) |
| x86_64-linux-musl | ✓ | ✓ | 64-разрядный Linux (MUSL) |
| x86_64-openbsd | ✓ | ✓ | 64-разрядный OpenBSD (6.x) |
| x86_64-freebsd | ✓ | ✓ | 64-разрядный FreeBSD (11.x) |
Уровень 3
Платформы уровня 3 — это платформы, которые в той или иной степени поддерживаются кодовой базой Crystal, но для которых автоматическая сборка и тестирование не выполняются, поэтому они могут не работать. Официальные сборки недоступны.
| Целевая платформа | Компилятор | Стандартная библиотека | Описание |
|---|---|---|---|
| x86_64-windows-msvc | 64-разрядный MSVC (Windows 7+) | ||
| x86_64-unknown-dragonfly | 64-разрядный DragonFlyBSD | ||
| x86_64-unknown-netbsd | 64-разрядный NetBSD |
Примечание: большое спасибо команде Rust за подготовку такого ясного документа о поддержке платформ в Rust. Он оказался настолько близок к тому, что нам было нужно для Crystal, что мы фактически скопировали многие его фрагменты. См. https://forge.rust-lang.org/platform-support.html.
To the extent possible under law, the persons who contributed to this workhave waived
all copyright and related or neighboring rights to this workby associating CC0 with it.
https://crystal-lang.org/reference/1.2/platform_support.html