[15:58:11] <ada_ru> (Максим) Travis CI не умеет питон на Mac OS X. Вот засада 🙈
[16:00:22] <ada_ru> (I_vlxy_I) jenkins наше ффсйо!
[16:02:40] <ada_ru> (Максим) значит Ada LSP для макос не будет...
[16:02:53] <ada_ru> (I_vlxy_I) эй! как так то?!
[16:13:09] <ada_ru> (I_vlxy_I) кстати, травис можно у себя развернуть? или это чисто облачная фигня?
[16:13:45] <ada_ru> (Максим) хз, я ей пользуюсь потому, что облачная
[16:16:17] <ada_ru> (I_vlxy_I) а унутре адакоры нету инфраструктуры для такого?
[16:17:51] <ada_ru> (Максим) (неожиданно) есть! но я предпочитаю попаболь с tarvis CI & MacOS и неустанавливающимся питоном
[16:18:19] <ada_ru> (I_vlxy_I) видимо внутренняя инфраструктура прям чудо как хороша 🙂
[16:19:45] <ada_ru> (Максим) она прекрасна! как внештатный консултарий конторы, я не нахожу других слов 😄
[16:21:27] <ada_ru> (I_vlxy_I) ну, будем считать, что она заточена несколько под иные задачи и проекты нежели LSP + питон + жабаскрипт + VSCode.
[16:22:36] <ada_ru> (Максим) вот ты как истенный макавод, умеешь ставить gnat для mac OS из командной строки?
[16:23:17] <ada_ru> (Максим) я приимонтировал *.dmg, там какой-то *.app, хз что с ним делать
[16:23:18] <ada_ru> (Максим) gnat-community-2018-20180523-x86_64-darwin-bin.app
[16:23:35] <ada_ru> (I_vlxy_I) запускать или копировать. я не помню как оно ставится
[16:23:49] <ada_ru> (I_vlxy_I) .app -- это каталог-приложение
[16:23:54] <ada_ru> (Максим) да, похоже это директория
[16:24:21] <ada_ru> (I_vlxy_I) угу. из гуя - это просто даблклик и оно запустится
[16:24:38] <ada_ru> (I_vlxy_I) из негуя -- надо найтить бинарь унутре
[16:24:53] <ada_ru> (I_vlxy_I) вообще, все приложения в макоси в таком виде существуют
[16:25:04] <ada_ru> (I_vlxy_I) кликаешь для запуска приложения именно на такой директории
[16:25:38] <ada_ru> (Максим) вот только найду кликалку в travis CI 😋
[16:25:39] <ada_ru> (I_vlxy_I) внутри бинарь скорее всего в Content/MacOS подкаталоге
[16:26:32] <ada_ru> (I_vlxy_I) ну и ваще - юзай gnat fsf для макоси! 😄
[16:26:49] <ada_ru> (Максим) А у тебя МакБук далеко? ;)
[16:27:03] <ada_ru> (I_vlxy_I) вот с него и сижу
[16:27:05] <ada_ru> (I_vlxy_I) в чати
[16:27:41] <ada_ru> (Максим) https://www.adacore.com/download/more качни GNAT Community 2018!
[16:28:12] <ada_ru> (nitrocerber) качни гнат коммьюнити, будь мужиком, блеать!
[16:28:28] <ada_ru> (Максим) йеа!
[16:29:10] <ada_ru> (I_vlxy_I) ща
[16:29:46] <ada_ru> (I_vlxy_I) а который? по умолчанию он мне чото для rsic-v предлагает
[16:30:02] <ada_ru> (I_vlxy_I) x86-64 Mac OS X (64 bits) ?
[16:30:06] <ada_ru> (Максим) который для MacOS
[16:30:28] <ada_ru> (Максим) gnat-community-2018-20180523-x86_64-darwin-bin
[16:30:32] <ada_ru> (I_vlxy_I) качается
[16:30:44] <ada_ru> (I_vlxy_I) с безумной скоростью - говорит за 20 минут скачает 🙂
[16:30:52] <ada_ru> (I_vlxy_I) а, уже 10
[16:31:03] <ada_ru> (Максим) CDN!
[16:34:02] <ada_ru> (Максим) https://travis-ci.org/reznikmm/libadalang это Homebrew у меня денег просит?
[16:34:32] <ada_ru> (Максим) а не, прос...сь
[16:37:06] <ada_ru> (Максим) внутри *.app лежит папка Contents 😕
[16:37:55] <ada_ru> (I_vlxy_I) t.me/adalang/32112
[16:37:56] <ada_ru> (I_vlxy_I) же
[16:38:09] <ada_ru> (I_vlxy_I) "Alexey Veselovsky in Ada
внутри бинарь скорее всего в Contents/MacOS подкаталоге"
[16:39:05] <ada_ru> (Максим) о, наверное, качнуть в линукс будет быстрее чем перезапустить travis еще N раз
[16:39:37] <ada_ru> (I_vlxy_I) так, у меня скачал-лося. и что дальше?
[16:40:08] <ada_ru> (Максим) что там в Contents/MacOS?
[16:40:40] <ada_ru> (Максим) задача максимум - поставить его с командной строки
[16:41:14] <ada_ru> (I_vlxy_I) там, сколь я помню, графический установщик..
[16:41:16] <ada_ru> (I_vlxy_I) но ща гляну
[16:41:27] <ada_ru> (Максим) AdaCore предлагает https://github.com/AdaCore/gnat_community_install_script.git
[16:42:22] <ada_ru> (Максим) о, наверное оно должно сработать :)
[16:43:02] <ada_ru> (I_vlxy_I) $ pwd
/Volumes/gnat-community-2018-20180523-x86_64-darwin-bin/gnat-community-2018-20180523-x86_64-darwin-bin.app/Contents/MacOS

$ ls
gnat-community-2018-20180523-x86_64-darwin-bin
[16:43:11] <ada_ru> (I_vlxy_I) там лежит гуйный инсталлятор
[16:43:25] <ada_ru> (Максим) похоже скрипт его сам монтирует
[16:43:48] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/x22.jpg
[16:44:08] <ada_ru> (I_vlxy_I) ну, то есть это после того как dmg замонтируешь и залезешь в .app этот
[16:44:28] <ada_ru> (Максим) Понял, спасибо!
[17:04:02] <ada_ru> (Максим) Прикольно. Оно даже собрало LAL! Интересно, где оно взяло libgpm.dylib
[17:07:34] <ada_ru> (I_vlxy_I) а ты чем собирал? gnat fsf через brew?
[17:08:15] <ada_ru> (Максим) нет, gnat community 2018
[17:08:49] <ada_ru> (Максим) а в макос есть libiconv.dylib? или он в Glibc?
[17:13:26] <ada_ru> (I_vlxy_I) что-то было вроде
[17:13:41] <ada_ru> (I_vlxy_I) но например анаконда таскает с собой свой libiconv
[17:15:30] <ada_ru> (I_vlxy_I) а гнат с собой такое не таскает?
[17:15:52] <ada_ru> (Максим) Это приятно. "Ни один я в поле кувыркался, было нас там много дураков"
[17:16:59] <ada_ru> (I_vlxy_I) $ ll | grep iconv
lrwxr-xr-x   1 root  wheel        16 Sep 26 15:03 libiconv.2.4.0.dylib -> libiconv.2.dylib
-r-xr-xr-x   1 root  wheel   2099248 Nov 29 23:37 libiconv.2.dylib
lrwxr-xr-x   1 root  wheel        20 Sep 26 15:03 libiconv.dylib -> libiconv.2.4.0.dylib
Это в моем /usr/lib
[17:17:25] <ada_ru> (I_vlxy_I) но я уже хз откуда оно тут. 🙂 у меня ж макось не вполне стоковая
[17:37:52] <ada_ru> (Максим) @I_vlxy_I а какой аналог ldd в Mac OS X?
[17:39:04] <ada_ru> (I_vlxy_I) otool -L
[17:39:07] <ada_ru> (I_vlxy_I) кажется
[17:54:25] <ada_ru> (FROL256) ого, в GPS уже поддержка RISC-V есть? круто!
[18:01:45] <ada_ru> (I_vlxy_I) не. у GNAT
[18:01:50] <ada_ru> (I_vlxy_I) насколко я понял, это кросскомпиль
[18:04:29] <ada_ru> (FROL256) да, ну пока кросс компайлер и нужен скорее
[18:04:44] <ada_ru> (FROL256) здорово
[18:28:14] <ada_ru> (Максим) А какой простейший способ запаковать Ada LSP под макось? Если я сделаю просто tar.gz с экзешником и зависимыми библиотеками это проканает?
[18:30:09] <ada_ru> (I_vlxy_I) ну, в идеале, сделать бы brew-пакет, или как его там
[18:30:18] <ada_ru> (I_vlxy_I) чтобы brew install adalsp
[18:30:29] <ada_ru> (I_vlxy_I) но можно и так
[18:30:47] <ada_ru> (Максим) мне казалось brew это костыль 😕
[18:31:53] <ada_ru> (I_vlxy_I) ну, как бы тоесть стандартного пакетного манагера тут не дадено. а так - это ж юникс. make install куда-нибудь в /usr/local/bin и так далее 🙂
[18:32:03] <ada_ru> (I_vlxy_I) впрочем, brew что-то такое и делает, кажется
[18:32:47] <ada_ru> (I_vlxy_I) а вообще, это зависит от цели с которой ты хочешь это дело распространять
[18:33:16] <ada_ru> (I_vlxy_I) если например хочешь чтобы могли поставить vscode пакетик поддержки Ады и там все было, то, кажется, для макоси прямо в этот пакетик lsp и надо будет сложить
[18:33:27] <ada_ru> (I_vlxy_I) чтобы локальненько а не всесистемненько
[18:33:49] <ada_ru> (Максим) я хотел так и делать, но
[18:34:50] <ada_ru> (I_vlxy_I) вообще, этот lsp будет ли работать если gnat и gps вообще в системе не установлены?
[18:34:52] <ada_ru> (Максим) (по секрету) тут студент пилит интеграцию Ады в IntelliJ, а туда внутрь не засунуть бинарники вроде. поэтому нужно LSP раздовать как-то отдельно
[18:35:17] <ada_ru> (I_vlxy_I) значит lsp надо раздавать и так и эдак
[18:35:51] <ada_ru> (Максим) без GPS будет. Без gnat - врядли, для Libadalang нужнен где-то адский рантайм, чтобы разрешать cross-ref-ы например
[18:36:29] <ada_ru> (I_vlxy_I) а нельзя рантайм сложить рядом?
[18:36:44] <ada_ru> (Максим) я, конечно, могу какой-то усечённый адский рантайм иметь в LSP, но не знаю, есть ли смысл
[18:46:30] <ada_ru> (I_vlxy_I) Ну, а что там с совместимостями рантаймов? Если у меня gnat 2008 заработает ли lsp?
[18:47:16] <ada_ru> (Максим) да должен, я думаю
[18:48:23] <ada_ru> (I_vlxy_I) Просто надо либо чекать версии умным образом, либо всё своё ношу с собой.
[18:49:37] <ada_ru> (Максим) я так понимаю это от проекта юзера зависит, типа если проект под какой-то кросс, то должен использоваться рантайм этого кросса
[19:28:53] <ada_ru> (I_vlxy_I) хм. а адский рантайм - это рантайм который используется для любой прикладной проги на аде писанной, или это рантайм чисто для компилятора?
[19:29:37] <ada_ru> (Максим) я имею ввиду, тот что для проги, типа Ada.Text_IO и т.д.
[19:29:55] <ada_ru> (I_vlxy_I) а, стандартная адская либа?
[19:30:06] <ada_ru> (Максим) да
[19:30:09] <ada_ru> (I_vlxy_I) ну и рантайм поддержка языковых возможностей
[19:30:56] <ada_ru> (I_vlxy_I) хм. а как его будет использовать adalsp если у меня стоит этот рантайм для risc-v baremetal, а пускаю я adalsp на своем макбуке?
[19:31:10] <ada_ru> (I_vlxy_I) то есть прикладные проги я клепаю для risc-v
[19:31:27] <ada_ru> (I_vlxy_I) слинковаться/загрузить эту либу, adalsp не сможет
[19:32:15] <ada_ru> (Максим) ну в проекте у тебя должен буть указан рантайм. LSP не будет ее линковать, просто использовать для xref-ов
[19:34:16] <ada_ru> (I_vlxy_I) хм.. а каким образом? в смысле оно попробует распарсить этот бинарь (рантайм этот), который в каком-то чужом для данной OS формате (и ни ldd ни otool ничего с этим бинарем сделать не могут), и... что дальше? допустим удалось вытащить из бинаря список экспортируемых символов/функций
[19:34:33] <ada_ru> (I_vlxy_I) я просто не очень ясно представляю что там происходит
[19:34:35] <ada_ru> (Максим) рантайм это текст
[19:35:25] <ada_ru> (I_vlxy_I) ой. ухты. я думал это либа бинарная, как у всех 🙂
[19:35:42] <ada_ru> (I_vlxy_I) а как файлик звать? я бы посмотрел на него
[19:35:49] <ada_ru> (Максим) можно глянуть его в lib/gcc/x86_64-pc-linux-gnu/7.3.1/adainclude
[19:36:01] <ada_ru> (Максим) ну или что-там у тебя
[19:36:04] <ada_ru> (I_vlxy_I) ааа... так это пачка ads или adi?
[19:36:19] <ada_ru> (I_vlxy_I) или как их там
[19:36:40] <ada_ru> (Максим) там .ads и .adb, а рядом adalib/ с .ali и .a и .so
[19:36:51] <ada_ru> (I_vlxy_I) https://github.com/nickpascucci/ravenscar-sfp-stm32f411-nucleo/tree/master/ravenscar-sfp-stm32f411-nucleo/adainclude
[19:36:52] <ada_ru> (I_vlxy_I) во
[19:36:54] <ada_ru> (I_vlxy_I) пример
[19:37:06] <ada_ru> (I_vlxy_I) а что же, выходит стандартная либа каждый раз заново компилится?
[19:37:37] <ada_ru> (I_vlxy_I) (иначе зачем там еще и adb?)
[19:38:32] <ada_ru> (Максим) Её можно пересобрать, если нужно. Например если ты хочешь включить какие-то прагмы
[19:39:36] <ada_ru> (Максим) например Normalize_Scalars
[19:40:02] <ada_ru> (Максим) в gnat 2018 есть еще bareboard рантайм для x86_64
[19:41:23] <ada_ru> (I_vlxy_I) ага, ясно
[19:41:58] <ada_ru> (I_vlxy_I) но, в принципе, рантайм то это просто одина из либ. lsp должен адекватно отрабатывать ситуацию когда исходники какой-либо либы не доступны
[19:42:36] <ada_ru> (Максим) и какая адекватная реакция?
[19:44:39] <ada_ru> (I_vlxy_I) тыкаешь "пройти к объявлению символа" -- выдает что нету. не найдено.

тыкаешь по символам которые есть -- переходит
[19:45:45] <ada_ru> (Максим) ну наверное так и есть
[19:50:19] <ada_ru> (I_vlxy_I) ну, значит будет работать и без gnat
[19:50:37] <ada_ru> (I_vlxy_I) кстати, а где оно исходники стандартной либы будет искать по умолчанию?
[19:51:23] <ada_ru> (I_vlxy_I) наверно нужна настройка какая-то для правильного поиска?
[19:51:38] <ada_ru> (I_vlxy_I) или это где-то в gpr указывается?
[19:52:08] <ada_ru> (Максим) там мистика, оно запускает gnatls -v и смотрит его вывод
[19:52:32] <ada_ru> (Максим) в gpr можно указать target для cross
[19:52:35] <ada_ru> (I_vlxy_I) о! а оно сможет запустить gnatls -v если у меня в систему не установлен gnat? 🙂
[19:52:44] <ada_ru> (I_vlxy_I) или установлен в хомяк а не в систему
[19:53:10] <ada_ru> (I_vlxy_I) и что будет если оно не сможет запустить gnatls?
[19:53:57] <ada_ru> (Максим) оно будет в $PATH искать его. Не найдет - ну не будет работать xref, наверное
[19:54:22] <ada_ru> (Максим) "адекватная реакция" 😊
[19:54:51] <ada_ru> (I_vlxy_I) угу 🙂 ну еще неплохо сказать почему не найдено, если оно понимает, что это явно из стандартной либы символ был
[19:55:01] <ada_ru> (I_vlxy_I) но это уже суперадекватная реакция 🙂
[19:55:09] <ada_ru> (I_vlxy_I) в общем, я могу на маке попробовать потестить, если что
[19:55:18] <ada_ru> (I_vlxy_I) оказывается я тут gnat не снес даже 🙂
[19:55:41] <ada_ru> (Максим) 👍 ну говорить я его ещё не научил 😄
[19:56:23] <ada_ru> (Максим) там всё пока слишком просто (тупо?)
[20:00:17] <ada_ru> (I_vlxy_I) нормуль 🙂