Difference between revisions of "Изменения в версии 2.3.20"

From EjudgeWiki
(ejudge-contests-cmd)
 
(16 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
Добавлен элемент <tt>[[contest.xml:open_time|&lt;open_time&gt;]]</tt>, позволяющий задавать время открытия виртуального турнира.
 
Добавлен элемент <tt>[[contest.xml:open_time|&lt;open_time&gt;]]</tt>, позволяющий задавать время открытия виртуального турнира.
  
Добавлен элемент <tt>[[contest.xml:close_time|&lt;close_time&gt;]]</tt>, позволяющий задавать время открытия виртуального турнира.
+
Добавлен элемент <tt>[[contest.xml:close_time|&lt;close_time&gt;]]</tt>, позволяющий задавать время закрытия виртуального турнира.
  
 
Добавлен атрибут <tt>checkbox</tt> элемента <tt>[[contest.xml:field|&lt;field&gt;]]</tt>. Если значение атрибута установлено
 
Добавлен атрибут <tt>checkbox</tt> элемента <tt>[[contest.xml:field|&lt;field&gt;]]</tt>. Если значение атрибута установлено
Line 30: Line 30:
 
для шаблона имен рабочих каталогов тестирования.
 
для шаблона имен рабочих каталогов тестирования.
  
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:global:ignore_prev_ac|ignore_prev_ac]]</tt>. Если переменная установлена в положительное
+
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:ignore_prev_ac|ignore_prev_ac]]</tt>. Если переменная установлена в положительное
 
значение, то если очередная посылка пользователя по задаче получает статус "AC", то статус предыдущих посылок пользователя по этой задаче
 
значение, то если очередная посылка пользователя по задаче получает статус "AC", то статус предыдущих посылок пользователя по этой задаче
 
меняется на IG. Эта возможность полезна, когда решения задач просматриваются и утверждаются проверяющим, и позволяет избежать накопления посылок
 
меняется на IG. Эта возможность полезна, когда решения задач просматриваются и утверждаются проверяющим, и позволяет избежать накопления посылок
Line 41: Line 41:
 
для шаблона имен рабочих каталогов тестирования.
 
для шаблона имен рабочих каталогов тестирования.
  
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:global:disable_stderr|disable_stderr]]</tt>. Если переменная установлена в положительное
+
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:disable_stderr|disable_stderr]]</tt>. Если переменная установлена в положительное
 
значение, то для тестируемой программы запрещается вывод в stderr, то есть если программа что-либо вывела в stderr, вывод программы в stdout или в
 
значение, то для тестируемой программы запрещается вывод в stderr, то есть если программа что-либо вывела в stderr, вывод программы в stdout или в
 
выходной файл не проверяется, а посылке присваивается статус Presentation Error.
 
выходной файл не проверяется, а посылке присваивается статус Presentation Error.
  
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:global:normalization|normalization]]</tt>. Переменная позволяет задать тип преобразования
+
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:normalization|normalization]]</tt>. Переменная позволяет задать тип преобразования
 
текстового файла теста при сохранении теста при использовании веб-интерфейса редактирования тестов.
 
текстового файла теста при сохранении теста при использовании веб-интерфейса редактирования тестов.
  
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:global:lang_compiler_env|lang_compiler_env]]</tt>. Переменная позволяет задать переменные
+
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:lang_compiler_env|lang_compiler_env]]</tt>. Переменная позволяет задать переменные
 
окружения для компиляции данной задачи.
 
окружения для компиляции данной задачи.
  
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:global:solution_src|solution_src]]</tt>. Переменная позволяет задать имя исходного файла
+
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:problem:solution_src|solution_src]]</tt>. Переменная позволяет задать имя исходного файла
 
с решением задачи в случае, когда полный исходный текст программы для тестирования формируется добавлением хедера или футера.
 
с решением задачи в случае, когда полный исходный текст программы для тестирования формируется добавлением хедера или футера.
  
Добавлена конфигурационная переменная задачи <tt>[[serve.cfg:global:solution_cmd|solution_cmd]]</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 (Ticket #66).
+
Добавлена поддержка команды [[ejudge-contests-cmd: unload-2|unload-2]] (Ticket #66).
  
 
=== [[ejudge-edit-users]] ===
 
=== [[ejudge-edit-users]] ===
Line 73: 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 107: Line 131:
 
архива и у скачиваемого файла формируется корректный суффикс (.tar, .tar.gz, .tar.bz2)
 
архива и у скачиваемого файла формируется корректный суффикс (.tar, .tar.gz, .tar.bz2)
 
(Ticket #65).
 
(Ticket #65).
 +
 +
Если XML-файл с условием задачи был некорректно сформирован, то турнир все равно будет загружен
 +
и будет работать, но вместо соответствующего условия будет отображаться сообщение об ошибке.
 +
В предыдущих версиях турнир не грузился, если хотя бы один XML-файл с условием задачи содержал
 +
ошибку.
 +
 +
При рассылке писем с уведомлением о поступлении clar, о возникновении ситуации CF или суточной статистики
 +
используется значение элемента <register_email> глобального конфигурационного файла ejudge.cfg,
 +
если элемент <register_email> не задан в конфигурационном файле турнира (Ticket #68).
 +
 +
Поддерживаются форматные преобразования %U0 ... %U9 для выода полей field0 ... field9.
  
 
=== [[ej-make-archive]] ===
 
=== [[ej-make-archive]] ===
  
 
Новая программа для подготовки архивов рабочих каталогов для тестирования.
 
Новая программа для подготовки архивов рабочих каталогов для тестирования.
 +
 +
=== [[ej-run]] ===
 +
 +
Исправлена ошибка, которая могла приводить к падению программы.
 +
 +
Исправлена ошибка, из-за которой при некоторых условиях вывод проверяющей программы накапливался
 +
от теста к тесту, а не очищался.
 +
 +
Эталонный рабочий каталог тестируемой программы теперь должен иметь суффикс, задаваемый
 +
конфигурационными переменными tgzdir_sfx или tgzdir_pat. В предыдущих версиях эталонный
 +
рабочий каталог не имел никакого суффикса, то есть назывался по номеру теста.
 +
 +
При запуске программ на тестирование жесткий лимит процессорного времени устанавливается
 +
на 1 секунду больше параметра time_limit ограничения времени. Таким образом, например,
 +
если TL по задаче установлен в 1 секунду, то тестируемая программа может работать до
 +
2 секунд процессорного времени. Однако, если программа работает более 1 секунды,
 +
то для все равно будет установлен статус TL. Если программа проработала 1.5 секунды
 +
и завершилась нормально, то все равно запуск получит статус TL.
  
 
=== [[ej-super-server]] ===
 
=== [[ej-super-server]] ===
Line 116: Line 169:
 
Исправлено падение программы при установке флагов регистрации на турнир при редактировании базы данных
 
Исправлено падение программы при установке флагов регистрации на турнир при редактировании базы данных
 
пользователей.
 
пользователей.
 +
 +
Поддерживается редактирование новых элементов XML-файла конфигурации турнира и новых конфигурационных
 +
переменных файла 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

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).