Ada_Ru форум

Обсуждение языка Ада

Ada-2012 + Linux. Страница 2

Оставить новое сообщение

Сообщения

А кто говорил про експорт функций. У меня были обявлены базовые классы в приложении а в каждой конкретной длл наследники одного или нескольких классов реализующие какойто необходимый функционал. И все работало.

14 мая 2013 г., 12:49 пользователь Dmitry A. Kazakov

<[email protected]>написал:

13.05.2013 23:23, Dmitry A. Kazakov пишет:

On Mon, 13 May 2013 22:19:07 +0400, you wrote:

 

Т.е., с кроссплатформенностью относительно сборки и библиотек нет проблем?

При отсутствии использования специфических возможностей конкретной платформы - никаких.

 

Как, например, для разделяемых библиотеки. Под Linux проблем не будет. Под Windows - очень непросто, т.к. у GNAT с этим большие проблемы (Ada RTL не в DLL).

А как, да, объектные библиотеки - в-лёт и никаких make.

А поподробнее: с DLL, что за проблемы?

 

Под VxWorks их просто нет, вообще.

С VxWorks я не работал ни разу. Хотел полюбопытствовать, но только скачал, а посмотреть руки не доходили. На практике пока мне не требовалось.

Для любителей (и ценителей) по-кувыркаться есть:

http://www.ada-auth.org/standards/12rm/html/RM-B-3-2.html

Просто программисты Ады такого никогда не делают. Разве, что с перепою.

Указатели мне и не требуются, если возможно обойтись без них (вопрос лишь в том возможно ли, например, как сделать связанный список?).

 

В остальном в нём присутствуют все необходимые современному

языку средства. Ну разве что сборка мусора отсутствует.

Т.к. она к таковым не разумеется принадлежит. Хотя, опять, для любителей где-то валялся сборщик Бёмера для GNAT-a. Ссылку не сохранил, по-гуглите, найдете.

А действительно нужен?

 

Отсюда конкретный вопрос звучит так: используете ли вы данный язык для написания

пользовательского ПО, которым, затем пользуются (например, системы для бухгалтеров)?

 

P.S.:

Программы для бортовых систем самолёта или система обнаружения и ведения цели для радара установки ПВО в пользовательское ПО не входят. :-)

А ПО автоматизации пойдет? Там есть HMI (GUI), базы данных измерений, ну и конечно управление.

Какая область, если не секрет?

GUI тоже на Ada? Какие библиотеки использовали?

Какая СУБД?

Средствами чего организуется сопряжение с оборудованием?

13.05.2013 23:35, Dmitry A. Kazakov пишет:

On Mon, 13 May 2013 23:05:18 +0400, you wrote:

 

13.05.2013 22:19, Vadim Godunko пишет:

On 05/13/2013 09:46 PM, "Артём Н." wrote:

Насколько я понял: нет возможности собрать 64-х битное Windows

приложение вообще?

Или есть возможность собрать но только под Linux (тогда, в принципе, не проблема)?

Невозможно собрать Windows 64bit приложение публично доступными

средствами. Можно конечно выучить Высшую Магию и собрать компилятор самостоятельно... но под Windows это весьма специфическая задача.

Т.е., всё-таки, в случае использования бесплатного GNAT - невозможно вообще?

Зачем? Вы что видео файлы топырить собираетесь?

Нет. На будущее.

 

Т.е., с кроссплатформенностью относительно сборки и библиотек нет проблем?

При отсутствии использования специфических возможностей конкретной платформы - никаких.

А если надо будет использовать нечто специфическое?

Не надо. Мы работаем с железом (специфические измерительные инструменты, протоколы, сенсоры и т.п.) и еще ни разу этого не понадобилось.

Хм... Через что работаете?

 

Например, вызов некоего API

Да. Есть вызов импортированного модуля через конвенции stdcal, cdecl и.т.д.

Хорошо. Касательно системных API, там ведь описано не всё?

Да и если мне потребуется вызвать API из некой DLL, интерфейса к Ada у которой, конечно нет, просто ли будет это сделать (написать определения функций и сделать

.lib)?

 

http://www.ada-auth.org/standards/12rm/html/RM-J-15-5.html#I8486

или ассемблерные вставки.

Да. Но не нужно. Я помню один раз применил, для вызова инструкции outp из Ады.

Бывает нужно, когда критична скорость.

Мне давно захотелось сделать интерфейс-объект без окна, который я мог бы поворачивать мышкой. На windows. В то время я делал на P4. Создавал сложный регион из прямоугольных регионов и, затем, вызывал CreateRegion.

Было очень медленно: невозможно применять.

При этом, писалось на C-Builder и, как ни странно, код он генерировал вполне оптимальный. Но вычисления производились с использованием штатных средств CPU. Использование MMX расширения проблему решило. Без написания алгоритма на ассемблере (там была не вставка, а отдельная функция) это было бы сложно, если и

возможно.

13.05.2013 23:46, Vadim Godunko пишет:

On 05/13/2013 11:05 PM, "Артём Н." wrote:

А если надо будет использовать нечто специфическое?

Например, вызов некоего API или ассемблерные вставки.

Могу ли я сделать это, не прибегая к другому языку, и могу ли я их ограничить

чем-то наподобие директив препроцессора (без использования внешнего препроцессора)?

 

Конечно же такое возможно; но нужно быть готовым к некоторым танцам с бубном. Как вариант можно делать вариации пакетов для той или иной системы и указать какой вариант когда использовать. Делается это с помощью файлов проектов относительно несложно, например

 

http://forge.ada-ru.org/matreshka/browser/trunk/matreshka/gnat/matreshka_league.gpr#L246

 

Т.е. имеется штатная возможность создания проблемно-ориентированных языков?

Нет, имеется в виду обратное - создание подмножеств языка (профилей).

Deb-пакета нет. >:-| А так - неплохо.

Я бы рекомендовал обходить стороной Debian, особенно начинающим; ибо их компилятор устарел, и придётся немного пошаманить что бы заставить работать GNAT GPL.

$ gnat

GNAT 4.6

Copyright 1996-2010, Free Software Foundation, Inc.

 

Не так и сильно устарел. К тому же, Debian - лишь основная система. При желании,

я могу гонять что угодно на ВМ.

 

Попробуйте Fedora или OpenSUSE.

Я бы вам порекомендовал не говорить не разобравшись в вопросе.

Это выглядит не очень приятно. Я не знаю насчёт Ada и спрашиваю совета. Вы не знаете насчёт Debian, так что не советуйте, пожалуйста.

 

Я использую его постоянно, при том отлично знаю, что такое rpm-based. И никому бы я не стал рекомендовать федору, поскольку это - барахло.

Насчёт "устаревания" чего-либо в Debian. Вы просто не умеете его готовить. Никто не запрещает вам использовать вечный testing с примесью сида, просто прописав 'testing' вместо названия релиза. Т.е., вы будете иметь

последовательную модель обновления, как например, в Arch каком-нибудь.

Если же вам требуется надёжная система, вы можете использовать stable с бэкпортами нужного из следующей версии (да, представьте, в stable никто не запрещает устанавливать и без особых проблем использовать новое ПО).

Если вам требуется ещё больше ПО и более нового, вы можете подключить соответствующий репозиторий Ubuntu. Пакеты из него, как правило, легко и непринуждённо устанавливаются в Debian.

Может ли rpm-пакет с OpenSuse с лёгкостью встать на горе-федору?

 

Если у вас всё совсем плохо, вы можете вообще использовать ибунту. И будет вам новый софт, баги и прочие прелести федоры (но всё-равно гораздо меньше).

 

P.S.:

В принципе-то мне наплевать кто чем пользуется...

Просто не давно проскакивала новость, что рабочие места космонавтов на МКС (именно пользовательские места) были переведены на Debian.

Думаю, что это грамотное и взвешенное решение специалистов NASA.

 

А отечественные заскорузлые программисты так и сидят на этой гадости от RedHat, к которой приросли, когда из альтернатив в десктопах был только ещё более отвратительный MacOS и windows (BSD системы, в некоторых из которых KDE2 из коробки не собирался - не в счёт).

И пусть сидят. Так нет же, они тянут свою помойку в оборонку, в промышленность и

в транспорт. Печально наблюдать "федорку" на действующем оборудовании...

On 05/14/2013 06:40 PM, "Артём Н." wrote:

Я бы вам порекомендовал не говорить не разобравшись в вопросе.

Это выглядит не очень приятно. Я не знаю насчёт Ada и спрашиваю совета.

А я за Ada и говорю, поскольку как ни странно, но именно это я и знаю.

On 05/14/2013 06:19 PM, "Артём Н." wrote:

 

Хорошо. Касательно системных API, там ведь описано не всё?

Да и если мне потребуется вызвать API из некой DLL, интерфейса к Ada у которой,

конечно нет, просто ли будет это сделать (написать определения функций и сделать

.lib)?

 

Элементарно: объявляете функцию в Ada, указываете, что она импортируется и используете её в программе.

 

Бывает нужно, когда критична скорость.

Мне давно захотелось сделать интерфейс-объект без окна, который я мог бы поворачивать мышкой. На windows. В то время я делал на P4. Создавал сложный регион из прямоугольных регионов и, затем, вызывал CreateRegion. Было очень медленно: невозможно применять.

При этом, писалось на C-Builder и, как ни странно, код он генерировал вполне оптимальный. Но вычисления производились с использованием штатных средств CPU. Использование MMX расширения проблему решило. Без написания алгоритма на ассемблере (там была не вставка, а отдельная функция) это было бы сложно, если и

возможно.

 

Есть пакет System.Machine_Code, позворяющий делать ассемблерные вставки. Но если дело просто за MMX/SSE/etc. то проще импортировать встроенные функции GCC, заменяемые на ассемблерные инструкции при компиляции.

$ gnat

GNAT 4.6

Copyright 1996-2010, Free Software Foundation, Inc.

Не так и сильно устарел.

Гм. А сейчас год какой на дворе? :) Эти три года компания AdaCore (как впрочем и gcc-шное сообщество) не только стригла купоны ;)

P.S.:

В принципе-то мне наплевать кто чем пользуется...

Просто не давно проскакивала новость, что рабочие места космонавтов на МКС (именно пользовательские места) были переведены на Debian.

Думаю, что это грамотное и взвешенное решение специалистов NASA.

Не совсем понятно какое это к теме имеет отношение, вроде космонавты на МКС летают не для того, чтобы там ПО разрабатывать? :) А у самих специалистов NASA имеет место феерический зоопарк начиная с VAX VMS :)

А вообще, может не стоит разражаться такими длинными филиппиками относительно достоинств и недостатков разных ОС? Рассылка, все же, не совсем по этой тематике.

On 05/14/2013 01:37 PM, Dmitry A. Kazakov wrote:

 

Ежели код инициализации в приложении, то он должен разбираться если DLL уже была проинициализирована ДРУГИМ приложением. А это может только DLLMain. Нестыковка. В C++ тоже помнится была беда с DLL, что конструкторы разделяемых объектов вызывались каждый раз как DLL присоединялась кем-нибудь. В итоге, я вызывал их вручную из DLLMain на голую память разделяемой секции.

 

Так оно и происходит.

 

Во втором случае библиотека должна сама позаботиться об инициализации. Тут как раз standalone library и нужна.

 

Не может она быть "плохином", т.к. экспортирует ""грязные" пакеты библиотечного уровня.

 

А в чём нечистость их? Я уже начинаю бояться, что у меня оно работает нормально, а оказывается - не должно ;-)

 

Т.е. перечислить практически все, что в библиотеке есть? Это мало реально и грандиозный геморрой. В чем заключается "поддержка" не очень понятно.

А перечислять всё и не обязательно, достаточно указать наиболее значимые пакеты, замыкание построено будет автоматически и всё необходимо

указанным пакетам - проинициализировано.

14.05.2013 19:19, Vasiliy Fofanov пишет:

Гм. А сейчас год какой на дворе? :) Эти три года компания AdaCore (как впрочем и

gcc-шное сообщество) не только стригла купоны ;)

В любом случае, поставлю более новый, не такая проблема.

 

Не совсем понятно какое это к теме имеет отношение, вроде космонавты на МКС летают не для того, чтобы там ПО разрабатывать? :) А у самих специалистов NASA имеет место феерический зоопарк начиная с VAX VMS :)

Это было к рекомендации ОС.

 

А вообще, может не стоит разражаться такими длинными филиппиками относительно достоинств и недостатков разных ОС? Рассылка, все же, не совсем по этой тематике.

Накипает. :-)

On Tue, 14 May 2013 18:19:03 +0400, you wrote:

 

Хм... Через что работаете?

 

Индустриальный Ethernet и CAN, в основном. Иногда, редко, COM-порты.

Например, вызов некоего API

Да. Есть вызов импортированного модуля через конвенции stdcal, cdecl и.т.д.

Хорошо. Касательно системных API, там ведь описано не всё?

 

Никаких системных API не надо, но, в принципе, есть уже готовые win32ada - для окошечек.

 

А если надо чтобы работало и под Windows, и под Linux Ада, не следует этим пользоваться вообще. Все что нужно, имеется в языке. Есть готовые интерфейсы к Gtk, Qt, ODBC, сети, есть линейная алгебра. Все остальное - блажь.

 

Да и если мне потребуется вызвать API из некой DLL, интерфейса к Ada у которой,

конечно нет, просто ли будет это сделать (написать определения функций и сделать

.lib)?

 

30 секунд. Например, для VxWorks нет ничего готового. Все API мы вызываем напрямую из Ады.

 

http://www.ada-auth.org/standards/12rm/html/RM-J-15-5.html#I8486

или ассемблерные вставки.

Да. Но не нужно. Я помню один раз применил, для вызова инструкции outp из Ады.

 

Бывает нужно, когда критична скорость.

 

Мы работаем с 100-200 мкс циклами. Ничего, справляемся без вставок.

Мне давно захотелось сделать интерфейс-объект без окна, который я мог бы поворачивать мышкой. На windows. В то время я делал на P4. Создавал сложный регион из прямоугольных регионов и, затем, вызывал CreateRegion. Было очень медленно: невозможно применять.

 

Щас, так Windows Вам даст лезть в память адаптера! (По-моему уже есть BLT-операция в новых Windows API, которая вращает, не помню.)

 

При этом, писалось на C-Builder и, как ни странно, код он генерировал вполне оптимальный. Но вычисления производились с использованием штатных средств CPU. Использование MMX расширения проблему решило. Без написания алгоритма на ассемблере (там была не вставка, а отдельная функция) это было бы сложно, если и

возможно.

 

Самый хилый адаптер делает графику на порядок быстрее любого CPU на графических контекстах памяти. Другая архитектура, быстрый доступ к памяти, не надо качать мегабайты через PCI туда-сюда и т.п.

 

Для GUI скорости не нужно, если написано правильно. Если неправильно (на event-ах и callback-ах), не спасут никакие вставки. Например

софт-осциллограф, который показывает 10 каналов по 10кГц темпа изменений каждый, и при том через сеть. У нас работает.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

Для GUI скорости не нужно, если написано правильно. Если неправильно (на event-ах и callback-ах), не спасут никакие вставки. Например

софт-осциллограф, который показывает 10 каналов по 10кГц темпа изменений каждый, и при том через сеть. У нас работает.

>

Стоп. А как иначе? Какой-нибудь конечный автомат? (хотя и в самом КА

вообще то есть понятие события)

On Tue, 14 May 2013 18:06:47 +0400, you wrote:

 

13.05.2013 23:23, Dmitry A. Kazakov пишет:

On Mon, 13 May 2013 22:19:07 +0400, you wrote:

 

Т.е., с кроссплатформенностью относительно сборки и библиотек нет проблем?

При отсутствии использования специфических возможностей конкретной платформы - никаких.

 

Как, например, для разделяемых библиотеки. Под Linux проблем не будет. Под Windows - очень непросто, т.к. у GNAT с этим большие проблемы (Ada RTL не в DLL). А как, да, объектные библиотеки - в-лёт и никаких make.

А поподробнее: с DLL, что за проблемы?

 

У меня не срослась инициализация. Пустая DLL из функций должна работать.

Под VxWorks их просто нет, вообще.

С VxWorks я не работал ни разу. Хотел полюбопытствовать, но только скачал, а посмотреть руки не доходили. На практике пока мне не требовалось.

 

Вам повезло.

 

Для любителей (и ценителей) по-кувыркаться есть:

http://www.ada-auth.org/standards/12rm/html/RM-B-3-2.html

Просто программисты Ады такого никогда не делают. Разве, что с перепою.

Указатели мне и не требуются, если возможно обойтись без них (вопрос лишь в том

возможно ли, например, как сделать связанный список?).

 

Есть сто разных способов на Аде. Вопрос в том, когда и зачем. Связные списки используются довольно редко. Можно целую философию развести, почему.

В остальном в нём присутствуют все необходимые современному

языку средства. Ну разве что сборка мусора отсутствует.

Т.к. она к таковым не разумеется принадлежит. Хотя, опять, для любителей где-то валялся сборщик Бёмера для GNAT-a. Ссылку не сохранил, по-гуглите, найдете.

А действительно нужен?

 

Мне не нужен. Но есть разные мнения. Я использую счетчики ссылок, если объекты живут в динамических scope-ах.

 

Отсюда конкретный вопрос звучит так: используете ли вы данный язык для написания

пользовательского ПО, которым, затем пользуются (например, системы для бухгалтеров)?

 

P.S.:

Программы для бортовых систем самолёта или система обнаружения и ведения цели для радара установки ПВО в пользовательское ПО не входят. :-)

А ПО автоматизации пойдет? Там есть HMI (GUI), базы данных измерений, ну и конечно управление.

 

Какая область, если не секрет?

 

Автоматизация испытательных стендов, управление сетями малых отопительных систем в режиме генерации электроэнергии и т.п.

 

GUI тоже на Ada? Какие библиотеки использовали?

Какая СУБД?

 

Всякие. Обычно клиент хочет что-то конкретное: Oracle, MySQL, SQLServer. Мы под него подстраиваемся. Отсюда - ODBC.

 

Средствами чего организуется сопряжение с оборудованием?

 

Протоколы всякие, EtherCAT, CAN/CANOpen, XCP, AK, DLMS, DMX, ModBus. Их - тьма.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

14.05.2013 20:14, Dmitry A. Kazakov пишет:

On Tue, 14 May 2013 18:19:03 +0400, you wrote:

 

Хм... Через что работаете?

 

Индустриальный Ethernet и CAN, в основном. Иногда, редко, COM-порты.

Например, вызов некоего API

Да. Есть вызов импортированного модуля через конвенции stdcal, cdecl и.т.д.

Хорошо. Касательно системных API, там ведь описано не всё?

 

Никаких системных API не надо, но, в принципе, есть уже готовые win32ada - для окошечек.

 

А если надо чтобы работало и под Windows, и под Linux Ада, не следует этим пользоваться вообще. Все что нужно, имеется в языке. Есть готовые интерфейсы к Gtk, Qt, ODBC, сети, есть линейная алгебра. Все остальное - блажь.

 

Да и если мне потребуется вызвать API из некой DLL, интерфейса к Ada у которой,

конечно нет, просто ли будет это сделать (написать определения функций и сделать

.lib)?

 

30 секунд. Например, для VxWorks нет ничего готового. Все API мы вызываем напрямую из Ады.

 

http://www.ada-auth.org/standards/12rm/html/RM-J-15-5.html#I8486

или ассемблерные вставки.

Да. Но не нужно. Я помню один раз применил, для вызова инструкции outp из Ады.

 

Бывает нужно, когда критична скорость.

 

Мы работаем с 100-200 мкс циклами. Ничего, справляемся без вставок.

Понятно. Буду читать стандарт. Начал, пока что, со старого (какой-то из MIL-STD на Ada валялся у меня скачанный).

 

Мне давно захотелось сделать интерфейс-объект без окна, который я мог бы поворачивать мышкой. На windows. В то время я делал на P4. Создавал сложный регион из прямоугольных регионов и, затем, вызывал CreateRegion. Было очень медленно: невозможно применять.

Щас, так Windows Вам даст лезть в память адаптера! (По-моему уже есть BLT-операция в новых Windows API, которая вращает, не помню.)

Не знаю, как насчёт новых... Но что ж такого насчёт адаптера? В память, конечно,

лезть не даст, но через тот же OpenGL или DirectX с ним общаться...

При этом, писалось на C-Builder и, как ни странно, код он генерировал вполне оптимальный. Но вычисления производились с использованием штатных средств CPU. Использование MMX расширения проблему решило. Без написания алгоритма на ассемблере (там была не вставка, а отдельная функция) это было бы сложно, если и

возможно.

Самый хилый адаптер делает графику на порядок быстрее любого CPU на графических контекстах памяти. Другая архитектура, быстрый доступ к памяти, не надо качать мегабайты через PCI туда-сюда и т.п.

Для GUI скорости не нужно, если написано правильно. Если неправильно (на event-ах и callback-ах), не спасут никакие вставки. Например

софт-осциллограф, который показывает 10 каналов по 10кГц темпа изменений каждый, и при том через сеть. У нас работает.

Проблема-то была не в GUI (и тем более не про вычисления на GPU), а в формировании региона.

И сказано было к тому, что специфичное API и ассемблерные вставки могут быть нужны.

Насколько я понял, у Ada с этим проблем нет, следовательно, о чём тут ещё говорить?

On Tue, 14 May 2013 18:40:18 +0400, you wrote:

 

Я использую его постоянно, при том отлично знаю, что такое rpm-based. И никому бы я не стал рекомендовать федору, поскольку это - барахло.

 

Я использую и Федора, и Демьяна.

Насчёт "устаревания" чего-либо в Debian. Вы просто не умеете его готовить. Никто не запрещает вам использовать вечный testing с примесью сида, просто прописав 'testing' вместо названия релиза.

 

Это и есть беда, что вечный testing, покой нам только снится. Но GNAT и в Debian testing все равно старше его из Федора.

 

Вообще, я Демьяна не люблю именно из-за deb-пакетов. RPM проще и удобнее на порядок (хотя тоже не подарок). Особенно, если будете свои пакеты делать. rpmbuild - просто майский цветок по сравнению с чудовищными скриптами Демьяна.

 

У Федора один недостаток. Там GPS еще нету. А GPS - лучший IDE на сегодняшний день. Лучше даже чем MS Developing Studio. Только отладчик ужасен. Но это - gdb, из гуано конфетку не сделаешь.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

On Tue, 14 May 2013 20:27:44 +0400, you wrote:

 

Для GUI скорости не нужно, если написано правильно. Если неправильно (на event-ах и callback-ах), не спасут никакие вставки. Например

софт-осциллограф, который показывает 10 каналов по 10кГц темпа изменений каждый, и при том через сеть. У нас работает.

 

Стоп. А как иначе? Какой-нибудь конечный автомат? (хотя и в самом КА вообще то есть понятие события)

 

Прием данных и визуализация делаются асинхронно. Для визуализации достаточно 20мс цикла. Быстрее глаз, все равно, не воспринимает изменений. Если интересно, вот ссылка:

 

http://www.dmitry-kazakov.de/ada/aicwl.htm#9

 

В системах, которые мы делаем используется эта архитектура, в том числе для трассировки сообщений. Например, CAN-овских.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

14.05.2013 20:45, Dmitry A. Kazakov пишет:

On Tue, 14 May 2013 18:40:18 +0400, you wrote:

 

Я использую его постоянно, при том отлично знаю, что такое rpm-based. И никому бы я не стал рекомендовать федору, поскольку это - барахло.

Я использую и Федора, и Демьяна.

 

Насчёт "устаревания" чего-либо в Debian. Вы просто не умеете его готовить. Никто не запрещает вам использовать вечный testing с примесью сида, просто прописав 'testing' вместо названия релиза.

Это и есть беда, что вечный testing, покой нам только снится. Но GNAT и в Debian testing все равно старше его из Федора.

Естественно. Потому что, Fedora Core - это RHEL unstable. Также, как и Ubuntu - это Debian unstable.

 

Вообще, я Демьяна не люблю именно из-за deb-пакетов. RPM проще и удобнее на порядок (хотя тоже не подарок).

Для меня - наоборот. Особенно замечательное удобство и малое количество хорошо сгруппированных интуитивно понятных опций RPM.

 

Особенно, если будете свои пакеты делать.

rpmbuild - просто майский цветок по сравнению с чудовищными скриптами Демьяна.

Делал ради интереса. Ничего "чудовищного". Вы, видимо, очень давно занимались пакетированием под Debian.

Самый "чудовищный скрипт" rules занял у меня 40 строчек, с учётом где-то 15-20 комментариев (включая закоментированный мусор) и пробелов.

Хотя, конечно всё зависит от того, что вам требуется.

 

Мало того, есть же checkinstall, если совсем уж не хочется что-то делать.

Про RPM, увы, не могу сказать.

 

У Федора один недостаток. Там GPS еще нету. А GPS - лучший IDE на сегодняшний день. Лучше даже чем MS Developing Studio.

Чем лучше Eclipse, к примеру?

Я к Eclipse нашёл поддержку Ada какую-то, но пока не ставил.

 

Только отладчик

ужасен. Но это - gdb, из гуано конфетку не сделаешь.

Хм... Да вроде не так и плох. Ну, если его куда-то впилить и на хоткеи нормальные повесить.

А, вы про развязку гуя и потока данных которые нужно потом

визуализаировать... Да, я когда писал SCAD'у пришел ровно к тому же (в старой версии скады значение визуализировалось как только оно было получено, 100 раз в секунду меняется значение - будет 100 перерисовок в секунду, и понятно что все вставало колом как только начиналось самое веселье (скажем аварийная ситуация на объекте)).

2013/5/14 Dmitry A. Kazakov <[email protected]>

14.05.2013 20:59, Dmitry A. Kazakov пишет:

On Tue, 14 May 2013 20:27:44 +0400, you wrote:

 

Для GUI скорости не нужно, если написано правильно. Если неправильно (на event-ах и callback-ах), не спасут никакие вставки. Например

софт-осциллограф, который показывает 10 каналов по 10кГц темпа изменений каждый, и при том через сеть. У нас работает.

 

Стоп. А как иначе? Какой-нибудь конечный автомат? (хотя и в самом КА вообще то есть понятие события)

Прием данных и визуализация делаются асинхронно. Для визуализации достаточно 20мс цикла. Быстрее глаз, все равно, не воспринимает изменений. Если интересно, вот ссылка:

http://www.dmitry-kazakov.de/ada/aicwl.htm#9

Ага. А в момент остановки или запроса отображать или посылать актуальные данные.

Особенно, с учётом того, что отрисовка занимает много времени.

On Tue, 14 May 2013 19:23:40 +0400, you wrote:

 

On 05/14/2013 01:37 PM, Dmitry A. Kazakov wrote:

 

Во втором случае библиотека должна сама позаботиться об инициализации. Тут как раз standalone library и нужна.

 

Не может она быть "плохином", т.к. экспортирует ""грязные" пакеты библиотечного уровня.

 

А в чём нечистость их?

 

Там у меня инстанциирован generic, а в нем, инициализированые константы. На этом выносит. Дальше не смотрел.

 

Т.е. перечислить практически все, что в библиотеке есть? Это мало реально и грандиозный геморрой. В чем заключается "поддержка" не очень понятно.

А перечислять всё и не обязательно, достаточно указать наиболее значимые пакеты, замыкание построено будет автоматически и всё необходимо указанным пакетам - проинициализировано.

 

Можно было бы попробовать, но standalone все равно будет не правильно. Или? Я их описание GPR-проектов и терминологию не понимаю. Хуже чем RM, право слово.

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

14.05.2013 20:32, Dmitry A. Kazakov пишет:

On Tue, 14 May 2013 18:06:47 +0400, you wrote:

 

13.05.2013 23:23, Dmitry A. Kazakov пишет:

On Mon, 13 May 2013 22:19:07 +0400, you wrote:

 

Т.е., с кроссплатформенностью относительно сборки и библиотек нет проблем?

При отсутствии использования специфических возможностей конкретной платформы - никаких.

 

Как, например, для разделяемых библиотеки. Под Linux проблем не будет. Под Windows - очень непросто, т.к. у GNAT с этим большие проблемы (Ada RTL не в DLL). А как, да, объектные библиотеки - в-лёт и никаких make.

А поподробнее: с DLL, что за проблемы?

У меня не срослась инициализация. Пустая DLL из функций должна работать.

Т.е., какие-то очередные проблемы с тем, что должно и не должно быть в DllMain? Или нет?

 

Под VxWorks их просто нет, вообще.

С VxWorks я не работал ни разу. Хотел полюбопытствовать, но только скачал, а посмотреть руки не доходили. На практике пока мне не требовалось.

Вам повезло.

Почему?

Судя по всему, система не самая плохая...

Насколько я знаю, Xerox в своё время для крупных принтеров использовал, да и космические проекты, вроде как, смотрят в её сторону.

 

Для любителей (и ценителей) по-кувыркаться есть:

http://www.ada-auth.org/standards/12rm/html/RM-B-3-2.html

Просто программисты Ады такого никогда не делают. Разве, что с перепою.

Указатели мне и не требуются, если возможно обойтись без них (вопрос лишь в том

возможно ли, например, как сделать связанный список?).

Есть сто разных способов на Аде. Вопрос в том, когда и зачем. Связные списки используются довольно редко. Можно целую философию развести, почему.

В плане того, что это одна из основных структур, я вспомнил. Понятно, что есть коллекция, например. Но основе-то, как правило, лежит связанный список?

В остальном в нём присутствуют все необходимые современному

языку средства. Ну разве что сборка мусора отсутствует.

Т.к. она к таковым не разумеется принадлежит. Хотя, опять, для любителей где-то валялся сборщик Бёмера для GNAT-a. Ссылку не сохранил, по-гуглите, найдете.

А действительно нужен?

Мне не нужен. Но есть разные мнения. Я использую счетчики ссылок, если объекты живут в динамических scope-ах.

Ну надеюсь, в родных библиотеках есть уже готовые классы, в которых всё это реализовано?

 

GUI тоже на Ada? Какие библиотеки использовали?

Какая СУБД?

Всякие. Обычно клиент хочет что-то конкретное: Oracle, MySQL, SQLServer. Мы под него подстраиваемся. Отсюда - ODBC.

Кхм. А без ODBC?

 

Средствами чего организуется сопряжение с оборудованием?

Протоколы всякие, EtherCAT, CAN/CANOpen, XCP, AK, DLMS, DMX, ModBus. Их - тьма.

Ради любопытства... А что насчёт драйверов? Вот есть у вас какой-то свой специфический адаптер. Вы бы стали писать драйвер на Ada? Конечно мне это не потребуется, но всё-же.

Новое сообщение:
< Страницы: 1 2 3 4 5

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти