Список изменений в версии 2.1.26 (20040219)
Добавлено сохранение некоторых параметров состояния клиента
участника турнира. Добавлена новая конфигурационная переменная
для указания каталога сохранения состояния.
Добавлена поддержка печати на принтер.
Исправлено большое количество ошибок, проявляющихся в режиме турнира
OLYMPIADS.
В формат конфигурационного файла contest.xml внесено изменение,
которое делают его несовместимым с форматом файла предыдущих версий.
Система ejudge при чтении конфигурационных файлов старых версий будет
выдавать ошибку. Чтобы исправить конфигурационный файл сделайте в нем
замену названия бита полномочий SUBMIT_RUNS на SUBMIT_RUN.
- (serve)
В базу посылок добавлено поле pages для сохранения количества
напечатанных страниц для данной посылки. Это поле
устанавливается, когда посылка печатается самим участником с
помощью CGI-программы team. Поле используется, чтобы не печатать
несколько раз одну и ту же посылку, и для подсчёта общего
количества напечатанных страниц для проверки квоты страниц.
- (serve,master)
Добавлена поддержка редактирования значения поля pages.
- (serve,master,judge,team)
Добавлена поддержка печати листинга программы на принтер. Для
привилегированных пользователей печать доступна всегда из
диалога просмотра информации о посылке. Для печати
привилегированный пользователь должен иметь полномочие
PRINT_RUN. Привилегированный пользователь может напечатать
несколько раз одну и ту же посылку, для него не ограничивается
количетство напечатанных страниц. Обычному участнику турнира
печать доступна, если установлена глобальная конфигурационная
переменная enable_printing. Максимальное количество страниц
для одного пользователя устанавливается с помощью глобальной
конфигурационной переменной team_page_quota (по умолчанию
значение равно 50). Квота учитывает заглавную страницу,
содержащую информацию о посылке.
Для печати используется программа a2ps. Путь к данной
программе задаётся с помощью глобальной конфигурационной
переменной a2ps_path. Дополнительные аргументы программы
a2ps задаются с помощью глобальной конфигурационной переменной
a2ps_args. Путь к программе постановки в очередь печати lpr
задаётся с помощью глобальной конфигурационной переменной
lpr_path. Дополнительные аргументы для программы lpr
задаются с помощью глобальной конфигурационной переменной
lpr_args.
- (contest.xml)
Добавлен новый бит полномочий PRINT_RUN. Бит полномочий
SUBMIT_RUNS переименован в SUBMIT_RUN, поэтому новая версия
системы будет выдавать ошибку при чтении конфигурационных файлов
предыдущих версий.
- (userlist-server)
При генерации случайных паролей в паролях не используются
символы, которые легко спутать друг с другом: 'l', 'I', '1',
'O', '0'.
- (serve,run)
Добавлена новая конфигурационная переменная описания задачи
accept_partial. Переменная действует только в режиме турнира
OLYMPIAD. Если эта переменная установлена в true, то решения
участников принимаются на проверку даже в случае, когда они не
прошли всех тестов из условия. Соответствующим образом обновлён
протокол взаимодействия программ serve и run.
- (serve)
В действительности сделано, чтобы привилегированный пользователь
мог делать посылки до начала и после окончания турнира. Эта
возможность заявлялась и в предыдущей версии, но была отключена.
- (serve)
Посколькую добавление очередной посылки может добавлять её не в
конец базы посылок, после добавления посылки может потребоваться
переименование архивных файлов. Ранее добавление посылки не в
конец приводило к потере посылки.
- (serve)
В режиме турнира OLYMPIAD переключиться в режим проверки можно и
до конца турнира.
- (serve,master)
Добавлена поддержка команды `Set accepting mode', которая
переключает турнир из режима проверки в режим приёма посылок.
Команда действует только в режиме турнира OLYMPIAD.
- (run)
Существенно улучшена поддержка режима турнира OLYMPIAD. Этот
режим почти всегда обрабатывается так же, как KIROV. Улучшены
возможности по прерыванию работы программы по Ctrl-C. Во всех
случаях поддерживаются тесты с нулевой суммой баллов.
- (serve)
При перезаписи архивного файла (например, протокола
тестирования) предварительно удаляются предыдущая запись с
данным номером. Это исправляет ошибку, когда, например,
предыдущая запись не была сжата (не имела суффикс .gz), а новая
запись - сжата (имеет суффикс .gz в имени файла). Таким образом
оказывается, что архив протоколов содержит два протокола для
некоторой посылки. Эти два протокола в некоторых ситуациях
конфликтуют друг с другом.
- (serve)
Добавлена поддержка сохранения параметров состояния клиента
участника турнира. Синтаксис файла состояния основан на XML. В
настоящее время сохраняется пока статус просмотра сообщений, то
есть для каждого сообщения, адресованного участнику турнира
сохраняется, просматривал ли участник это сообщение. Файлы
состояния участника подгружаются по требованию и создаются при
необходимости. Если сохраняемое состояние участника изменилось,
оно сохраняется в момент завершения работы программы serve.
Добавлена новая глобальная конфигурационная переменная
team_extra_dir. Она содержит каталог, в котором размещаются
файлы сохраняемого состояния участников. По умолчанию эта
переменная равна ${var_dir}/team_extra, где ${var_dir} -
значение глобальной конфигурационной переменной var_dir.
Файлы сохраняемого состояния хранятся в подкаталогах этого
каталога, организованные в дерево каталогов. В каждом каталоге
находится не более 32 подкаталогов или непосредственно файлов,
аналогично тому, как организован архив посылок.
- (serve,team)
Если у участника турнира есть непросмотренные сообщения, в
разделе состояния турнира выводится сообщение "You have X unread
message(s)" (или "Непросмотренных сообщений: X"). У участника
турнира сообщения, направленные участником судьям имеют статус
"U", если эти сообщения не просмотрены судьями (у судей эти же
сообщения имеют статус "N"). Сообщения от судей всем участникам
или от судей конкретному участнику имеют статус "N", если
сообщения не были ни разу просмотрены этим участником.
Просмотренные сообщения не имеют специального статуса.
- (serve)
Добавлена новая конфигурационная переменная описания задачи
hidden. Если эта переменная установлена в true, такая задача
не показывается в таблице текущих результатов турнира, но
остаётся доступной для сдачи участниками.
- (master,judge)
Если в URL не задан идентификатор турнира contest_id, и имя
CGI-программы имеет вид master или judge, то выводится
приглашение ко вводу регистрационного имени, пароля и
идентификатора турнира.
- (userlist-server)
Резервные копии базы данных пользователей, которые сохраняются
один раз в 24 часа, теперь записываются в сжатом формате GZIP.
Если сохранение текущего состояния базы пользователей
завершилось из-за ошибки, временный файл, создаваемый в процессе
записи, удаляется.
- (compile)
Улучшена обработка ошибочных ситуаций. Программа compile теперь
не завершит свою работу в случае, если исчерпано дисковое
пространство. Вместо этого она будет пытаться выполнить запись с
интервалом 5 сек.
- (compile,run)
Если программа переходит в состояние ожидания сериализационного
семафора (см. описание глобальной конфигурационной переменной
cr_serialization_key), на стандартный поток ошибок печатается
диагностическое сообщение "waiting for lock".
Last modified:
Copyright © 2003,2004 Alexander Chernov