Difference between revisions of "Изменения в версии 2.3.20"
(→ej-super-server) |
(→ejudge-contests-cmd) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
Добавлен элемент <tt>[[contest.xml:open_time|<open_time>]]</tt>, позволяющий задавать время открытия виртуального турнира. | Добавлен элемент <tt>[[contest.xml:open_time|<open_time>]]</tt>, позволяющий задавать время открытия виртуального турнира. | ||
− | Добавлен элемент <tt>[[contest.xml:close_time|<close_time>]]</tt>, позволяющий задавать время | + | Добавлен элемент <tt>[[contest.xml:close_time|<close_time>]]</tt>, позволяющий задавать время закрытия виртуального турнира. |
Добавлен атрибут <tt>checkbox</tt> элемента <tt>[[contest.xml:field|<field>]]</tt>. Если значение атрибута установлено | Добавлен атрибут <tt>checkbox</tt> элемента <tt>[[contest.xml:field|<field>]]</tt>. Если значение атрибута установлено | ||
Line 30: | Line 30: | ||
для шаблона имен рабочих каталогов тестирования. | для шаблона имен рабочих каталогов тестирования. | ||
− | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg: | + | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:ignore_prev_ac|ignore_prev_ac]]</tt>. Если переменная установлена в положительное |
значение, то если очередная посылка пользователя по задаче получает статус "AC", то статус предыдущих посылок пользователя по этой задаче | значение, то если очередная посылка пользователя по задаче получает статус "AC", то статус предыдущих посылок пользователя по этой задаче | ||
меняется на IG. Эта возможность полезна, когда решения задач просматриваются и утверждаются проверяющим, и позволяет избежать накопления посылок | меняется на IG. Эта возможность полезна, когда решения задач просматриваются и утверждаются проверяющим, и позволяет избежать накопления посылок | ||
Line 41: | Line 41: | ||
для шаблона имен рабочих каталогов тестирования. | для шаблона имен рабочих каталогов тестирования. | ||
− | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg: | + | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:disable_stderr|disable_stderr]]</tt>. Если переменная установлена в положительное |
значение, то для тестируемой программы запрещается вывод в stderr, то есть если программа что-либо вывела в stderr, вывод программы в stdout или в | значение, то для тестируемой программы запрещается вывод в stderr, то есть если программа что-либо вывела в stderr, вывод программы в stdout или в | ||
выходной файл не проверяется, а посылке присваивается статус Presentation Error. | выходной файл не проверяется, а посылке присваивается статус Presentation Error. | ||
− | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg: | + | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:normalization|normalization]]</tt>. Переменная позволяет задать тип преобразования |
текстового файла теста при сохранении теста при использовании веб-интерфейса редактирования тестов. | текстового файла теста при сохранении теста при использовании веб-интерфейса редактирования тестов. | ||
− | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg: | + | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:lang_compiler_env|lang_compiler_env]]</tt>. Переменная позволяет задать переменные |
окружения для компиляции данной задачи. | окружения для компиляции данной задачи. | ||
− | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg: | + | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:solution_src|solution_src]]</tt>. Переменная позволяет задать имя исходного файла |
с решением задачи в случае, когда полный исходный текст программы для тестирования формируется добавлением хедера или футера. | с решением задачи в случае, когда полный исходный текст программы для тестирования формируется добавлением хедера или футера. | ||
− | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg: | + | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:solution_cmd|solution_cmd]]</tt>. Переменная позволяет задать имя исполняемой программы |
с эталонным решением задачи. | с эталонным решением задачи. | ||
− | === .inf-файлы === | + | === [[.inf-файлы]] === |
Добавлен параметр <tt>environ</tt>, который позволяет задавать переменные окружения для | Добавлен параметр <tt>environ</tt>, который позволяет задавать переменные окружения для | ||
Line 79: | Line 79: | ||
=== [[ejudge-contests-cmd]] === | === [[ejudge-contests-cmd]] === | ||
− | Добавлена поддержка команды unload-2 (Ticket #66). | + | Добавлена поддержка команды [[ejudge-contests-cmd: unload-2|unload-2]] (Ticket #66). |
=== [[ejudge-edit-users]] === | === [[ejudge-edit-users]] === | ||
Line 93: | Line 93: | ||
Ограничение виртуальной памяти (<tt>[[serve.cfg:global:compile_max_vm_size|compile_max_vm_size]]</tt>) для компиляции увеличено для 512M в генерируемых конфигурационных файлах. | Ограничение виртуальной памяти (<tt>[[serve.cfg:global:compile_max_vm_size|compile_max_vm_size]]</tt>) для компиляции увеличено для 512M в генерируемых конфигурационных файлах. | ||
+ | |||
+ | === [[ejudge-upgrade-web]] === | ||
+ | |||
+ | Явно прописано, что скрипт должен исполняться /bin/bash. | ||
=== [[ej-contests]] === | === [[ej-contests]] === | ||
Line 136: | Line 140: | ||
используется значение элемента <register_email> глобального конфигурационного файла ejudge.cfg, | используется значение элемента <register_email> глобального конфигурационного файла ejudge.cfg, | ||
если элемент <register_email> не задан в конфигурационном файле турнира (Ticket #68). | если элемент <register_email> не задан в конфигурационном файле турнира (Ticket #68). | ||
+ | |||
+ | Поддерживаются форматные преобразования %U0 ... %U9 для выода полей field0 ... field9. | ||
=== [[ej-make-archive]] === | === [[ej-make-archive]] === | ||
Line 151: | Line 157: | ||
конфигурационными переменными tgzdir_sfx или tgzdir_pat. В предыдущих версиях эталонный | конфигурационными переменными tgzdir_sfx или tgzdir_pat. В предыдущих версиях эталонный | ||
рабочий каталог не имел никакого суффикса, то есть назывался по номеру теста. | рабочий каталог не имел никакого суффикса, то есть назывался по номеру теста. | ||
+ | |||
+ | При запуске программ на тестирование жесткий лимит процессорного времени устанавливается | ||
+ | на 1 секунду больше параметра time_limit ограничения времени. Таким образом, например, | ||
+ | если TL по задаче установлен в 1 секунду, то тестируемая программа может работать до | ||
+ | 2 секунд процессорного времени. Однако, если программа работает более 1 секунды, | ||
+ | то для все равно будет установлен статус TL. Если программа проработала 1.5 секунды | ||
+ | и завершилась нормально, то все равно запуск получит статус TL. | ||
=== [[ej-super-server]] === | === [[ej-super-server]] === | ||
Line 159: | Line 172: | ||
Поддерживается редактирование новых элементов XML-файла конфигурации турнира и новых конфигурационных | Поддерживается редактирование новых элементов XML-файла конфигурации турнира и новых конфигурационных | ||
переменных файла serve.cfg. | переменных файла serve.cfg. | ||
+ | |||
+ | Поддерживается импорт турнирных регистрационных данных пользователей из CSV-файла при редактировании | ||
+ | базы данных пользователей с помощью веб-интерфейса. | ||
+ | |||
+ | <b>Поддерживается редактирование условий задач, проверяющих программ и тестов через веб-интерфейс.</b> | ||
+ | |||
+ | Изменен внешний вид таблицы турниров в административном интерфейсе. | ||
+ | Ссылка "Edit users" ведет на страницы редактирования информации о пользователях, | ||
+ | зарегистрированных на данный турнира. | ||
+ | Ссылка "Edit settings" ведет на страницы редактирования настроек турнира. | ||
+ | Ссылка "Edit tests" ведет на страницы редактирования условий задач, проверяющих программ и тестов. | ||
+ | |||
+ | === [[ej-users]] === | ||
+ | |||
+ | Исправлена опечатка при экспорте базы пользователей в формате CSV. | ||
+ | |||
+ | Добавлена защита от символа ';' при экспорте базы пользователей в формате CSV. В этом случае | ||
+ | поле заключается в кавычки ", а кавычки внутри текста удваиваются. | ||
+ | |||
+ | Исправлено падение программы при редактировании полей базы пользователей. | ||
=== [[cmp_bytes]] === | === [[cmp_bytes]] === |
Latest revision as of 05:50, 5 January 2012
Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 2.3.20
Contents
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).