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

From EjudgeWiki
(ejudge-configure-compilers)
 
(4 intermediate revisions by the same user not shown)
Line 15: Line 15:
 
Если у двух языков программирования Id совпадают, одному из языков назначается Id, растущий от 89 в сторону уменьшения.
 
Если у двух языков программирования Id совпадают, одному из языков назначается Id, растущий от 89 в сторону уменьшения.
  
Добавлена поддержка для языков clang, clang++, gccgo
+
Добавлена поддержка для языков clang, clang++, gccgo, make-vg (сборка программы с помощью make с последующим запуском под valgrind).
  
 
=== [[ej-contests]] ===
 
=== [[ej-contests]] ===
Line 49: Line 49:
  
 
Добавлена конфигурационная переменная <tt>[[Serve.cfg:problem:start_env|start_env]]</tt>, с помощью которой можно задавать переменные окружения для запускаемой на тестирование программы.
 
Добавлена конфигурационная переменная <tt>[[Serve.cfg:problem:start_env|start_env]]</tt>, с помощью которой можно задавать переменные окружения для запускаемой на тестирование программы.
 +
 +
Исправлена ошибка, возникающая при попытке редактирования сообщений, если сообщения хранятся в MySQL.
  
 
=== [[ej-polygon]] ===
 
=== [[ej-polygon]] ===
  
Поддерживается приоритет языков (ru, en), задаваемый в конфигурационном параметре 'language_priority'.
+
Поддерживается приоритет языков (ru,en или en,ru) задаваемый в конфигурационном параметре <tt>language_priority</tt>.
  
 
Улучшено отслеживание состояния перегенерации пакета polygon.
 
Улучшено отслеживание состояния перегенерации пакета polygon.
Line 71: Line 73:
  
 
В Makefile корректно передаются переменные окружения для валидатора.
 
В Makefile корректно передаются переменные окружения для валидатора.
 +
 +
В Makefile передаются имена входного и выходного файла для решения.
  
 
=== [[ej-users]] ===
 
=== [[ej-users]] ===
Line 78: Line 82:
 
=== [[Стандартные проверяющие программы]] ===
 
=== [[Стандартные проверяющие программы]] ===
  
Все стандартные проверяющие программы, работающие с текстовыми файлами, поддерживают переменную окружения EJ_REQUIRE_NL. Если данная переменная установлена, то в конце проверяемого вывода требуется наличие символа \n. Если символ \n отсутствует, проверяющие программы выдают
+
Все стандартные проверяющие программы, работающие с текстовыми файлами, поддерживают переменную окружения <tt>EJ_REQUIRE_NL</tt>. Если данная переменная установлена, то в конце проверяемого вывода требуется наличие символа \n. Если символ \n отсутствует, проверяющие программы выдают
 
ошибку [[Presentation Error]].
 
ошибку [[Presentation Error]].
  
Таким образом, при включенном режиме EJ_REQUIRE_NL вывод
+
Таким образом, при включенном режиме <tt>EJ_REQUIRE_NL</tt> вывод
  
 
  printf("%d", a + b);
 
  printf("%d", a + b);
  
приведет к ошибке Presentation Error, а вывод
+
приведет к ошибке [[Presentation Error]], а вывод
  
 
  printf("%d\n", a + b)
 
  printf("%d\n", a + b)
  
 
будет признан корректным.
 
будет признан корректным.

Latest revision as of 07:12, 21 November 2012

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

Исправлены проблемы компиляции на платформе Win32.

Исправлены проблемы компиляции и запуска с установленным режимом --disable-rpath.

ejudge-configure-compilers

Улучшен алгоритм назначения Id языков программирования. Самый высокий приоритет имеет сохранение Id языков программирования, ранее уже назначенных и сохраненных в конфигурационном файле программы ej-compile.

Файл lang_ids.cfg ищется и в конфигурационных каталогах ej-compile, и в инсталляционных каталогах ejudge.

Если для языка программирования отсутствует Id языка, хранящийся в файле lang_ids.cfg, такому языку программирования назначается Id, начинающийся от 90.

Если у двух языков программирования Id совпадают, одному из языков назначается Id, растущий от 89 в сторону уменьшения.

Добавлена поддержка для языков clang, clang++, gccgo, make-vg (сборка программы с помощью make с последующим запуском под valgrind).

ej-contests

Добавлены новые статусы посылки:

Статус Wall Time Limit Exceeded устанавливается, когда при запуске тестируемой программы было превышено астрономическое время работы программы. В предыдущих версиях ejudge в этом случае использовался статус Time-Limit Exceeded.

Статус Pending Review устанавливается для задач, у которых установлен режим проверки use_ac_not_ok, то есть в режиме, когда окончательное решение по посылке принимается судьей или администратором турнира. В предыдущих версиях ejudge в этом случае использовался статус Accepted for Testing. Статус Accepted for Testing теперь используется только для турниров OLYMPIAD.

Статус Rejected может устанавливаться администратором или судьей для посылок, имевших статус Pending Review, в случае не соблюдения каких либо требований, проверяемых вручную. Ранее в этом случае использовался статус Style Violation, который теперь используется только в случае, когда посылка отвергается автоматической программой проверки стиля.

При хранении посылки в базе данных или в бинарном файле в структуру описателя посылки добавлено поле passed_mode. Это поле устанавливается в 1 для всех сохраняемых в базе посылок. Таким образом, значение поля равно 0 для посылок, сохраненных в базе предыдущими версиями ejudge.

Если поле 'passed_mode' установлено в 1, то в поле 'test' всегда хранится количество тестов, успешно пройденных программой. Если поле 'passed_mode' установлено в 0, то значение поля 'test' интерпретируется в режиме совместимости с предыдущими версиями ejudge, то есть 'test' хранит номер первого непройденного теста в режиме ACM или MOSCOW и количество пройденных тестов в режиме KIROV.

В судейском протоколе тестирования выводится информация о ЦП, на котором выполнялось тестирование.

Исправлена ошибка, возникавшая при попытке удаления виртуальных записей (VIRTUAL_START, VIRTUAL_STOP).

При перетестировании посылок (по разным критериям), перетестируемые посылки получают приоритет 10 (а не 0, как было в предыдущей версии).

Добавлена глобальная конфигурационная переменная printout_uses_login. Если она установлена в 1, то на распечатках решений участников выводится логин участника, а не его имя (название команды).

Убрано ограничение в 256 символов на длину значения конфигурационной переменной test_score_list раздела описания задачи.

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

Исправлена ошибка при печати решений участников, в именах которых есть символ '/'.

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

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

Исправлена ошибка, возникающая при попытке редактирования сообщений, если сообщения хранятся в MySQL.

ej-polygon

Поддерживается приоритет языков (ru,en или en,ru) задаваемый в конфигурационном параметре language_priority.

Улучшено отслеживание состояния перегенерации пакета polygon.

ej-super-run

Добавлена опция '-p' для установки альтернативного имени каталога программы.

Добавлена опция '-a' для задания альтернативного размещения файла журнала.

Во всех конфигурациях тестирования переменная окружения LC_CTYPE устанавливается в значение "C".

В режиме предварительного тестирования турниров OLYMPIAD при параметре tests_to_accept установленным в 0, ситуация отсутствия тестов считается нормальной.

ej-super-server

Исправления ошибок работы с .tgz архивами при генерации Makefile в каталоге задачи.

В Makefile корректно передаются переменные окружения для валидатора.

В Makefile передаются имена входного и выходного файла для решения.

ej-users

Упрощены ограничения на восстановление пароля.

Стандартные проверяющие программы

Все стандартные проверяющие программы, работающие с текстовыми файлами, поддерживают переменную окружения EJ_REQUIRE_NL. Если данная переменная установлена, то в конце проверяемого вывода требуется наличие символа \n. Если символ \n отсутствует, проверяющие программы выдают ошибку Presentation Error.

Таким образом, при включенном режиме EJ_REQUIRE_NL вывод

printf("%d", a + b);

приведет к ошибке Presentation Error, а вывод

printf("%d\n", a + b)

будет признан корректным.