Редактирование компиляторов после установки

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:
Re: Редактирование компиляторов после установки

Post by vk » 01 April 2011, 14:09

cher wrote:Команда "Check contest settings" умеет компилировать программы, использующие testlib.
Ну это понятно, просто сначала саму testlib все равно нужно скомпилировать. Или "Check contest settings" и это сделает?
cher wrote:Не обязательно. Произвольный шаблон можно задавать с помощью test_pat, corr_pat.
Например, если задать

Code: Select all

test_pat = "i%02d.txt"
тогда тесты должны называться i01.txt, i02.txt...
А вот это не знал, спасибо за информацию :-)
А как взаимодействуют test_pat и test_sfx?

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Редактирование компиляторов после установки

Post by cher » 01 April 2011, 23:31

test_pat имеет приоритет над test_sfx, то есть если задано значение test_pat, значение test_sfx не используется.

handler
Posts:21
Joined:22 March 2011, 20:24

Re: Редактирование компиляторов после установки

Post by handler » 04 April 2011, 12:19

Здравствуйте!
Отдыхал, собирался с мыслями.
С Вашей помощью начинаю постигать суть работы системы.
Два вопроса:
1. В tests/C скопировал файлы Input01.txt ... и Answer01.txt ...
В секции [problem] id=3 указал:
test_pat = "Input%02.txt"
corr_pat = "Answer%01.txt"
Нажал проверить контест:

*** Checking problem A ***
Info: assuming, that there are 5 tests for this problem
*** Checking problem B ***
Info: assuming, that there are 3 tests for this problem
*** Checking problem C ***
Info: assuming, that there are 12 tests for this problem
Error: file Answer01.txt not found even case insensetively

Хотя файлы там есть.

2. насколько я понял, мне не обязательно компилировать чекеры - они собираются во время "check contest setting" - я тогда скопировал check_c.pas вместе с testlib.pas и symbols.pas в checkers и при проверке контеста выдало:

*** Checking problem A ***
Info: assuming, that there are 5 tests for this problem
*** Checking problem B ***
Info: assuming, that there are 3 tests for this problem
*** Checking problem C ***
Warning: checker /home/judges/000002/conf/../checkers/check_c does not exist
Info: using command line fpc -Fu/home/ejudge/inst-ejudge/share/ejudge/testlib/fpc check_c.pas
Starting compilation: fpc -Fu/home/ejudge/inst-ejudge/share/ejudge/testlib/fpc check_c.pas
Free Pascal Compiler version 2.4.2 [2010/11/09] for x86_64
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling check_c.pas
check_c.pas(1,2) Warning: The switch "$E" is not supported by the currently selected target
check_c.pas(1,2) Note: Ignored compiler switch "$F"
check_c.pas(1,2) Note: Ignored compiler switch "$G"
check_c.pas(1,2) Warning: Unsupported switch "$L"
check_c.pas(1,2) Warning: Unsupported switch "$N"
check_c.pas(1,2) Warning: Unsupported switch "$Y"
check_c.pas(16,1) Error: Can't create object file: check_c.o
check_c.pas(16,1) Fatal: Can't create object check_c.o
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
process exited with code 1
Error: compiler exit code 1

А вручную собирается нормально.

P.S. Выбираю задачу C, выбираю Solution.pas, прилагаемый к ней, отправляю на проверку и результат проверки почему-то Running - возможно из-за того,что не может найти все того же Answer01.txt ?

handler
Posts:21
Joined:22 March 2011, 20:24

Re: Редактирование компиляторов после установки

Post by handler » 04 April 2011, 13:17

Все, разобрался. Добавил пути и все работает.
Только пока ответы правильные не принимает - я поставил ограничение по времени 1 сек. и задача не укладывается по времени

Пытаюсь изменить время работы программы - не получается.
Устанавливаю в настройках задачи:
Processor time limit (sec): 3
Processor time limit (ms, ovverides prev. limit): 3
Real time limit (sec): 3
Но после проверки контеста все равно 1 секунда стоит, хотя задача не относится к абстрактной

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Редактирование компиляторов после установки

Post by cher » 05 April 2011, 07:05

После изменения настроек турнира не забывайте нажать на "Reload config files" в интерфейсе new-master.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Редактирование компиляторов после установки

Post by cher » 05 April 2011, 07:07

handler wrote:Здравствуйте!
Отдыхал, собирался с мыслями.
С Вашей помощью начинаю постигать суть работы системы.
Два вопроса:
1. В tests/C скопировал файлы Input01.txt ... и Answer01.txt ...
В секции [problem] id=3 указал:
test_pat = "Input%02.txt"
corr_pat = "Answer%01.txt"
Нажал проверить контест:
В test_pat и corr_pat используются форматные преобразования printf. Вам нужно было написать:

Code: Select all

test_pat = "Input%02d.txt"
corr_pat = "Answer%02d.txt"

handler
Posts:21
Joined:22 March 2011, 20:24

Re: Редактирование компиляторов после установки

Post by handler » 09 April 2011, 09:00

Снова мелкие проблемы:
При проверке турнира отвечает
Error: no tests defined for the problem
Несмотря на то, что папка с тестами есть с правами доступа
-rwxrwxr-x 1 ejudge ejudge 48353 Apr 4 12:00 Input12.txt
Причем, задача C и задача D созданы одинаково а ошибку выдает только D.
Отчаялся найти решение проблемы и прошу совета у Вас.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Редактирование компиляторов после установки

Post by cher » 09 April 2011, 12:33

1. Что написано в конфигурационных файлах.

2. Какие файлы находятся в каталоге с тестами.

handler
Posts:21
Joined:22 March 2011, 20:24

Re: Редактирование компиляторов после установки

Post by handler » 11 April 2011, 09:24

serve.cfg

[problem]
id = 4
short_name = "D"
long_name = ""
type = "standard"
input_file = "d.in"
output_file = "d.out"
xml_file = "D.xml"
test_dir = "D"
test_sfx = "Input%02d.txt"
use_corr
corr_dir = "D"
corr_sfx = "Answer%02d.txt"
time_limit = 3
time_limit_millis = 3
real_time_limit = 3
max_vm_size = 8
check_cmd = "check_d"

> ll tests/D
total 48
-rwxrwxr-x 1 ejudge ejudge 3 Mar 16 1999 Answer01.txt
-rwxrwxr-x 1 ejudge ejudge 3 Mar 14 1999 Answer02.txt
-rwxrwxr-x 1 ejudge ejudge 6 Mar 16 1999 Answer03.txt
-rwxrwxr-x 1 ejudge ejudge 6 Mar 16 1999 Answer04.txt
-rwxrwxr-x 1 ejudge ejudge 7 Mar 16 1999 Answer05.txt
-rwxrwxr-x 1 ejudge ejudge 7 Mar 16 1999 Answer06.txt
-rwxrwxr-x 1 ejudge ejudge 1 Mar 14 1999 Input01.txt
-rwxrwxr-x 1 ejudge ejudge 3 Mar 14 1999 Input02.txt
-rwxrwxr-x 1 ejudge ejudge 4 Mar 14 1999 Input03.txt
-rwxrwxr-x 1 ejudge ejudge 4 Mar 14 1999 Input04.txt
-rwxrwxr-x 1 ejudge ejudge 5 Mar 16 1999 Input05.txt
-rwxrwxr-x 1 ejudge ejudge 5 Mar 14 1999 Input06.txt

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Редактирование компиляторов после установки

Post by cher » 11 April 2011, 12:29

handler wrote:serve.cfg
[problem]
id = 4
short_name = "D"
long_name = ""
type = "standard"
input_file = "d.in"
output_file = "d.out"
xml_file = "D.xml"
test_dir = "D"
test_sfx = "Input%02d.txt"
use_corr
corr_dir = "D"
corr_sfx = "Answer%02d.txt"
Вместо test_sfx, corr_sfx нужно использовать test_pat, corr_pat.
handler wrote: time_limit = 3
time_limit_millis = 3
Здесь вы задаете лимит времени 3 миллисекунды, так как time_limit_millis имеет приоритет над time_limit. Вы действительно этого хотите?
handler wrote: real_time_limit = 3
Если ограничение времени 3 с, то real_time_limit лучше поставить в 6 с.
handler wrote: max_vm_size = 8
Ограничение по памяти установлено в 8 байт. С таким ограничением не запустится ни одна программа. Используйте суффикс "M" для задания ограничений в мегабайтах. Например:

Code: Select all

max_vm_size = 8M

handler
Posts:21
Joined:22 March 2011, 20:24

Re: Редактирование компиляторов после установки

Post by handler » 12 April 2011, 08:31

Спасибо большое, что помогли разобраться с синтаксисом - теперь все работает (во всяком случае контест чекается нормально).
У меня было две задачи в контесте, которые были добавлены к двум тестовым задачам, и в первой задаче были использованы именно test_pat и corr_pat (видимо, я менял их вручную после добавления задачи через веб-интерфейс), а при добавлении второй автоматически были использованы test_sfx и corr_sfx. В итоге две одинаково созданные задачи - одна работает, а вторая- нет. На разные параметры я не обратил внимания.
Что касается time_limit и time_limit_millis, а равно как и max_vm_size, то я таким образом пытался установить лимиты времени и памяти, указанные в условии задачи.
Значит, для указания лимита памяти 8Мбайт и лимита времени 3 секунды я должен указать:
time_limit_millis=3
real_time_limit=6
max_vm_size=8M
Я все правильно понял?

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Редактирование компиляторов после установки

Post by cher » 12 April 2011, 13:47

Code: Select all

time_limit=3
real_time_limit=6
max_vm_size=8M


Post Reply