Re: Компиляция Refal6 для Linu


Subject: Re: Компиляция Refal6 для Linu
From: Arkady Klimov (klark@bagirra.net)
Date: Fri Oct 26 2001 - 20:28:50 MSD


Здравствуйте, Дмитрий,
с указанной Вами ошибкой я в некоторой растерянности. (На С
я уже более 5 лет не работаю). Почему-то до сих пор ни один
компилятор в этом месте не брыкался. Что сие означает? Верно
ли, что по стандарту языка правая часть инициализатора обязана
быть константой? И почему stderr - не константа? (Понятно, что
это не константа периода компиляции, но содержательно, в
общем-то как бы константа). Я считал ее (содержательно)
константой и завел переменную stdtrc (она размещается в
модуле RFSTOR.C) исключительно для того, чтобы в процессе
работы можно было подменять поток вывода информации о
трассировке. Эта подмена делается в модуле RBEVAL.C, строка 220.
Происходит это по запросу юзера в диалоге. Если бы не эта
потребность, можно было бы отождествить stdtrc с stderr и все.
Может Вы сами, или кто еще из знатоков С может подсказать,
как лучше решить данную проблему.

В принципе, можно, наверно, поступить и так:

1.удалить эту строку 43 rfstor.h

2.заменить строку 40 rfstor.h на строку:
EXT FILE * stdtrc; /* File for debug information */
(было:
extern FILE * stdtrc; /* File for debug information */
)

3. Вставить инициализацию
    stdtrc = stderr;
первым оператором в функцию initstor (файл rfstor.c, строка 256)
(эта функция вызывается первой в функции main).

Напишите, как получилось (сохраните этот текст в ответе), я тогда
сделаю эту правку в своих исходниках (или пришлите новые файлы
rfstor.c, rfstor.h).

А еще напишите, какая дата последнего изменения у файлов
в имеющемся у Вас архиве исходников.

Всего наилучшего,

Аркадий.

----- Original Message -----
From: Andrei Klimov <klimov@keldysh.ru>
To: <dmsidorov@mtu-net.ru>
Cc: <refal@botik.ru>
Sent: Friday, October 26, 2001 6:54 PM
Subject: Re: Компиляция Refal6 для Linux

| Дмитрий, добрый день!
|
| Большое спасибо за интерес к Рефалу вообще и к Рефалу6 в частности!
|
| Детали реализаций Рефала у меня сейчас не "в активе",
| потому к сожалению я не могу ответить конкретно на Ваш вопрос.
| Да и автор Рефала-6 не я, а Аркадий Климов.
|
| Ваш вопрос вполне подходит для списка рассылки refal@botik.ru,
| а детали можно спросить непосредственно у авторов реализаций.
| Поэтому отвечаю Вам, включив в СС refal@botik.ru.
| Аркадий получит через него Ваше письмо, а с переносом под Юникс,
| может, поможет еще кто-нибудь из рефал-активистов.
|
| Архив списков рассылки refal@botik.ru и refal-plus@botik.ru
| Вы можете посмотреть здесь:
| - http://www.botik.ru/mail-archive/refal/
| - http://www.botik.ru/mail-archive/refal-plus/
| Если хотите, я Вас на них подпишу.
|
| Всего наилучшего,
|
| Андрей.
|
| PS. Занятно, что я и не слышал, что Рефал был
| "одним из базисных языков суперкомпьютеров серии Эльбрус".
| Это действительно так?
|
| ----- Original Message -----
| From: dmsidorov@mtu-net.ru
| To: klimov@keldysh.ru
| Sent: Thursday, 25 October 2001 22:37
| Subject: Компиляция Refal6 для Linux
|
| Здравствуйте, Андрей Климов.
|
| После статьи и интервью В.Ф. Турчина журналу "Компьютерра" я сильно
| заинтересовался языком Рефал. До этого он был мне известен лишь как
| один из базисных языков суперкомпьютеров серии "Эльбрус". Мне хотелось
| бы попробовать Рефал и сделать пакет для его установки в системе Debian
| GNU/Linux, и при возможности включить его в стандартную поставку. К
| сожалению, компиляция завершилась неудачей со следующим сообщением
| об ошибке:
|
| gcc rfstor.c -O -c -ggdb
| In file included from refcom.h:55,
| from refgen.h:16,
| from refint.h:14,
| from rfstor.c:6:
| rfstor.h:43: initializer element is not constant
|
| Строка 43 rfstor.h содержит определение нового потока вывода:
|
| FILE * stdtrc = stderr;
|
| Для компиляции был использован компилятор gcc 2.95.2 с поставляемой вместе
| с ним библиотекой классов c++ и glibc 2.1.3. В качестве Makefile и config.h
| были взяты соответственно MAKEFILU и CONFIG3.H. Пожалуйста, помогите
| разобраться с ошибкой.
|
| С уважением,
| Дмитрий Сидоров.



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:59 MSD