Версия 2.1.45 (20060121) ======================== Обновлено руководство по инсталляции системы в файлах INSTALL и INSTALL.RUS. ejudge.xml ---------- В конфигурационный файл добавлены новые элементы , , , которые используются программой `job-server'. Элементы могут быть опущены, тогда их значение будет установлено по умолчанию по значению элемента . Элемент позволяет задать имя файла, который будет использоваться как журнал работы программы `job-server' в режиме демона. Если программа `job-server' запущена не в режиме демона, сообщения об её работе выводятся на стандартный поток вывода, и значение этого элемента не используется. Если элемент не задан, используется значение $/job_server.log, где $ - значение элемента файла ejudge.xml. Элемент позволяет задать каталог для очереди заданий программы `job-server'. Если элемент не задан, используется значение $/jspool, где $ - значение элемента файла ejudge.xml. Элемент позволяет задать рабочий каталог для программы `job-server' и порождаемых ей заданий. Если элемент не задан, используется значение $/jwork, где $ - значение элемента файла ejudge.xml. contest.xml ----------- Добавлена поддержка новых элементов , , . Они используются сервером турнира `serve' для отсылки уведомлений о некоторых событиях, возникающих в турнире. позволяет задать адрес (или адреса) e-mail, по которым будет направляться уведомление, если тестирование посылки завершается ошибкой, то есть посылка получает статус CHECK_FAILED. позволяет задать адрес (или адреса) e-mail, по которым будет направляться уведомление о поступлении в турнир вопроса от участника. позволяет задать адрес (или адреса) e-mail, по которым будет направляться письмо с суточной статистикой работы турнира. userlist-server --------------- В базу данных участников в записи о регистрациях на турниры добавлено поле "date" для хранения времени регистрации на турнир. libchecker ---------- Функции `checker_read_file_by_line' и `checker_read_file_by_line_f' не используют больше стек для размещения временного буфера. Это позволяет считывать в память большие файлы. serve ----- Добавлена новая конфигурационная переменная `enable_compilation' секции описания задачи файла `serve.cfg'. Переменная действует только тогда, когда для задачи установлена переменная `disable_testing'. Если в этом случае переменная `enable_compilation' установлена в 1, то присланные решения по этой задаче компилируются. Если компиляция завершилась успешно, то для посылки устанавливается статус "Accepted for testing" (RUN_ACCEPTED), а в противном случае устанавливается статус "Compilation error" (RUN_COMPILE_ERR). Поддерживается отсылка уведомлений по электронной почте в случае возникновения ошибки CHECK_FAILED и в случае поступления вопроса от участника турнира. Адрес, по которому отсылаются сообщения, задаётся с помощью элементов , соответственно. Поддерживается новая глобальная конфигурационная переменная `contest_finish_time' файла `serve.cfg'. Эта переменная позволяет установить астрономическое время окончания турнира в случае, когда его длительность не ограничена. Поддерживается рассылка суточной статистики о турнире по адресу, указанному в элементе файла contest.xml. База сообщений (clar.log) теперь хранится в бинарном формате. При запуске `serve' перекодирует при необходимости базу из старого формата в новый. В бинарном формате добавлена поддержка IPv6 адресов (пока не используется), 64-битного типа time_t, и поля `j_from', в котором хранится идентификатор пользователя, пославшего сообщение от имени Жюри. При просмотре сообщений привилегированным пользователем (в CGI-программах `master' или `judge') выводится имя пользователя, от имени которого было послан ответ судей участнику или сообщение всем участникам. super-serve ----------- При генерации конфигурационного файла турнира `serve.cfg', если включена поддержка языка Java, в параметрах запуска java-программ на тестирование языковое окружение (переменная окружения LANG) устанавливается в "C" (другими словами, все языковые настройки отменяются). Это важно для того, чтобы числа с плавающей точкой считывались и печатались в стандартном формате. Поддерживается редактирование новых элементов , , конфигурационного файла contest.xml. Поддерживается редактирование глобальной конфигурационной переменной `contest_finish_time' файла `serve.cfg'. super-serve, serve-control -------------------------- Поддерживается редактирование новой конфигурационной переменной `enable_compilation' раздела описания задачи файла `serve.cfg'. run --- Если проверяющая программа завершается по тайм-ауту из-за сигнала, или возвращает нестандартный код завершения, в файл вывода проверяющей программы добавляется диагностическое сообщение. job-server ---------- Новая программа, которая предназначена для выполнения задач из очереди "неприоритетных" задач. Сервер турнира или сервер пользователей может поставить задачу на выполнение в очередь программе `job-server', если задача не должна быть выполнена немедленно, и успешность выполнения задачи не очень важна. Например, сервер турнира `serve' использует очередь программы `job-server' для отсылки уведомлений о получении вопроса от участника, о возникновении ошибки проверки задачи и для отсылки суточной статистики. Пока программа `job-server' поддерживает только отсылку сообщений по электронной почте. Планируется добавление функции проигрывания звука или голосовых сообщений, чтобы снять эту функцию с программы `run'. Программа `job-server' поддерживает опцию -D - работа в режиме демона. В этом режиме программа уходит в фоновый режим и записывает все диагностические сообщения в журнал работы. job-server-cmd -------------- Новая программа для управления сервером "неприоритетных" задач. Текущая версия поддерживает только команду отправления сообщения по электронной почте. job-server-cmd mail CHARSET SUBJ FROM TO TEXT здесь CHARSET - кодировка сообщения, SUBJ - тема сообщения, FROM - адрес отправителя, TO - адрес получателя, TEXT - текст сообщения. Обратите внимание, что текст сообщения должен передаваться как аргумент командной строки.