[00:00:55] <ada_ru> (I_vlxy_I) c целочисленкой тоже воюют. то есть хотят сделать вариант когда целочисленная лабуда сможет безопасно переполняться
[00:37:48] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <c целочисленкой тоже…>
Ага, слышал про такое.
И про то, что WG6 Numerics работает через пень-колоду.
[01:39:03] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <Ага, слышал про тако…>
а я смотрел как раз эту встречу, да
[01:39:13] <ada_ru> (I_vlxy_I) боль страдания и нумерики...
[10:16:50] <ada_ru> (Vinpuh) Кстати вчера работал ночью, и подумалось, светлую и темную тему будут убирать из IDE?😎😂
[12:36:14] <ada_ru> (reznikmm)  отвечает (shiz01) на <А можно ебилд матреш…>
https://github.com/reznikmm/ada-overlay
Вот такой получился ebuild. Проверял с установленным gnat_2019. Как-то так:
echo ADA_TARGET=gnat_2019 >> /etc/portage/make.conf
emerge dev-ada/gprbuild
eselect gcc set x86_64-pc-linux-gnu-8.3.1
. /etc/profile
[12:38:49] <ada_ru> (Oleg)  отвечает (Vinpuh) на <Кстати вчера работал…>
Я на светлой стороне 😊 везде ставлю светлую
[12:42:53] <ada_ru> (nitrocerber) ох помню в далёкие нулевые с братишкой везде ставили матричную тему, чёрный фон, зелёные буквы..)
[12:43:12] <ada_ru> (nitrocerber) ща настолько пофину это всё, как искаропки идёт - так и стоит
[12:49:48] <ada_ru> (I_vlxy_I) Я обычно светлую тему ставлю
[12:56:10] <ada_ru> (shiz01)  отвечает (reznikmm) на <https://github.com/r…>
Спасибо, матрёшка на микросервисах точно лишней не будет.
[12:56:37] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <Я обычно светлую тем…>
Моим глазам легче с тёмной.
[13:03:42] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <Моим глазам легче с …>
А моим - со световой. Меньше напрягаются
[14:28:33] <ada_ru> (reznikmm) Хотите красноглазый гитхаб? Ща мы научим его строить `ebuild`-ы 😂
[14:46:28] <ada_ru> (I_vlxy_I) Извращение какое!
[15:04:57] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <Извращение какое!>
Не то слово.
Особенно если учесть то, что в гентаче, ментейнеры gnat-gpl (компилятор ады), не прописали в /etc/env.d/some_name, LDPATH=/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.1/adalib, из-за чего я часа три бился с тем, что мой ебилд протобафа собирался, всё ок, но не работал. Ибо libgnat-2019.so не был в LDPATH.
[15:11:45] <ada_ru> (reznikmm)  отвечает (shiz01) на <Не то слово.
Особенн…>
Во, я только сейчас наэто напоролся, попытавшись запустить бинарники из собранной матрёшки
[15:12:29] <ada_ru> (shiz01)  отвечает (reznikmm) на <Во, я только сейчас …>
cat >> /etc/env.d/99Ada << EOF
LDPATH=/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.1/adalib
EOF
[15:20:21] <ada_ru> (reznikmm)  отвечает (shiz01) на <Лечится одной строчк…>
Попробуешь собрать матрёшку этим ebuild-ом?
[15:20:52] <ada_ru> (shiz01)  отвечает (reznikmm) на <Попробуешь собрать м…>
Твоим - уже собрал (она в зависимостях у протобуфа), но не запускал.
[15:24:41] <ada_ru> (reznikmm) если такой работает, сделаю аналогичный для protobuf-а
[15:29:35] <ada_ru> (shiz01) /usr/bin/uaflex --help
Usage: uaflex <unit-options> input_file
 where <unit-options> contains:
   --types Types_Unit - unit for type and condition declarations
   --handler Handler_Unit - unit for abstract handler declaration
   --scanner Scanner_Unit - unit where scanner is located
   --tokens Tokens_Unit - unit where Token type is declared

Вроде работает.
[15:29:44] <ada_ru> (shiz01)  отвечает (reznikmm) на <если такой работает,…>
Я уже сделал, щас скину.
[15:30:05] <ada_ru> (I_vlxy_I)  отвечает (reznikmm) на <если такой работает,…>
А alire не достаточно? ;-(
[15:30:10] <ada_ru> (reznikmm) 👍
[15:30:41] <ada_ru> (reznikmm) ну alire я уже делал 😊
[15:31:31] <ada_ru> (shiz01) <прислал документ>
[15:31:38] <ada_ru> (shiz01) protobuf и ada-pretty
[15:33:04] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <А alire не достаточн…>
Хочется чтоб в системе было.
Особенно протобаф, т.к. у него бинрник должен быть в path.
Вручную, добовлять в  PATH ${PROTBUF_DIR}/.objs./compiller/ - как-то неоч. Совсем неоч.
[15:34:27] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <Хочется чтоб в систе…>
Решилось бы через alire   environment
[15:34:33] <ada_ru> (I_vlxy_I) Та, по уму если
[15:35:09] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <Решилось бы через al…>
Ну хз.
Я как-то привык в системе держать весь необходимый набор библиотек.
[15:35:40] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <Ну хз.
Я как-то прив…>
Ну, это противоречит идее пакетного менеджера :-)
[15:35:45] <ada_ru> (I_vlxy_I) Языкового
[15:37:11] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <Языкового>
Да, но мне так удобнее.
Вообще, по уму да, надо бы через alire все зависимости учитывать. Включая компилятор.
Чтоб достал бинарь пакетника, скормил ему пару строчек, и всё готово.
[15:37:45] <ada_ru> (I_vlxy_I) Тип того
[15:38:03] <ada_ru> (I_vlxy_I) Аля rustup
[15:38:11] <ada_ru> (shiz01) Ага.
[15:46:43] <ada_ru> (reznikmm)  отвечает (I_vlxy_I) на <Решилось бы через al…>
Это ещё не реализовано в alire
[15:55:12] <ada_ru> (shiz01)  отвечает (shiz01) на <>
Вот в оверлее, елси с правами в архиве накосячил.
https://gitlab.com/shiz01/shiz01
[18:24:15] <ada_ru> (shiz01) Надеюсь, на GNAT.SHA{1,224,256,384,512} можно полагаться, да?
[18:31:26] <ada_ru> (shiz01)  отвечает (shiz01) на <Надеюсь, на part The…>
Т.е. библиотека надёжная, протестированна и годная для прода.
[18:35:37] <ada_ru> (shiz01) Да, я понимаю, что это gpl, и гараний нет, хочешь гаранти - плати, нормально.
Но меня интересуеют не гарантии, а просто валидная работоспособность.
[18:36:52] <ada_ru> (I_vlxy_I) ну, как бы gpl не означает отсутствие дополнительных гарантий если договоришься 🙂
[18:40:24] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <ну, как бы gpl не оз…>
Если.
[18:40:40] <ada_ru> (I_vlxy_I) ну да. то же самое и с EULA
[18:40:50] <ada_ru> (I_vlxy_I) там тоже никто ничего не гарантирует если не договоришься
[18:41:04] <ada_ru> (I_vlxy_I) но обычно у тебя там нет прав даже самостоятельно расследовать багу
[18:41:34] <ada_ru> (shiz01) Ну тоды ой.
Хрен с ним, в прод пойдет. Там и более худшие костыли работают.
[18:41:56] <ada_ru> (I_vlxy_I) 🙂
[18:42:00] <ada_ru> (I_vlxy_I) прод всё стерпит!
[18:43:25] <ada_ru> (shiz01) Прогоню, так, для теста, пару лямов рандомных строк.
И с sha256sum сверю.
Если всё ок - то поехали в прод.
[18:43:39] <ada_ru> (I_vlxy_I) а что прога то делает? примерно
[18:44:42] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <а что прога то делае…>
Хеш от строки.
и юзать его как api-key.
После сверяем хеши, всё ок - доступ есть, нет - значит нет.
[19:17:38] <ada_ru> (I_vlxy_I) hesh explosive...
[19:34:07] <ada_ru> (shiz01) Если я правильно понял, то String - это строка с четко фиксированной в компалтайме длинной. А безразмерные рантаймовые строки есть?
[19:35:51] <ada_ru> (nitrocerber) Unbounded_String
[19:36:33] <ada_ru> (shiz01)  отвечает (nitrocerber) на <Unbounded_String>
Спасибо.
[19:42:28] <ada_ru> (shiz01) А делать renames для длинных названий пакетов  - это же нормальная практика?
[19:44:09] <ada_ru> (shiz01)  отвечает (shiz01) на <А делать renames для…>
Как я понял, это аналог typedef, но для пакетов.
[19:44:26] <ada_ru> (nitrocerber)  отвечает (shiz01) на <А делать renames для…>
Да, для того и придумано
[19:44:40] <ada_ru> (nitrocerber) Хотя я лично не пользуюсь
[19:44:55] <ada_ru> (nitrocerber) Мне с родными длинными привычнее
[19:45:17] <ada_ru> (shiz01)  отвечает (nitrocerber) на <Да, для того и приду…>
Просто вдруг потом будет SomeName is not SomeNane ?
[19:45:58] <ada_ru> (shiz01)  отвечает (nitrocerber) на <Мне с родными длинны…>
В vim неоч длинные имена писать. А в ide - конечно.
[19:47:18] <ada_ru> (nitrocerber)  отвечает (shiz01) на <Просто вдруг потом б…>
И само внезапно заwithается ещё)
[19:47:30] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Да, для того и приду…>
оно придумано для refucktoring'a в первую очередь
[19:47:39] <ada_ru> (I_vlxy_I) чтобы не плодить "магических констант"
[19:48:16] <ada_ru> (I_vlxy_I) в одном месте определил все зависимости, переименовал так, чтобы потроха твои больше не зависили от того, как твои импорты там называются и всё.
[20:02:01] <ada_ru> (reznikmm)  отвечает (shiz01) на <Спасибо.>
Матрёшка даёт удобные строки с поддержкой юникода, +разные кодеки, +векторы строк (`S.Split ('+').Join('-')`), нормальный JSON, SAX XML, Ini файлы и т.д. и т.п.
[20:09:31] <ada_ru> (shiz01)  отвечает (reznikmm) на <Матрёшка даёт удобны…>
Благодарю, обязательно заюзаю в парсере, всё равно протобаф в матрёшкиных строках работает.

А вот для своих мелочей, мне матрёшка избыточна,  Unbounded_String - хватит :)
[20:10:01] <ada_ru> (shiz01) Они же конвертятся друг в друга, да?
[20:10:54] <ada_ru> (reznikmm) Матрёшка конвертирует в/из (UTF8_)String/Wide_Wide_String и Stream_Element_Array
[20:11:04] <ada_ru> (shiz01)  отвечает (reznikmm) на <Матрёшка конвертируе…>
Отлично.
[20:12:56] <ada_ru> (reznikmm) Дело хозяйское, но я предупредил, что стандартные строки это кактус 😊
[20:14:05] <ada_ru> (I_vlxy_I) хе. в Аде до сих пор войны со строками...
[20:14:17] <ada_ru> (I_vlxy_I) в крестах воевать уже лет 10 как перестали вроде бы
[20:14:29] <ada_ru> (I_vlxy_I) только в виндах периодически содомия случается спонтанная
[20:14:49] <ada_ru> (reznikmm) У нас ещё не начиналось
[20:16:01] <ada_ru> (reznikmm) Так, раздаются редкие вопли страждущих, но их никто не замечает
https://two-wrongs.com/unicode-strings-in-ada-2012
[20:16:35] <ada_ru> (shiz01)  отвечает (reznikmm) на <Дело хозяйское, но я…>
Кактус кактусом, но тащить ради скрипта что-то кроме поставок gnat кажется как-то избыточно.

В этот кактус же можно положить utf-8, забив болт на кодировки, пусть хоть как набор байт лежат, лишь бы их можно было прочитать и записать?
Т.е. такое же кривое как std::string, но в аде ?
[20:35:30] <ada_ru> (anisimkov)  отвечает (shiz01) на <И ещё один момент, п…>
Еще в AWS сокетная подсистема неплохая. Побольше функциональности чем в GNAT.Sockets
[20:37:11] <ada_ru> (I_vlxy_I) так выпьем же за то, чтобы alire развился до такого состояния, когда использовать пакеты из alire было бы также просто как то, что идет вместе с компилятором!
[20:37:13] <ada_ru> (I_vlxy_I) и чтобы не было разницы
[20:38:21] <ada_ru> (shiz01)  отвечает (anisimkov) на <Еще в AWS сокетная п…>
Обязательно гляну.
[20:38:31] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <так выпьем же за то,…>
За Аду!
[20:39:36] <ada_ru> (shiz01) И такой вопрос, почему вот это:
Put_Line("Цифра:" & Integer'Image(11));
Выводит вот это:
Цифра: 11

Откуда пробел?
[20:39:56] <ada_ru> (I_vlxy_I) ИЛЭВЕН!
[20:40:01] <ada_ru> (Oleg) <прислал наклейку> 🍻
[20:40:08] <ada_ru> (shiz01) :)
[20:40:31] <ada_ru> (I_vlxy_I) я подозреваю, что там Image подгаживает
[20:40:43] <ada_ru> (I_vlxy_I) а если просто 'Image вывести, без изначальной строки?
[20:40:53] <ada_ru> (I_vlxy_I) Put_Line(Integer'Image(11));
[20:41:09] <ada_ru> (shiz01) Тоже с пробелом.
[20:41:51] <ada_ru> (I_vlxy_I) ну, значит имага - собака
[20:43:17] <ada_ru> (nitrocerber)  отвечает (shiz01) на <И такой вопрос, поче…>
От имеджа
[20:43:35] <ada_ru> (shiz01) https://ideone.com/agflwl
[20:43:41] <ada_ru> (nitrocerber) А вотв интегеровом путе можно сказать put (11, 0)
[20:43:50] <ada_ru> (shiz01)  отвечает (nitrocerber) на <От имеджа>
Зараза эдакий.
[20:43:51] <ada_ru> (nitrocerber) И пробела не будет
[20:43:56] <ada_ru> (nitrocerber) Это под минус
[20:44:01] <ada_ru> (nitrocerber) Если он вдруг есть
[20:44:13] <ada_ru> (nitrocerber) Я тупо trim(, both) делаю
[20:44:23] <ada_ru> (shiz01)  отвечает (nitrocerber) на <А вотв интегеровом п…>
А если мне не выводить надо, а с строкой склеивать?
[20:44:30] <ada_ru> (nitrocerber) Ну и 'Img
[20:44:38] <ada_ru> (nitrocerber) Куда удобнее и универсальнен
[20:44:44] <ada_ru> (shiz01)  отвечает (shiz01) на <А если мне не выводи…>
Он тогда тоже пробел ставит, зараза.
[20:44:55] <ada_ru> (I_vlxy_I) а чем 'Img от 'Image отличается?
[20:44:59] <ada_ru> (shiz01)  отвечает (nitrocerber) на <Ну и 'Img>
'Img == 'Image
?
[20:45:31] <ada_ru> (I_vlxy_I) ЕТ!
[20:45:53] <ada_ru> (I_vlxy_I) то есть я точно знаю, что это разные сущности
[20:45:57] <ada_ru> (I_vlxy_I) но кто на ком стоял - я не помню
[20:46:05] <ada_ru> (I_vlxy_I) кажется одно из них это расширизм от адакоры
[20:46:40] <ada_ru> (nitrocerber)  отвечает (I_vlxy_I) на <а чем 'Img от 'Image…>
способом использования
[20:46:53] <ada_ru> (nitrocerber) вместо Integer'Image (X) просто X'Img
[20:47:08] <ada_ru> (nitrocerber) Пробел всё равно будет и тримать придётся
[20:47:12] <ada_ru> (nitrocerber) но так куда короче
[20:47:16] <ada_ru> (shiz01)  отвечает (nitrocerber) на <вместо Integer'Image…>
Да, удобнее. А это язык или расширение?
[20:47:22] <ada_ru> (shiz01)  отвечает (nitrocerber) на <Пробел всё равно буд…>
Блиииин
[20:47:32] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <вместо Integer'Image…>
умну работало вроде и просто XXX'Image
[20:47:57] <ada_ru> (I_vlxy_I) вообще, мне ж тут говорили, что ' это про тип, типа атрибуты или как их там
[20:48:07] <ada_ru> (nitrocerber) function Integer_Img (X : Integer) return String is (Trim (X'Img), Both);
[20:48:22] <ada_ru> (I_vlxy_I) а тут оказывается у переменной зовется по сути метод Img, но не через точку а через какую-то задницу
[20:48:35] <ada_ru> (I_vlxy_I) вот это место в аде очень странное. дико странное
[20:49:49] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <вот это место в аде …>
Ага.
[20:50:03] <ada_ru> (I_vlxy_I) и нигде толком не объясняется
[20:50:16] <ada_ru> (nitrocerber) выводишь в столбик цифирьки
[20:50:23] <ada_ru> (nitrocerber) и из-за минуса всё ползёт
[20:50:26] <ada_ru> (nitrocerber) ненаглядно
[20:50:38] <ada_ru> (nitrocerber) это под матричные экраны по ходу делалось)
[20:50:51] <ada_ru> (nitrocerber) никто не любит, вроде какое-то решение обсуждается, я краем глаза чота видел
[20:51:07] <ada_ru> (nitrocerber) у меня в кодогенерации всё истыкано Trimами из-за этого
[20:51:11] <ada_ru> (I_vlxy_I) дык нужно просто адекватный форматер для строк
[20:51:29] <ada_ru> (I_vlxy_I) типа std::format в Си-Крест-Крест
[20:54:29] <ada_ru> (I_vlxy_I) где нибудь есть адекватная статья описывающая эти атрибуты и нафига они нужны?
[20:54:38] <ada_ru> (I_vlxy_I) у меня ощущение, что лучше бы в языке их вовсе не было
[20:58:59] <ada_ru> (shiz01)  отвечает (nitrocerber) на <у меня в кодогенерац…>
Я что-то Trim найти не могу.
Ada.Strings.Trim_End есть, а Ada.Strings.Trim - нет.
[20:59:44] <ada_ru> (nitrocerber) Ada.Strings.Fixed
[21:00:37] <ada_ru> (shiz01)  отвечает (nitrocerber) на <Ada.Strings.Fixed>
Спасибо.
[21:00:41] <ada_ru> (nitrocerber) ну или .unbounded
[21:00:57] <ada_ru> (nitrocerber) но имидж с фиксед естественно
[21:03:06] <ada_ru> (nitrocerber)  отвечает (I_vlxy_I) на <где нибудь есть адек…>
http://docs.adacore.com/live/wave/arm12/html/arm12/arm12-3-5.html
[21:03:15] <ada_ru> (nitrocerber) но на вопрос зачем оно не отвечает, увы
[21:04:29] <ada_ru> (nitrocerber) ну и имг это гнатовский сахар:
http://docs.adacore.com/live/wave/gnat_rm/html/gnat_rm/gnat_rm/implementation_defined_attributes.html#attribute-img
[22:16:34] <ada_ru> (reznikmm) Есть ещё полный список атрибутов: http://docs.adacore.com/live/wave/arm12/html/arm12/arm12-K-2.html
[22:19:47] <ada_ru> (reznikmm)  отвечает (I_vlxy_I) на <а чем 'Img от 'Image…>
Image это атрибут типа, т.е. нужно писать Integer'Image (Value). AdaCore для леньтяев сделала сокращение Value'Img. Но в языке есть ещё 'Wide_Image и 'Wide_Wide_Image, для которых нет аналога, потому, что никто не понимает, зачем нужны типы Wide_String/Wide_Wide_String
[22:37:13] <ada_ru> (I_vlxy_I)  отвечает (reznikmm) на <Image это атрибут ти…>
ну нет же. Value'Image тоже прекрасно работает
[22:37:21] <ada_ru> (I_vlxy_I) https://godbolt.org/z/euip83
[22:43:49] <ada_ru> (reznikmm) Да, действительно. Это сделали в последней поправке к стандарту Ада 2012. Я это пропустил 😕
http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai12s/ai12-0124-1.txt?rev=1.9
[22:45:31] <ada_ru> (nitrocerber)  отвечает (reznikmm) на <Image это атрибут ти…>
иероглифы из китайских комментов в коде считывать!)
[22:46:35] <ada_ru> (reznikmm)  отвечает (nitrocerber) на <иероглифы из китайск…>
китайцы не нужны 😂
[22:48:10] <ada_ru> (nitrocerber)  отвечает (reznikmm) на <китайцы не нужны 😂>
<прислал наклейку> 😞
[22:49:25] <ada_ru> (reznikmm)  отвечает (reznikmm) на <Да, действительно. Э…>
этот стандарт только в 2016 опубликовали, я просто не успел! 😊
[22:49:30] <ada_ru> (nitrocerber) Конторский асис, кстати, на вайд_стрингах
[22:49:38] <ada_ru> (nitrocerber) по-мойму именно с целью парсить комменты
[22:50:32] <ada_ru> (shiz01) Кстати, в аде есть рефлексия, или это только для енумов магию завезли?

Т.е. могу ли я MyStr: String :="some";

А после как-то вывести название строки (MyStr), и тип (String) куда-нибудь. К примеру в консольку.
[22:57:12] <ada_ru> (reznikmm) нету. Можно только имя файла, номер строки
[22:57:36] <ada_ru> (shiz01)  отвечает (reznikmm) на <нету. Можно только и…>
Жаааль :(
Было бы классно.
[22:57:37] <ada_ru> (reznikmm) остальное через ASIS
[22:57:46] <ada_ru> (shiz01)  отвечает (reznikmm) на <остальное через ASIS>
Asis ?
[22:58:37] <ada_ru> (reznikmm) ну да, который выкосили в GNAT CE 2020. http://www.ada-ru.org/asis.html
[23:00:06] <ada_ru> (shiz01) А, это как libclang но только для Ады.
т.е. лексер, парсер, прочие тулзы для кодогена.
[23:05:45] <ada_ru> (reznikmm) да, AdaCore пытается заменить ASIS на libadalang. Но ASIS основывается на стандарте, а libadalang это вольное художество его авторов, чтобы понять, как оно устроенно, надо быть автором 😄
[23:09:58] <ada_ru> (nitrocerber) Ну как оно устроено я не понял, но относительно успешно переписываю на него свой прибор с асиса
[23:10:15] <ada_ru> (nitrocerber) о количестве погибших нейронов умолчим
[23:44:39] <ada_ru> (I_vlxy_I) https://www.youtube.com/watch?v=RuLci-lSeCo&feature=emb_logo
[23:44:40] <ada_ru> (I_vlxy_I) ПЛОЕЧКА!
[23:46:06] <ada_ru> (shiz01) Она вроде на фряхе, да?
[23:49:33] <ada_ru> (a) Вы в игры играете что ли?
[23:49:48] <ada_ru> (a) А кто пишет 🐈?
[23:51:06] <ada_ru> (nitrocerber) я уже давно тока на ютубе игры прохожу)
[23:54:51] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <Она вроде на фряхе, …>
на третьей плойке - была фряха. что там сейчас - x3