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

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
RomanS
Posts:13
Joined:20 January 2015, 18:46
Проблемы с компиляторами

Post by RomanS » 24 April 2015, 16:02

ejudge 3.3.1 #3 (2015-01-23 18:21:43).
Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-35-generic x86_64)

Проблемы
1. Интерфейс. В интерфейсе участника выпадающее меню называется Language, хотя это, очевидно, компиляторы.

2. GNU fortran (/usr/bin/gfortran).
2.1 запускаем ejudge-compilers-control и обнаруживаем компилятор GNU fortran (gfortran). Нажимаем любую клавишу.
2.2 видим, что gfortran disabled.
2.3 запускаем serve-control (web) в контесте фортран выбрать нельзя.
2.4 редактируем serve.cfg руками добавляя language с id=6. При запуске serve-control (web) на странице Languages видим ошибку (invalid language id)
Хочу фортран! Что делать?

3. Ruby 1.9.3.
3.1 запускаем serve-control (web) в контесте ruby выбран. В ejudge-compilers-control он тоже есть и enabled.
3.2 check contest settings - success
3.3 запускаем интерфейс Master (web), жмем reload config files, отправляем решение на ruby и получаем check failed (invalid language id)
3.4 руками как в 2.4 тоже не помогает
Хочу руби! Что делать?

apathism
Posts:64
Joined:09 January 2009, 22:54
Location:Мытищи, Россия

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

Post by apathism » 24 April 2015, 18:01

1. ...или интерпретаторы. В любом случае, «языки программирования» тут звучит чуть лучше.

2-3. Сделайте так, чтобы ваши языки программирования появились в списке с помощью программы /bin/ejudge-configure-compilers в установочном каталоге ejudge. Эта программа проверяет доступность языков программирования с помощью скриптов из /libexec/ejudge/lang/in/языкпрограммирования-version.in -r. Если соответствующий скрипт не находит язык программирования, то имеет смысл его изучить и посмотреть, чего не хватает в вашей установке.

Кроме того, может быть необходимо перезапустить ejudge после добавления нового языка программирования с помощью ejudge-configure-compilers.

RomanS
Posts:13
Joined:20 January 2015, 18:46

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

Post by RomanS » 24 April 2015, 19:14

apathism wrote:1. ...или интерпретаторы. В любом случае, «языки программирования» тут звучит чуть лучше.
Считаю, что надпись "g++ GNU C++ 4.8.2" никак не похоже на название ЯП. Это очевидно компилятор. Кроме того, в списке м.б. несколько компиляторов одного ЯП. Про интерпретаторы замечание справедливое, можно говорить о трансляторах, но, мне кажется, слово компилятор большинству будет понятнее.
apathism wrote: Кроме того, может быть необходимо перезапустить ejudge после добавления нового языка программирования с помощью ejudge-configure-compilers.
Этот не документированный шаг, помог решить проблему 3, но не 2.
apathism wrote: 2-3. Сделайте так, чтобы ваши языки программирования появились в списке с помощью программы /bin/ejudge-configure-compilers в установочном каталоге ejudge.
О каком списке речь? где посмотреть? В lang_ids.cfg есть и руби и фортран.

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

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

Post by cher » 24 April 2015, 20:52

Если в списке языков gfortran в состоянии disabled, это значит что данный компилятор не может быть использован. Скорее всего, не хватает статической библиотеки libgfortran. Попробуйте установить пакет libgfortran-static

RomanS
Posts:13
Joined:20 January 2015, 18:46

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

Post by RomanS » 26 April 2015, 10:37

cher wrote:Если в списке языков gfortran в состоянии disabled, это значит что данный компилятор не может быть использован. Скорее всего, не хватает статической библиотеки libgfortran. Попробуйте установить пакет libgfortran-static
libgfortran 4.8 установлен. Программа, содержащая write скомпилировалась c флагом -static и выполнилась. Полагаю проблема не в этом.

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

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

Post by cher » 26 April 2015, 12:45

Попробуйте вот эту версию скрипта gfortran-version.in. Ее нужно скопировать в каталог scripts.

RomanS
Posts:13
Joined:20 January 2015, 18:46

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

Post by RomanS » 26 April 2015, 13:29

cher wrote:Попробуйте вот эту версию скрипта gfortran-version.in. Ее нужно скопировать в каталог scripts.
Подменил скрипт, перезапустил ejudge-configure-compilers. Фортан найден, но disabled. Нужно ejudge рестартить? Или еще что-то?

Может надо как-то из консоли посмотреть почему он disabled? Есть какая-то диагностика?

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

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

Post by cher » 27 April 2015, 01:39

disabled для языка программирования означает, что он не найден.

Скрипт нужно скопировать в каталог scripts в каталоге с исходными кодами, после чего не забыть сделать make install.

Посмотреть, что происходит при работе скрипта можно, запустив его вручную, например, так:

Code: Select all

bash -x ./gfortran-version.in -r

RomanS
Posts:13
Joined:20 January 2015, 18:46

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

Post by RomanS » 27 April 2015, 14:15

cher wrote:disabled для языка программирования означает, что он не найден.
Повторюсь. При поиске языка (1-й этап ejudge-configure-compilers) система выдала диагностику "GNU Fortran is available, yes ... gfortran 4.8.2". А надпись disabled была на втором этапе. Я из этой надписи сделал вывод, что фортран все таки был найден.

В любом случае, после Вашего последнего указания, я выполнил make install (с новым скриптом), повторил поиск компиляторов (фортран появился!), рестартнул ejudge, и фортран появился в web-интерфейсе.

Спасибо! проблемы 2,3 решены.

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

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

Post by cher » 27 April 2015, 16:19

Не понял тогда, в какой момент gfortran стал disabled.

Post Reply