Difference between revisions of "Изменения в версии 2.3.23"

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/[[Изменения в в...")
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 2.3.23]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 2.3.23]]
 +
 +
=== Языковые процессоры ===
 +
 +
Поддерживается отладчик valgrind. Если при конфигурировании языковых процессоров с помощью ejudge-configure-compilers обнаружен valgrind и gcc или g++, то активируются два языковых процессора gcc-vg и g++-vg. Компиляция программы выполняется с помощью соответствующего компилятора, а запускается скомпилированная программа с помощью valgrind.
 +
 +
Таким образом, с помощью gcc-vg и g++-vg можно отслеживать корректность работы тестируемых программ с динамической памятью и полноту освобождения динамической памяти.
 +
 +
Параметры командной строки для запуска valgrind можно передавать с помощью переменной окружения <tt>EJUDGE_VG_FLAGS</tt>. Если эта переменная окружения не установлена, valgrind запускается с параметрами:
 +
valgrind --quiet --error-exitcode=1 --leak-check=full
 +
 +
=== [[ejudge-contests-cmd]] ===
 +
 +
При посылке решений поддерживаются задачи типа "select-one".
 +
 +
=== [[ej-contests]] ===
 +
 +
Поддерживается новая глобальная конфигурационная переменная <tt>[[serve.cfg:global:disable_user_database|disable_user_database]]</tt>.
 +
 +
Поддерживается новая глобальная конфигурационная переменная <tt>[[serve.cfg:global:enable_max_stack_size|enable_max_stack_size]]</tt>.
 +
 +
=== [[ej-polygon]] ===
 +
 +
Новая программа для загрузки архивов задач из системы Polygon. Программа используется из административного интерфейса редактирования настроек турнира, но может использоваться и самостоятельно. Для активации этой возможности необходимо, чтобы при компиляции ejudge в системе была установлена библиотека libcurl (пакеты libcurl, libcurl-devel).
 +
 +
=== [[ej-super-run]] ===
 +
 +
При запуске программы на выполнение учитываются переменные окружения, установленные в конфигурационной переменной <tt>[[serve.cfg:tester:start_env|start_env]]</tt>, которые имеют больший приоритет перед значениями переменных, заданными в конфигурационном файле super-run.cfg.
 +
 +
Изменен алгоритм отслеживания превышения максимального времени выполнения. Теперь состояние работы тестируемого процесса отслеживается каждые 0.1 с с помощью чтения содержимого файла /proc/PID/stat. Как только процессорное время работы процесса превышает лимит времени, процесс убивается.
 +
 +
Если процесс выполняется под управлением ядра linux версии >= 3, не используется миллисекундный лимит ограничения времени работы процесса, так как [[патч к ядру Linux|патч для ядер]] версии >= 3 больше не поддерживает эту возможность.
 +
 +
=== [[ej-super-server]] ===
 +
 +
При редактировании настроек турнира сохраняется старое значение конфигурационных переменных <tt>[[serve.cfg:tester:start_env|start_env]]</tt> для всех секций tester.
 +
 +
При редактировании настроек турнира поддерживается импорт задач из системы Polygon. См. далее [[Руководство по импорту задач из системы Polygon в турниры ejudge]]. Для активации этой возможности необходимо, чтобы при компиляции ejudge в системе была установлена библиотека libcurl (пакеты libcurl, libcurl-devel).

Latest revision as of 08:28, 25 June 2012

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