Страниц: [1] 2 3 ... 12
  Печать  
Автор Тема: ADA и QNX  (Прочитано 87009 раз)
myst
Гость
« : Июня 27, 2002, 08:15:00 am »

Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.
[addsig]
Записан
Evgeniy
Jr. Member
**
Offline Offline

Сообщений: 73


Просмотр профиля
« Ответ #1 : Июня 27, 2002, 12:31:00 am »


myst пишет:
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.



Очень интересно! Остонадоел мне этот псевдоассемблер по имени С! Хочу нормальный язык!

А если серьезно, то:
А как бы пощупать?
Сколько кушает?
Каких размеров получилась "Hello!"?
Записан
wind_alex
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #2 : Июня 27, 2002, 12:44:00 pm »


myst пишет:
... Кого это заитересовало. Отзавитесь.


Очень интересно. Действительно сколько весит и как пощупать?
Динамическая линковка поддерживается?
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #3 : Июня 27, 2002, 03:34:00 pm »


myst пишет:
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.

ADA - это тот релиз, который растёт из проекта GNAT? ADA-95?
Очень интересно.
Нельзя ли это куда на ftp выложить?
А как существующий GCC подменить на 3.1?
Кстати, с этой ADA кажется работает IDE CodeForge.
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



Просмотр профиля
« Ответ #4 : Июня 28, 2002, 04:31:00 am »


myst пишет:
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.



Интересует не столько ADA, сколько GCC 3.1. Как удалось его собрать ? Насколько он совместим с Libc ? Как насчет тредов ? Использовался ли при сборке код от QSSL ? (developers.qnx.com/.....)
Если не сложно, перешлите мне ( dmi@webis.ru ), я могу выложить на ftp сервере.
Записан
myst
Гость
« Ответ #5 : Июля 02, 2002, 03:22:00 am »

Приятно осозновать, что идея реализации ADA под QNX интересна не только мне!

Так начну по порядку. Размер "Hello, world!" меня немного удручил, хотя он
сопоставим с тем, что у меня получался в GNAT 3.13p под Windows около 190К.
Размер многозадачной программы (она тривиальна: основная задача запрашивает
у вспомогательной значение счетчика каждые n секунд и выводит его на экран,
вспомогательная же инкрементирует его пока нет запросов) около 280K.
Расходы памяти во время выполнения не проверял. На счет динамической
линковки к сожалению тоже еще не думал, но обязательно проверю. Как пишут
на gcc.gnu.org реализация ADA в GCC 3.1 основана GNAT, правда определенные
изменения в некоторых пакетах исходников я заметил, пока мучился со сборкой.
Естественно это ADA-95. Совместимость GCC 3.1 с libc специально не проверял, но
при сборке самого компилятора она по моему использовалась, а он пока
работает. На счет потоков могу сказать, что задачи ADA реализованы через
потоки. Первые пробы адской многозадачности показывают, что она работает
(правда есть определенные подозрения, но ведь это даже наверное не альфа
версия, посмотрим). Так, что думаю в C программах потоки тоже должны
работать.


Для dmi:
Все файлы (измененные исходники и скрипты плюс бинарники gnat1, gnatbind,
gcc) потянут примерно на 4М. Я че-то не знаю уберутся ли на мыло
(у меня, например, ящик 2М). Если да, то нет проблем.


P.S.
Сборка компилера (его еще надо вылизать) - это первый шаг, дальше надо
будет затачивать программное окружение под QNX. Разбираться с размером
получаемых программ (я неверю, что мы обречены на такие лошадистические
"Hello, world!" . Я был бы рад, если кто-нибудь подключится к проекту.
Или хотя бы помог консультациями (я, собственно, начинающий как в ADA, так и
в QNX).
[addsig]
Записан
mrbool
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #6 : Июля 02, 2002, 03:36:00 am »


myst пишет:
Приятно осозновать, что идея реализации ADA под QNX интересна не только мне!



Мужик ! Ты даже не подозреваешь сколько времени я ждал когда
GNAT на QNX появится !

Короче, дуй на ada_ru-owner@yahoogroups.com, там весь адский
народ собрался, вкупе с Рыбиным из GNAT.

P.S: накатай мыльцо на mr.bool@rambler.ru, дам дальнейшие
координаты. Кстати наверно не вредно будет на :
http://faqs.org.ru/progr/other_l/adafaq.htm взглянуть
(правда давно уже не обновлялся, так как некоторые товарищи в java погрязли
[addsig]
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



Просмотр профиля
« Ответ #7 : Июля 02, 2002, 04:27:00 am »


myst пишет:
Приятно осозновать, что идея реализации ADA под QNX интересна не только мне!

Никогда не интересовался ADA, но не раз хотел Вот отличный повод


Так начну по порядку. Размер "Hello, world!" меня немного удручил, хотя он
сопоставим с тем, что у меня получался в GNAT 3.13p под Windows около 190К.
Размер многозадачной программы (она тривиальна: основная задача запрашивает
у вспомогательной значение счетчика каждые n секунд и выводит его на экран,
вспомогательная же инкрементирует его пока нет запросов) около 280K.

а если попробовать сделать
$ strip a.out  


Расходы памяти во время выполнения не проверял. На счет динамической
линковки к сожалению тоже еще не думал, но обязательно проверю. Как пишут
на gcc.gnu.org реализация ADA в GCC 3.1 основана GNAT, правда определенные
изменения в некоторых пакетах исходников я заметил, пока мучился со сборкой.
Естественно это ADA-95. Совместимость GCC 3.1 с libc специально не проверял, но
при сборке самого компилятора она по моему использовалась, а он пока
работает. На счет потоков могу сказать, что задачи ADA реализованы через
потоки. Первые пробы адской многозадачности показывают, что она работает
(правда есть определенные подозрения, но ведь это даже наверное не альфа
версия, посмотрим). Так, что думаю в C программах потоки тоже должны
работать.

Потоки в QNX стандартные (POSIX threads), c этим больших проблем быть не должно (за исключением SMP систем и некоторых небезопасных внутрипотоковых функций )


Для dmi:
Все файлы (измененные исходники и скрипты плюс бинарники gnat1, gnatbind,
gcc) потянут примерно на 4М. Я че-то не знаю уберутся ли на мыло
(у меня, например, ящик 2М). Если да, то нет проблем.

Я думаю, проблем с этим не будет. Адрес dmi@webis.ru
Если можно - с небольшими комментариями


P.S.
Сборка компилера (его еще надо вылизать) - это первый шаг, дальше надо
будет затачивать программное окружение под QNX. Разбираться с размером
получаемых программ (я неверю, что мы обречены на такие лошадистические
"Hello, world!" . Я был бы рад, если кто-нибудь подключится к проекту.
Или хотя бы помог консультациями (я, собственно, начинающий как в ADA, так и
в QNX).

К проекту с удовольствием подключусь, но не могу обещать, что смогу уделять ему много времени.
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #8 : Июля 02, 2002, 04:23:00 pm »


myst пишет:
Для dmi:
Все файлы (измененные исходники и скрипты плюс бинарники gnat1, gnatbind,
gcc) потянут примерно на 4М. Я че-то не знаю уберутся ли на мыло
(у меня, например, ящик 2М). Если да, то нет проблем.

P.S.
Сборка компилера (его еще надо вылизать) - это первый шаг, дальше надо
будет затачивать программное окружение под QNX. Разбираться с размером
получаемых программ (я неверю, что мы обречены на такие лошадистические
"Hello, world!" . Я был бы рад, если кто-нибудь подключится к проекту.
Или хотя бы помог консультациями (я, собственно, начинающий как в ADA, так и
в QNX).

Не для dmi - а для всех, и не на мыло - а в ftp (как в том анекдоте), dmi - объясни, пожалуйста, как на qnx.org.ru создаются новые проекты .

Предлагаю открыть такой проект (там в форуме, по-моему старом, об этом столько говорили...). Я первый приму в нём участие (т.е. циклически, по мере загруженности, и т.д. - но это у всех будет так, проект то, видать будет "длинный" ).
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



Просмотр профиля
« Ответ #9 : Июля 02, 2002, 04:41:00 pm »


Olej пишет:
Не для dmi - а для всех, и не на мыло - а в ftp (как в том анекдоте), dmi - объясни, пожалуйста, как на qnx.org.ru создаются новые проекты .


Именно для dmi и именно на мыло
1) проект создадим как только убедимся, что это дело работоспособно
2) на фтп я его сам положу, в /pub
Записан
mrbool
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #10 : Июля 03, 2002, 12:19:00 am »


myst пишет:
Так начну по порядку. Размер "Hello, world!" меня немного удручил, хотя он сопоставим с тем, что у меня получался в GNAT 3.13p под Windows около 190К.


Следующая программа  :

-- hello.adb
With Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
    Put_Line("Hello World !");
end;
-- hello.adb

Откомпилированная на SuSE Linux 8.0 с помощью GNAT 3.13p

со следующими ключами :

gnatmake -O3 hello.adb -gnatpoPf -mpentium -march=pentium -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -fomit-frame-pointer

Имеет размер 20 kb. Под виндами можно попробовать
также в конце добавить -largs -s
[addsig]
Записан
myst
Гость
« Ответ #11 : Июля 03, 2002, 02:21:00 am »

Шлю в данный момент dmi архив с файлами.
Размер бинарников оказывается можно существенно уменьшить командой objcopy --strip-all file_name. "Hello, world!" похудела со 190 до ~43 кило.
[addsig]
Записан
myst
Гость
« Ответ #12 : Июля 03, 2002, 03:00:00 am »

Для dmi:
Че-то у меня на мыло не сливается. Под конец вампир пишет, что типа сервер сообщил об ошибке и все обламывается. Обидно, что почти все залилось. Два раза подрят пробовал. Два раза засада.
[addsig]
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



Просмотр профиля
« Ответ #13 : Июля 03, 2002, 04:22:00 pm »

В gcc 2.9x была ошибка в первых бета версиях  qnx 6.0 - отладочная информация росла как снежный ком, так например QT после сборки весил около 80 мегабайт. После strip оставалось тоже довольно много мусора.
Возможно эта ошибка не исправлена в основном коде gcc ? Попробую посмотреть изменения. результаты сообщу позже.

myst: выслал почтой логин на ftp

[ Это Сообщение было отредактировано: dmi в 2002-07-03 13:23 ]
Записан
myst
Гость
« Ответ #14 : Июля 03, 2002, 11:57:00 pm »

Делая платформно-зависимые версии пакетов компилятора (собственно, там делать
было почти нечего), я брал за основу posix-версии. А может их лучше полностью
переписать, используя по возможности только вызовы микроядра QNX? Пакетов,
которые я корректировал всего 10, хотя может в этом случае нужно будет
и другие переколбасить. В любом случае их не должно быть более 20.
Но будет ли это значительно эффективнее? Стоит ли овчинка выделки?!
[addsig]
Записан
Страниц: [1] 2 3 ... 12
  Печать  
 
Перейти в: