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

From EjudgeWiki
Revision as of 05:50, 5 January 2012 by Cher (talk | contribs) (ejudge-contests-cmd)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

contest.xml

Добавлен элемент <register_subject>, который позволяет задавать тему (поле subject:) писем, автоматически рассылаемых при регистрации новых пользователей.

Добавлен элемент <register_subject_en>, который позволяет задавать тему (поле subject:) писем, автоматически рассылаемых при регистрации новых пользователей, в случае, если выбран английский язык интерфейса.

Добавлен элемент <open_time>, позволяющий задавать время открытия виртуального турнира.

Добавлен элемент <close_time>, позволяющий задавать время закрытия виртуального турнира.

Добавлен атрибут checkbox элемента <field>. Если значение атрибута установлено в значение "истина", то при редактировании анкеты пользователя соответствующее поле будет иметь тип ввода checkbox.

Добавлен бит полномочий UNLOAD_CONTEST. Пользователь, для которого установлен этот бит, может выполнять выгрузку турнира из памяти сервера (то есть пересчитываение конфигурационных файлов турнира) (Ticket #66).

serve.cfg

Добавлена глобальная конфигурационная переменная ignore_bom. Если переменная установлена в положительное значение, в сдаваемых на проверку текстовых файлах определяется и удаляется BOM (byte-order mark).

Добавлена глобальная конфигурационная переменная tgzdir_sfx. Переменная позволяет задать глобальное значение для суффикса имен рабочих каталогов тестирования.

Добавлена глобальная конфигурационная переменная tgzdir_pat. Переменная позволяет задать глобальное значение для шаблона имен рабочих каталогов тестирования.

Добавлена конфигурационная переменная задачи ignore_prev_ac. Если переменная установлена в положительное значение, то если очередная посылка пользователя по задаче получает статус "AC", то статус предыдущих посылок пользователя по этой задаче меняется на IG. Эта возможность полезна, когда решения задач просматриваются и утверждаются проверяющим, и позволяет избежать накопления посылок со статусом AC одного и того же пользователя по одной и той же задаче.

Добавлена конфигурационная переменная задачи tgzdir_sfx. Переменная позволяет задать значение для суффикса имен рабочих каталогов тестирования.

Добавлена конфигурационная переменная задачи tgzdir_pat. Переменная позволяет задать значение для шаблона имен рабочих каталогов тестирования.

Добавлена конфигурационная переменная задачи disable_stderr. Если переменная установлена в положительное значение, то для тестируемой программы запрещается вывод в stderr, то есть если программа что-либо вывела в stderr, вывод программы в stdout или в выходной файл не проверяется, а посылке присваивается статус Presentation Error.

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

Добавлена конфигурационная переменная задачи lang_compiler_env. Переменная позволяет задать переменные окружения для компиляции данной задачи.

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

Добавлена конфигурационная переменная задачи solution_cmd. Переменная позволяет задать имя исполняемой программы с эталонным решением задачи.

.inf-файлы

Добавлен параметр environ, который позволяет задавать переменные окружения для запуска тестируемой программы на данном тесте.

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

Языки программирования

Добавлена поддержка компилятора FreeBasic [1]. Компилятор совместим с компилятором QuickBasic и может использоваться как его замена.

Поддерживается JDK 7.

Для языка make поддерживаются переменные окружения EJ_MAKE_CFLAGS и EJ_MAKE_CXXFLAGS, которые позволяют задавать значения для переменных CFLAGS и CXXFLAGS.

ejudge-contests-cmd

Добавлена поддержка команды unload-2 (Ticket #66).

ejudge-edit-users

Исправлены падения программы при редактировании очень больших баз пользователей (Ticket #61).

ejudge-execute

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

ejudge-setup

Ограничение виртуальной памяти (compile_max_vm_size) для компиляции увеличено для 512M в генерируемых конфигурационных файлах.

ejudge-upgrade-web

Явно прописано, что скрипт должен исполняться /bin/bash.

ej-contests

Сравнение посылок работает и для output-only задач, если сданные файлы являются текстовыми файлами.

Исправлены ошибки, приводившие к падению программы в случае, если в логе посылок встречались записи с недопустимым идентификатором задачи (например, если задача была удалена из конфигурационного файла) или с недопустимым идентификатором языка программирования.

В выражениях фильтра статусы посылок можно задавать как заглавными, так и строчными буквами, например

status == ok

Модифицирован внешний вид таблицы посылок в административном интерфейсе (new-master). Убрана кнопка изменения статуса посылки и выпадающий список возможных статусов. Вместо них добавлено всплывающее меню, активирующееся при клике по текущему статусу.

При отображении списка посылок у участника игнорируются посылки с недопустимым идентификатором задачи или языка программирования.

Исправлено отображение таблицы результатов в турнирах по системе Olympiad.

Исправлено падение программы при отображении протокола тестирования в некоторых случаях отображения вывода тестируемой программы на stderr.

При редактировании регистрационной анкеты кнопки Cancel и Submit обменяны местами, таким образом при нажатии Enter срабатывает кнопка Submit.

Улучшена обработка различных ошибок, которые могут возникать при отправке решения на тестирование. В частности, корректно диагностируется и отображается ошибка отсутствия файлов заголовка или тела (src_header, src_footer) программы (Ticket #58).

При скачивании исходного текста посылки в виде .tar архива корректно определяется тип сжатия архива и у скачиваемого файла формируется корректный суффикс (.tar, .tar.gz, .tar.bz2) (Ticket #65).

Если XML-файл с условием задачи был некорректно сформирован, то турнир все равно будет загружен и будет работать, но вместо соответствующего условия будет отображаться сообщение об ошибке. В предыдущих версиях турнир не грузился, если хотя бы один XML-файл с условием задачи содержал ошибку.

При рассылке писем с уведомлением о поступлении clar, о возникновении ситуации CF или суточной статистики используется значение элемента <register_email> глобального конфигурационного файла ejudge.cfg, если элемент <register_email> не задан в конфигурационном файле турнира (Ticket #68).

Поддерживаются форматные преобразования %U0 ... %U9 для выода полей field0 ... field9.

ej-make-archive

Новая программа для подготовки архивов рабочих каталогов для тестирования.

ej-run

Исправлена ошибка, которая могла приводить к падению программы.

Исправлена ошибка, из-за которой при некоторых условиях вывод проверяющей программы накапливался от теста к тесту, а не очищался.

Эталонный рабочий каталог тестируемой программы теперь должен иметь суффикс, задаваемый конфигурационными переменными tgzdir_sfx или tgzdir_pat. В предыдущих версиях эталонный рабочий каталог не имел никакого суффикса, то есть назывался по номеру теста.

При запуске программ на тестирование жесткий лимит процессорного времени устанавливается на 1 секунду больше параметра time_limit ограничения времени. Таким образом, например, если TL по задаче установлен в 1 секунду, то тестируемая программа может работать до 2 секунд процессорного времени. Однако, если программа работает более 1 секунды, то для все равно будет установлен статус TL. Если программа проработала 1.5 секунды и завершилась нормально, то все равно запуск получит статус TL.

ej-super-server

Исправлено падение программы при установке флагов регистрации на турнир при редактировании базы данных пользователей.

Поддерживается редактирование новых элементов XML-файла конфигурации турнира и новых конфигурационных переменных файла serve.cfg.

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

Поддерживается редактирование условий задач, проверяющих программ и тестов через веб-интерфейс.

Изменен внешний вид таблицы турниров в административном интерфейсе. Ссылка "Edit users" ведет на страницы редактирования информации о пользователях, зарегистрированных на данный турнира. Ссылка "Edit settings" ведет на страницы редактирования настроек турнира. Ссылка "Edit tests" ведет на страницы редактирования условий задач, проверяющих программ и тестов.

ej-users

Исправлена опечатка при экспорте базы пользователей в формате CSV.

Добавлена защита от символа ';' при экспорте базы пользователей в формате CSV. В этом случае поле заключается в кавычки ", а кавычки внутри текста удваиваются.

Исправлено падение программы при редактировании полей базы пользователей.

cmp_bytes

Исправлена ошибка, приводившая к падению программы.

cmp_file

Добавлена поддержка переменной окружения EJUDGE_NOCASE. Если данная переменная окружения установлена, сравнение строк ведется без учета регистра букв (только для базовых символов латинского алфавита). Переменные окружения можно устанавливать с помощью конфигурационной переменной checker_env раздела описания задачи.

style_archive

Добавлена поддержка переменной окружения EJ_FORBIDDEN_NAMES. Переменная позволяет задавать список имен файлов, которые не должны находиться в архиве. Имена в списке разделяются запятой. Например, при приеме архива для последующей компиляции с помощью make следуюет запретить нахождение в архиве исполняемого файла-цели компиляции.

Добавлена поддержка переменной окружения EJ_FORBIDDEN_SUFFIXES. Переменная позволяет задавать список суффиксов имен файлов, которые не должны находиться в архиве. Суффиксы в списке разделяются запятой. Например, при приеме архива для последующей компиляции с помощью make следуюет запретить нахождение в архиве объектных файлов (суффикс .o).