Serve.cfg:global:enable run props

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/enable_run_props

Если переменная установлена в положительное значение, результатом компиляции программы может быть не только исполняемый файл, как в предыдущих версиях, но и дополнительный файл со свойствами скомпилированной программы.

При включенном enable_run_props компонент ej-compile передаёт скрипту компиляции не два, а три аргумента командной строки:

  • имя файла с исходным кодом;
  • имя файла, в который должен быть записан результат компиляции;
  • имя выходного файла с дополнительными свойствами скомпилированной программы.

Если скрипт компиляции не создал выходной файл со свойствами, это не рассматривается как ошибка, а в дальнейшем скомпилированная программа передаётся на выполнение по обычной схеме.

Файл со свойствами должен быть корректным JSON-файлом с одним объектом со следующими атрибутами:

  • start_cmd — путь к интерпретатору, который должен использоваться для запуска программы на исполнение;
  • start_args — аргументы командной строки для интерпретатора;
  • start_env — переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;
  • is_archive

Если is_archive равен true, должен быть указан start_cmd.

Если is_archive не задан или равен false, последним аргументом командной строки запуска всегда добавляется имя исполняемой запускаемой программы, имя не нужно явно записывать в start_args.

Если start_args не задан, он формируется автоматически из start_cmd.

Например, скрипт для "компиляции" питон-программ может генерировать следующий JSON:

{
  "start_cmd": "/bin/python3",
  "start_args": [ "/bin/python3", "-s" ]
}

Поддерживается начиная с версии 3.13.0.