Изменения в версии 2.3.23

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 2.3.23

Языковые процессоры

Поддерживается отладчик valgrind. Если при конфигурировании языковых процессоров с помощью ejudge-configure-compilers обнаружен valgrind и gcc или g++, то активируются два языковых процессора gcc-vg и g++-vg. Компиляция программы выполняется с помощью соответствующего компилятора, а запускается скомпилированная программа с помощью valgrind.

Таким образом, с помощью gcc-vg и g++-vg можно отслеживать корректность работы тестируемых программ с динамической памятью и полноту освобождения динамической памяти.

Параметры командной строки для запуска valgrind можно передавать с помощью переменной окружения EJUDGE_VG_FLAGS. Если эта переменная окружения не установлена, valgrind запускается с параметрами:

valgrind --quiet --error-exitcode=1 --leak-check=full

ejudge-contests-cmd

При посылке решений поддерживаются задачи типа "select-one".

ej-contests

Поддерживается новая глобальная конфигурационная переменная disable_user_database.

Поддерживается новая глобальная конфигурационная переменная enable_max_stack_size.

ej-polygon

Новая программа для загрузки архивов задач из системы Polygon. Программа используется из административного интерфейса редактирования настроек турнира, но может использоваться и самостоятельно. Для активации этой возможности необходимо, чтобы при компиляции ejudge в системе была установлена библиотека libcurl (пакеты libcurl, libcurl-devel).

ej-super-run

При запуске программы на выполнение учитываются переменные окружения, установленные в конфигурационной переменной start_env, которые имеют больший приоритет перед значениями переменных, заданными в конфигурационном файле super-run.cfg.

Изменен алгоритм отслеживания превышения максимального времени выполнения. Теперь состояние работы тестируемого процесса отслеживается каждые 0.1 с с помощью чтения содержимого файла /proc/PID/stat. Как только процессорное время работы процесса превышает лимит времени, процесс убивается.

Если процесс выполняется под управлением ядра linux версии >= 3, не используется миллисекундный лимит ограничения времени работы процесса, так как патч для ядер версии >= 3 больше не поддерживает эту возможность.

ej-super-server

При редактировании настроек турнира сохраняется старое значение конфигурационных переменных start_env для всех секций tester.

При редактировании настроек турнира поддерживается импорт задач из системы Polygon. См. далее Руководство по импорту задач из системы Polygon в турниры ejudge. Для активации этой возможности необходимо, чтобы при компиляции ejudge в системе была установлена библиотека libcurl (пакеты libcurl, libcurl-devel).