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

From EjudgeWiki
Revision as of 17:32, 31 January 2010 by Cher (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

Реализована поддержка тестирования программ на платформе Windows.

ejudge.xml

Поддерживаются элементы <default_clardb_plugin>, <default_rundb_plugin>, которые позволяют устанавливать плагины по умолчанию для хранения базы посылок и базы сообщений. Например, <default_rundb_plugin>mysql</default_rundb_plugin> по умолчанию для хранения базы посылок будет использоваться MySQL.

ejudge-setup

Добавлена поддержка настройки элементов <default_clardb_plugin>, <default_rundb_plugin>.

ej-contests

При щелчке мышкой по номеру строки в административном интерфейсе просмотра текста программы в окно комментария вставляется номер строки.

В административный интерфейс просмотра текста программы добавлены кнопки "Проигнорировать посылку" и "Пометить посылку как успешную".

В раздел описания задачи конфигурационного файла serve.cfg добавлена переменная `disable_ctrl_chars'. Если переменная установлена в 1, при сдаче текстов программ запрещается использование управляющих символов, кроме \r и \n. В частности, запрещается использование \t.

Добавлен новый статус посылок: STYLE_ERR (Coding style violation), предназначенный для отслеживания нарушений правил оформления программ. Этот статус подобен статусу COMPILE_ERR, то есть программы со статусом Coding style violation не тестируются.

Добавлена поддержка автоматической проверки стиля оформления программ. Для этого в раздел языков программирования добавлена конфигурационная переменная `style_checker_cmd'. В этой переменной можно указать имя программы, которая выполняет проверку стиля оформления программ. Проверка стиля оформления программы выполняется до компиляции программы. Если программа проверки стиля завершается успешно, тестируемая программа передается на компиляцию. Если программа проверки стиля завершается неуспешно, диагностируется "Ошибка оформления программы".

По умолчанию скрипты проверки стиля оформления программы размещаются в каталоге проверяющих программ, то есть `checkers' в каталоге турнира.

Поддерживается несколько серверов компиляции программ. С помощью глобальной переменной extra_compile_dirs указываются каталоги обмена для серверов компиляции. Например,

extra_compile_dirs = "win32_compile"
extra_compile_dirs = "compile2"

указывает, что каталог обмена с сервером компиляции с номером 1 называется CONTESTS_HOME_DIR/win32_compile/var/compile, а каталог обмена с сервером компиляции с номером 2 называется CONTESTS_HOME_DIR/compile2/var/compile Сервер компиляции с номером 0 - это основной сервер компиляции, каталог обмена которого указывается в переменной compile_dir.

В разделе описания языков программирования поддерживается переменная `compile_dir_index', которая позволяет указать номер используемого сервера компиляции.

В разделе описания языков программирования добавлена конфигурационная переменная `disable_security'. Если эта переменная установлена в 1, то для посылок на этом языке программирования отключаются ограничения безопасности.

В выражение фильтра добавлен примитив "group". Он возвращает строку из поля `group' первого участника регистрационной записи.

В выражение фильтра добавлен примитив "arch". Он возвращает строку архитектуры текущего языка программирования.

В административный интерфейс добавлены средства управления очередью тестирования. Просмотр текущего состояния очереди тестирования доступен по ссылке "View testing queue" наверху главной страницы административного интерфейса. С очередью тестирования поддерживаются следующие команды:

  • снять одну посылку с тестирования
  • повысить приоритет одной посылки
  • понизить приоритет одной посылки
  • снять все посылки с тестирования
  • повысить приоритет всех посылок
  • понизить приоритет всех посылок

При снятии посылки с тестирования она получает статус "Pending check".

Добавлены конфигурационные переменные секции описания задачи `combined_stdin', `combined_stdout'. Если установлена какая-либо из этих переменных, то включается режим комбинированного ввода или вывода: стандартный поток и файл.

В протоколе тестирования сохраняется максимальное количество использованной памяти, если такая информация доступна со стороны ОС.

Оптимизирована генерация таблицы текущих результатов.

ej-super-server

Поддерживается редактирование конфигурационной переменной `disable_ctrl_chars'.

При добавлении нового компилятора в турнир при редактировании турнира идентификатор языка программирования всегда устанавливается равным идентификатору языка в сервере компиляции. В предыдущих версиях идентификатор языка назначался по-другому, в каждом турнире независимо от других, поэтому при хранении посылок в БД один и тот же идентификатор языка мог означать разные языки программирования в зависимости от турнира. Начиная с данной версии вновь добавляемые в турнир языки имеют идентификаторы, заданные в конфигурационном файле сервера компиляции. Для нормализации существующих турниров предназначена новая программа `ej-fix-db'.

При редактировании турнира с помощью CGI-программы serve-control поддерживается включение дополнительных серверов компиляции (в частности, сервера компиляции на Win32). На страницу "Global settings (serve.cfg)" добавлен параметр "Enable Win32 languages". Если его значение установлено в YES, то поддежка Win32-компиляторов активируется.

Обратите внимание, что для того, чтобы в список поддерживаемых компиляторов при редактировании турнира добавились Win32-компиляторы после установки параметра "Enable Win32 languages" необходимо сохранить турнир, а потом снова его открыть.

ej-fix-db

Эта новая программа предназначена для нормализации идентификаторов языков программирования в таблице runs базы данных MySQL.

Программа изменяет идентификаторы языков программирования в конфигурационных файлах всех турниров таким образом, чтобы они соответствовали идентификаторам языков в конфигурационном файле сервера компиляции. Одновременно модифицируется таблица runs в БД.

Программа может запускаться произвольное число раз. Если все конфигурационные файлы и таблица runs уже корректна, никаких изменений не проиходит.

ej-nwrun

Эта новая программа предназначена для запуска тестируемых программ. Программа `ej-nwrun' получает параметры запуска, исполняемый файл программы и тестовые данные, запускает тестируемую программу, а затем передает результат работы программы.

Для обмена с другими частями системы ejudge используются разделяемые каталоги.

В настоящее время с программой ej-nwrun взаимодействует только программа ej-run и только в синхронном режиме. Поэтому распараллеливание тестирования с помощью ej-nwrun пока не поддерживается.

ej-compile

Добавлена опция командной строки -r, которая позволяет указать строку, которая будет заменять строку CONTESTS_HOME_DIR в путях в конфигурационном файле.

Например, если при конфигурировании ejudge значение CONTESTS_HOME_DIR было установлено в /home/judges, то если указать в командной строке параметр запуска

ej-compile -r j:

то все префиксы /home/judges в путях в конфигурационном файле compile.cfg будут заменены на j: Таким образом, путь /home/judges/compile будет заменен на путь j:/compile

В конфигурационном файле поддерживается префикс /TMPDIR в путях. При запуске программы он заменяется на текущий путь к каталогу временных файлов системы.