Difference between revisions of "Serve.cfg:global:enable run props"

From EjudgeWiki
 
(...)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/<code>[[Serve.cfg:global:enable_run_props|enable_run_props]]</code>
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/<code>[[Serve.cfg:global:enable_run_props|enable_run_props]]</code>
 +
 +
Если переменная установлена в положительное значение, результатом компиляции программы может быть
 +
не только исполняемый файл, как в предыдущих версиях, но и дополнительный файл со свойствами скомпилированной
 +
программы.
 +
 +
При включенном <code>enable_run_props</code> компонент [[ej-compile]] передаёт скрипту компиляции не два, а три
 +
аргумента командной строки:
 +
* имя файла с исходным кодом;
 +
* имя файла, в который должен быть записан результат компиляции;
 +
* имя выходного файла с дополнительными свойствами скомпилированной программы.
 +
 +
Если скрипт компиляции не создал выходной файл со свойствами, это не рассматривается как ошибка,
 +
а в дальнейшем скомпилированная программа передаётся на выполнение по обычной схеме.
 +
 +
Файл со свойствами должен быть корректным JSON-файлом с одним объектом со следующими атрибутами:
 +
* <code>start_cmd</code> &mdash; путь к интерпретатору, который должен использоваться для запуска программы на исполнение;
 +
* <code>start_args</code> &mdash; аргументы командной строки для интерпретатора;
 +
* <code>start_env</code> &mdash; переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;
 +
* <code>is_archive</code> &mdash;
 +
 +
Если <code>is_archive</code> равен <code>true</code>, должен быть указан <code>start_cmd</code>.
 +
 +
Если <code>is_archive</code> не задан или равен <code>false</code>, последним аргументом командной строки
 +
запуска всегда добавляется имя исполняемой запускаемой программы, имя не нужно явно записывать
 +
в <code>start_args</code>.
 +
 +
Если <code>start_args</code> не задан, он формируется автоматически из <code>start_cmd</code>.
 +
 +
Например, скрипт для "компиляции" питон-программ может генерировать следующий JSON:
 +
 +
{
 +
  "start_cmd": "/bin/python3",
 +
  "start_args": [ "/bin/python3", "-s" ]
 +
}
  
 
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].
 
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].

Latest revision as of 07:37, 29 December 2024

Навигация: Главная страница/Система 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.