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

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в...")
 
(...)
Line 4: Line 4:
  
 
[[Изменения в версии 3.11.0|Предыдущая версия]]
 
[[Изменения в версии 3.11.0|Предыдущая версия]]
 +
 +
=== Основные улучшения ===
 +
 +
Полный список закрытых ошибок и улучшений доступен
 +
[https://github.com/blackav/ejudge/milestone/5?closed=1 здесь].
 +
 +
=== [[ej-compile]] ===
 +
 +
Добавлен конфигурационный параметр
 +
<code>[[serve.cfg:language:compiler_container_options|compiler_container_options]]</code>, который позволяет задать настройки контейнеризации
 +
для запуска транслятора данного языка программирования.
 +
Обратите внимание, что параметр
 +
<code>[[serve.cfg:language:container_options|container_options]]</code>
 +
применяется для запуска программ, написанных на данном языке
 +
программирования.
 +
 +
Добавлен глобальный конфигурационный параметр
 +
<code>[[serve.cfg:global:preserve_line_numbers|preserve_line_numbers]]</code>,
 +
который включает режим сохранения номеров строк в программах на скриптовых
 +
языках.
 +
 +
Добавлен конфигурационный параметр языка программирования
 +
<code>[[serve.cfg:language:preserve_line_numbers|preserve_line_numbers]]</code>,
 +
который включает или выключает режим сохранения номеров строк
 +
в программах на скриптовых языках для конкретного языка программирования.
 +
 +
Добавлена поддержка для языка SQL в реализации Postgres
 +
(см. [https://github.com/blackav/ejudge/issues/222 Issue #222]).
 +
 +
Для языка rust поддерживается сборка с помощью cargo.
 +
 +
=== [[ej-contests]] ===
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:plugin_entry_name|plugin_entry_name]]</code>.
 +
Этот параметр позволяет задать имя точки входа в плагин задачи.
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:statement_ignore_ip|statement_ignore_ip]]</code>.
 +
Этот параметр разрешает показ условия задачи без ограничения на
 +
IP-адрес.
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:enable_src_for_testing|enable_src_for_testing]]</code>.
 +
Этот параметр включает передачу исходного кода тестируемой посылки
 +
в программу [[ej-super-run]].
 +
 +
При просмотре исходного кода посылок, сданных с помощью интеграции
 +
с системами контроля версий, добавлена ссылка на соответствующий
 +
коммит в системе контроля версий
 +
(см. [https://github.com/blackav/ejudge/issues/263 Issue #263]).
 +
 +
Исправлена ошибка, которая приводила к потере пакетов,
 +
содержащих результаты компиляции или тестирования, если в конфигурационном
 +
файле соответствующего турнира содержалась ошибка,
 +
которая приводила к невозможности загрузки турнира в память
 +
(см. [https://github.com/blackav/ejudge/issues/267 Issue #267]).
 +
 +
При экспорте архива с посылками добавлено экранирование
 +
"проблемных" символов в названии задачи
 +
(см. [https://github.com/blackav/ejudge/issues/244 Issue #244]).
 +
 +
Добавлена возможность скачивания "скрытых" посылок
 +
(см. [https://github.com/blackav/ejudge/issues/246 Issue #246]).
 +
 +
Исправлена ошибка утечки файловых дескрипторов при просмотре
 +
очереди посылок
 +
(см. [https://github.com/blackav/ejudge/issues/266 Issue #266]).
 +
 +
Исправлена ошибка двойного освобождения памяти
 +
(см. [https://github.com/blackav/ejudge/issues/261 Issue #261]).
 +
 +
Для посылок в формате Microsoft Office 2007 и выше
 +
правильно определяется mime type
 +
(см. [https://github.com/blackav/ejudge/issues/257 Issue #257]).
 +
 +
В лог-файл выводится больше информации о действиях
 +
привилегированных пользователей
 +
(см. [https://github.com/blackav/ejudge/issues/255 Issue #255]).
 +
 +
Исправлена ошибка неправильного значения поля <code>user_score</code>
 +
в XML-протоколе тестирования.
 +
(см. [https://github.com/blackav/ejudge/issues/237 Issue #237]).
 +
 +
Реализована поддержка динамической генерации условия задачи
 +
(см. [https://github.com/blackav/ejudge/issues/231 Issue #231]).
 +
 +
=== [[ej-jobs]] ===
 +
 +
Поддерживается регистрация в ejudge и на турнир с помощью Telegram.
 +
Для этого добавлен атрибут
 +
<code>[[ejudge.xml:config:enable_telegram_registration|enable_telegram_registration]]</code> в конфигурационный файл <code>[[ejudge.xml]]</code>.
 +
 +
При аутентификации OAUTH или Telegram корректно поддерживаются
 +
свойства <code>user_contest</code>
 +
(см. [https://github.com/blackav/ejudge/issues/260 Issue #260]).
 +
 +
Бот Telegram поддерживает выдачу паролей с помощью команды <code>password</code>
 +
(см. [https://github.com/blackav/ejudge/issues/238 Issue #238]).
 +
 +
=== [[ej-polygon]] ===
 +
 +
Улучшения импорта из системы polygon
 +
(см. [https://github.com/blackav/ejudge/issues/227 Issue #227]):
 +
 +
* при импорте создается statement.xml, который включает условие задачи в HTML-формате с помощью iframe
 +
* по умолчанию используется polygon API
 +
* по умолчанию у импортированных задач игнорируется главное решение
 +
* поддерживается импорт задач с правами доступа OWNER
 +
 +
=== [[ej-suid-container]] ===
 +
 +
Улучшена поддержка языка java и других jvm-языков. Им для работы
 +
нужно актуальное содержимое каталога <code>/etc/java</code>,
 +
поэтому этот каталог монтируется с хост-системы
 +
(см. [https://github.com/blackav/ejudge/issues/276 Issue #276]).
 +
 +
Поддерживается эвристическое определение ошибок [[Memory-Limit Exceeded]]
 +
и [[Security Violation]].
 +
 +
Улучшена изоляция запускаемых решений.
 +
 +
=== [[ej-super-run]] ===
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:disable_vm_size_limit|disable_vm_size_limit]]</code>.
 +
Этот параметр снимает ограничение на размер виртуального адресного пространства.
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:ignore_term_signal|ignore_term_signal]]</code>.
 +
Этот параметр включает игнорирование аварийного завершения тестируемой
 +
программы по сигналу.
 +
 +
Добавлен конфигурационный параметр языка программирования
 +
<code>[[serve.cfg:problem:enable_ejudge_env|enable_ejudge_env]]</code>.
 +
Этот параметр включает передачу различных параметров тестирования
 +
в тестируемую программу с помощью переменных окружения.
 +
 +
Добавлен конфигурационный параметр языка программирования
 +
<code>[[serve.cfg:language:run_env_file|run_env_file]]</code>.
 +
Этот параметр позволяет задать имя файла с переменными окружения,
 +
которые будут переданы в тестируемую программу.
 +
 +
Добавлен конфигурационный параметр языка программирования
 +
<code>[[serve.cfg:language:clean_up_cmd|clean_up_cmd]]</code>.
 +
Этот параметр позволяет задать имя программы, которая будет
 +
выполняться после тестирования программы на данном языке,
 +
и задача которой корректно очистить окружение.
 +
 +
Добавлен конфигурационный параметр языка программирования
 +
<code>[[serve.cfg:language:clean_up_env_file|clean_up_env_file]]</code>.
 +
Этот параметр позволяет задать имя файла с переменными окружения,
 +
которые будут переданы в программу очистки окружения.
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:test_generator_cmd|test_generator_cmd]]</code>.
 +
Он позволяет задать программу для генерации тестовых данных "на лету".
 +
 +
Добавлен конфигурационный параметр задачи
 +
<code>[[serve.cfg:problem:test_generator_env|test_generator_env]]</code>.
 +
Он позволяет задать переменные окружения для программы генерации
 +
тестовых данных на лету.
 +
 +
Добавлено эвристическое определение ошибки [[Memory-Limit Exceeded]]
 +
при выполнения программ в контейнере
 +
(см. [https://github.com/blackav/ejudge/issues/221 Issue #221]).
 +
 +
Исправлена ошибка, заключающаяся в том, что слишком большой
 +
файл стандартного потока вывода или стандартного потока ошибок
 +
не добавлялся в протокол тестирования. Теперь файл обрезается
 +
до максимально допустимого размера
 +
(см. [https://github.com/blackav/ejudge/issues/240 Issue #240]).
 +
 +
В запускаемые программы передаётся переменная окружения
 +
<code>EJUDGE_SUPER_RUN_SERIAL</code>.
 +
 +
=== [[ej-super-server]] ===
 +
 +
При операции "Check contests settings" поддерживается конфигурационный
 +
параметр задачи
 +
<code>[[serve.cfg:problem:problem_dir|problem_dir]]</code>.
 +
Таким образом, эта операция работает, когда задачи не находятся
 +
в каталоге турнира
 +
(см. [https://github.com/blackav/ejudge/issues/265 Issue #265]).
 +
 +
=== [[.inf-файлы]] ===
 +
 +
Добавлен параметр <code>ignore_term_signal</code> для игнорирования
 +
аварийного завершения тестируемой программы по сигналу на данном тесте.
 +
 +
=== [[cmp_binary]] ===
 +
 +
Новая стандартная проверяющая программа, которая сравнивает
 +
заданный файл в рабочем каталоге тестируемой программы
 +
после её завершения и эталонный файл с ответом.

Revision as of 22:29, 28 December 2023

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

Время выхода: TBA г.

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

Основные улучшения

Полный список закрытых ошибок и улучшений доступен здесь.

ej-compile

Добавлен конфигурационный параметр compiler_container_options, который позволяет задать настройки контейнеризации для запуска транслятора данного языка программирования. Обратите внимание, что параметр container_options применяется для запуска программ, написанных на данном языке программирования.

Добавлен глобальный конфигурационный параметр preserve_line_numbers, который включает режим сохранения номеров строк в программах на скриптовых языках.

Добавлен конфигурационный параметр языка программирования preserve_line_numbers, который включает или выключает режим сохранения номеров строк в программах на скриптовых языках для конкретного языка программирования.

Добавлена поддержка для языка SQL в реализации Postgres (см. Issue #222).

Для языка rust поддерживается сборка с помощью cargo.

ej-contests

Добавлен конфигурационный параметр задачи plugin_entry_name. Этот параметр позволяет задать имя точки входа в плагин задачи.

Добавлен конфигурационный параметр задачи statement_ignore_ip. Этот параметр разрешает показ условия задачи без ограничения на IP-адрес.

Добавлен конфигурационный параметр задачи enable_src_for_testing. Этот параметр включает передачу исходного кода тестируемой посылки в программу ej-super-run.

При просмотре исходного кода посылок, сданных с помощью интеграции с системами контроля версий, добавлена ссылка на соответствующий коммит в системе контроля версий (см. Issue #263).

Исправлена ошибка, которая приводила к потере пакетов, содержащих результаты компиляции или тестирования, если в конфигурационном файле соответствующего турнира содержалась ошибка, которая приводила к невозможности загрузки турнира в память (см. Issue #267).

При экспорте архива с посылками добавлено экранирование "проблемных" символов в названии задачи (см. Issue #244).

Добавлена возможность скачивания "скрытых" посылок (см. Issue #246).

Исправлена ошибка утечки файловых дескрипторов при просмотре очереди посылок (см. Issue #266).

Исправлена ошибка двойного освобождения памяти (см. Issue #261).

Для посылок в формате Microsoft Office 2007 и выше правильно определяется mime type (см. Issue #257).

В лог-файл выводится больше информации о действиях привилегированных пользователей (см. Issue #255).

Исправлена ошибка неправильного значения поля user_score в XML-протоколе тестирования. (см. Issue #237).

Реализована поддержка динамической генерации условия задачи (см. Issue #231).

ej-jobs

Поддерживается регистрация в ejudge и на турнир с помощью Telegram. Для этого добавлен атрибут enable_telegram_registration в конфигурационный файл ejudge.xml.

При аутентификации OAUTH или Telegram корректно поддерживаются свойства user_contest (см. Issue #260).

Бот Telegram поддерживает выдачу паролей с помощью команды password (см. Issue #238).

ej-polygon

Улучшения импорта из системы polygon (см. Issue #227):

  • при импорте создается statement.xml, который включает условие задачи в HTML-формате с помощью iframe
  • по умолчанию используется polygon API
  • по умолчанию у импортированных задач игнорируется главное решение
  • поддерживается импорт задач с правами доступа OWNER

ej-suid-container

Улучшена поддержка языка java и других jvm-языков. Им для работы нужно актуальное содержимое каталога /etc/java, поэтому этот каталог монтируется с хост-системы (см. Issue #276).

Поддерживается эвристическое определение ошибок Memory-Limit Exceeded и Security Violation.

Улучшена изоляция запускаемых решений.

ej-super-run

Добавлен конфигурационный параметр задачи disable_vm_size_limit. Этот параметр снимает ограничение на размер виртуального адресного пространства.

Добавлен конфигурационный параметр задачи ignore_term_signal. Этот параметр включает игнорирование аварийного завершения тестируемой программы по сигналу.

Добавлен конфигурационный параметр языка программирования enable_ejudge_env. Этот параметр включает передачу различных параметров тестирования в тестируемую программу с помощью переменных окружения.

Добавлен конфигурационный параметр языка программирования run_env_file. Этот параметр позволяет задать имя файла с переменными окружения, которые будут переданы в тестируемую программу.

Добавлен конфигурационный параметр языка программирования clean_up_cmd. Этот параметр позволяет задать имя программы, которая будет выполняться после тестирования программы на данном языке, и задача которой корректно очистить окружение.

Добавлен конфигурационный параметр языка программирования clean_up_env_file. Этот параметр позволяет задать имя файла с переменными окружения, которые будут переданы в программу очистки окружения.

Добавлен конфигурационный параметр задачи test_generator_cmd. Он позволяет задать программу для генерации тестовых данных "на лету".

Добавлен конфигурационный параметр задачи test_generator_env. Он позволяет задать переменные окружения для программы генерации тестовых данных на лету.

Добавлено эвристическое определение ошибки Memory-Limit Exceeded при выполнения программ в контейнере (см. Issue #221).

Исправлена ошибка, заключающаяся в том, что слишком большой файл стандартного потока вывода или стандартного потока ошибок не добавлялся в протокол тестирования. Теперь файл обрезается до максимально допустимого размера (см. Issue #240).

В запускаемые программы передаётся переменная окружения EJUDGE_SUPER_RUN_SERIAL.

ej-super-server

При операции "Check contests settings" поддерживается конфигурационный параметр задачи problem_dir. Таким образом, эта операция работает, когда задачи не находятся в каталоге турнира (см. Issue #265).

.inf-файлы

Добавлен параметр ignore_term_signal для игнорирования аварийного завершения тестируемой программы по сигналу на данном тесте.

cmp_binary

Новая стандартная проверяющая программа, которая сравнивает заданный файл в рабочем каталоге тестируемой программы после её завершения и эталонный файл с ответом.