Difference between revisions of "Изменения в версии 3.12.0"
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в...") |
(...) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.12.0]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.12.0]] | ||
− | Время выхода: | + | Время выхода: 29 декабря 2023 г. |
− | [[Изменения в версии 3.11.0|Предыдущая версия]] | + | [[Изменения в версии 3.11.0|Предыдущая версия]] [[Изменения в версии 3.13.0|Следующая версия]] |
+ | |||
+ | === Основные улучшения === | ||
+ | |||
+ | * Добавлена поддержка языка [[lang:postgres|PostgresQL]]. | ||
+ | * [[serve.cfg:problem:enable_src_for_testing|Реализована возможность]] передать исходный код посылки в проверяющую программу. | ||
+ | * Поддерживаются задачи с [[Динамические задачи|динамической генерацией условий и тестов]]. | ||
+ | * Поддерживается эвристическое определение ошибки [[Memory-Limit Exceeded]]. | ||
+ | * Поддерживается [[Telegram bot: регистрация на турнир|регистрация на турнир]] и [[Telegram bot: получение пароля|получение пароля для входа]] для уже зарегистрированных пользователей с помощью Telegram-бота. | ||
+ | |||
+ | Полный список закрытых ошибок и улучшений доступен | ||
+ | [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:language:preserve_line_numbers|preserve_line_numbers]]</code>, | ||
+ | который включает или выключает режим сохранения номеров строк | ||
+ | в программах на скриптовых языках для конкретного языка программирования. | ||
+ | |||
+ | Добавлена поддержка для языка SQL в реализации [[Lang:postgres|Postgres]] | ||
+ | (см. [https://github.com/blackav/ejudge/issues/222 Issue #222]). | ||
+ | |||
+ | Для языка [[Lang:rust|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> | ||
+ | и атрибут | ||
+ | <code>[[contest.xml:enable_telegram_registration|enable_telegram_registration]]</code> в конфигурационный файл турнира [[contest.xml]]. | ||
+ | |||
+ | При аутентификации 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:language: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]] === | ||
+ | |||
+ | Новая стандартная проверяющая программа, которая сравнивает | ||
+ | заданный файл в рабочем каталоге тестируемой программы | ||
+ | после её завершения и эталонный файл с ответом. |
Latest revision as of 05:19, 29 December 2024
Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 3.12.0
Время выхода: 29 декабря 2023 г.
Предыдущая версия Следующая версия
Contents
Основные улучшения
- Добавлена поддержка языка PostgresQL.
- Реализована возможность передать исходный код посылки в проверяющую программу.
- Поддерживаются задачи с динамической генерацией условий и тестов.
- Поддерживается эвристическое определение ошибки Memory-Limit Exceeded.
- Поддерживается регистрация на турнир и получение пароля для входа для уже зарегистрированных пользователей с помощью Telegram-бота.
Полный список закрытых ошибок и улучшений доступен здесь.
ej-compile
Добавлен конфигурационный параметр
compiler_container_options
, который позволяет задать настройки контейнеризации
для запуска транслятора данного языка программирования.
Обратите внимание, что параметр
container_options
применяется для запуска программ, написанных на данном языке
программирования.
Добавлен конфигурационный параметр языка программирования
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
и атрибут
enable_telegram_registration
в конфигурационный файл турнира contest.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
Новая стандартная проверяющая программа, которая сравнивает заданный файл в рабочем каталоге тестируемой программы после её завершения и эталонный файл с ответом.