[00:22:32] <ada_ru> (avkvlru) отвечает (reznikmm) на <Да ты же собрал почт…>
Вот на этом этапе то и проблемы...
[00:23:01] <ada_ru> (avkvlru) Не могу понять как это сделать
[00:25:53] <ada_ru> (avkvlru) Раньше была gnatdll
[03:38:12] <ada_ru> (avkvlru) Доброе утро еще раз. В виндоуз проблема решилась. Можно взять gnatdll из старых версий, скачав их на сайте и все прекрасно работает.
[03:44:04] <ada_ru> (avkvlru) Кстати по короновирусу кому интересно: у нас прошел этап испытани
[03:48:49] <ada_ru> (avkvlru) Пациентка которую привезли с сатурацией ниже 70 теперь с хоботковвм синдромом
[03:56:34] <ada_ru> (I_vlxy_I) отвечает (avkvlru) на <Пациентка (29 лет) к…>
У взрослого человека? Как?! Что это значит?
[03:56:52] <ada_ru> (avkvlru) Поражение коры
[03:58:19] <ada_ru> (I_vlxy_I) Хе. Это из за кислородного голодания, или вирус до мозга (или сосудов головного мозга) добрался?
[03:58:47] <ada_ru> (avkvlru) Сатурация под 60 была. Как у утопленников.
[03:59:21] <ada_ru> (I_vlxy_I) Видать она не страдала апное...
[03:59:28] <ada_ru> (I_vlxy_I) А то обошлось бы
[03:59:56] <ada_ru> (I_vlxy_I) Ну и оксиметры на низких сатурациях СИЛЬНО теряют в точности. К слову
[04:00:05] <ada_ru> (avkvlru) 3 дня... 60. Ни у кого не обойдется. Мигрантка - тчнули до последнего.
[04:00:33] <ada_ru> (I_vlxy_I) Хе
[04:01:21] <ada_ru> (I_vlxy_I) /me проверил работоспособность прототипов оксиометров и своего ПО для них
[04:01:39] <ada_ru> (avkvlru) 100% поражение легких. Мазка не было поэтому в ковидный госпиталь попала ни сразу, а в обычной больнице безполисного пациента на миллионы лечить никто не будет.
[04:01:40] <ada_ru> (I_vlxy_I) Плюс я родным оксиметры прикупил. Обычные
[04:02:16] <ada_ru> (a) Я правильно понял, что она в состоянии “овощ" теперь?
[04:02:24] <ada_ru> (avkvlru) Хз.
[04:02:30] <ada_ru> (I_vlxy_I) отвечает (avkvlru) на <100% поражение легки…>
Это ЭКМО надо?
[04:03:39] <ada_ru> (avkvlru) Нейропротекторную терапию сразу надо.
[04:04:58] <ada_ru> (avkvlru) И ту же калетру... но бесполисных пациентов фомс не оплачивает без подтверждения ковида...
[04:05:54] <ada_ru> (avkvlru) Поэтому там где она вначале лежала- ее лечили нежорогими препаратами. Пока не пришел мазок и не отвезли к нам.
[04:07:03] <ada_ru> (I_vlxy_I) Хех
[04:07:06] <ada_ru> (avkvlru) Антитела фомс не признает только мазок. Он делается долго. До недели.
[04:09:09] <ada_ru> (avkvlru) Так с гпрбьюлд тоже разобрался. В виндоус почему то нельзя указывать для библиотеки ./
[04:09:53] <ada_ru> (avkvlru) Пишешь lib/ - все линкуется... есть мысли почему так?
[04:10:43] <ada_ru> (avkvlru) Теперь осталось автозапуск настроить ;)
[04:12:01] <ada_ru> (I_vlxy_I) Нету мыслей :-(
[04:12:08] <ada_ru> (avkvlru) После митинга займусь ;)
[04:12:24] <ada_ru> (I_vlxy_I) Ладно, я спать. А то 4 ночи уже :-)
[04:12:58] <ada_ru> (avkvlru) А я на митинг... в поддержку "коллеги"
[04:13:10] <ada_ru> (I_vlxy_I) Давай :-)
[07:02:52] <ada_ru> (avkvlru) Добрый день, уважаемые коллеги. Возвращаясь к теме внешних библиотек, в виндоус (для интеграции с go, питоном, перлом и т.п.). В стандартных примерах, прилагаемых к аде, есть недоработки, а в документации не отражены важные ньюансы. При интеграции с Си они несущественны, т.к. там сборка ведётся гнатлинком, исправляющим эти проблемы, зато с другими языками - возникают проблемы
1) В прагме экспорт надо обязательно указывать внешнее имя функции, хотя по стандарту это необязательно.
2) При подключении библиотеки питоном под виндоус, адрес должен быть либо абсолютным, либо начинаться с "./"
3) Для корректного подключения динамической библиотеки. необходимо закинуть в каталог libgcc_s_dw2-1.dll и libgnat-2017.dll
4) Почему-то нельзя использовать для сохранения dll текущий каталог, только его подкатолги
5) Корректный текст для создания dll через gprbuilld:
6) Инициализацию/финализацию (если нужна) - производить ada_init и ada_final, вместо adainit
[07:03:11] <ada_ru> (avkvlru) Насчёт п.6, я вообще не уверен, что она нужна. Михаил намекал, что среда формируется автоматически.
[07:05:04] <ada_ru> (avkvlru) package Ada_Lib is
procedure Do_It_In_Ada;
pragma Export (C, Do_It_In_Ada,"doia");
end Ada_Lib;
with Ada.Text_IO; use Ada.Text_IO;
package body Ada_Lib is
procedure Do_It_In_Ada is
begin
Put_Line ("Done in Ada");
end Do_It_In_Ada;
end Ada_Lib;
project Sa_Lib is
for Languages use ("Ada");
for Source_Dirs use ("lib_src");
for Object_Dir use "obj";
for Library_Dir use "dll_lib";
for Library_Kind use "dynamic";
for Library_Interface use ("ada_lib");
for Library_Name use "ada";
end Sa_Lib;
пример вызова на питоне
from ctypes import *
libc = CDLL("./dll_lib/libada.dll")
#libc.ada_init()
libc.doia()
#libc.ada_final()
[07:07:11] <ada_ru> (avkvlru) С маком и win-64 пока разбираюсь, там ещё не заработало...
[09:58:02] <ada_ru> (foxtran) отвечает (Vinpuh) на <Полгода будет объявл…>
Свой пишите! :-)
[09:59:48] <ada_ru> (foxtran) отвечает (I_vlxy_I) на <нокия как делала тел…>
Был доклад на С++ от Елены Степановой: она в Nokia работает. Вышки для 5G разрабатывают на >=С++17
[10:07:13] <ada_ru> (foxtran) отвечает (I_vlxy_I) на <Суд над убийцей.
Суд…>
Я уже 8 раз прочитал, но никак не пойму, что происходит 😴
[10:16:21] <ada_ru> (foxtran) отвечает (I_vlxy_I) на <Ладно, я спать. А то…>
А на западном побережье всего лишь шесть вечера...
[10:24:31] <ada_ru> (nitrocerber) С интерфейсными прагмами я тоже налетал
[10:24:54] <ada_ru> (nitrocerber) А вообще это всё в виде тикета бы. Или хотя бы ишью на гытхап
[10:25:06] <ada_ru> (nitrocerber) Шоб не потерялось
[10:31:28] <ada_ru> (sergey_dukov) отвечает (avkvlru) на <Добрый день, уважаем…>
При построении проектов АДА-библиотек нужно соблюдать некие правила структуры проекта.
Нельзя валить все файлы в одну кучу. Нужно в ЖПР-файле указать отдельные директории для исходников (пусть будет "src"); директорию для объектных кодов (пусть будет "lib_obj"); директорию для результирующей библиотеки (пусть будет "lib", можно указать и "./", но директория должна обязательно отличаться от директории для объектных кодов), в эту директорию копируются файлы библиотеки из директории объектных кодов (dll-файл и ali-файлы, а копирование файла самого в себя не возможно); директорию для выходных документов (пусть будет "doc"); возможно директорию для артефактов (пусть будет "data");
В прагме "Export" внешнее имя можно не указывать, при этом нужно знать какое имя присвоит компилятор. Так что проще указать имя явно.
У вас в проекте в предложении "for Library_Name use ..." нужно указать что-то более уникальное (скажем "Sa_Lib").
Описывайте в проекте все секции построения — это золотое правило. В этом деле очень помогут шаблоны и визарды GPS (GnatStudio).
Теперь о назначении проектируемой библиотеки:
Если библиотека предназначена для статической компоновки с проектом, где головной процедурой является АДА-процедура, предложение "for Library_Interface use ..." не нужно. Построитель проекта скомпилирует все файлы в директории исходников и соберёт из объектных файлов разделяемую библиотеку. Инициализационные коды будут вызываться из головной процедуры исполняемого файла и порядок их вызова будет определяться утилитой "gnatbind" при построении исполняемого файла;
Если библиотека предназначена для динамической загрузки, то тут всё гораздо сложнее.
Если вы хотите инициализация всех модулей библиотеки выполнялась в одной процедуре, то в предложении "for Library_Interface use ..." нужно указать полный список всех модулей, которые должны войти в библиотеку. В секции "Binder" нужно указать параметр "-n". Построитель проектов включит в разделяемую библиотеку процедуру инициализации. Явно вызывать её не нужно. Она вызывается автоматически при загрузке разделяемой библиотеки. Но вот о правильном выполнении инициализации я ничего конкретного сказать не могу. Не вызовет ли повторная инициализация уже загруженных АДА-модулей негативных последствий, я не знаю.
Желательно инсталлировать создаваемые проекты в систему утилитой "gprinstall". Это решает проблемы загрузки модулей и взаимодействия между проектами. Деинсталляция проекта не оставляет в системе никаких следов, так что это безопасно.
[11:19:57] <ada_ru> (Oleg) отвечает (avkvlru) на <Поэтому там где она …>
Кстати, цераксрн как нейроппотектор работает? Ну он по идее как раз призван сохранить нейроны там где нет кислорода
[13:07:32] <ada_ru> (shiz01) отвечает (Oleg) на <Кстати, цераксрн как…>
Вроде да, его при хронической гипоксии головного мозга назуачают. Да и мне после инсултов назначают.
[13:36:27] <ada_ru> (Oleg) отвечает (shiz01) на <Вроде да, его при хр…>
Так и мне, только мне кажется это как касторка :-)
[13:36:41] <ada_ru> (Oleg) Я забил на него давно
[13:36:59] <ada_ru> (Oleg) И на глицин и на все кроме аспирина
[13:37:02] <ada_ru> (Oleg) :-)
[13:40:16] <ada_ru> (shiz01) :-)
[13:53:55] <ada_ru> (Grozniy) вот ссылка на закрытую группу https://t.me/joinchat/AAAAAE6C-hurUh_jIbuA0g
подписывайся пока не изменили👍
[14:18:02] <ada_ru> (I_vlxy_I) больше армов! https://habr.com/en/company/selectel/blog/512308/
[14:21:51] <ada_ru> (I_vlxy_I) вначале капец интелу, а потом и x86!
[14:21:56] <ada_ru> (I_vlxy_I) и винде!
[14:22:00] <ada_ru> (I_vlxy_I) ура, товарищи!
[14:26:17] <ada_ru> (Борис) отвечает (I_vlxy_I) на <и винде!>
https://3dnews.ru/1015615
[14:26:48] <ada_ru> (I_vlxy_I) это будет весьма забавно
[14:27:23] <ada_ru> (I_vlxy_I) хотя бы потому, что у армов вроде как нет стандарта на то, как система грузится. ну и вообще - переферию всю все лепят как хотят
[14:28:26] <ada_ru> (I_vlxy_I) ну и да, это будет означать, что винда будет сильно проигрывать другим осям - львиную долю софта виндовозного так просто не пересобрать
[14:28:39] <ada_ru> (I_vlxy_I) а через эмулятор оно будет немного медленней и глючней работать
[14:29:45] <ada_ru> (I_vlxy_I) у маков переход на другой проц намного менее болезненный чем у виндовозников-пекарей будет
[14:30:21] <ada_ru> (geniepro) есть же винRT для армов
[14:31:16] <ada_ru> (I_vlxy_I) да не, у самой винды проблем то не будет. винда тут ок
[14:31:45] <ada_ru> (I_vlxy_I) но вот у всей экосистемы - будут. ибо вся экосистема виндовозная держится на задней совместимости
[15:17:43] <ada_ru> (Oleg) Кстати я не дохтур но почему бы не попробовать применять терапию как при ишемическом инсульте? И например вводить стромалтные стволовые клетки
[15:17:59] <ada_ru> (Oleg) Я готов поучаствовать как мышка :-)