QNX RTP Logo QNX Realtime Platform: Русский Портал QNX
Thursday, 4 Dec 2008 00:20
Меню

Проект OpenNET - все о Unix
Главная

 · Начало · Статистика · Поиск ·

  QNX.ORG.RU —› Языки и алгоритмы —› ADA и QNX

<< . 1 . 2 . 3 . 4 . 5 . 6 . >>

Посл.ответ Сообщение


Дата: 15 Авг,  21:30


gcc -c hello.adb
gcc: installation problem, cannot exec '/usr/local/lib/gcc-lib/i386-pc-nto-qnx/3
.1/gnat1': Not enough memory
gnatmake: "hello.adb" compilation error


Странно... Сообщения про нехватку памяти ни разу не встречал.
Может ее действительно не хватает? У меня на машине 256М и таких ошибок не было.

P.S. Интересно, а как определить сколько памяти ему надо? [addsig]


Дата: 17 Ноя,  00:27

Уважаемые участники форума!

Не всегда имеет смысл ругать другой язык программирования, если Вы его не знаете и не имеете опыта работы с ним!

В отношении использования Ada у меня имеется некоторый, а именно шестилетний, опыт разработки систем. И не для иностранных компаний, а в нашей, родной, совдепии.

Далее попытаюсь ответить на некоторые заданные вопросы.

1. Написание программ шаблонно - это цель любой большой фирмы-разработчика ПО, особенно с такой длительностью жизненного цикла (я собственными глазами видел модули, написанные более 15 лет назад и используемые посей день).

2. Оптимальность - это понятие растяжимое. Если сравнивать оптимальность кода, собранного лучшими представителями компиляторов C и Ada то различий не будет. Современная теория компиляции способна извлечь из семантики Ada программы все, и сделать результирующий код не хуже.

3. Надежность программ - тоже тема сложная. Если C программу можно вылизать, то, как показывает мой опыт, на Ada ее вылежит компилятор и не даст собрать программу с ошибками. Кроме этого во время исполнения идет постоянный контроль за допустимостью значений и при малейших отклонениях трубят тревогу - система имеет возможность постараться исправить свое поведение. В C подобного просто не существует, если сам не будешь ваять что-то подобное.

4. И одно из самых важных. Ada это не только язык программирования. Это целая культура разработки больших программных систем. Понять ее не просто, да и помочь в этом невозможно. Все рано или поздно пробуют ее, но немногие с первого раза понимают заложенную в нее силу. Кто не понял, смотрят на это как на египетские пирамиды - есть, да что толку от них. А тем кто понял некогда заниматься рекламной шумихой - они заняты делом.

5. Из того, что никто не упомянал в этом споре хочется рассказать про так называемый ASIS - Ada Semantic Interface Specification. Эта библиотека позволяет стрить различные инструментальные сресдтва анализа программ на языке Ada. В том числе и для проведения доказательств корректности конечных программ. Что весьма неплохо для встроенных систем с ограниченным доступом после установки и запуска.

5. А теперь по поводу GCC3.x/GNAT. Использование данной парочки ОФИЦИАЛЬНО нерекомендуется разработчиком компилятора GNAT (это Ada Core Technologies). Для сборки реальных программ настоятельно рекомендуется пользоваться последней публичной версией - gnat3.14p. Найти ее можно ftp://ftp.cs.nyu.edu/pub/gnat.

Вадим Годунко,
Северо-Кавказский центр автоматизированного управления воздушным движением


Дата: 17 Ноя,  17:20

[quote]
vgodunko пишет:
Уважаемые участники форума!

Не всегда имеет смысл ругать другой язык программирования, если Вы его не знаете и не имеете опыта работы с ним!
--------------------------------------------------
Я с этим вполни согласен.
---------------------------------------------------
5. А теперь по поводу GCC3.x/GNAT. Использование данной парочки ОФИЦИАЛЬНО нерекомендуется разработчиком компилятора GNAT (это Ada Core Technologies). Для сборки реальных программ настоятельно рекомендуется пользоваться последней публичной версией - gnat3.14p. Найти ее можно ftp://ftp.cs.nyu.edu/pub/gnat.
---------------------------------------------------
Это gnat3.14p основан на gcc 2.8.1. Ada Core Technologies разработала уже gnat 3.15 и эта версия gnat входить в разрабатываемый gcc 3.3. Кроме того мы в QNX не имеем gnat3.14p основанный на gcc 2.8.1, а только gnat который разработал myst, но на основе gcc 3.1, так что думаю выхода нет. Мало вероятно что ктото в QNX будеть пробовать скомпилировать gnat3.14p. Я об этом ранше думал, но теперь только занимаюсь gnat 3.15. Последная версия которую я компилировал это версия с 20021111. Жаль только, что нет до сих пор оффицяльного реализа gcc 3.х для QNX. То что я получаю только gcc 3.3 и gnat 3.15. C++ 3.х для QNX не удалось насколько я знаю досих пор сделать.
Не хватаеть тоже нового gdb. Тот каторый мы имеем в QNX 6.2 что то не очень хочеть работать с gnat 3.15 который я у меня получаеться. Но и у меня теперь очень мало времени, так что мая работа над Ada заметно залержалось. Можеть ктото хочеть подклучиться. Я могу передать в форум последний gnat и gcc вместе с описанием как делать компилацю. Пишу статью которая надеюсь можеть быть введением в программирование на Ada95. Это в болшей степени попытка описания того как выглядить программа, как ее компилировать ... Это мои записки которые возникли когда я читаль книги и стати про Ada. Проблема в том, что я пишу на польском языке. Могу это перевести на русский, но тогда кто то должен это эстественно проверить.
Поздравляю,
bogdan.


Дата: 17 Ноя,  22:44

Кстати, может есть у кого опыт написания Makefile-ов для GCC и свободное время. Дело в том, что для GNAT из GCC3.x не существует ASIS-а. А у меня есть патч к версии 3.14p, позволяющий запустить ASIS-3.14 с GCC3/GNAT. Все бы ничего, да ASIS использует части компилятора и сильно привязывается к версии последнего. Может кто займется интеграцией ASIS-а в дерево GCC3?

Вадим


Дата: 21 Янв,  18:01

Приветь всем.
Я решил попробовать компилировать версию с 20030113 но в QNX 6.2.1.
Все сработало. Работает. В QNX 6.2.1 есть новый gdb. Он уже даеть вожмостность работаы с программой скомпилированной с помощу полученного компилятора ады. Поэтому мне удалось на конец узнать почему не работаеть программа если ее компилировать с клучом -shared. Вот что я получил
=============================
# gdb ./hello hello.core
GNU gdb 5.2.1qnx-326 QNX Neutrino 6.2.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "ntox86"...
Program terminated with signal 11, Segmentation fault.
#0 0xb032da4f in ?? ()
(gdb) where
#0 0xb032da4f in ?? ()
internal error - unimplemented function unk_lang_create_fundamental_type called.
(gdb)
=============================
У меня пока нет ответа как с этим бороться.
Кроме того на сегодня совершенно времени свободново у меня нет.
Можеть ктото сможеть что то подсказать ?
В версии gcc-20030120 с точки зрения ады ничего нового неть.
Поздравляю,
bogdan.



Дата: 21 Янв,  19:17


#0 0xb032da4f in ?? ()
У меня пока нет ответа как с этим бороться.

Не это ли ? Один только -shared в QNX не прокатывает. Надо еще -fPIC указывать.

http://qnx.org.ru/forum/viewtopic.php?topic=102&forum=4&36


Дата: 22 Янв,  01:09

Скорее всего стоит взять libtool с http://qnx.wox.org/cdrom621/


Дата: 22 Янв,  23:40


dmi пишет:
Скорее всего стоит взять libtool с http://qnx.wox.org/cdrom621/

Привет.
К сожалени это не то. У меня был libtool который правилно строил библетеки в других проектах нпр. GTK, gprolog, ruby, MySQL .. Тепер я взял libtool так как сказал dmi с .../cdrom621. -fPIC тоже не решаеть проблему.
Я строю компилятор С и gnat. Построит C++ мне не удавалось и я пока этим не интересуюсь. Получаю библетеки libgnat.a, libgnat-3.15.so, libgnrl.a, libgnarl-3.15.so. У меня получаеться -
# gcc --version
gcc (GCC) 3.3 20030113 (prerelease)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Есть программа hello.adb
# cat hello.adb
with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
Put_Line ("Hello World. Welcome to GNAT");
end;
Делаю первую компилацию -
# gnatmake hello
gcc -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
# ./hello
Hello World. Welcome to GNAT
# ls -l hello
-rwxrwxr-x 1 root root 754524 Jan 22 19:32 hello
# strip hello
# ls -l hello*
-rwxrwxr-x 1 root root 79472 Jan 22 19:32 hello
-rw-r--r-- 1 root root 111 Jan 31 2001 hello.adb
-rw-rw-r-- 1 root root 1322 Jan 22 19:31 hello.ali
-rw-rw-r-- 1 root root 848 Jan 22 19:31 hello.o

Как видно даже после strip программа доволно болшая - 79472.
После -
# objdump -x hello
получаю -
hello: file format elf32-i386
hello
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x080492b4

Program Header:
PHDR off 0x00000034 vaddr 0x08048034 paddr 0x08048034 align 2**2
...................................
Dynamic Section:
NEEDED libc.so.2
INIT 0x8048e24
FINI 0x8057d40
......................

Чтобы получить программу которая исползуеть libgnat-3.15.so делаеться так -

# gnatmake hello -cargs -g -fPIC -bargs -shared -largs -g -fPIC
gcc -c -g -fPIC hello.adb
gnatbind -aO./ -shared -I- -x hello.ali
gnatlink -g -fPIC hello.ali
# ./hello
Memory fault (core dumped)
# ls -l hello
-rwxrwxr-x 1 root root 24555 Jan 22 19:39 hello
# strip hello
# ls -l hello
-rwxrwxr-x 1 root root 7040 Jan 22 19:40 hello
После -
# objdump -x hello
получаю -
hello: file format elf32-i386
hello
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x08048ed4

Program Header:
PHDR off 0x00000034 vaddr 0x08048034 paddr 0x08048034 align 2**2
............................................
Dynamic Section:
NEEDED libgnat-3.15.so
NEEDED libc.so.2
INIT 0x8048ce4
FINI 0x8049248
HASH 0x8048108
.............................................

Так что думаю, что проблема по сложнее.
Если не использовать libgnat-3.15.so даже сложные программы можно компилипрвать. Правильно работають программы в которых используються сложные конструкции языка ада.
пока,
bogdan.


Дата: 23 Янв,  01:30


bbceler пишет:

Привет.
К сожалени это не то.
...



Bogdan, Вы не могли бы прислать мне patch Ваших изменений для gcc-3.3 почтой ? unidiff (diff -ur) например.
Может быть мы смогли бы решить этот вопрос вместе ?


Дата: 23 Янв,  10:09


# gnatmake hello -cargs -g -fPIC -bargs -shared -largs -g -fPIC
gcc -c -g -fPIC hello.adb
gnatbind -aO./ -shared -I- -x hello.ali
gnatlink -g -fPIC hello.ali
# ./hello
Memory fault (core dumped)

Может я конечно ничего не понимаю в колбасных обрезках, но мне не нравиться выше отквоченная строка:

gcc -c -g -fPIC hello.adb

где -shared сэр ? ))


Дата: 23 Янв,  23:00


dmi пишет:

Bogdan, Вы не могли бы прислать мне patch Ваших изменений для gcc-3.3 почтой ? unidiff (diff -ur) например.
Может быть мы смогли бы решить этот вопрос вместе ?

Спосибо. Я постораюсь переслать в ближащую пятницу или субботу.
Могу переслать весь компилятор, если хочеш попробовать посироить аду.
Дело в том, что есть силные озменения по сравнени с этим что сделал myst.


Дата: 23 Янв,  23:19


bbceler пишет:

dmi пишет:

Bogdan, Вы не могли бы прислать мне patch Ваших изменений для gcc-3.3 почтой ? unidiff (diff -ur) например.
Может быть мы смогли бы решить этот вопрос вместе ?

Спосибо. Я постораюсь переслать в ближащую пятницу или субботу.
Могу переслать весь компилятор, если хочеш попробовать посироить аду.
Дело в том, что есть силные озменения по сравнени с этим что сделал myst.

Я все-таки предпочитаю патчи, т.к. сижу на модеме 33.6К. 20 с лишним мегабайт будут приниматься очень долго...


Дата: 23 Янв,  23:51


lestat пишет:

# gnatmake hello -cargs -g -fPIC -bargs -shared -largs -g -fPIC
gcc -c -g -fPIC hello.adb
gnatbind -aO./ -shared -I- -x hello.ali
gnatlink -g -fPIC hello.ali
# ./hello
Memory fault (core dumped)

Может я конечно ничего не понимаю в колбасных обрезках, но мне не нравиться выше отквоченная строка:

gcc -c -g -fPIC hello.adb

где -shared сэр ? ))


Привет.
gnatmake hello -cargs -g -fPIC -bargs -shared -largs -g -fPIC
это команда, которая последовательно вызываеть gcc, gnatbind и gnatlink.
-cargs -g -fPIC -- передача аргументов в gcc
-bargs -shared -- передача аргументов в gnatbind
-largs -g -fPIC -- передача аргументов в gnatlink
После линии gnatmake hello .... то что начинаеться в следуюших строках выводиться на экран автоматически. Я делал разные пробы. Ни одна не дала хорошего результата. Практически можно делать компилацю ада программы отдельно выполня команды gcc, gnatbind и gnatlink.
gcc -с -- это наверно понятно -с обязательно для ады,
gnatbind -- работаеть с полученным *.ali -shared обязателно для работы с библетекой типа shared
gnatlink -- это ld для ады.
Я конешно тоже пробовал
gnatmake hello -cargs -g -fPIC -shared -bargs -shared -largs -g -fPIC
и тогда было
gcc -c -g -fPIC -shared hello.adb
но и так получаю Memory fault (core dumped) и gdb даеть тотже самое сообщение
internal error - unimplemented function unk_lang_create_fundamental_type called.
(gdb)
К стати lestat ты писал
===========
Может я конечно ничего не понимаю в колбасных обрезках, но мне не нравиться выше отквоченная строка:
===========
колбасных обрезках --- это имееть отношение к еде ? ))
отквоченная строка --- смысл мне понятен, но не смог перевести на польский язык слова "отквоченная", а словаря под рукой нет.
Может напиши как ты считаеш как должна выглядеть строка gcc и gnatlink.
Может я все таки ошибаюсь.
Поздравляю,
bogdan.




Дата: 24 Янв,  10:21


Я конешно тоже пробовал
gnatmake hello -cargs -g -fPIC -shared -bargs -shared -largs -g -fPIC

Надо обязательно, чтобы компилировалась программа с двумя опциями именно -fPIC и -shared: - т.е. в строке, которая "отквочена" выше ты не передал в -bargs опцию -fPIC - я считаю, что дело в этом.


колбасных обрезках --- это имееть отношение к еде ? ))

Вообще-то да, но не в этом случае Когда люди разговаривают о каких-то высоких материях (типа ADA ) а кто-то пытается влезть в разговор и сказать что-то очень простое, то так иногда говорят, т.е. "колбасные обрезки" == "высокие материи"

отквоченная строка --- смысл мне понятен, но не смог перевести на польский язык слова "отквоченная", а словаря под рукой нет.

От английского слова quote. Т.е. цитата, отцитированная строка. Sorry .

Может напиши как ты считаеш как должна выглядеть строка gcc и gnatlink.
Может я все таки ошибаюсь.

gnatmake hello -cargs -g -fPIC -shared -bargs -fPIC -shared -largs -g -fPIC -shared

Я так предполагаю, что это должно помочь.


Дата: 28 Янв,  02:23

[/quote]
gnatmake hello -cargs -g -fPIC -shared -bargs -fPIC -shared -largs -g -fPIC -shared

Я так предполагаю, что это должно помочь.

[/quote]
Привет.
это выдаеть ошибку:
# gnatmake hello -cargs -g -fPIC -shared -bargs -fPIC -shared -largs -g -fPIC -shared
gcc -c -g -fPIC -shared hello.adb
gnatbind -aO./ -fPIC -shared -I- -x hello.ali
gnatbind: invalid switch: P
gnatmake: *** bind failed.
============
точнее -fPIC для gnatbind вызываеть ошибку.


Дата: 28 Янв,  03:44


dmi пишет:

Bogdan, Вы не могли бы прислать мне patch Ваших изменений для gcc-3.3 почтой ? unidiff (diff -ur) например.
Может быть мы смогли бы решить этот вопрос вместе ?

Спосибо. Я постораюсь переслать в ближащую пятницу или субботу.
Могу переслать весь компилятор, если хочеш попробовать посироить аду.
Дело в том, что есть силные озменения по сравнени с этим что сделал myst.
[/quote]
Я все-таки предпочитаю патчи, т.к. сижу на модеме 33.6К. 20 с лишним мегабайт будут приниматься очень долго...
[/quote]
Привет dmi.
Я тебе выслал все что необходимо чтобы построить компилятор.
Эсли будеш использовать компилятор который построил myst, ты должен при первой компилации отказаться от клуча -g. После получения нового компилятора следующие можна будеть делать с клучом -g. После того как сработает configure обрати внимание на полученный ..nto/ntox86/gcc/Makefile на строку 663 там у меня получаеться ошибка. Как я ейу устраняю посмотри на то что я тебе выслал.
Потом я перехожу на ..gcc-20030120/nto/ntox86 и делаю make bootstrap 2>&1 | tee CC.log . И теперь одна важная обстоятелность. Мне до сих пор не удалось устранить этого и я это делаю в ручную. Когда идеть компилация строиться
..gcc/include/stdlib.h который исползуеться далше. После того когда stdlib.h появляеться он вызываеть ошибки там, где используеться wchar_t.
Я нашол что если добавить в 113 строке typedef long unsigned int wchar_t; то все идеть правилно до самого конца. И я это делаю сразу после появленьия stdlib.h Это конешно не очень элегантно но работаеть. Можеть эсли ты найдеш выход. Потом, когда простроены xgcc, cc1, gnat1, gnatmake можна построить библетеку и tools. Это делаеться переходя на ..gcc-20030120/nto/ntox86/gcc и выполняя сначала make gnatlib-shared, потом make gnattools и на конец make install. Эсли будуть какие трудности пиши.
Желаю удачи,
bogdan.


Дата: 28 Янв,  14:27


Когда идеть компилация строиться
..gcc/include/stdlib.h который исползуется дальше.
После того когда stdlib.h появляеться он вызываеть ошибки там,
где используеться wchar_t.


Помнится, у меня такая порнуха тоже была. Неуверен, но вроде дело
было в том, что при сборке фиксились некоторые заголовочники
(что не есть правильно для QNX). Я еще с ихнего CVS брал fixinc.nto,
который клал в каталог gcc3.1src/gcc/fixinc. И еще в этом случае надо
подправить mkfixinc.sh по аналогии с другими системами. В том же каталоге валяется
(я так понял он как раз и принимает решение для какой системы как
фиксить заголовочники). [addsig]


Дата: 28 Янв,  21:50


bbceler пишет:
Привет dmi.
Я тебе выслал все что необходимо чтобы построить компилятор.
...


Спасибо, файл получил.
К сожалению, смогу посмотреть только на следующей неделе - сейчас очень загружен.


Дата: 13 Фев,  17:24

Привет.
Оказываеться, что проблема с gdb когда он выдаеть -
internal error - unimplemented function unk_lang_create_fundamental_type called.
не связана с проблемом -shared.
Мне кажеться, что нужно иметь gdb 5.3. В исходниках есть что то на счет ады.
Может кто то пробовал перенести gdb 5.3 на QNX 6.2.x. У меня получились болшие трудности с компиляцей. Эсть много разниц между gdb 5.0 а gdb 5.3.
Так что если есть у кого то опыть в этой областьи то буду благодарен если захочеть поделиться опытом. Я взял за основу источники gdb 5.0 для qnx.
bogdan.


Дата: 13 Фев,  17:42


bbceler пишет:

Может кто то пробовал перенести gdb 5.3 на QNX 6.2.x. У меня получились болшие трудности с компиляцей. Эсть много разниц между gdb 5.0 а gdb 5.3.


QSS пока не отсылает свои патчи разрабочикам gdb и gcc. Это - временно, до стабилизации ABI в gcc 3.x.
В QNX 6.3 возможно уже будет поддерживаться gcc3.x, но до этого патчи будут внесены в сам gcc на gcc.gnu.org. Там не все гладко и чисто, особенно с C++. Это - не к этому вопросу, а скорее к предыдущему
gdb собирать своими силами - задача равноценной сложности, и тут лучше ждать пачтей от QSS. Есть ли действительно необходимость в gdb 5.3 ?

P.S. gcc 3.2 еще не смотрел


Дата: 13 Фев,  19:16


dmi пишет:

bbceler пишет:

Может кто то пробовал перенести gdb 5.3 на QNX 6.2.x. У меня получились болшие трудности с компиляцей. Эсть много разниц между gdb 5.0 а gdb 5.3.


QSS пока не отсылает свои патчи разрабочикам gdb и gcc. Это - временно, до стабилизации ABI в gcc 3.x.
В QNX 6.3 возможно уже будет поддерживаться gcc3.x, но до этого патчи будут внесены в сам gcc на gcc.gnu.org. Там не все гладко и чисто, особенно с C++. Это - не к этому вопросу, а скорее к предыдущему
gdb собирать своими силами - задача равноценной сложности, и тут лучше ждать пачтей от QSS. Есть ли действительно необходимость в gdb 5.3 ?

dmi есть хотябы два.
1) Неть возможностии решить проблему с компиляцей с -shared
2) В аду вносяться изменения. С времери порта каторый сделал myst есть болше изменения. Я внес свои чтобы система работала. Теперь я занялся вопросои задач в аде. Так как они основаны на posix threads то я решил просмотреть эту часть кода которая относиться к QNX. И оказалось что нада код проработать. Я думаю что myst делал это на основе разных источников и я думаю что в болшей степени опираясь на интуицию (извини myst если я ошибаюсь) и это работаеть. Но есть много неточностей и не все учтено. Я практически их уже устранил, но осталась такая проблема, что это очень упрощеный варянт который используеть минимальное количество функций pthread_.... И я решил просмотреть как это сделано в источниках для POSIX/FSU Threads. На зтой основе я сделал свои изменения и ввел много изменений. Компиляция касаеться только библетеки ады, и проходить без ошибок. Полученный компилятор работаеть. Все программы каторые не использують задач работають. А эти которые использують задачи проваливаються с ошибкой SIGSEGV. Эстественно что в таком случае очень трудно работать без gdb. Ведь ошибка может быть очень простая. Просматривать машинные коды это уж слишком болшая работа.
bogdan.



Дата: 14 Фев,  21:47

[qoute]
Я думаю что myst делал это на основе разных источников и я думаю что в болшей степени опираясь на интуицию (извини myst если я ошибаюсь) и это работаеть.
Но есть много неточностей и не все учтено.
[/qoute]

Абсолютно верно. Все что я сделал тогда, было основано на голой интуиции.
Поэтому несомненно наделал массу ошибок. [addsig]


Дата: 19 Мар,  16:07


bbceler пишет:
Может кто то пробовал перенести gdb 5.3 на QNX 6.2.x. У меня получились болшие трудности с компиляцей. Эсть много разниц между gdb 5.0 а gdb 5.3.


Тут я случайно нашел немного информации в фидо, может кому
понадобиться

=============================================================================
* Forwarded by Zahar Kiselev (2:5030/382.1)
* Area : filter382 17 Feb 03 17:48
* From : Alexey Neyman (2:5020/400)
* To : "Alexey Neyman"
* Subj : Re: GCC-GNAT bootstrap
=============================================================================
* Forwarded from area 'ru.unix.prog'

From: "Alexey Neyman" <alex.neyman@auriga.ru>

On Wed, 29 Jan 2003 21:34:10 +0000 (UTC) Alexey Neyman wrote:
AN> Хочется: поставить GCC 3.2.1 с поддержкой Ada (GNAT, начиная с 3.1,
AN> входит в GCC). Проблема в том, что для сборки Ada необходимо наличие
AN> компилятора Ada. Согласно документации - для bootstrap'а можно
AN> использовать либо GCC 3.1 и старше, либо GNAT 3.13 и старше.

Спасибо Alexandre Makeev, ответившему приватом, проблема решена.
Вкратце - в gcc импортировали не 3.15 GNAT, а 3.14 - и сделали какие-то
изменения, порушившие bootstrap с 3.15 standalone. Теперь у меня
есть 3 патча:

1) (от Alexandre Makeev, но он говорит, что не он автор) - чинящий
bootstrap с GNAT 3.15 на GCC 3.2.2.
2) (мой) - чинящий поддержку сборки Ada-бинарников с -shared (в том,
что собирается в gcc 3.2.2, у libgnat есть unresolved references
на libiberty.a)
3) (тоже мой) - в gdb 5.3 почему-то по умолчанию поддержка для Ada
выключена. К счастью, это легко правится

Заинтересованные лица могут обращаться ко мне.

Алексей.

-- ,----------------------------------------, | A quoi ca sert d'etre sur la terre | Alexey V. Neyman | Si c'est pour faire nos vies a genoux! | mailto:alex.neyman@auriga.ru `------------------( Les Rois du Monde )-' -+- ifmail v.2.15dev5 + Origin: Auriga, Inc. (2:5020/400)


Дата: 14 Авг,  22:14

Привет.
После длинного переда я внов смог заняться гнатом. Прежде всего Graeme Peterson создал новые патчи. Некоторые из них

2003-08-06 Graeme Peterson <gp@qnx.com>

* config/i386/nto.h: New.
* config/i386/t-nto: New.
* config.gcc (i[34567]86-*-nto-qnx*): New.

вошли в gcc-3.4-20030813.
Патчи эти позволяють гороздо проще делать компиляцию gcc-3.4 чем эти которые я использовал при компиляции gcc-3.3.x Мне первый раз удалось построить не только gcc, но и g++ и проверить линковку модулей написанных в c++ и аде. Простые примеры работають правилно.
Мне кажеться что ада основана на gcc-3.4 работаеть лучше чем основана на gcc-3.3.x. Но это конешно можеть вытекать из за того, что в саму аду тоже вносят измененя.
И еще одно, всем кого интересуеть ада советую посетить сайт http://www.ada-ru.org/
bogdan


Дата: 19 Авг,  06:11

Привет,
На конец я получил компилятор gnat с библетеками static и shared который в полни работоспособный. Программы построены с учетом библетеки shared работають правилно.
Все программы которые я использую для тестирования вклучаю програму dinner работають в static и в shared. Так что dmi думаю что эсли ты считаеш это полезным, то я могу переслать в форум работаюший компилятор gnat 3.15.
Поздравляю,
bogdan.

P.S.
Я поменял mail: bceler@op.pl


Дата: 2 Ноя,  20:22

Приветь хочу сообщить новости связанные с адой.
Во первых готовится следующая версия GNAT а именно 3.16a которая основана так как и 3.15 на GCC 2.8.1.
Во вторых Ada Core Technologies, Inc. (http://www.gnat.com) решила все таки заняться построением компилятора ады на основе GCC 3.x и официално сообшила об новой ветви разработки компилятора ады а именно GNAT Pro 5.00a. 5.00a основано на GCC 3.2.3. Обе версии будут развиваться парарелно. Компилятор gnat в GCC 3.4 который я скомпилировал под QNX основан на версии 3.15 Я его переслал dmi. Но почти две недели тому назад наступили крупные изменения на GCC3.4 в отношени к аде. Короче говаря тепер ада в GCC3.4 основана на версии 5.00, а тoчнее на 5.02. Я так думаю поэтому, что у меня был доступ к cvs с 5.02 Мне удалось внести изменения для QNX и получил работауший компилятор. Как и прежне меня инересуеть ада и язык C. Я обычно делаю компиляцию если есть какие то изменеия в источниках. Но тепер я это делаю каждую неделию. Я остаюсь заниматся GCC3.4 поэтому, что эту версиию в QNX можна компилировать почти без изменений, там уже есть внесены кое какие изменения для QNX. Новые версии GCC3.4 появляються в каждую среду, а GCC3.3 в понедельник. Как ада в GCC 3.4 станеть более стабилней, то подготовлю пакет и перешлию dmi. Но сам компилятор, это не все. Компиляторы ады проверяется с помощю очень крупного количества тестовых програм. Я немного этим занмался и все работало правилно, но на это нужно очень много времени. Каждый профессеналный компилятор ады прошел такие испытания. Ада в GCC3.3 и 3.4 экспериментальная, ее оффицияльно не поддерживает Ada Core Technologies, но все таки интересно хотябы неможко узнать ада 3.4 (думаю что так надо говорить, тем более, что в предыдущих версях библетеки назывались gnatlib3.15, а тепер – gnatlib3.4) это просто игрушка или чтото серезнее. Стоило бы попробовать скомилировать какую то программу посложнее к примеру: GNADE (GNat Ada Database Environment) или
GtkAda. Но у меня не хватаеть времени, так что все время жду что может кто хочет подклучиться. Я могу просто переслать компилятор по почте в несколких кусках так как я переслал dmi.
Поздравляю, извените за ошибки,
bogdan
[/b][b][i][/i]


Дата: 10 Дек,  11:03

to Bogdan
Богдан, спасибо за: ftp://ftp.qnx.org.ru/pub/projects/bbceler/gnat-3.4-x86-public.qpr !

Мы будем с этого времени более активно заниматься ADA, есть люди, которые обещают уделить этому предмету достаточно много времени. Посмотрите здесь:
http://qnxclub.net/modules.php?name=Forums&file=viewforum&f=8

to vgodunko если вы ещё бываете в форуме...:

Кстати, может есть у кого опыт написания Makefile-ов для GCC и свободное время. Дело в том, что для GNAT из GCC3.x не существует ASIS-а. А у меня есть патч к версии 3.14p, позволяющий запустить ASIS-3.14 с GCC3/GNAT. Все бы ничего, да ASIS использует части компилятора и сильно привязывается к версии последнего. Может кто займется интеграцией ASIS-а в дерево GCC3?
Вадим


Можно поподробнее об ASIS?


Дата: 10 Дек,  16:50

Olej
to vgodunko если вы ещё бываете в форуме...:


Благодаря стараниям Ilja Wasiltshenko уж бываю.

Olej
Можно поподробнее об ASIS?


Сомневаюсь, что смогу расказать об этом лучше авторов ASIS for GNAT:

http://www.ada-ru.org/asis.html

От себя хочу добавить, что нами разработаны и используются две программы на основе ASIS. Одна занимается написанием алгоритмов marshalling-а и преодолением ограничений, налагаемых на модель распределенных вычислений языка. Вторая предназначена для оптимизации (минимизации) используемого объёма памяти при построении таблиц данных, рассматривая различные стратегии сжатия, сочиняя необходимый код и проверяя конечные затраты она делает вывод о лучшей стратегии для данной целевой платформы. В настоящее время ведется разработка третьей программы, предназначенной для поиска неиспользуемых в программе конструкций языка.

PS. Если будут вопросы, то наверное лучше задавать их в Ada-RU.

http://groups.yahoo.com/group/ada_ru

Эта рассылка работает e-mail-ом и использовать её значительно удобнее.

PS. И ещё по пути писалась программа для извлечения из gnat-а текстов диагностических сообщений с целью их перевода на русский язык. Правда, как я понимаю, дальше громких обещаний "Да на раз" дело не пошло...


Дата: 28 Янв,  23:03

Вот и здесь http://www.openqnx.com/Article224.html уже опубликовали
------
GNAT 3.4 for QNX 6.2.1 is now available for download at ftp://ftp.qnx.org.ru/pub/projects/bbceler/ It is the Ada compiler from the gcc tool chain. It is ported directly from the gcc cvs by Bogdan Celer. At the ftp site, you can also find the examples for testing.
------


Дата: 11 Мар,  22:30

Приветь.
Медленно приближаеться выход GCC 3.4. Уже три недели практически нет изменений в источниках ады.
Я просматрел источники GCC и нашел что имеетсья кроме других тестов тесты для ады. Это переработанные тесты сертификации компилятора ACATS. Подробно можно почитать http://www.ada-ru.org/docs.html#acats .
На моем компе тестирование длиться 10 часов 45 минут (Pentium4 2.4 M ).
Мне приятьно сообщить что на прошлой недели первый раз компилятор ады под QNX прошол успешно все
тесты. Вот это снято с экрана после окончания тестов с компилятором с 20040310.

# make check-ada
test -d testsuite/ada/acats || mkdir -p testsuite/ada/acats
testdir=`cd /src/gcc-3.4-20040310/gcc/testsuite/ada/acats; ${PWDCMD-pwd}`;
export testdir; cd testsuite/ada/acats; ${testdir}/run_acats
=== acats configuration ===
target gcc is /src/gcc-3.4-20040310/nto/ntox86/gcc/xgcc -B/src/gcc-3.4-20040310/nto/ntox86/gcc/
Reading specs from /src/gcc-3.4-20040310/nto/ntox86/gcc/specs Configured with: /src/gcc-3.4-20040310/configure
--srcdir=/src/gcc-3.4-20040310 --prefix=/usr/local --exec-prefix=/usr/local --with-local-prefix=/usr/local --
enable-languages=c,ada --enable-threads=posix --enable-shared Thread model: posix gcc version 3.4.0 20040310 (prerelease)
host=i386-pc-nto-qnx6.2.1
target=i386-pc-nto-qnx6.2.1
gnatmake is a tracked alias for /src/gcc-3.4-20040310/nto/ntox86/gcc/gnatmake

=== acats support ===
Generating support files... done.
Compiling support files... done.

=== acats tests ===
Running chapter a ...
Running chapter c2 ...
Running chapter c3 ...
Running chapter c4 ...
Running chapter c5 ...
Running chapter c6 ...
Running chapter c7 ...
Running chapter c8 ...
Running chapter c9 ...
Running chapter ca ...
Running chapter cb ...
Running chapter cc ...
Running chapter cd ...
Running chapter ce ...
Running chapter cxa ...
Running chapter cxb ...
Running chapter cxf ...
Running chapter cxg ...
Running chapter cxh ...
Running chapter cz ...
Running chapter d ...
Running chapter e ...
Running chapter gcc ...
Running chapter l ...
=== acats Summary ===
# of expected passes 2322
# of unexpected failures 0

Думаю, что когда появиться стабилная версия gcc-3.4, то можно будеть выложить аду на ftp.
С gcc-3.3.х есть тоже компилятор ады но он основан на gnat 3.15p. В gcc-3.4 компилятор ады основан на gnat 5.0х.

<< . 1 . 2 . 3 . 4 . 5 . 6 . >>

You must login to post.

©   2000-2003 Команда проекта QNX.ORG.RU // QNX.ORG.RU Team
Авторы проекта: Дмитрий Алексеев [dmi] и Дмитрий Васильев. Техническое сопровождение проекта: Игорь Сорокин [isorokin]. Информационное сопровождение: Дмитрий Алексеев [dmi]
QNX - зарегистрированная торговая марка QNX Software Systems, Ltd., Canada. Остальные упоминаемые на сайте торговые марки и логотипы являются исключительно собственностью их уважаемых владельцев. Ничьи права не затронуты. Материалы сайта не могут быть скопированы и где-либо использованы в той или иной форме без письменного разрешения разработчиков сайта.
Powered by Mambo Open Source