Difference between revisions of "Изменения в версии 3.10.2"
 (Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в...")  | 
				 (...)  | 
				||
| Line 4: | Line 4: | ||
[[Изменения в версии 3.10.1|Предыдущая версия]]  | [[Изменения в версии 3.10.1|Предыдущая версия]]  | ||
| + | |||
| + | Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации  | ||
| + | контейнера с mariadb.  | ||
| + | |||
| + | === [[ejudge-edit-users]] ===  | ||
| + | |||
| + | Улучшения в поддержке unicode-символов двойной ширины (иероглифы,  | ||
| + | смайлики). За основу взят пакет rust: https://github.com/unicode-rs/unicode-width  | ||
| + | |||
| + | Команда 'o' в списке пользователей турнира копирует ВСЮ информацию  | ||
| + | пользователя в другой турнир, то есть регистрирует пользователя в другом  | ||
| + | турнире, копирует все флаги регистрации и все поля данных пользователя.  | ||
| + | |||
| + | Улучшена поддержка изменения размера экрана.  | ||
| + | |||
| + | === [[ej-users]] ===  | ||
| + | |||
| + | Добавлена команда COPY_ALL.  | ||
| + | |||
| + | === [[ej-contests]] ===  | ||
| + | |||
| + | Добавлены конфигурационные параметры <tt>custom_compile_cmd</tt>  | ||
| + | и <tt>custom_lang_name</tt>, которые используются для задания  | ||
| + | специального скрипта компиляции и имени языка программирования  | ||
| + | для задач со специальной компиляцией.  | ||
| + | |||
| + | Исправлена ошибка [https://github.com/blackav/ejudge/issues/142 142].  | ||
| + | |||
| + | Исправлена ошибка [https://github.com/blackav/ejudge/issues/144 144].  | ||
| + | |||
| + | Исправлена ошибка [https://github.com/blackav/ejudge/issues/145 145].  | ||
| + | |||
| + | На странице участника турнира ссылка Settings перемещена вправо.  | ||
| + | |||
| + | Небольшие изменения в странице участника виртуального турнира:  | ||
| + | убрана ссылка Start/Stop Virtual Contest.  | ||
| + | |||
| + | При нажатии кнопки "Stop virtual contest" запрашивается  | ||
| + | подтверждение см. [https://github.com/blackav/ejudge/issues/71 71].  | ||
| + | |||
| + | Исправлена ошибка [https://github.com/blackav/ejudge/issues/51 51]:  | ||
| + | переименованы столбцы, чтобы при генерации CSV и импорте они  | ||
| + | имели одни и те же имена.  | ||
| + | |||
| + | В базу данных посылок добавлено поле <tt>verdict_bits</tt>,  | ||
| + | в котором хранится множество вердиктов тестирования на тестах  | ||
| + | для этой посылки. Например, если при тестировании часть тестов  | ||
| + | получила вердикт OK, часть тестов получила вердикт Wrong Answer,  | ||
| + | а часть тестов — вердикт Time limit exceeded,  | ||
| + | поле verdict_bits будет хранить значение  | ||
| + |  RUN_OK_BIT | RUN_WRONG_ANSWER_ERR_BIT | RUN_TIME_LIMIT_ERR_BIT  | ||
| + | |||
| + | В выражении фильтра посылок поддерживается поле <tt>verdict_bits</tt>  | ||
| + | и символические константы для битов вердикта. Например,  | ||
| + | в выражении фильтра можно написать:  | ||
| + |  (verdict_bits & RT_BIT) != 0  | ||
| + | |||
| + | Добавлен конфигурационный параметр задачи <tt>enable_dynamic_priority</tt>.  | ||
| + | Если он установлен, то если пользователь отправляет посылки по задаче  | ||
| + | в то время, как другие его посылки по этой задаче находятся в состоянии  | ||
| + | тестирования, каждая следующая посылка будет иметь пониженный приоритет  | ||
| + | тестирования.  | ||
| + | |||
| + | Добавлен конфигурационный параметр задачи <tt>enable_iframe_statement</tt>.  | ||
| + | |||
| + | Исправлена ошибка [https://github.com/blackav/ejudge/issues/149 149].  | ||
| + | |||
| + | Команды отправки посылки на тестирование не требуют обязательного  | ||
| + | указания языка программирования в случае задачи со  | ||
| + | специальной компиляцией (custom_compile_cmd).  | ||
| + | |||
| + | Команда priv-submit-run поддерживает символическое имя языка программирования.  | ||
| + | |||
| + | === [[ej-super-server]] ===  | ||
| + | |||
| + | При редактировании настроек турнира флаг <tt>score_latest</tt>  | ||
| + | доступен и в режиме турнира olympiads  | ||
| + | [https://github.com/blackav/ejudge/issues/143 143]:  | ||
| + | |||
| + | === [[ej-super-run]] ===  | ||
| + | |||
| + | Исправлена некорректная работа в случае, когда запуск интерактора был неудачен.  | ||
| + | |||
| + | Поддерживаются проверяющие программы на testlib, выдающие  | ||
| + | частичный балл за тест (см. [https://github.com/blackav/ejudge/issues/96 96]).  | ||
| + | |||
| + | IP-адрес хоста, на котором выполняется программа, сохраняется  | ||
| + | в файл статуса и отображается на странице очереди тестирования  | ||
| + | в интерфейсе администратора турнира.  | ||
| + | |||
| + | === [[ejudge-control]] ===  | ||
| + | |||
| + | Команда stop выполняет остановку компонентов по очереди, дожидаясь  | ||
| + | успеха или неудачи при остановке каждого компонента. При неудаче  | ||
| + | одного компонента последующие не останавливаются.  | ||
| + | |||
| + | Компоненты останавливаются в следующем порядке: ej-compile, ej-super-run, ej-super-server, ej-contests, ej-jobs, ej-users.  | ||
| + | |||
| + | Добавлена опция <tt>--timeout</tt>, ограничивающая тайм-аут при остановке  | ||
| + | компонентов.  | ||
| + | |||
| + | Добавлена опция <tt>--date-suffix</tt>. Если она указана, то  | ||
| + | команда <tt>rotate</tt> использует в качестве суффикса старых  | ||
| + | лог-файлов текущую дату в формате YYYYMMDD.  | ||
| + | |||
| + | При старте выводится версия всех стартующих компонентов.  | ||
| + | |||
| + | Программа взаимодействует только с компонентами ejudge в текущем  | ||
| + | пространстве идентификаторов процесса. То есть, например,  | ||
| + | если ejudge запущен в докер-контейнере и на хост системе,  | ||
| + | команда <tt>ejudge-control stop</tt> остановит ejudge только  | ||
| + | на хост-системе, не затрагивая докеризированные процессы.  | ||
| + | |||
| + | === [[ej-compile]] ===  | ||
| + | |||
| + | У языка программирования поддерживается флаг <tt>enable_custom</tt>.  | ||
| + | Этот флаг используется в специальном языке программирования <tt>custom</tt>,  | ||
| + | у которого нет фиксированного скрипта для компиляции программ на нем,  | ||
| + | а который использует скрипт компиляции, заданный в условии задачи.  | ||
| + | |||
| + | === [[gvaluer]] ===  | ||
| + | |||
| + | Добавлена поддержка <tt>0_if_subset</tt> [https://github.com/blackav/ejudge/pull/147 MR #147].  | ||
| + | |||
| + | Поддерживается   | ||
| + | частичный балл за тест (см. [https://github.com/blackav/ejudge/issues/147 147]).  | ||
| + | |||
| + | === [[ej-agent]] ===  | ||
| + | |||
| + | Добавлена опция <tt>--ip</tt>, в аргументе которой можно передать IP-адрес  | ||
| + | клиента, использующего ej-agent. Опция не вызывает никаких действий,  | ||
| + | но она остается в командной строке, и она видима в списке процессов,  | ||
| + | получаемом командой ps.  | ||
| + | |||
| + | По умолчанию передаваемые данные сжимаются с помощью gzip, а не lzma.  | ||
| + | lzma работает очень медленно.  | ||
| + | |||
| + | === [[ej-polygon]] ===  | ||
| + | |||
| + | Поддерживается загрузка в турнир уже готового архива пакета задачи.  | ||
| + | |||
| + | Добавлен режим бинарных тестов. В этом случае у импортированных  | ||
| + | задач проставляется флаг <tt>binary_input</tt>.  | ||
| + | |||
| + | Добавлен режим импорта условий задач в IFRAME. В этом случае  | ||
| + | условие задачи в формате HTML копируется в каталог задачи в ejudge.  | ||
| + | Генерируется условие задачи в файле statement.xml, которое  | ||
| + | отображает HTML-условие из polygon внутри тега IFRAME.  | ||
| + | |||
| + | Поддерживается работа с polygon с помощью polygon API. В этом  | ||
| + | случае в интерфейсе импорта задачи или турнира из polygon  | ||
| + | потребуется указать не логин и пароль, а ключ API (API key) и секретное  | ||
| + | значение API (API secret).  | ||
| + | |||
| + | Добавлена опция ignore_main_solution, по которой основное решение  | ||
| + | не добавляется в конфигурацию задачи в ejudge, и таким образом  | ||
| + | команда Check contests settings не будет пытаться его скомпилировать.  | ||
| + | |||
| + | === Прочее ===  | ||
| + | |||
| + | Системе исполнения dotnet разрешено использование системного  | ||
| + | вызова <tt>memfd_create</tt>.  | ||
| + | |||
| + | Добавлены эталонные решения тестового турнира на языках kotlin и scala.  | ||
| + | |||
| + | Используется библиотека libbacktrace для получения символических  | ||
| + | трасс стека в случае падения какого-нибудь компонента.  | ||
Revision as of 05:36, 20 March 2023
Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 3.10.2
Время выхода: ?? ?? 2023 г.
Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации контейнера с mariadb.
Contents
ejudge-edit-users
Улучшения в поддержке unicode-символов двойной ширины (иероглифы, смайлики). За основу взят пакет rust: https://github.com/unicode-rs/unicode-width
Команда 'o' в списке пользователей турнира копирует ВСЮ информацию пользователя в другой турнир, то есть регистрирует пользователя в другом турнире, копирует все флаги регистрации и все поля данных пользователя.
Улучшена поддержка изменения размера экрана.
ej-users
Добавлена команда COPY_ALL.
ej-contests
Добавлены конфигурационные параметры custom_compile_cmd и custom_lang_name, которые используются для задания специального скрипта компиляции и имени языка программирования для задач со специальной компиляцией.
Исправлена ошибка 142.
Исправлена ошибка 144.
Исправлена ошибка 145.
На странице участника турнира ссылка Settings перемещена вправо.
Небольшие изменения в странице участника виртуального турнира: убрана ссылка Start/Stop Virtual Contest.
При нажатии кнопки "Stop virtual contest" запрашивается подтверждение см. 71.
Исправлена ошибка 51: переименованы столбцы, чтобы при генерации CSV и импорте они имели одни и те же имена.
В базу данных посылок добавлено поле verdict_bits, в котором хранится множество вердиктов тестирования на тестах для этой посылки. Например, если при тестировании часть тестов получила вердикт OK, часть тестов получила вердикт Wrong Answer, а часть тестов — вердикт Time limit exceeded, поле verdict_bits будет хранить значение
RUN_OK_BIT | RUN_WRONG_ANSWER_ERR_BIT | RUN_TIME_LIMIT_ERR_BIT
В выражении фильтра посылок поддерживается поле verdict_bits и символические константы для битов вердикта. Например, в выражении фильтра можно написать:
(verdict_bits & RT_BIT) != 0
Добавлен конфигурационный параметр задачи enable_dynamic_priority. Если он установлен, то если пользователь отправляет посылки по задаче в то время, как другие его посылки по этой задаче находятся в состоянии тестирования, каждая следующая посылка будет иметь пониженный приоритет тестирования.
Добавлен конфигурационный параметр задачи enable_iframe_statement.
Исправлена ошибка 149.
Команды отправки посылки на тестирование не требуют обязательного указания языка программирования в случае задачи со специальной компиляцией (custom_compile_cmd).
Команда priv-submit-run поддерживает символическое имя языка программирования.
ej-super-server
При редактировании настроек турнира флаг score_latest доступен и в режиме турнира olympiads 143:
ej-super-run
Исправлена некорректная работа в случае, когда запуск интерактора был неудачен.
Поддерживаются проверяющие программы на testlib, выдающие частичный балл за тест (см. 96).
IP-адрес хоста, на котором выполняется программа, сохраняется в файл статуса и отображается на странице очереди тестирования в интерфейсе администратора турнира.
ejudge-control
Команда stop выполняет остановку компонентов по очереди, дожидаясь успеха или неудачи при остановке каждого компонента. При неудаче одного компонента последующие не останавливаются.
Компоненты останавливаются в следующем порядке: ej-compile, ej-super-run, ej-super-server, ej-contests, ej-jobs, ej-users.
Добавлена опция --timeout, ограничивающая тайм-аут при остановке компонентов.
Добавлена опция --date-suffix. Если она указана, то команда rotate использует в качестве суффикса старых лог-файлов текущую дату в формате YYYYMMDD.
При старте выводится версия всех стартующих компонентов.
Программа взаимодействует только с компонентами ejudge в текущем пространстве идентификаторов процесса. То есть, например, если ejudge запущен в докер-контейнере и на хост системе, команда ejudge-control stop остановит ejudge только на хост-системе, не затрагивая докеризированные процессы.
ej-compile
У языка программирования поддерживается флаг enable_custom. Этот флаг используется в специальном языке программирования custom, у которого нет фиксированного скрипта для компиляции программ на нем, а который использует скрипт компиляции, заданный в условии задачи.
gvaluer
Добавлена поддержка 0_if_subset MR #147.
Поддерживается частичный балл за тест (см. 147).
ej-agent
Добавлена опция --ip, в аргументе которой можно передать IP-адрес клиента, использующего ej-agent. Опция не вызывает никаких действий, но она остается в командной строке, и она видима в списке процессов, получаемом командой ps.
По умолчанию передаваемые данные сжимаются с помощью gzip, а не lzma. lzma работает очень медленно.
ej-polygon
Поддерживается загрузка в турнир уже готового архива пакета задачи.
Добавлен режим бинарных тестов. В этом случае у импортированных задач проставляется флаг binary_input.
Добавлен режим импорта условий задач в IFRAME. В этом случае условие задачи в формате HTML копируется в каталог задачи в ejudge. Генерируется условие задачи в файле statement.xml, которое отображает HTML-условие из polygon внутри тега IFRAME.
Поддерживается работа с polygon с помощью polygon API. В этом случае в интерфейсе импорта задачи или турнира из polygon потребуется указать не логин и пароль, а ключ API (API key) и секретное значение API (API secret).
Добавлена опция ignore_main_solution, по которой основное решение не добавляется в конфигурацию задачи в ejudge, и таким образом команда Check contests settings не будет пытаться его скомпилировать.
Прочее
Системе исполнения dotnet разрешено использование системного вызова memfd_create.
Добавлены эталонные решения тестового турнира на языках kotlin и scala.
Используется библиотека libbacktrace для получения символических трасс стека в случае падения какого-нибудь компонента.