Difference between revisions of "Изменения в версии 2.3.20"
(→ejudge-contests-cmd) |
|||
(31 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 2.3.20]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 2.3.20]] | ||
+ | |||
+ | === [[contest.xml]] === | ||
+ | |||
+ | Добавлен элемент <tt>[[contest.xml:register_subject|<register_subject>]]</tt>, который позволяет задавать тему (поле subject:) | ||
+ | писем, автоматически рассылаемых при регистрации новых пользователей. | ||
+ | |||
+ | Добавлен элемент <tt>[[contest.xml:register_subject_en|<register_subject_en>]]</tt>, который позволяет задавать тему (поле subject:) | ||
+ | писем, автоматически рассылаемых при регистрации новых пользователей, в случае, если выбран английский язык интерфейса. | ||
+ | |||
+ | Добавлен элемент <tt>[[contest.xml:open_time|<open_time>]]</tt>, позволяющий задавать время открытия виртуального турнира. | ||
+ | |||
+ | Добавлен элемент <tt>[[contest.xml:close_time|<close_time>]]</tt>, позволяющий задавать время закрытия виртуального турнира. | ||
+ | |||
+ | Добавлен атрибут <tt>checkbox</tt> элемента <tt>[[contest.xml:field|<field>]]</tt>. Если значение атрибута установлено | ||
+ | в значение "истина", то при редактировании анкеты пользователя соответствующее поле будет иметь тип ввода checkbox. | ||
+ | |||
+ | Добавлен бит полномочий <tt>UNLOAD_CONTEST</tt>. Пользователь, для которого установлен этот бит, может выполнять выгрузку турнира из памяти | ||
+ | сервера (то есть пересчитываение конфигурационных файлов турнира) (Ticket #66). | ||
+ | |||
+ | === [[serve.cfg]] === | ||
+ | |||
+ | Добавлена глобальная конфигурационная переменная <tt>[[serve.cfg:global:ignore_bom|ignore_bom]]</tt>. Если переменная установлена в положительное значение, | ||
+ | в сдаваемых на проверку текстовых файлах определяется и удаляется BOM (byte-order mark). | ||
+ | |||
+ | Добавлена глобальная конфигурационная переменная <tt>[[serve.cfg:global:tgzdir_sfx|tgzdir_sfx]]</tt>. Переменная позволяет задать глобальное значение | ||
+ | для суффикса имен рабочих каталогов тестирования. | ||
+ | |||
+ | Добавлена глобальная конфигурационная переменная <tt>[[serve.cfg:global:tgzdir_pat|tgzdir_pat]]</tt>. Переменная позволяет задать глобальное значение | ||
+ | для шаблона имен рабочих каталогов тестирования. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:ignore_prev_ac|ignore_prev_ac]]</tt>. Если переменная установлена в положительное | ||
+ | значение, то если очередная посылка пользователя по задаче получает статус "AC", то статус предыдущих посылок пользователя по этой задаче | ||
+ | меняется на IG. Эта возможность полезна, когда решения задач просматриваются и утверждаются проверяющим, и позволяет избежать накопления посылок | ||
+ | со статусом AC одного и того же пользователя по одной и той же задаче. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:tgzdir_sfx|tgzdir_sfx]]</tt>. Переменная позволяет задать значение | ||
+ | для суффикса имен рабочих каталогов тестирования. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:tgzdir_pat|tgzdir_pat]]</tt>. Переменная позволяет задать значение | ||
+ | для шаблона имен рабочих каталогов тестирования. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:disable_stderr|disable_stderr]]</tt>. Если переменная установлена в положительное | ||
+ | значение, то для тестируемой программы запрещается вывод в stderr, то есть если программа что-либо вывела в stderr, вывод программы в stdout или в | ||
+ | выходной файл не проверяется, а посылке присваивается статус Presentation Error. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:normalization|normalization]]</tt>. Переменная позволяет задать тип преобразования | ||
+ | текстового файла теста при сохранении теста при использовании веб-интерфейса редактирования тестов. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:lang_compiler_env|lang_compiler_env]]</tt>. Переменная позволяет задать переменные | ||
+ | окружения для компиляции данной задачи. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:solution_src|solution_src]]</tt>. Переменная позволяет задать имя исходного файла | ||
+ | с решением задачи в случае, когда полный исходный текст программы для тестирования формируется добавлением хедера или футера. | ||
+ | |||
+ | Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:solution_cmd|solution_cmd]]</tt>. Переменная позволяет задать имя исполняемой программы | ||
+ | с эталонным решением задачи. | ||
+ | |||
+ | === [[.inf-файлы]] === | ||
+ | |||
+ | Добавлен параметр <tt>environ</tt>, который позволяет задавать переменные окружения для | ||
+ | запуска тестируемой программы на данном тесте. | ||
+ | |||
+ | Добавлен параметр <tt>disable_stderr</tt>. Если данный параметр установлен в положительное | ||
+ | значение, запрещается вывод программы на stderr, аналогично конфигурационной | ||
+ | переменной <tt>[[serve.cfg:problem:disable_stderr|disable_stderr]]</tt> раздела описания задачи. | ||
+ | |||
+ | === Языки программирования === | ||
+ | |||
+ | Добавлена поддержка компилятора FreeBasic [http://freebasic.net]. Компилятор совместим | ||
+ | с компилятором QuickBasic и может использоваться как его замена. | ||
+ | |||
+ | Поддерживается JDK 7. | ||
+ | |||
+ | Для языка <b>make</b> поддерживаются переменные окружения <tt>EJ_MAKE_CFLAGS</tt> и | ||
+ | <tt>EJ_MAKE_CXXFLAGS</tt>, которые позволяют задавать значения для переменных | ||
+ | CFLAGS и CXXFLAGS. | ||
+ | |||
+ | === [[ejudge-contests-cmd]] === | ||
+ | |||
+ | Добавлена поддержка команды [[ejudge-contests-cmd: unload-2|unload-2]] (Ticket #66). | ||
+ | |||
+ | === [[ejudge-edit-users]] === | ||
+ | |||
+ | Исправлены падения программы при редактировании очень больших баз пользователей (Ticket #61). | ||
+ | |||
+ | === [[ejudge-execute]] === | ||
+ | |||
+ | Существенно расширен набор опций, поддерживаемых этой программой. Программа теперь пригодна для использования в | ||
+ | качестве инструмента контролируемого запуска программ из скриптов. | ||
+ | |||
+ | === [[ejudge-setup]] === | ||
+ | |||
+ | Ограничение виртуальной памяти (<tt>[[serve.cfg:global:compile_max_vm_size|compile_max_vm_size]]</tt>) для компиляции увеличено для 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-файла при редактировании | ||
+ | базы данных пользователей с помощью веб-интерфейса. | ||
+ | |||
+ | <b>Поддерживается редактирование условий задач, проверяющих программ и тестов через веб-интерфейс.</b> | ||
+ | |||
+ | Изменен внешний вид таблицы турниров в административном интерфейсе. | ||
+ | Ссылка "Edit users" ведет на страницы редактирования информации о пользователях, | ||
+ | зарегистрированных на данный турнира. | ||
+ | Ссылка "Edit settings" ведет на страницы редактирования настроек турнира. | ||
+ | Ссылка "Edit tests" ведет на страницы редактирования условий задач, проверяющих программ и тестов. | ||
+ | |||
+ | === [[ej-users]] === | ||
+ | |||
+ | Исправлена опечатка при экспорте базы пользователей в формате CSV. | ||
+ | |||
+ | Добавлена защита от символа ';' при экспорте базы пользователей в формате CSV. В этом случае | ||
+ | поле заключается в кавычки ", а кавычки внутри текста удваиваются. | ||
+ | |||
+ | Исправлено падение программы при редактировании полей базы пользователей. | ||
+ | |||
+ | === [[cmp_bytes]] === | ||
+ | |||
+ | Исправлена ошибка, приводившая к падению программы. | ||
=== [[cmp_file]] === | === [[cmp_file]] === | ||
Line 7: | Line 203: | ||
Переменные окружения можно устанавливать с помощью конфигурационной переменной <tt>[[serve.cfg:problem:checker_env|checker_env]]</tt> | Переменные окружения можно устанавливать с помощью конфигурационной переменной <tt>[[serve.cfg:problem:checker_env|checker_env]]</tt> | ||
раздела описания задачи. | раздела описания задачи. | ||
+ | |||
+ | === [[style_archive]] === | ||
+ | |||
+ | Добавлена поддержка переменной окружения <tt>EJ_FORBIDDEN_NAMES</tt>. Переменная позволяет задавать список имен файлов, которые не должны находиться в архиве. Имена в списке разделяются запятой. Например, при приеме | ||
+ | архива для последующей компиляции с помощью make следуюет запретить нахождение в архиве исполняемого файла-цели компиляции. | ||
+ | |||
+ | Добавлена поддержка переменной окружения <tt>EJ_FORBIDDEN_SUFFIXES</tt>. Переменная позволяет задавать список суффиксов имен файлов, которые не должны находиться в архиве. Суффиксы в списке разделяются запятой. | ||
+ | Например, при приеме архива для последующей компиляции с помощью make следуюет запретить нахождение в архиве объектных файлов (суффикс .o). |
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).