Difference between revisions of "Изменения в версии 3.10.2"
(...) |
(...) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.10.2]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.10.2]] | ||
− | Время выхода: | + | Время выхода: 25 марта 2023 г. |
− | [[Изменения в версии 3.10.1|Предыдущая версия]] | + | [[Изменения в версии 3.10.1|Предыдущая версия]] [[Изменения в версии 3.10.3|Следующая версия]] |
+ | |||
+ | Улучшения в импорте задач и турниров из системы Polygon. | ||
Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации | Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации | ||
контейнера с mariadb. | контейнера с mariadb. | ||
+ | |||
+ | === [[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 только | ||
+ | на хост-системе, не затрагивая докеризированные процессы. | ||
=== [[ejudge-edit-users]] === | === [[ejudge-edit-users]] === | ||
Улучшения в поддержке unicode-символов двойной ширины (иероглифы, | Улучшения в поддержке unicode-символов двойной ширины (иероглифы, | ||
− | смайлики). За основу взят пакет rust | + | смайлики). |
+ | За основу взят пакет rust | ||
+ | [https://github.com/unicode-rs/unicode-width unicode-width]. | ||
Команда 'o' в списке пользователей турнира копирует ВСЮ информацию | Команда 'o' в списке пользователей турнира копирует ВСЮ информацию | ||
Line 19: | Line 46: | ||
Улучшена поддержка изменения размера экрана. | Улучшена поддержка изменения размера экрана. | ||
− | === [[ej- | + | === [[ej-agent]] === |
+ | |||
+ | Добавлена опция <tt>--ip</tt>, в аргументе которой можно передать IP-адрес | ||
+ | клиента, использующего ej-agent. Опция не вызывает никаких действий, | ||
+ | но она остается в командной строке, и она видима в списке процессов, | ||
+ | получаемом командой ps. | ||
+ | |||
+ | По умолчанию передаваемые данные сжимаются с помощью gzip, а не lzma. | ||
+ | lzma работает очень медленно. | ||
+ | |||
+ | === [[ej-compile]] === | ||
− | + | У языка программирования поддерживается флаг | |
+ | <tt>[[serve.cfg:language:enable_custom|enable_custom]]</tt>. | ||
+ | Этот флаг используется в специальном языке программирования <tt>custom</tt>, | ||
+ | у которого нет фиксированного скрипта для компиляции программ на нем, | ||
+ | а который использует скрипт компиляции, заданный в условии задачи | ||
+ | в режиме [[специальная компиляция|специальной компиляции]]. | ||
=== [[ej-contests]] === | === [[ej-contests]] === | ||
− | Добавлены конфигурационные параметры <tt>custom_compile_cmd</tt> | + | Добавлены конфигурационные параметры задачи |
− | и <tt>custom_lang_name</tt>, которые используются для задания | + | <tt>[[serve.cfg:problem:custom_compile_cmd|custom_compile_cmd]]</tt> |
− | специального скрипта компиляции и имени языка программирования | + | и |
− | для задач со специальной компиляцией. | + | <tt>[[serve.cfg:problem:custom_lang_name|custom_lang_name]]</tt>, |
+ | которые используются для задания | ||
+ | [[специальная компиляция|специального скрипта компиляции]] | ||
+ | и имени языка программирования для задач со специальной компиляцией. | ||
Исправлена ошибка [https://github.com/blackav/ejudge/issues/142 142]. | Исправлена ошибка [https://github.com/blackav/ejudge/issues/142 142]. | ||
Line 40: | Line 85: | ||
Небольшие изменения в странице участника виртуального турнира: | Небольшие изменения в странице участника виртуального турнира: | ||
убрана ссылка Start/Stop Virtual Contest. | убрана ссылка Start/Stop Virtual Contest. | ||
+ | |||
+ | На странице участника убрано отображение о количестве участников | ||
+ | турнира online. | ||
При нажатии кнопки "Stop virtual contest" запрашивается | При нажатии кнопки "Stop virtual contest" запрашивается | ||
Line 61: | Line 109: | ||
(verdict_bits & RT_BIT) != 0 | (verdict_bits & RT_BIT) != 0 | ||
− | Добавлен конфигурационный параметр задачи <tt>enable_dynamic_priority</tt>. | + | Добавлен конфигурационный параметр задачи |
+ | <tt>[[serve.cfg:problem:enable_dynamic_priority|enable_dynamic_priority]]</tt>. | ||
Если он установлен, то если пользователь отправляет посылки по задаче | Если он установлен, то если пользователь отправляет посылки по задаче | ||
в то время, как другие его посылки по этой задаче находятся в состоянии | в то время, как другие его посылки по этой задаче находятся в состоянии | ||
Line 67: | Line 116: | ||
тестирования. | тестирования. | ||
− | Добавлен конфигурационный параметр задачи <tt>enable_iframe_statement</tt>. | + | Добавлен конфигурационный параметр задачи |
+ | <tt>[[serve.cfg:problem:enable_iframe_statement|enable_iframe_statement]]</tt>. | ||
Исправлена ошибка [https://github.com/blackav/ejudge/issues/149 149]. | Исправлена ошибка [https://github.com/blackav/ejudge/issues/149 149]. | ||
Line 73: | Line 123: | ||
Команды отправки посылки на тестирование не требуют обязательного | Команды отправки посылки на тестирование не требуют обязательного | ||
указания языка программирования в случае задачи со | указания языка программирования в случае задачи со | ||
− | специальной компиляцией (custom_compile_cmd). | + | специальной компиляцией |
+ | (см. <tt>[[serve.cfg:problem:custom_compile_cmd|custom_compile_cmd]]</tt>). | ||
+ | |||
+ | Команда <tt>[[API:priv:submit-run|priv-submit-run]]</tt> | ||
+ | поддерживает символическое имя языка программирования. | ||
− | + | === [[ej-polygon]] === | |
− | + | Поддерживается загрузка в турнир уже готового архива пакета задачи. | |
+ | |||
+ | Добавлен режим бинарных тестов. В этом случае у импортированных | ||
+ | задач проставляется флаг <tt>[[serve.cfg:problem:binary_input|binary_input]]</tt>. | ||
+ | |||
+ | Добавлен режим импорта условий задач в IFRAME. В этом случае | ||
+ | условие задачи в формате HTML копируется в каталог задачи в ejudge. | ||
+ | Генерируется условие задачи в файле statement.xml, которое | ||
+ | отображает HTML-условие из polygon внутри тега IFRAME. | ||
+ | |||
+ | Поддерживается работа с polygon с помощью polygon API. В этом | ||
+ | случае в интерфейсе импорта задачи или турнира из polygon | ||
+ | потребуется указать не логин и пароль, а ключ API (API key) и секретное | ||
+ | значение API (API secret). | ||
− | + | Добавлена опция <tt>ignore_main_solution</tt>, по которой основное решение | |
− | + | не добавляется в конфигурацию задачи в ejudge, и таким образом | |
− | + | команда "Check contests settings" не будет пытаться его скомпилировать. | |
=== [[ej-super-run]] === | === [[ej-super-run]] === | ||
Line 94: | Line 161: | ||
в интерфейсе администратора турнира. | в интерфейсе администратора турнира. | ||
− | === [[ | + | === [[ej-super-server]] === |
− | + | При редактировании настроек турнира флаг <tt>[[serve.cfg:problem:score_latest|score_latest]]</tt> | |
− | + | доступен и в режиме турнира olympiads | |
− | + | [https://github.com/blackav/ejudge/issues/143 143]: | |
− | + | === [[ej-users]] === | |
− | Добавлена | + | Добавлена команда COPY_ALL. |
− | |||
− | |||
− | |||
− | команда | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== [[gvaluer]] === | === [[gvaluer]] === | ||
Line 129: | Line 176: | ||
Поддерживается | Поддерживается | ||
− | частичный балл за тест (см. [https://github.com/blackav/ejudge/issues/ | + | частичный балл за тест (см. [https://github.com/blackav/ejudge/issues/96 96]). |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Прочее === | === Прочее === |
Latest revision as of 17:51, 13 May 2023
Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 3.10.2
Время выхода: 25 марта 2023 г.
Предыдущая версия Следующая версия
Улучшения в импорте задач и турниров из системы Polygon.
Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации контейнера с mariadb.
Contents
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 только на хост-системе, не затрагивая докеризированные процессы.
ejudge-edit-users
Улучшения в поддержке unicode-символов двойной ширины (иероглифы, смайлики). За основу взят пакет rust unicode-width.
Команда 'o' в списке пользователей турнира копирует ВСЮ информацию пользователя в другой турнир, то есть регистрирует пользователя в другом турнире, копирует все флаги регистрации и все поля данных пользователя.
Улучшена поддержка изменения размера экрана.
ej-agent
Добавлена опция --ip, в аргументе которой можно передать IP-адрес клиента, использующего ej-agent. Опция не вызывает никаких действий, но она остается в командной строке, и она видима в списке процессов, получаемом командой ps.
По умолчанию передаваемые данные сжимаются с помощью gzip, а не lzma. lzma работает очень медленно.
ej-compile
У языка программирования поддерживается флаг enable_custom. Этот флаг используется в специальном языке программирования custom, у которого нет фиксированного скрипта для компиляции программ на нем, а который использует скрипт компиляции, заданный в условии задачи в режиме специальной компиляции.
ej-contests
Добавлены конфигурационные параметры задачи custom_compile_cmd и custom_lang_name, которые используются для задания специального скрипта компиляции и имени языка программирования для задач со специальной компиляцией.
Исправлена ошибка 142.
Исправлена ошибка 144.
Исправлена ошибка 145.
На странице участника турнира ссылка Settings перемещена вправо.
Небольшие изменения в странице участника виртуального турнира: убрана ссылка Start/Stop Virtual Contest.
На странице участника убрано отображение о количестве участников турнира online.
При нажатии кнопки "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-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" не будет пытаться его скомпилировать.
ej-super-run
Исправлена некорректная работа в случае, когда запуск интерактора был неудачен.
Поддерживаются проверяющие программы на testlib, выдающие частичный балл за тест (см. 96).
IP-адрес хоста, на котором выполняется программа, сохраняется в файл статуса и отображается на странице очереди тестирования в интерфейсе администратора турнира.
ej-super-server
При редактировании настроек турнира флаг score_latest доступен и в режиме турнира olympiads 143:
ej-users
Добавлена команда COPY_ALL.
gvaluer
Добавлена поддержка 0_if_subset MR #147.
Поддерживается частичный балл за тест (см. 96).
Прочее
Системе исполнения dotnet разрешено использование системного вызова memfd_create.
Добавлены эталонные решения тестового турнира на языках kotlin и scala.
Используется библиотека libbacktrace для получения символических трасс стека в случае падения какого-нибудь компонента.