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

Люди, кто шарит в Аде подскажите!
Переписывая сишную структуру
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;

Правильно ли это? Будет ли двоичная совместимость с сишной структурой?
Если нет, то как правильно (если это вообще возможно?)Wink Да, и как
указать, чтобы неиспользуемые биты всегда были равны 0?
[addsig]
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



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


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


Лучше при этом опираться на перенесенный QSSL libc
Записан
myst
Гость
« Ответ #17 : Июля 04, 2002, 01:52:00 am »



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

[ Это Сообщение было отредактировано: dmi в 2002-07-03 13:23 ]


Архив слил. Имя файла: gcc-3.1-qnx-files.rar
[addsig]
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



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


myst пишет:
Архив слил. Имя файла: gcc-3.1-qnx-files.rar


Спасибо. Завтра ознакомлюсь и вышлю комментарии почтой.
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



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


wind_alex пишет:
Очень интересно. Действительно сколько весит и как пощупать?
Динамическая линковка поддерживается?

А интересно, пока пусть очень предварительно: а есть ли возможность как-то определить (pragma какие?) соглашения об external именах с тем, чтоб определить совместимость и линковку с библиотеками C/C++, а конкретно - перспективы подлинковки библиотек Photon?
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 469



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


dmi пишет:

myst пишет:
Архив слил. Имя файла: gcc-3.1-qnx-files.rar


Спасибо. Завтра ознакомлюсь и вышлю комментарии почтой.



Однако вышла неприятность: у меня сгорел диск, на котором был установлен QNX. Временно доступа к QNX нет.
Переложил файл в публичный доступ( он запакован WinRar3, все другие версии для распаковки не подойдут !):
http://ftp://ftp.qnxclub.net/pub/projects/myst/testing/gcc-3.1-qnx-files.rar
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



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


dmi пишет:
Переложил файл в публичный доступ( он запакован WinRar3, все другие версии для распаковки не подойдут !):
http://ftp://ftp.qnxclub.net/pub/projects/myst/testing/gcc-3.1-qnx-files.rar

Взял посмотреть.

2myst
Большая просьба - не надо так впредь делать - архивить всякой экзотикой (дрянь это дело всё, что с rar связано) - да ещё такой экзотикой, которая в qnx-unix не практикуется. Это в WIN разархивирую, все аттрибуты файлов поплывут, хорошо здесь только src-проект (посмотрел), а если .o, .co ... , а там WIN (он умный!) регистр букв в именах поменяет...

Записан
myst
Гость
« Ответ #22 : Июля 05, 2002, 02:18:00 am »


2myst
Большая просьба - не надо так впредь делать - архивить всякой экзотикой (дрянь это дело всё, что с rar связано) - да ещё такой экзотикой, которая в qnx-unix не практикуется. Это в WIN разархивирую, все аттрибуты файлов поплывут, хорошо здесь только src-проект (посмотрел), а если .o, .co ... , а там WIN (он умный!) регистр букв в именах поменяет...


Виноват. Не подумал, что кому-нибудь под QNX распаковывать
придется. А про имена файлов и аттрибуты тем более не подумал.
Просто WinRAR 3.0 сжал на 400 кило лучше bz2. Вот меня и подмыло.
Исправлюсь
[addsig]
Записан
myst
Гость
« Ответ #23 : Июля 05, 2002, 03:45:00 am »

В аде можно оформлять обработчики прерываний. Однако в
posix-версии пакетов реализации этой фишки предусмотрена
только обработка сигналов. Вот бы прикрутить туда обработку
аппаратных прерываний! Только возникает проблема с Interrupt_ID,
ведь и аппаратные прерывания и сигналы нумеруются с 0.
[addsig]
Записан
myst
Гость
« Ответ #24 : Июля 05, 2002, 04:14:00 am »


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]
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #25 : Июля 05, 2002, 12:07:00 pm »


Виноват. Не подумал, что кому-нибудь под QNX распаковывать
придется. А про имена файлов и аттрибуты тем более не подумал.
Просто WinRAR 3.0 сжал на 400 кило лучше bz2. Вот меня и подмыло.
Исправлюсь

Можешь кстати сделать ни вам ни нам - запаковать tar'ом а потом его rar'ом - результат еще лучше будет
Записан

cs994
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #26 : Июля 05, 2002, 01:11:00 pm »

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 архива?
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



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


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: я не видел бы ничего дурного в таком намерении, и даже наоборот, но только - это всё настолько ещё сырое, даже не "сырое" - а только намерения пока, а ещё требуется выверка ... и т.д. Не горячитесь чрезмерно - спешка в этих делах (доведенная до уровня авантюризма) может обернутся только профанацией классного намерения ("...благими намерениями дорога в Ад вымощена...", А.Данте).



Записан
cs994
Участник
*
Offline Offline

Сообщений: 0


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

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]
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



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


cs994 пишет:
Цена болванки ( 15..20 руб. ) + стоимость пересылки ( ~20 руб. по России )

В Харьков вышлите? (Тут проблем нет - было бы желание: мы с dmi регулярно пересылаемся, да и с www.books.ru мне Кёртена книгу прислали - это, кстати к вопросу "где взять", кто-то задавал).

P.S.Цитаты в этом форуме можно (и лучше) начинать с "[" quote "]", а завершать "[" /quote "]". И потом ещё и подредактировать - всё хорошо работает (спасибо dmi).

Записан
Страниц: 1 [2] 3 4 ... 12
  Печать  
 
Перейти в: