Проблема с компиляторами

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
alexbagirov
Posts:79
Joined:12 April 2014, 11:08
Проблема с компиляторами

Post by alexbagirov » 23 October 2014, 22:17

Добрый вечер!

Как я могу отлючить ненужные языки и добавить PascalABC?
Если в настройках турнира запретить сдавать на каком-то языке, то его все равно система показывает.


User avatar
majicman3
Posts:57
Joined:06 February 2014, 13:43
Location:Ханты-Мансийск

Re: Проблема с компиляторами

Post by majicman3 » 25 October 2014, 15:32

С помощью ejudge-configure-compilers установить пути ко всем языкам в /dev/null.
Потом с помощью текстового редактора в cfg файлах всех контестов убрать все секции [language], кроме PascalABC.NET

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 25 October 2014, 18:14

Я создал новые задачи в турнире. После захожу в главном меню serve-control в Edit tests, пишу условия задачи и тесты и пробую сдать ее в турнире. Получаю вердикт "ошибка тестирующей системы". Если в Edit tests напротив задачи нажать Edit checkers, то там пусто. Может, их как-то нужно добавить?
Как это сделать?

User avatar
majicman3
Posts:57
Joined:06 February 2014, 13:43
Location:Ханты-Мансийск

Re: Проблема с компиляторами

Post by majicman3 » 25 October 2014, 18:44

У вас в настройках стандартный чекер выбран? Если нет, то надо самому писать.

Выбрать в настройках стандартный чекер: "Edit settings" - "Problems (serve.cfg)" - открываете раздел нужной задачи - поле "Standart checker:".

Описание чекеров тут: https://ejudge.ru/wiki/index.php/%D0%A1 ... 0%BC%D1%8B

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 25 October 2014, 18:54

Хорошо, какие мне лучше выбрать чекеры, если:
  • Надо ввести в программу четыре числа, а на выходе получить в первой строке YES/NO, а во вторых двух - два небольших числа?
  • Если ввести в программу два числа и проверить два числа в ответ?
  • Если ввести число и проверить число?
Спасибо Вам! Думаю, что скоро освоюсь :roll:

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 25 October 2014, 21:39

В одной задаче у меня на ввод в тесте идут 4 числа, а в выводе всегда YES или NO. Я пробовал выбирать в качестве чекера int32 и YES\NO, но и там, и там получаю ошибку тестирующей системы. Почему?

User avatar
majicman3
Posts:57
Joined:06 February 2014, 13:43
Location:Ханты-Мансийск

Re: Проблема с компиляторами

Post by majicman3 » 27 October 2014, 05:58

Надо ввести в программу четыре числа, а на выходе получить в первой строке YES/NO, а во вторых двух - два небольших числа?
Если ввести в программу два числа и проверить два числа в ответ?
Если ввести число и проверить число?
1) compare YES/NO answers
2) compare two sequences of ints (32 bit) (числа от -2^31 до 2^31-1)
compare two sequences of unsigned ints (32 bit) (числа от 0 до 2^32-1)
compare two sequences of long longs (64 bit) (числа от -2^63 до 2^63-1)
compare two sequences of unsigned long longs (64 bit) (числа от 0 до 2^64-1)
3) compare two ints (32 bit)
compare two unsigned ints (32 bit)
compare two long longs (64 bit)
compare two unsigned long longs (64 bit)
В одной задаче у меня на ввод в тесте идут 4 числа, а в выводе всегда YES или NO. Я пробовал выбирать в качестве чекера int32 и YES\NO, но и там, и там получаю ошибку тестирующей системы. Почему?
Скиньте весь протокол (доступен по ссылке "Report" около нужной посылки в master, начиная с заголовка "Check Failed" в начале страницы до конца страницы).

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 27 October 2014, 11:28

Уже, вроде как, проверяет.

Если вот это сделать, то PascalABC точно будет работать?

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 27 October 2014, 14:56

Помогите, пожалуйста!

Я установил PascalABC по инструкции. Далее запустил ejudge-configure-compilers. Он обнаружил pasabc. Далее я ничего не менял и нажал Q(exit), далее выбрал "Save updates", и синее окно закрылось. Теперь я открываю serve-control, пытаюсь отредактировать настройки турнира, чтобы добавить язык, и при открытии практически любой вкладки редактирования serve.cfg вижу такую ошибку: Invalid compile_id
Что нужно сделать, чтобы исправить эту ошибку?

Вот мой serve.cfg для этого контеста:

Code: Select all

# -*- coding: utf-8 -*-
# $Id$
# Generated by ejudge-setup, version 2.3.28 #1
# Generation date: 2013/11/06 14:37:07
contest_id = 1

contest_time = 120
contest_finish_time = "2014/10/26 23:00:00"
score_system = acm
board_unfog_time = 0
standings_locale = "ru"

compile_dir = "../../compile/var/compile"

team_enable_src_view
team_enable_rep_view
show_deadline
enable_printing
problem_navigation
notify_clar_reply
notify_status_change


compile_max_vm_size = 512M
compile_max_file_size = 32M


stand_fancy_style

cr_serialization_key = 22723
advanced_layout
enable_l10n
team_download_time = 0
cpu_bogomips = 6557

[language]
id = 1
short_name = "fpc"
long_name = "Free Pascal 2.6.2"
src_sfx = ".pas"

[language]
id = 2
short_name = "gcc"
long_name = "GNU C 4.7.2"
src_sfx = ".c"

[language]
id = 3
short_name = "g++"
long_name = "GNU C++ 4.7.2"
src_sfx = ".cpp"

[language]
id = 11
short_name = "yabasic"
long_name = "YaBasic 2.763"
arch = "linux-shared"
src_sfx = ".bas"

[language]
id = 13
short_name = "python"
long_name = "Python 2.7.4"
arch = "linux-shared"
src_sfx = ".py"

[language]
id = 14
short_name = "perl"
long_name = "Perl 5.18.1"
arch = "linux-shared"
src_sfx = ".pl"
disabled

[language]
id = 18
short_name = "javac"
long_name = "Java JDK 1.7.0_09-icedtea"
arch = "java"
src_sfx = ".java"
exe_sfx = ".jar"

[language]
id = 19
short_name = "mcs"
long_name = "Mono C# 2.10.11.0"
arch = "msil"
src_sfx = ".cs"
exe_sfx = ".exe"
insecure

[language]
id = 20
short_name = "vbnc"
long_name = "Mono Visual Basic .NET 0.0.0.5943"
arch = "msil"
src_sfx = ".vb"
exe_sfx = ".exe"
insecure

[language]
id = 21
short_name = "ruby"
long_name = "Ruby 1.9.3p482"
arch = "linux-shared"
src_sfx = ".rb"

[language]
id = 22
short_name = "php"
long_name = "PHP 5.4.17"
arch = "linux-shared"
src_sfx = ".php"

[language]
id = 23
short_name = "python3"
long_name = "Python3 3.3.1"
arch = "linux-shared"
src_sfx = ".py"

[language]
id = 24
short_name = "kumir"
long_name = "Kumir unknown"
arch = "linux-shared"
src_sfx = ".kum"
disable_security

[language]
id = 25
short_name = "make"
long_name = "Make 3.82"
arch = "linux-shared"
src_sfx = ".tar"

[language]
id = 26
short_name = "ghc"
long_name = "The Glasgow Haskell Compiler 7.6.1"
arch = "linux-shared"
src_sfx = ".hs"

[language]
id = 27
short_name = "fbc"
long_name = "Free Basic 0.90.1"
arch = "linux-shared-32"
src_sfx = ".bas"

[language]
id = 51
short_name = "clang"
long_name = "clang C 3.3"
arch = "linux-shared"
src_sfx = ".c"

[language]
id = 52
short_name = "clang++"
long_name = "clang C++ 3.3"
arch = "linux-shared"
src_sfx = ".cpp"

[language]
id = 54
short_name = "make-vg"
long_name = "Make (valgrind) 3.82"
arch = "valgrind"
src_sfx = ".tar"
disabled
disable_testing

[language]
id = 57
short_name = "gcc-32"
long_name = "GNU C (32 bit) 4.7.2"
arch = "linux-shared-32"
src_sfx = ".c"

[language]
id = 58
short_name = "g++-32"
long_name = "GNU C++ 4.7.2"
arch = "linux-shared-32"
src_sfx = ".cpp"

[language]
id = 59
short_name = "fpc-32"
long_name = "Free Pascal (32 bit) 2.6.2"
arch = "linux-shared-32"
src_sfx = ".pas"

[language]
id = 60
short_name = "fbc-32"
long_name = "Free Basic (32 bit) 0.90.1"
arch = "linux-shared-32"
src_sfx = ".bas"

[language]
id = 61
short_name = "clang-32"
long_name = "clang C (32 bit) 3.3"
arch = "linux-shared-32"
src_sfx = ".c"

[language]
id = 62
short_name = "clang++-32"
long_name = "clang C++ 3.3"
arch = "linux-shared-32"
src_sfx = ".cpp"

[problem]
abstract
short_name = "Generic"
use_stdin
use_stdout
xml_file = "statement.xml"
test_sfx = ".dat"
use_corr
corr_dir = "%Ps"
corr_sfx = ".ans"
time_limit = 1
real_time_limit = 5
max_vm_size = 64M
max_stack_size = 64M
max_file_size = 64M
check_cmd = "check"

[problem]
id = 1
super = "Generic"
short_name = "A"
long_name = ""
standard_checker = "cmp_int"

[problem]
id = 2
super = "Generic"
short_name = "B"
long_name = ""
standard_checker = "cmp_int"

[problem]
id = 3
super = "Generic"
short_name = "C"
long_name = ""
standard_checker = "cmp_yesno"

[problem]
id = 4
super = "Generic"
short_name = "D"
long_name = ""
standard_checker = "cmp_int"

[problem]
id = 5
super = "Generic"
short_name = "E"
long_name = ""

[problem]
id = 6
super = "Generic"
short_name = "F"
long_name = ""

[tester]
name = Generic
arch = ""
abstract
no_core_dump
enable_memory_limit_error
kill_signal = KILL
memory_limit_type = "default"
secure_exec_type = "static"
clear_env

[tester]
name = Linux-shared
arch = "linux-shared"
abstract
no_core_dump
enable_memory_limit_error
kill_signal = KILL
memory_limit_type = "default"
secure_exec_type = "dll"
clear_env

[tester]
name = Linux-shared-32
arch = "linux-shared-32"
abstract
no_core_dump
enable_memory_limit_error
kill_signal = KILL
memory_limit_type = "default"
secure_exec_type = "dll32"
clear_env

[tester]
name = Linux-java
arch = "java"
abstract
no_core_dump
kill_signal = TERM
memory_limit_type = "java"
secure_exec_type = "java"
start_cmd = "runjava"
start_env = "LANG=C"
start_env = "EJUDGE_PREFIX_DIR"

[tester]
name = Linux-msil
arch = "msil"
abstract
no_core_dump
kill_signal = TERM
start_cmd = "runmono"
start_env = "EJUDGE_PREFIX_DIR"

[tester]
name = Valgrind
arch = "valgrind"
abstract
no_core_dump
kill_signal = TERM
memory_limit_type = "valgrind"
secure_exec_type = "valgrind"
start_cmd = "runvg"
clear_env
start_env = "PATH=/usr/local/bin:/usr/bin:/bin"
start_env = "LANG=C"
start_env = "HOME"

[tester]
any
super = Generic

[tester]
any
super = Linux-shared
arch = linux-shared

[tester]
any
super = Linux-shared-32
arch = linux-shared-32

[tester]
any
super = Linux-java
arch = java

[tester]
any
super = Linux-msil
arch = msil

[tester]
any
super = Valgrind
arch = valgrind

# audit: edited 2014/09/20 22:28:40 1 (ejudge) 95.82.232.195
# audit: edited 2014/10/23 21:25:17 1 (ejudge) 95.82.232.195
# audit: edited 2014/10/23 21:37:01 1 (ejudge) 95.82.232.195
# audit: edited 2014/10/23 22:55:57 1 (ejudge) 95.82.232.195
# audit: edited 2014/10/23 22:57:04 1 (ejudge) 95.82.232.195
# audit: edited 2014/10/24 17:14:04 1 (ejudge) 95.82.232.195
# audit: edited 2014/10/25 20:45:45 1 (ejudge) 141.101.105.78
# audit: edited 2014/10/25 21:51:44 1 (ejudge) 141.101.105.78
# audit: edited 2014/10/25 21:54:55 1 (ejudge) 141.101.105.78
# audit: edited 2014/10/26 00:34:13 1 (ejudge) 141.101.105.78
# audit: edited 2014/10/26 00:39:31 1 (ejudge) 141.101.105.78
# audit: edited 2014/10/26 23:24:02 1 (ejudge) 141.101.105.78
# audit: edited 2014/10/26 23:26:13 1 (ejudge) 141.101.105.78
И скриншот:
Image

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

Re: Проблема с компиляторами

Post by cher » 27 October 2014, 16:12

ejudge перезапускали?
покажите содержимое /var/lib/ejudge/compile/conf/compile.cfg

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 27 October 2014, 17:19

Если Вы о service ejudge restart, то так делал.
А еще reboot машины делал.
Содержимое файла через пару минут скину.

alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 27 October 2014, 17:22

Вот compile.cfg:

Code: Select all

# Generated by ejudge-configure-compilers, version 2.3.29+ (SVN r7685) #1
# Generation date: 2014/10/27 18:33:17

root_dir = /var/lib/ejudge/compile
cr_serialization_key = 22723

sleep_time = 1000

lang_config_dir = "/etc/ejudge/lang.d"

[language]
id = 1
short_name = "fpc"
long_name = "Free Pascal"
src_sfx = ".pas"
cmd = "fpc"

[language]
id = 2
short_name = "gcc"
long_name = "GNU C"
src_sfx = ".c"
cmd = "gcc"

[language]
id = 3
short_name = "g++"
long_name = "GNU C++"
src_sfx = ".cpp"
cmd = "g++"

[language]
id = 18
short_name = "javac"
long_name = "Java JDK"
src_sfx = ".java"
exe_sfx = ".jar"
cmd = "javac"
arch = "java"

[language]
id = 19
short_name = "mcs"
long_name = "Mono C#"
src_sfx = ".cs"
exe_sfx = ".exe"
insecure
cmd = "mcs"
arch = "msil"

[language]
id = 22
short_name = "php"
long_name = "PHP"
src_sfx = ".php"
cmd = "php"
arch = "linux-shared"

[language]
id = 25
short_name = "make"
long_name = "Make"
src_sfx = ".tar"
binary
cmd = "make"
arch = "linux-shared"

[language]
id = 26
short_name = "ghc"
long_name = "The Glasgow Haskell Compiler"
src_sfx = ".hs"
cmd = "ghc"
arch = "linux-shared"

[language]
id = 51
short_name = "clang"
long_name = "clang C"
src_sfx = ".c"
cmd = "clang"
arch = "linux-shared"

[language]
id = 52
short_name = "clang++"
long_name = "clang C++"
src_sfx = ".cpp"
cmd = "clang++"
arch = "linux-shared"

[language]
id = 54
short_name = "make-vg"
long_name = "Make (valgrind)"
src_sfx = ".tar"
binary
cmd = "make-vg"
arch = "valgrind"

[language]
id = 55
short_name = "pasabc-linux"
long_name = "Pascal ABC.NET (Mono)"
src_sfx = ".pas"
exe_sfx = ".exe"
insecure
is_dos
cmd = "pasabc-linux"
arch = "msil"


alexbagirov
Posts:79
Joined:12 April 2014, 11:08

Re: Проблема с компиляторами

Post by alexbagirov » 27 October 2014, 17:26

И еще в этой папке лежит compile.cfg.old:

Code: Select all

# Generated by ejudge-configure-compilers, version 2.3.29+ (SVN r7685) #1
# Generation date: 2014/10/27 17:41:15

root_dir = /var/lib/ejudge/compile
cr_serialization_key = 22723

sleep_time = 1000

lang_config_dir = "/etc/ejudge/lang.d"

[language]
id = 1
short_name = "fpc"
long_name = "Free Pascal"
src_sfx = ".pas"
cmd = "fpc"

[language]
id = 2
short_name = "gcc"
long_name = "GNU C"
src_sfx = ".c"
cmd = "gcc"

[language]
id = 3
short_name = "g++"
long_name = "GNU C++"
src_sfx = ".cpp"
cmd = "g++"

[language]
id = 11
short_name = "yabasic"
long_name = "YaBasic"
src_sfx = ".bas"
cmd = "yabasic"
arch = "linux-shared"

[language]
id = 13
short_name = "python"
long_name = "Python"
src_sfx = ".py"
cmd = "python"
arch = "linux-shared"

[language]
id = 14
short_name = "perl"
long_name = "Perl"
src_sfx = ".pl"
cmd = "perl"
arch = "linux-shared"

[language]
id = 18
short_name = "javac"
long_name = "Java JDK"
src_sfx = ".java"
exe_sfx = ".jar"
cmd = "javac"
arch = "java"

[language]
id = 19
short_name = "mcs"
long_name = "Mono C#"
src_sfx = ".cs"
exe_sfx = ".exe"
insecure
cmd = "mcs"
arch = "msil"

[language]
id = 20
short_name = "vbnc"
long_name = "Mono Visual Basic .NET"
src_sfx = ".vb"
exe_sfx = ".exe"
insecure
cmd = "vbnc"
arch = "msil"

[language]
id = 22
short_name = "php"
long_name = "PHP"
src_sfx = ".php"
cmd = "php"
arch = "linux-shared"

[language]
id = 23
short_name = "python3"
long_name = "Python3"
src_sfx = ".py"
cmd = "python3"
arch = "linux-shared"

[language]
id = 24
short_name = "kumir"
long_name = "Kumir"
src_sfx = ".kum"
disable_security
cmd = "kumir"
arch = "linux-shared"

[language]
id = 25
short_name = "make"
long_name = "Make"
src_sfx = ".tar"
binary
cmd = "make"
arch = "linux-shared"

[language]
id = 26
short_name = "ghc"
long_name = "The Glasgow Haskell Compiler"
src_sfx = ".hs"
cmd = "ghc"
arch = "linux-shared"

[language]
id = 51
short_name = "clang"
long_name = "clang C"
src_sfx = ".c"
cmd = "clang"
arch = "linux-shared"

[language]
id = 52
short_name = "clang++"
long_name = "clang C++"
src_sfx = ".cpp"
cmd = "clang++"
arch = "linux-shared"

[language]
id = 54
short_name = "make-vg"
long_name = "Make (valgrind)"
src_sfx = ".tar"
binary
cmd = "make-vg"
arch = "valgrind"

[language]
id = 55
short_name = "pasabc-linux"
long_name = "Pascal ABC.NET (Mono)"
src_sfx = ".pas"
exe_sfx = ".exe"
insecure
is_dos
cmd = "pasabc-linux"
arch = "msil"

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

Re: Проблема с компиляторами

Post by cher » 28 October 2014, 08:07

Попробуйте из файла serve.cfg удалить все секции [language] с id > 55.

Post Reply