[00:37:32] <ada_ru> (Максим) Да вы так флудите, что gnutls ласты склеил ;)
[00:38:03] <geniepro> о, ада-ру ожила
[00:38:52] <ada_ru> (I_vlxy_I) надежность!
[00:39:59] <ada_ru> (Максим) https://github.com/coopht/axmpp/blob/72e7a5d69814473cc0d1519af4bb058bf9eb9769/agnutls/gnutls.adb#L395
[00:40:24] <ada_ru> (Максим) gnutls_record_recv вернул значение < 0
[00:41:13] <ada_ru> (Максим) А автор в чат накидывает, что Ада не нужна.
[00:46:42] <ada_ru> (username_is_not_avalaible)  отвечает (Максим) на <А автор в чат накиды…>
А смысл накидывать очевидными фактами?
[00:49:47] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/x1.jpg
[00:49:53] <ada_ru> (I_vlxy_I) Т - толерантность!
[00:50:03] <ada_ru> (I_vlxy_I) Чтобы некоторые языки не ощущали себя убогими.
[01:10:27] <ada_ru> (coopht)  отвечает (Максим) на <А автор в чат накиды…>
Troling is a art!
[01:17:13] <ada_ru> (FROL256) Коллеги, извините нуба за тупой вопрос )
[01:17:20] <ada_ru> (FROL256) я написал функцию
[01:17:24] <ada_ru> (FROL256) function sqr(x : T) return T is
 begin
   return x*x;
   exception                  -- floating point overflow may happen due to x*x may be too large
     when Constraint_Error =>
     return float'Last;
 end sqr;
[01:18:08] <ada_ru> (FROL256) в режиме optimize будет отрубатиься обработка переполнения?
[01:18:12] <ada_ru> (FROL256) или нет )
[01:18:36] <ada_ru> (FROL256) это то что я реально ловлю в своей программе когда проверки включаю, квадрат переполняется
[01:23:18] <ada_ru> (Максим) Контроль переполнения можно выключить специальной опцией. Оптимизация не влияет.
[01:24:04] <ada_ru> (FROL256) спс!
[01:33:52] <ada_ru> (FROL256) если можно ещё вопрос ) Для float-а всё работало хорошо
[01:34:04] <ada_ru> (FROL256) но для generic-ов отказывается компилить
[01:34:20] <ada_ru> (FROL256) щас
[01:34:40] <ada_ru> (username_is_not_avalaible)  отвечает (FROL256) на <но для generic-ов от…>
Разумеется, в ветке ловли исключения возвращается конкретный тип вместо обобщённого
[01:34:51] <ada_ru> (FROL256) да
[01:34:54] <ada_ru> (FROL256) вот я сделал так
[01:34:57] <ada_ru> (FROL256) function sqr(x : T) return T is
 begin
   return x*x;
   exception                  -- floating point overflow may happen due to x*x may be too large
     when Constraint_Error =>
     return T'Last;
 end sqr;
[01:35:02] <ada_ru> (FROL256) а теперь схлопотал следующее
[01:35:09] <ada_ru> (FROL256) Generic_Vector_Math.adb:70:14: prefix for "Last" attribute may not be private type
[01:35:29] <ada_ru> (FROL256) думаю надо как-то в спецификации пакета указать что ли что требуется арттрибут last
[01:36:18] <ada_ru> (FROL256) или вообще не в этом дело ....
[01:36:57] <ada_ru> (username_is_not_avalaible) Кстати, разве переполнение float-ов бросает исключение? Это вполне себе определённое поведение -- образоание в результате +Infinity
[01:37:26] <ada_ru> (FROL256) ну вот так
[01:37:29] <ada_ru> (FROL256) function DistanceSquared(a : float3; b : float3) return float is
   diff : float3 := (b - a);
 begin
   return dot(diff, diff);
   exception                  -- floating point overflow may happen due to diff.x*diff.x may be too large
     when Constraint_Error =>
     return float'Last;
 end DistanceSquared;
[01:37:30] <ada_ru> (FROL256) работает как надо
[01:37:44] <ada_ru> (FROL256) исчез Constraint_Error при переполнении
[01:37:55] <ada_ru> (FROL256) видимо бросает
[01:38:00] <ada_ru> (FROL256) н это в режиме проверок
[01:38:14] <ada_ru> (FROL256) а в optimize всё работает тихо и гладко
[01:38:37] <ada_ru> (FROL256) что та пполучается не знаю, не проверял, программа от этого не ломается
[01:39:04] <ada_ru> (FROL256) вобщем вопрос можно ли аналогичного поведения добиться для generic-а )
[01:41:03] <ada_ru> (FROL256) пока не ломается .... )
[01:49:22] <ada_ru> (FROL256) решил проблемму тем что переопределил функцию в пакете, куда инстанцируется generic, но был бы рад узнать если есть решение для generic-ов )
[08:17:50] <ada_ru> (nitrocerber) мне чот кажется что такое только для дискретных типов можно замутить
[08:18:16] <ada_ru> (nitrocerber) generic
     type T is (<>);
     with function "*" (L, R : T) return T;
  function sqr(x : T) return T;
  
  function sqr(x : T) return T is
  begin
     return x*x;
  exception
     when Constraint_Error =>
        return T'Last;
  end sqr;
[08:18:53] <ada_ru> (nitrocerber) а для флота придётся поставлять в формальные функции T_Last какой-нибудь
[08:19:18] <ada_ru> (nitrocerber) Хотя я с арифметической частью ады оч слабо знаком, могу пороть чушь
[11:32:25] <ada_ru> (FROL256) Ошибка такая как будто бы T'Last вообще нельзя сделать ни для какого типа
[11:32:31] <ada_ru> (FROL256) ни для целого ни для типа с плавающей точкой
[11:32:45] <ada_ru> (FROL256) если это не тип языка а тип в generic-е
[11:32:51] <ada_ru> (FROL256) что как-то слегка обидно
[11:33:44] <ada_ru> (FROL256) но я попробую может вечерком подставить целый, спс )
[11:34:09] <ada_ru> (FROL256) может быть
[11:34:10] <ada_ru> (FROL256) (<>)
[11:34:12] <ada_ru> (FROL256) поможет
[11:34:14] <ada_ru> (FROL256) :)
[11:34:29] <ada_ru> (FROL256) потому что у меня там type T is private; а не (<>)
[12:05:39] <ada_ru> (Максим) Ты передай в генерик ещё один параметр. T_Last : T;
[12:11:23] <ada_ru> (nitrocerber)  отвечает (Максим) на <Ты передай в генерик…>
Как вариант
[12:11:46] <ada_ru> (nitrocerber)  отвечает (FROL256) на <потому что у меня та…>
Ну так у привата нету ласт. Он ж не перечислимый
[12:16:03] <ada_ru> (nitrocerber) (<>) не поможет точно, я пробовал. Дженерик скомпилится, но флоат инстантиэйшн не сожрёт, обругает и потребует дискретный тип
[12:20:06] <ada_ru> (FROL256) >> Ты передай в генерик ещё один параметр. T_Last : T;
[12:20:20] <ada_ru> (FROL256) можно пример? я не очень понял как именно )
[12:21:12] <ada_ru> (FROL256) аааа
[12:21:14] <ada_ru> (FROL256) всё дошло
[12:21:29] <ada_ru> (FROL256) попробую сегодня, спс ! )
[17:23:29] <ada_ru> (I_vlxy_I) в группе по аде обсуждают код на Аде? o_O
[17:24:29] <ada_ru> (coopht)  отвечает (I_vlxy_I) на <в группе по аде обсу…>
Никогда такого не было и вот опять
[17:31:04] <ada_ru> (I_vlxy_I) КитайОс! https://github.com/alibaba/AliOS-Things
[17:39:07] <ada_ru> (nitrocerber)  отвечает (I_vlxy_I) на <в группе по аде обсу…>
Да как они посмели!)
[17:39:36] <ada_ru> (nitrocerber) Али - новый неро и ацдси?))
[17:39:55] <ada_ru> (nitrocerber) Ну правда те двое так и не успели свои операционки сколхозить...
[19:53:54] <ada_ru> (I_vlxy_I) зато автор emacs'а почти справился.
[20:09:31] <ada_ru> (Максим) Кому свежак? Ada расширение для VS Code! Только что запаковал :)
https://www.dropbox.com/s/emn4rkxjhkjxeyf/ada-0.0.1.vsix?dl=0
[20:33:19] <ada_ru> (Eugene)  отвечает (Максим) на <Кому свежак? Ada рас…>
дык надо засунуть в маркетплейс этой вскод
[20:34:23] <ada_ru> (Максим) Ну я пока руками его собрал, чтобы убедиться, что оно работает
[20:35:32] <ada_ru> (I_vlxy_I) Круто!
[20:35:33] <ada_ru> (I_vlxy_I) А что оно умеет?
[20:35:36] <ada_ru> (Максим) Как научусь строить автоматически, так займусь пинанием маркетплейса.
[20:37:15] <ada_ru> (Максим) Найти определение, символы в документе, ссылки на символ, если расчехлит проектный файл
[20:37:24] <ada_ru> (Eugene) и как его установить в вскод? о_О
[20:37:41] <ada_ru> (Eugene) он типа на ada language server сделан?
[20:38:25] <ada_ru> (Eugene) вроде нашёл как установить
[20:38:26] <ada_ru> (Максим) code --install-extension *vsix
[20:39:38] <ada_ru> (Максим) Да, это ленгвидж сервер и есть
[20:39:59] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Найти определение, с…>
Ходить по символам между файлами в проекте умеет?
[20:40:15] <ada_ru> (Максим) Сделал для линух и винды, пока без макос
[20:40:37] <ada_ru> (I_vlxy_I) На аде писан?
[20:40:52] <ada_ru> (Максим) Да, но проект лучше указать в настройках
[20:41:01] <ada_ru> (Eugene) нифига оно не пашет — ничего не находит, ошибки сыплет
[20:41:08] <ada_ru> (Eugene) чота не хватает ему
[20:41:10] <ada_ru> (Максим) Да, на libadalang
[20:41:45] <ada_ru> (Максим) А что за ошибки?
[20:41:59] <ada_ru> (Eugene) что-то типа файл не фолдер
[20:42:07] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <что-то типа файл не …>
Скриншот пришли
[20:42:10] <ada_ru> (I_vlxy_I) Или лог
[20:42:32] <ada_ru> (Максим) Ну ему нужен gnat , там спектр ртл
[20:42:59] <ada_ru> (Максим) Да, если не трудно
[20:43:23] <ada_ru> (Eugene) на другом файле пишет no definition is found
[20:43:53] <ada_ru> (Максим) Под Виндой?
[20:44:08] <ada_ru> (Eugene) да, гнат стоит
[20:44:32] <ada_ru> (Максим) Open folder  делал?
[20:44:41] <ada_ru> (Eugene) да
[20:45:06] <ada_ru> (Максим) Попробуй указать проектный
[20:45:22] <ada_ru> (Максим) Файл в настройках папки
[20:45:27] <ada_ru> (Eugene) а может это не тот аддон? там написано типа он от AdaCore
[20:45:45] <ada_ru> (Максим) Он!
[20:46:30] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <да>
Скриншотиков бы проблемы!
[20:46:39] <ada_ru> (Eugene) gpr-файл не расцвечивается
[20:47:05] <ada_ru> (Максим) ada.projectFile там подсказка должна быть
[20:47:27] <ada_ru> (Eugene) а как указать проектный файл?
[20:47:50] <ada_ru> (Максим) Нужно открыть настройки папки
[20:48:37] <ada_ru> (Eugene) а как открыть настройки папки?
[20:50:05] <ada_ru> (Максим) D палитрt комманд искать Workspace settings
[20:52:59] <ada_ru> (Eugene) не нашёл там ничего интересного на эту тему
[20:54:11] <ada_ru> (Максим) Про Аду нету ничего?
[20:54:28] <ada_ru> (Максим) Можно в файле прописать {
   "ada.trace.server": "verbose",
   "ada.projectFile": "/tmp/ada/ALS_default_4040.gpr"
}
[20:55:02] <ada_ru> (Максим) в .vscode\settings.json
[20:55:40] <ada_ru> (Eugene) картинка https://www.ada-ru.org/files/bot/x2.jpg
[20:56:10] <ada_ru> (Eugene) про аду было выбор типа сообщений, что-то такое... verbose
[20:56:22] <ada_ru> (Максим) а Ctrl+Shift+O хоть работает?
[20:56:45] <ada_ru> (Eugene)  отвечает (Максим) на <а Ctrl+Shift+O хоть …>
а что там должно быть?
[20:56:50] <ada_ru> (Максим) да, это трассировку LSP можно включить
[20:57:04] <ada_ru> (Максим) список символов в текущем файле
[20:58:02] <ada_ru> (Eugene) картинка https://www.ada-ru.org/files/bot/x3.jpg
[20:58:36] <ada_ru> (Максим) Во, этоработает.
[21:01:01] <ada_ru> (Максим) картинка https://www.ada-ru.org/files/bot/x4.jpg
[21:01:17] <ada_ru> (Максим) Попробуй всё же прописать файл проекта
[21:01:32] <ada_ru> (Eugene) прописал
[21:03:21] <ada_ru> (Eugene) строка
     Lib.Log.To_Log (MFrom1, MFrom2, MBody);
дважды щёлкнул по слову MBody (выделил), тыкнул в меню Goto definition — прыгнуло в определение
  procedure To_Log (Conf, From, Message : String);
в пакете Lib.Log
[21:03:39] <ada_ru> (Eugene) если не выделять, то пишет что file is a directory
[21:04:28] <ada_ru> (Eugene) gsnf.cm gthtqnb d jghtltktybt To_Log — gbitn ашду шы вшкусещкн
[21:04:32] <ada_ru> (Максим) да, видимо с виндой незадача. Там какой-то лишний слешь перед d:
[21:22:45] <ada_ru> (I_vlxy_I) подвинда нинужна!
[21:23:19] <ada_ru> (Максим) Да, но всё равно, спасибо @E
[21:49:51] <ada_ru> (Eugene)  отвечает (Максим) на <Да, но всё равно, сп…>
а компилятор-то как запустить в vscode?
[21:50:20] <ada_ru> (Максим) я не делал этого. не знаю
[21:50:44] <ada_ru> (Eugene) этьо надо gnatmake вызывать?
[21:51:16] <ada_ru> (Максим) gprbuild скорее, gnatmake-а скоро не будет. он устарел
[21:52:05] <ada_ru> (I_vlxy_I) только gcc напрямую, только хардкор!
[21:52:29] <ada_ru> (Максим) gnat compile :)
[21:52:47] <ada_ru> (I_vlxy_I) и обычные человеческие Makefile!
[21:52:49] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <только gcc напрямую,…>
ну я давно знаю что ты хентайщик )))
[21:53:02] <ada_ru> (I_vlxy_I) можно сверху еще автотулзами придавить, чтобы никому мало не показалось!
[21:54:40] <ada_ru> (I_vlxy_I) Makefile.am Makefile.in configure.in
[21:54:45] <ada_ru> (I_vlxy_I) всякое такое
[22:16:08] <ada_ru> (nitrocerber) autoconf наше всьйоооо
[22:16:16] <ada_ru> (nitrocerber) (нет)
[23:16:52] <ada_ru> (username_is_not_avalaible) Cargo наше всё
[23:16:54] <ada_ru> (username_is_not_avalaible) (да)