 |
Меню |
|
|
|
|
 |
Главная |
|
| Посл.ответ |
Сообщение |
|
Дата: 26 Июн, 21:31
myst пишет:
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.
|
Очень интересно! Остонадоел мне этот псевдоассемблер по имени С! Хочу нормальный язык!
А если серьезно, то:
А как бы пощупать?
Сколько кушает?
Каких размеров получилась "Hello!"? |
|
Дата: 27 Июн, 05:15
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.
[addsig]
|
|
Дата: 27 Июн, 09:44
myst пишет:
... Кого это заитересовало. Отзавитесь.
|
Очень интересно. Действительно сколько весит и как пощупать?
Динамическая линковка поддерживается? |
|
Дата: 27 Июн, 12:34
myst пишет:
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.
|
ADA - это тот релиз, который растёт из проекта GNAT? ADA-95?
Очень интересно.
Нельзя ли это куда на ftp выложить?
А как существующий GCC подменить на 3.1?
Кстати, с этой ADA кажется работает IDE CodeForge.
|
|
Дата: 28 Июн, 01:31
myst пишет:
Люди, кому интересен язык ADA под QNX!
Я собрал GCC 3.1 с поддержкой ADA. "Hello,world!" и небольшая многозадачная программа оттранслировались и даже работают.
Кого это заитересовало. Отзавитесь.
|
Интересует не столько ADA, сколько GCC 3.1. Как удалось его собрать ? Насколько он совместим с Libc ? Как насчет тредов ? Использовался ли при сборке код от QSSL ? (developers.qnx.com/.....)
Если не сложно, перешлите мне ( dmi@webis.ru ), я могу выложить на ftp сервере.
|
|
Дата: 2 Июл, 00:22
Приятно осозновать, что идея реализации 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] |
|
Дата: 2 Июл, 00:36
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] |
|
Дата: 2 Июл, 01:27
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).
|
К проекту с удовольствием подключусь, но не могу обещать, что смогу уделять ему много времени.
|
|
Дата: 2 Июл, 13:23
myst пишет:
Для dmi:
Все файлы (измененные исходники и скрипты плюс бинарники gnat1, gnatbind,
gcc) потянут примерно на 4М. Я че-то не знаю уберутся ли на мыло
(у меня, например, ящик 2М). Если да, то нет проблем.
P.S.
Сборка компилера (его еще надо вылизать) - это первый шаг, дальше надо
будет затачивать программное окружение под QNX. Разбираться с размером
получаемых программ (я неверю, что мы обречены на такие лошадистические
"Hello, world!" . Я был бы рад, если кто-нибудь подключится к проекту.
Или хотя бы помог консультациями (я, собственно, начинающий как в ADA, так и
в QNX).
|
Не для dmi - а для всех, и не на мыло - а в ftp (как в том анекдоте), dmi - объясни, пожалуйста, как на qnx.org.ru создаются новые проекты  .
Предлагаю открыть такой проект (там в форуме, по-моему старом, об этом столько говорили...). Я первый приму в нём участие (т.е. циклически, по мере загруженности, и т.д. - но это у всех будет так, проект то, видать будет "длинный"  ).
|
|
Дата: 2 Июл, 13:41
Olej пишет:
Не для dmi - а для всех, и не на мыло - а в ftp (как в том анекдоте), dmi - объясни, пожалуйста, как на qnx.org.ru создаются новые проекты .
|
Именно для dmi и именно на мыло
1) проект создадим как только убедимся, что это дело работоспособно
2) на фтп я его сам положу, в /pub |
|
Дата: 2 Июл, 21:19
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] |
|
Дата: 2 Июл, 23:21
Шлю в данный момент dmi архив с файлами.
Размер бинарников оказывается можно существенно уменьшить командой objcopy --strip-all file_name. "Hello, world!" похудела со 190 до ~43 кило.
[addsig]
|
|
Дата: 3 Июл, 00:00
Для dmi:
Че-то у меня на мыло не сливается. Под конец вампир пишет, что типа сервер сообщил об ошибке и все обламывается. Обидно, что почти все залилось. Два раза подрят пробовал. Два раза засада.
[addsig]
|
|
Дата: 3 Июл, 13:22
В gcc 2.9x была ошибка в первых бета версиях qnx 6.0 - отладочная информация росла как снежный ком, так например QT после сборки весил около 80 мегабайт. После strip оставалось тоже довольно много мусора.
Возможно эта ошибка не исправлена в основном коде gcc ? Попробую посмотреть изменения. результаты сообщу позже.
myst: выслал почтой логин на ftp
[ Это Сообщение было отредактировано: dmi в 2002-07-03 13:23 ]
|
|
Дата: 3 Июл, 20:57
Делая платформно-зависимые версии пакетов компилятора (собственно, там делать
было почти нечего), я брал за основу posix-версии. А может их лучше полностью
переписать, используя по возможности только вызовы микроядра QNX? Пакетов,
которые я корректировал всего 10, хотя может в этом случае нужно будет
и другие переколбасить. В любом случае их не должно быть более 20.
Но будет ли это значительно эффективнее? Стоит ли овчинка выделки?! 
[addsig] |
|
Дата: 3 Июл, 21:00
Люди, кто шарит в Аде подскажите!
Переписывая сишную структуру
struct _pulse {
_Uint16t type;
_Uint16t subtype;
_Int8t code;
_Uint8t zero[3];
union sigval value;
_Int32t scoid;
};
меня смутило поле zero. Судя по названию оно всегда равно 0.
Поэтому мне его захотелось скрыть:
package P is
type Pulse is
record
Pulse_Type : unsigned_short;
Pulse_Subtype : unsigned_short;
Code : plain_char;
Value : Sigval;
SCO_ID : int;
end record;
private
for Pulse use
record
Pulse_Type at 0 range 0 .. 15;
Pulse_SubType at 0 range 16 .. 31;
Code at 0 range 32 .. 39;
Value at 0 range 64 .. 64 + Sigval'Size - 1;
SCO_ID at 0 range 64 + Sigval'Size .. 64 + Sigval'Size + int'Size -1;
end record;
pragma Convention (C, Pulse);
end P;
Правильно ли это? Будет ли двоичная совместимость с сишной структурой?
Если нет, то как правильно (если это вообще возможно?);) Да, и как
указать, чтобы неиспользуемые биты всегда были равны 0?
[addsig]
|
|
Дата: 3 Июл, 21:09
myst пишет:
Делая платформно-зависимые версии пакетов компилятора (собственно, там делать
было почти нечего), я брал за основу posix-версии. А может их лучше полностью
переписать, используя по возможности только вызовы микроядра QNX? Пакетов,
которые я корректировал всего 10, хотя может в этом случае нужно будет
и другие переколбасить. В любом случае их не должно быть более 20.
Но будет ли это значительно эффективнее? Стоит ли овчинка выделки?!
|
Лучше при этом опираться на перенесенный QSSL libc |
|
Дата: 3 Июл, 22:52
myst: выслал почтой логин на ftp
[ Это Сообщение было отредактировано: dmi в 2002-07-03 13:23 ]
|
Архив слил. Имя файла: gcc-3.1-qnx-files.rar
[addsig] |
|
Дата: 3 Июл, 23:26
myst пишет:
Архив слил. Имя файла: gcc-3.1-qnx-files.rar
|
Спасибо. Завтра ознакомлюсь и вышлю комментарии почтой.
|
|
Дата: 4 Июл, 12:54
wind_alex пишет:
Очень интересно. Действительно сколько весит и как пощупать?
Динамическая линковка поддерживается?
|
А интересно, пока пусть очень предварительно: а есть ли возможность как-то определить (pragma какие?) соглашения об external именах с тем, чтоб определить совместимость и линковку с библиотеками C/C++, а конкретно - перспективы подлинковки библиотек Photon? |
|
Дата: 4 Июл, 13:12
dmi пишет:
myst пишет:
Архив слил. Имя файла: gcc-3.1-qnx-files.rar
|
Спасибо. Завтра ознакомлюсь и вышлю комментарии почтой.
|
Однако вышла неприятность: у меня сгорел диск, на котором был установлен QNX. Временно доступа к QNX нет.
Переложил файл в публичный доступ( он запакован WinRar3, все другие версии для распаковки не подойдут !):
ftp://ftp.qnxclub.net/pub/projects/myst/testing/gcc-3.1-qnx-files.rar |
|
Дата: 4 Июл, 18:23
Взял посмотреть.
2myst
Большая просьба - не надо так впредь делать - архивить всякой экзотикой (дрянь это дело всё, что с rar связано) - да ещё такой экзотикой, которая в qnx-unix не практикуется. Это в WIN разархивирую, все аттрибуты файлов поплывут, хорошо здесь только src-проект (посмотрел), а если .o, .co ... , а там WIN (он умный!) регистр букв в именах поменяет...
|
|
Дата: 4 Июл, 23:18
2myst
Большая просьба - не надо так впредь делать - архивить всякой экзотикой (дрянь это дело всё, что с rar связано) - да ещё такой экзотикой, которая в qnx-unix не практикуется. Это в WIN разархивирую, все аттрибуты файлов поплывут, хорошо здесь только src-проект (посмотрел), а если .o, .co ... , а там WIN (он умный!) регистр букв в именах поменяет...
|
Виноват. Не подумал, что кому-нибудь под QNX распаковывать
придется. А про имена файлов и аттрибуты тем более не подумал.
Просто WinRAR 3.0 сжал на 400 кило лучше bz2. Вот меня и подмыло.
Исправлюсь 
[addsig] |
|
Дата: 5 Июл, 00:45
В аде можно оформлять обработчики прерываний. Однако в
posix-версии пакетов реализации этой фишки предусмотрена
только обработка сигналов. Вот бы прикрутить туда обработку
аппаратных прерываний! Только возникает проблема с Interrupt_ID,
ведь и аппаратные прерывания и сигналы нумеруются с 0.
[addsig]
|
|
Дата: 5 Июл, 01:14
Olej пишет:
А интересно, пока пусть очень предварительно: а есть ли возможность как-то определить (pragma какие?) соглашения об external именах с тем, чтоб определить совместимость и линковку с библиотеками C/C++, а конкретно - перспективы подлинковки библиотек Photon?
|
Я знаю только три директивы по этому поводу:
(скпопировал из RM95)
pragma Convention([Convention =>] convention_identifier, [Entity =>] local_name);
pragma Import([Convention =>] convention_identifier, [Entity =>] local_name
[,[External_Name =>] string_expression] [, [Link_Name =>] string_expression]);
pragma Export([Convention =>] convention_identifier, [Entity =>] local_name
[,[External_Name =>] string_expression] [, [Link_Name =>] string_expression]);
Convention - имя языка, чьи соглашения будут использоваться;
Entity - имя объекта, для которого применяется директива;
External_Name - a string value for the name used by a foreign
language program either for an entity that an Ada program imports, or for referring
to an entity that an Ada program exports.
Link_Name - a string value for the name of an exported or imported entity, based on
the conventions of the foreign language’s compiler in interfacing with the
system’s linker tool.
Еще есть директива для указания опций линкера:
pragma Linker_Options(string_expression);
[addsig] |
|
Дата: 5 Июл, 09:07
Виноват. Не подумал, что кому-нибудь под QNX распаковывать
придется. А про имена файлов и аттрибуты тем более не подумал.
Просто WinRAR 3.0 сжал на 400 кило лучше bz2. Вот меня и подмыло.
Исправлюсь
|
Можешь кстати сделать ни вам ни нам - запаковать tar'ом а потом его rar'ом - результат еще лучше будет
|
|
Дата: 5 Июл, 10:11
Dear sirs!
В недрах FIDO образовалось то, что мы гордо называем Ru.Ada.Community. !) И мы сделали сборник материалов по Ada'е на CD. В него входят: документация, русский FAQ, библиотеки и, естественно, компиляторы для разных платформ. Обновлением и рассылкой этого диска ( по себестоимости ), который мы называем "сборник Васильченко" по имени составителя или Ru.Ada.Community CD ROM, занимаюсь я ( Кирилл Сазонов, cs@mail.spbnit.ru ). Естественно, я хотел бы включить версию для QNX в этот сборник.
myst пишет:
2myst
Большая просьба - не надо так впредь делать - архивить всякой экзотикой (дрянь это дело всё, что с rar связано) - да ещё такой экзотикой, которая в qnx-unix не практикуется. Это в WIN разархивирую, все аттрибуты файлов поплывут, хорошо здесь только src-проект (посмотрел), а если .o, .co ... , а там WIN (он умный!) регистр букв в именах поменяет...
|
Виноват. Не подумал, что кому-нибудь под QNX распаковывать
придется. А про имена файлов и аттрибуты тем более не подумал.
Просто WinRAR 3.0 сжал на 400 кило лучше bz2. Вот меня и подмыло.
Исправлюсь
|
В свете вышесказанного, мне хотелось бы узнать:
1. Можно ли включить портированную версию в сборник?
2. Если можно, то как добраться до неё в виде UNIX-style архива? |
|
Дата: 5 Июл, 11:11
myst пишет:
pragma Import([Convention =>] convention_identifier, [Entity =>] local_name [,[External_Name =>] string_expression] [, [Link_Name =>] string_expression]);
pragma Export([Convention =>] convention_identifier, [Entity =>] local_name [,[External_Name =>] string_expression] [, [Link_Name =>] string_expression]);
Еще есть директива для указания опций линкера:
pragma Linker_Options(string_expression);
|
Вот, что то, может и "оно". А идея вот в чём - QNX использует свою собственную графическую среду, всё, что традиционный X в QNX (все видели) настолько уступает, что ... неинтересно это всё. Если не удастся импортировать вызовы библлиотек Photon (не взирая на их недостатки: нереентерабельность ... и др., а может это - и не недостатки, а "особенности") в портированный GNAT - то это сразу снизит ценность такого проекта ... на 50% или более.
А "зацепиться" за ADA - заманчиво, это - действительно полновесный язык real-time с требуемой real-time надёжностью (чего никак нельзя сказать об C/C++). С ADA я сильно не копался руками, но детально прорабатывал (и что-то пробовал) в достаточно продолжительные годы работы с Виртовскими развитиями Pascal - Modula-2 & Oberon. Так что вспомнить это всё будет не так и сложно.
В этом контексте всем, кто хотел бы покопаться, классно бы полистать Р.Янг "Языки прграммирования реального времени" (я уже её здесь как-то в форуме называл) - жалко старая она, только на развалах букинистов можно найти, наверное, если не переиздавали, и у меня нет чтоб ссылку точно дать - "угнали" (что само по себе - "знак качества"  ).
cs994 пишет:
В недрах FIDO образовалось то, что мы гордо называем Ru.Ada.Community. !) И мы сделали сборник материалов по Ada'е на CD. В него входят: документация, русский FAQ, библиотеки и, естественно, компиляторы для разных платформ. Обновлением и рассылкой этого диска ( по себестоимости ), который мы называем "сборник Васильченко" по имени составителя или Ru.Ada.
|
А имеют эти ... недра  - URL адрес?
И нельзя ли коротко но подробнее?
А вот эта "себестоимость" - это сколько?
И можно ли подробнее состав (перечень) того, что уже накоплено (это - чтоб не утомлять публику - можно мне мылом).
По поводу намерения включить GNAT порт QNX: я не видел бы ничего дурного в таком намерении, и даже наоборот, но только - это всё настолько ещё сырое, даже не "сырое" - а только намерения пока, а ещё требуется выверка ... и т.д. Не горячитесь чрезмерно - спешка в этих делах (доведенная до уровня авантюризма) может обернутся только профанацией классного намерения ("...благими намерениями дорога в Ад вымощена...", А.Данте).
|
|
Дата: 5 Июл, 12:38
Dear sirs!
cs994 пишет:
В недрах FIDO образовалось то, что мы гордо называем Ru.Ada.Community. !) И мы сделали сборник материалов по Ada'е на CD. В него входят: документация, русский FAQ, библиотеки и, естественно, компиляторы для разных платформ. Обновлением и рассылкой этого диска ( по себестоимости ), который мы называем "сборник Васильченко" по имени составителя или Ru.Ada.
|
А имеют эти ... недра <IMG SRC="/ru/forum/images/smiles/icon_wink.gif"> - URL адрес?
FIDO'шная конференция SU.PASCAL.MODULA.ADA, а кроме того сейчас идёт обсуждение перевода курса лекций по Ada'е на YAHOO по адресу ada_ru@yahoogroups.com ( если не ошибаюсь, можно подписаться по адресу ada_ru-subscribe@yahoogroups.com ).
И нельзя ли коротко но подробнее?
Что именно?
А вот эта "себестоимость" - это сколько?
Цена болванки ( 15..20 руб. ) + стоимость пересылки ( ~20 руб. по России )
И можно ли подробнее состав (перечень) того, что уже накоплено (это - чтоб не утомлять публику - можно мне мылом).
По поводу намерения включить GNAT порт QNX: я не видел бы ничего дурного в таком намерении, и даже наоборот, но только - это всё настолько ещё сырое, даже не "сырое" - а только намерения пока, а ещё требуется выверка ... и т.д. Не горячитесь чрезмерно - спешка в этих делах (доведенная до уровня авантюризма) может обернутся только профанацией классного намерения
В любом случае, надо потрогать. Как раз и повод наконец-то поставить QNX будет -- давно хочу, а руки не доходят.
("...благими намерениями дорога в Ад вымощена...", А.Данте).
Получился роскошный каламбур, особенно учитывая, что речь идёт о языке Ada.
!)
[/quote]
[addsig] |
|
Дата: 5 Июл, 13:00
cs994 пишет:
Цена болванки ( 15..20 руб. ) + стоимость пересылки ( ~20 руб. по России )
|
В Харьков вышлите? (Тут проблем нет - было бы желание: мы с dmi регулярно пересылаемся, да и с www.books.ru мне Кёртена книгу прислали - это, кстати к вопросу "где взять", кто-то задавал).
P.S.Цитаты в этом форуме можно (и лучше) начинать с "[" quote "]", а завершать "[" /quote "]". И потом ещё и подредактировать - всё хорошо работает (спасибо dmi).
|
You must login to post.
| | |