taker-specs

Документация для проекта taker

This project is maintained by taker-project

Программы для запуска решений

Для запуска и компиляции решений, генераторов и т. д. используются специальные программы для запуска (runner). Хотя бы одна программа для запуска должна быть установлена для корректной работы.

Runner взаимодействует с основной системой следующим образом. На stdin передаются параметры в формате JSON. Runner должен запустить другую программу, согласно параметрам и вывести результат работы в формате JSON на stdout. Если входные данные некорректны, то результат неопределен (runner может, например, упасть с ошибкой, вывести сообщение об ошибке на stdout или stderr, либо игнорировать ошибки во вводе).

При запуске runner’а с ключом -? он должен вывести следующую информацию в формате JSON:

Входной JSON имеет следующие поля:

В случае поддержки изолированного запуска следует учитывать еще и эти поля:

Также могут присутствовать и дололнительные поля; они должны игнорироваться.

Если какое-либо поле пропущено во вводе, runner может как установить для него некоторое значение по умолчанию (для совместимости со старыми версиями Taker), так и упасть с ошибкой.

Все относительные пути, указанные в параметрах (например, в полях "executable", "stdin-redir", "stdout-redir", "isolate-dir") указаны относительно относительно рабочей папки запускаемой программы. Исключение составляет поле "working-dir", указываемое относительно рабочей папки самого runner’а.

Выходной JSON должен иметь следующие поля: