Difference between revisions of "Serve.cfg:global:enable run props"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/se...") |
(...) |
||
(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> — путь к интерпретатору, который должен использоваться для запуска программы на исполнение; | ||
+ | * <code>start_args</code> — аргументы командной строки для интерпретатора; | ||
+ | * <code>start_env</code> — переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение; | ||
+ | * <code>is_archive</code> — | ||
+ | |||
+ | Если <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.