Изменения в версии 3.12.0

From EjudgeWiki

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

Время выхода: 29 декабря 2023 г.

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

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

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

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

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