flang компилятор доказывает, что программа не зациклится 0.6.2 GitHub English

Тем, кто делает язык

Эта страница нужна, если вы хотите править сам flang, а не писать на нём. Если писать — вам УстановкаПервая программаУчебник.

Дерево написано по-русски: имена, сообщения коммитов, большая часть прозы. Английская поверхность языка есть и разбирается в те же имена; правка, присланная по-английски, принимается — писать по-русски никто не попросит.

Соберите

Компилятор здесь один, написан на самом flang и собирается без Node. В дереве лежит точка раскрутки — тот же компилятор, напечатанный в C99. Весь список зависимостей — компилятор C и make:

git clone https://github.com/digitable-lol/flang && cd flang
make -C bootstrap
bootstrap/flang --version
flang 0.6.2

Собранный двоичный — это то, что вы дальше запускаете:

bootstrap/flang check examples/rosetta/towers-of-hanoi.flang

Пакет объявляет ноль зависимостей: npm install нечего скачивать. На Node работает только языковой сервер — node flang/bin/flang-lsp.mjs.

Проверьте

Три проверки идут на собранном двоичном и Node не требуют:

sh flang/проверки/обход.sh
sh flang/проверки/обход-примеров.sh
sh scripts/raskrutka.sh --check

Первая обходит дерево компилятором, вторая прогоняет примеры всех программ дерева, третья сверяет напечатанный C с тем, что лежит в bootstrap/: правка в flang/self/ обязана дать байт в байт тот же файл раскрутки.

Если вы правили страницы сайта, добавьте:

node docs/site/build.mjs --check

Она краснеет на ссылке в никуда, на странице без английской пары и на подстановке без значения.

Пришлите правку

  1. Отведите ветку от ствола: git switch -c моя-правка.
  2. Правьте. Пишите примеры прямо в функции — они прогоняются той же командой flang test, что и всё остальное.
  3. Прогоните проверки выше. Красная проверка — не повод для объяснительной записки: правка не готова.
  4. Сообщение коммита — одной строкой, что изменилось и почему.
  5. Откройте pull request на github.com/digitable-lol/flang.

Об ошибке без правки — issue в том же репозитории. Приложите текст программы и дословный вывод команды с кодом возврата: этого хватает, чтобы повторить.

Что читать, прежде чем править язык