Difference between revisions of "Изменения в версии 2.3.25"
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/[[Изменения в в...") |
(→ejudge-configure-compilers) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
Исправлены проблемы компиляции на платформе Win32. | Исправлены проблемы компиляции на платформе Win32. | ||
− | Исправлены проблемы компиляции и запуска с установленным режимом | + | Исправлены проблемы компиляции и запуска с установленным режимом <tt>--disable-rpath</tt>. |
− | --disable-rpath. | ||
− | === ejudge-configure-compilers === | + | === [[ejudge-configure-compilers]] === |
− | Улучшен алгоритм назначения Id языков программирования. Самый высокий | + | Улучшен алгоритм назначения Id языков программирования. Самый высокий приоритет имеет сохранение Id языков программирования, ранее уже назначенных и сохраненных в конфигурационном файле программы [[ej-compile]]. |
− | приоритет имеет сохранение Id языков программирования, ранее уже | ||
− | назначенных и сохраненных в конфигурационном файле программы ej-compile. | ||
− | Файл lang_ids.cfg ищется и в конфигурационных каталогах ej-compile, | + | Файл lang_ids.cfg ищется и в конфигурационных каталогах [[ej-compile]], и в инсталляционных каталогах ejudge. |
− | и в инсталляционных каталогах ejudge. | ||
− | Если для языка программирования отсутствует Id языка, хранящийся | + | Если для языка программирования отсутствует Id языка, хранящийся в файле lang_ids.cfg, такому языку программирования назначается Id, начинающийся от 90. |
− | в файле | ||
− | Id, начинающийся от 90. | ||
− | Если у двух языков программирования Id совпадают, одному из | + | Если у двух языков программирования Id совпадают, одному из языков назначается Id, растущий от 89 в сторону уменьшения. |
− | языков назначается Id, растущий от 89 в сторону уменьшения. | ||
− | Добавлена поддержка для языков clang, clang++, gccgo | + | Добавлена поддержка для языков clang, clang++, gccgo, make-vg (сборка программы с помощью make с последующим запуском под valgrind). |
− | === ej-contests === | + | === [[ej-contests]] === |
Добавлены новые статусы посылки: | Добавлены новые статусы посылки: | ||
− | |||
− | |||
− | |||
− | |||
− | + | Статус [[Wall Time Limit Exceeded]] устанавливается, когда при запуске тестируемой программы было превышено астрономическое время работы программы. В предыдущих версиях ejudge в этом случае использовался статус [[Time-Limit Exceeded]]. | |
− | |||
− | |||
− | |||
− | случае использовался статус | ||
− | |||
− | + | Статус [[Pending Review]] устанавливается для задач, у которых установлен режим проверки <tt>[[Serve.cfg:problem:use_ac_not_ok|use_ac_not_ok]]</tt>, то есть в режиме, когда окончательное решение по посылке принимается судьей или администратором турнира. В предыдущих версиях 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, как было в предыдущей версии). | |
− | |||
− | |||
− | + | Добавлена глобальная конфигурационная переменная <tt>[[Serve.cfg:global:printout_uses_login|printout_uses_login]]</tt>. Если она установлена в 1, то на распечатках решений участников выводится логин участника, а не его имя (название команды). | |
− | |||
− | Добавлена конфигурационная переменная | + | Убрано ограничение в 256 символов на длину значения конфигурационной переменной <tt>[[Serve.cfg:problem:test_score_list|test_score_list]]</tt> раздела описания задачи. |
− | задачи, с помощью которой можно задавать тестирующий компьютер, на | + | |
+ | Добавлена конфигурационная переменная <tt>[[Serve.cfg:problem:super_run_dir|super_run_dir]]</tt> раздела описания задачи, с помощью которой можно задавать тестирующий компьютер, на | ||
котором будут тестироваться решения по данной задаче. | котором будут тестироваться решения по данной задаче. | ||
− | Исправлена ошибка при печати решений участников, в именах которых | + | Исправлена ошибка при печати решений участников, в именах которых есть символ '/'. |
− | есть символ '/'. | + | |
+ | Добавлена конфигурационная переменная <tt>[[Serve.cfg:problem:enable_process_group|enable_process_group]]</tt> раздела описания задачи. Если данная переменная установлена, то при запуске тестируемой программы на выполнение она помещается в отдельную группу процессов, и при снятии тестируемой программы с выполнения сигнал завершения посылается всей группе процессов. Это позволяет завершать все процессы, порожденные тестируемой программой, если она не изменила свою группу процессов. | ||
+ | |||
+ | Добавлена конфигурационная переменная <tt>[[Serve.cfg:problem:start_env|start_env]]</tt>, с помощью которой можно задавать переменные окружения для запускаемой на тестирование программы. | ||
+ | |||
+ | Исправлена ошибка, возникающая при попытке редактирования сообщений, если сообщения хранятся в MySQL. | ||
− | === ej-polygon === | + | === [[ej-polygon]] === |
− | Поддерживается приоритет языков (ru, en) | + | Поддерживается приоритет языков (ru,en или en,ru) задаваемый в конфигурационном параметре <tt>language_priority</tt>. |
− | в конфигурационном параметре | ||
Улучшено отслеживание состояния перегенерации пакета polygon. | Улучшено отслеживание состояния перегенерации пакета polygon. | ||
− | === ej-super-run === | + | === [[ej-super-run]] === |
− | Добавлена опция '-p' для установки альтернативного | + | Добавлена опция '-p' для установки альтернативного имени каталога программы. |
− | имени каталога программы. | ||
− | Добавлена опция '-a' для задания альтернативного размещения | + | Добавлена опция '-a' для задания альтернативного размещения файла журнала. |
− | файла журнала. | ||
− | Во всех конфигурациях тестирования переменная окружения LC_CTYPE | + | Во всех конфигурациях тестирования переменная окружения LC_CTYPE устанавливается в значение "C". |
− | устанавливается в значение "C". | ||
− | + | В режиме предварительного тестирования турниров [[OLYMPIAD]] при параметре <tt>[[Serve.cfg:problem:tests_to_accept|tests_to_accept]]</tt> установленным в 0, ситуация отсутствия тестов считается нормальной. | |
− | Исправления ошибок работы с .tgz архивами при генерации Makefile | + | === [[ej-super-server]] === |
− | в каталоге задачи. | + | |
+ | Исправления ошибок работы с .tgz архивами при генерации Makefile в каталоге задачи. | ||
В Makefile корректно передаются переменные окружения для валидатора. | В Makefile корректно передаются переменные окружения для валидатора. | ||
− | === ej-users === | + | В Makefile передаются имена входного и выходного файла для решения. |
+ | |||
+ | === [[ej-users]] === | ||
Упрощены ограничения на восстановление пароля. | Упрощены ограничения на восстановление пароля. | ||
− | === Стандартные проверяющие программы === | + | === [[Стандартные проверяющие программы]] === |
− | Все стандартные проверяющие программы, работающие с текстовыми | + | Все стандартные проверяющие программы, работающие с текстовыми файлами, поддерживают переменную окружения <tt>EJ_REQUIRE_NL</tt>. Если данная переменная установлена, то в конце проверяемого вывода требуется наличие символа \n. Если символ \n отсутствует, проверяющие программы выдают |
− | файлами, поддерживают переменную | + | ошибку [[Presentation Error]]. |
− | окружения EJ_REQUIRE_NL. Если данная переменная установлена, | ||
− | то в конце проверяемого вывода требуется наличие символа \n. | ||
− | Если символ \n отсутствует, проверяющие программы выдают | ||
− | ошибку 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.
Contents
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)
будет признан корректным.