Serve.cfg:global:preserve line numbers
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/preserve_line_numbers
Для скриптовых языков, таких как python или node, процесс "компиляции"
заключается к приписыванию в начале файла конструкции #! INTERP
.
После этого файл с программой на интерпретируемом языке может исполняться
стандартными средствами Unix без явного указания соответствующего
интерпретатора в строке запуска. То есть с точки зрения компонента
тестирования ej-super-run "скомпилированные" программы на скриптовых
языках ничем не отличаются от скомпилированных исполняемых программ
на языках C, C++, rust, go и аналогичных.
Однако у такой модели исполнения есть нежелательный побочный эффект: номера строк программы при выполнении отличаются от номеров строк программы, сданной на проверку. Поэтому сообщения об ошибках в программе, выдаваемые при ее выполнении, имеют номера строк, не соответствующие номерам строк в исходной программе.
Если в конфигурационном файле турнира задать глобальный конфигурационный
параметр preserve_line_numbers
в положительное значение,
программы на скриптовых языках будут обрабатываться таким образом,
что номера строк при выполнении программы будут соответствовать
номерам строк в сданном программе.
Опция работает при условии, что не используются файлы, добавляемые
к исходному коду программы (source_header
).
Пример:
preserve_line_numbers
Поддерживается начиная с версии 3.11.0.