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

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в...")
 
(...)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.10.2]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.10.2]]
  
Время выхода: ?? ?? 2023 г.
+
Время выхода: 25 марта 2023 г.
  
[[Изменения в версии 3.10.1|Предыдущая версия]]
+
[[Изменения в версии 3.10.1|Предыдущая версия]] [[Изменения в версии 3.10.3|Следующая версия]]
 +
 
 +
Улучшения в импорте задач и турниров из системы Polygon.
 +
 
 +
Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации
 +
контейнера с 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]] ===
 +
 
 +
Улучшения в поддержке unicode-символов двойной ширины (иероглифы,
 +
смайлики).
 +
За основу взят пакет rust
 +
[https://github.com/unicode-rs/unicode-width unicode-width].
 +
 
 +
Команда 'o' в списке пользователей турнира копирует ВСЮ информацию
 +
пользователя в другой турнир, то есть регистрирует пользователя в другом
 +
турнире, копирует все флаги регистрации и все поля данных пользователя.
 +
 
 +
Улучшена поддержка изменения размера экрана.
 +
 
 +
=== [[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]] ===
 +
 
 +
Добавлены конфигурационные параметры задачи
 +
<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/144 144].
 +
 
 +
Исправлена ошибка [https://github.com/blackav/ejudge/issues/145 145].
 +
 
 +
На странице участника турнира ссылка Settings перемещена вправо.
 +
 
 +
Небольшие изменения в странице участника виртуального турнира:
 +
убрана ссылка Start/Stop Virtual Contest.
 +
 
 +
На странице участника убрано отображение о количестве участников
 +
турнира online.
 +
 
 +
При нажатии кнопки "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,
 +
а часть тестов &mdash; вердикт 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>[[serve.cfg:problem:enable_dynamic_priority|enable_dynamic_priority]]</tt>.
 +
Если он установлен, то если пользователь отправляет посылки по задаче
 +
в то время, как другие его посылки по этой задаче находятся в состоянии
 +
тестирования, каждая следующая посылка будет иметь пониженный приоритет
 +
тестирования.
 +
 
 +
Добавлен конфигурационный параметр задачи
 +
<tt>[[serve.cfg:problem:enable_iframe_statement|enable_iframe_statement]]</tt>.
 +
 
 +
Исправлена ошибка [https://github.com/blackav/ejudge/issues/149 149].
 +
 
 +
Команды отправки посылки на тестирование не требуют обязательного
 +
указания языка программирования в случае задачи со
 +
специальной компиляцией
 +
(см. <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]] ===
 +
 
 +
Исправлена некорректная работа в случае, когда запуск интерактора был неудачен.
 +
 
 +
Поддерживаются проверяющие программы на testlib, выдающие
 +
частичный балл за тест (см. [https://github.com/blackav/ejudge/issues/96 96]).
 +
 
 +
IP-адрес хоста, на котором выполняется программа, сохраняется
 +
в файл статуса и отображается на странице очереди тестирования
 +
в интерфейсе администратора турнира.
 +
 
 +
=== [[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]] ===
 +
 
 +
Добавлена поддержка <tt>0_if_subset</tt> [https://github.com/blackav/ejudge/pull/147 MR #147].
 +
 
 +
Поддерживается
 +
частичный балл за тест (см. [https://github.com/blackav/ejudge/issues/96 96]).
 +
 
 +
=== Прочее ===
 +
 
 +
Системе исполнения dotnet разрешено использование системного
 +
вызова <tt>memfd_create</tt>.
 +
 
 +
Добавлены эталонные решения тестового турнира на языках kotlin и scala.
 +
 
 +
Используется библиотека libbacktrace для получения символических
 +
трасс стека в случае падения какого-нибудь компонента.

Latest revision as of 17:51, 13 May 2023

Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 3.10.2

Время выхода: 25 марта 2023 г.

Предыдущая версия Следующая версия

Улучшения в импорте задач и турниров из системы Polygon.

Улучшения в образе docker. Контейнер с ejudge ожидает завершения инициализации контейнера с mariadb.

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 для получения символических трасс стека в случае падения какого-нибудь компонента.