tgoop.com/architect_says/483
Last Update:
С тех пор, как я всех подрывал попробовать писать на Ada, прошло некоторое время, и я решил уточнить, как дела у потенциальных новобранцев.
Выясняется, что на пути конверсии в счастливых программистов Ada первое препятствие это настроить окружение, IDE и так далее. Сегодня я покажу, как это быстро сделать, чтобы играть в тестовые примеры прямо на своей машине.
За последние пару лет, кстати, ситуация упростилась сильно, развился пакетный менеджер, плагинчики, AdaCore смержили коммьюнити и про-версии GNAT и сделали их доступными как FSF, так что одной головной болью меньше. А из грустных новостей наблюдается то, что GNAT Studio, самая продвинутая IDE, больше не выпускается официально под MacOS, так что кодить будем в VS Code. Но ничего, пакетный менеджер поставит нам всё, что нужно для работы.
1. Итак, первым шагом необходимо отправиться на сайт https://ada-lang.io/ и качнуть оттуда Alire - пакетный менеджер Ada. Я качал для MacOS, разумеется. То, что скачали, разархивируем, снимает атрибут командой [$xattr -d com.apple.quarantine bin/alr]. Я рекомендую прописать путь к bin/alr в PATH
2. Устанавливаем редактор VS Code, проверяем, что запускается. В разделе Extensions находим Ada Language Server (тот, что без поддержки отладки), ставим. Даже не понадобится перезагружаться.
3. Генерируем тестовый проект. Для этого открываем Terminal, там отправляем команду [$alr get hello]. Данная команда должна скачать и инициализировать на диске тестовый проект hello в отдельной папке.
Если это первый запуск (а у вас так и будет), то запустится асистент выбора тулчейна. Вам предстоит выбрать два продукта:
- GNAT - компилятор, рантайм и т.п. - выбирайте под вашу платформу (native), с кросс-компиляцией потом разберетесь;
- GPRBuild - инструмент для сборки проектов - выбирайте посвежее.
Далее делаем [$cd hello] после успешного окончания команды.
4. В VS Code делаем Add Folder, и добавляем hello. Теперь можно походить, поизучать, что у вас там в проекте сгенерировалось. Обратите внимание на файлы .gpr, это файлы задания самого проекта и его настроек. Примечательно, что это не xml и не .ini, а само по себе обычный код на Ada.
5. Теперь делаем [$alr run]. Вы должны увидеть что-то:
ⓘ Building hello/hello.gpr...
Compile
[Ada] hello.adb
Bind
[gprbind] hello.bexch
[Ada] hello.ali
Link
[link] hello.adb
Build finished successfully in 0.14 seconds.
Hello, World!
6. Если что-то пошло не так -- а под MacOS с этим может быть связано что-то с X Code, то нужно добиться, чтобы у вас корректно заработал xcode, в том числе CommandLineTools, а потом вернуться к Ada. Суть в том, что GNAT, который настроен на использование GCC, может испытывать проблемы при использовании clang, который мимикрирует под gcc под MacOS. Не буду пересказывать документацию, в интернете много рекомендаций как обновить все до актуальной версии, рекомендую начать с этого.
7. Если у вас всё заработало, то дальше следует выполнить поучительные эксперименты. Во-первых, следует запустить команду [$alr exec -- gprconfig], и после короткого диалога посмотреть на сгенерированный файл default.cgpr, который визуализирует все настройки по-умолчанию. Его имеет смысл удалить, сгенерировать всегда сможете. Во-вторых, следует запустить [$alr] без аргументов, и ознакомиться с выводом, возможно, запросить [$alr help ....] по интересным командам.
Если всё работает, можно двигаться дальше: добро пожаловать на бесплатный обучающий курс Ada https://learn.adacore.com/courses/intro-to-ada/index.html. И теперь примеры из него можно будет компилировать не только в браузере, но и локально.
А документация на Alire тут: https://alire.ada.dev/docs/
BY Господин Архитектор
Share with your friend now:
tgoop.com/architect_says/483