[00:06:52] <ada_ru> (I_vlxy_I) ууу, блин. чот я нифига не понял куда смотреть в расте, чтобы понять как зовется модуль который я сейчас смотрю
[00:07:08] <ada_ru> (I_vlxy_I) никакой шапки в файле нет, где было бы написано ФИО текущего модуля.
[00:07:20] <ada_ru> (I_vlxy_I) прям Алгол-68 какой-то этот раст
[00:30:35] <ada_ru> (I_vlxy_I) tuple structs... походу норм вещества были у тех, кто раст придумывал
[00:36:00] <ada_ru> (nitrocerber) Rustафариане, видать. По накурке
[00:38:52] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Rustафариане, видать…>
Ага. В этом случае у полей структуры нет имён. Есть только номера
[00:41:04] <ada_ru> (I_vlxy_I) Отнимут у тебя имя, дадут тебе номер...
[00:41:05] <ada_ru> (I_vlxy_I) Назвали бы такой тип данных сразу Camp
[00:41:07] <ada_ru> (I_vlxy_I) Да. Как-то так...
[01:45:52] <ada_ru> (I_vlxy_I) self.0.write(buf)
[01:45:56] <ada_ru> (I_vlxy_I) идеально же, ну!
[02:08:39] <ada_ru> (I_vlxy_I) такс, разобрался с растом - там файлу руками close говорить не надо. и это хорошо.
[02:09:50] <ada_ru> (I_vlxy_I) деструкторы в расте оказывается довольно забавно реализованы
[02:16:41] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <ууу, блин. чот я ниф…>
Так и надо. Так достаточно доступа к корню иерархии, чтобы восстановить структуру дерева модулей
[02:17:13] <ada_ru> (I_vlxy_I) у меня странное ощущение, что оно как-то привязано к файловой системе...
[02:17:37] <ada_ru> (I_vlxy_I) и к псевдонимам в Cargo.toml
[02:17:41] <ada_ru> (I_vlxy_I) и еще хз к чему
[02:17:45] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <у меня странное ощущ…>
Только отчасти
[02:18:54] <ada_ru> (insert_reference_here) Если в файле есть mod foo, но после него нет содержимого самого модуля, то модуль будет либо в foo.rs, либо в foo/mod.rs
[02:21:05] <ada_ru> (I_vlxy_I) я понял - искать методом полного перебора по известным путям.
[12:23:41] <ada_ru> (reznikmm) https://habr.com/ru/post/427265/
[12:30:20] <ada_ru> (I_vlxy_I)  отвечает (reznikmm) на <https://habr.com/ru/…>
Дреееееевняя статья. Я читал в оригинале: https://reasonablypolymorphic.com/blog/protos-are-wrong/
[12:32:18] <ada_ru> (reznikmm) ну а по сути, автор прав?
[12:34:16] <ada_ru> (I_vlxy_I) он как минимум ничего не предлагает взамен
[12:40:44] <ada_ru> (nitrocerber) тот момент, когда даже не знаешь ,что это вообще такое
[12:41:03] <ada_ru> (nitrocerber) шо я вообще делаю в это чЯтике.. не перестаю задавать себе этот вопрос
[12:42:02] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <шо я вообще делаю в …>
получаешь новые сведения 🙂
[12:42:31] <ada_ru> (nitrocerber) да не особо. всё больше няня я у них поел и закрытие очередной статьи где-то на трети)
[12:42:38] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <Дреееееевняя статья.…>
Регулярно натыкаюсь на Хабре на переводы статей, которые я уже читал в оригинале
[12:48:27] <ada_ru> (I_vlxy_I) где-то был хороший коммент от гугловца на эту тему
[12:51:11] <ada_ru> (I_vlxy_I)  отвечает (reznikmm) на <ну а по сути, автор …>
https://news.ycombinator.com/item?id=18190005

вот этот коммент полезен может быть
[12:53:56] <ada_ru> (I_vlxy_I) я проводил широкое исследование на тему того, что использовать в качестве формата сериализации в гетерогенной среде (когда у нас много приложений на разных ЯП), и таки оказалось, что "хуже водки лучше нет", в смысле protobuf выиграл у всех.
[12:55:03] <ada_ru> (I_vlxy_I) это конечно не означает, что протобаф идеален и там нет недостатков как в конфепции так и в реализации
[13:11:29] <ada_ru> (I_vlxy_I) А map<k,v> это вообще синтаксический сахар в протобафе 🙂
[13:16:21] <ada_ru> (I_vlxy_I) конечно хотелось бы схему по возможностям более близкую к EBNF
[13:33:35] <ada_ru> (nitrocerber) Кароч очередной холивар в духе "вы подпёрли всё костылями!!! vs а чем ещё подпирать-то на ходу?!"
[13:53:16] <ada_ru> (wladlos)  отвечает (reznikmm) на <https://habr.com/ru/…>
Оооо! Я видел народ, которые - просто натурально кыпятком пысают в эту сторону!
Правда, заметил забавную корреляцию: температура и толщина струи прямо пропорциональна удалённости от низкоуровневого и эмбеддинг-программирования...
[13:55:28] <ada_ru> (reznikmm) В плане эмбедщикам нравится protobuf?
[13:58:26] <ada_ru> (I_vlxy_I) на МК я бы не стал делать протобаф
[14:00:11] <ada_ru> (nitrocerber) протобаф и пронетобаф. бадум-тсс
[14:01:15] <ada_ru> (wladlos)  отвечает (reznikmm) на <В плане эмбедщикам н…>
Иногда я сильно удивляюсь...
[14:01:59] <ada_ru> (reznikmm) bool SerializeToString(string* output) const В С++ нет отдельного типа для вектора дайтов?
[14:02:40] <ada_ru> (I_vlxy_I) std::vector<uint8_t> ?
[14:06:56] <ada_ru> (I_vlxy_I) есть. но protobuf использует свои типы
[14:10:05] <ada_ru> (I_vlxy_I) он даже вектора/контейнеры/коллекции свои использует везде
[14:10:10] <ada_ru> (I_vlxy_I) gooooooooooooooooogle
[14:10:26] <ada_ru> (reznikmm) <прислал наклейку> 😊
[14:19:48] <ada_ru> (I_vlxy_I) у этого есть свои резоны в принципе. то есть это не NIH синдром тут
[14:34:04] <ada_ru> (I_vlxy_I) @reznikmm а что это ты протобафом заинтересовался? 😉
[14:38:38] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <@reznikmm а что это …>
Наверное в чудеса верит...
[14:39:38] <ada_ru> (I_vlxy_I)  отвечает (wladlos) на <Наверное в чудеса ве…>
ну, про Максима не известно. А вот я да, успешно внедряю протобаф везде докуда дотянусь.
[15:02:04] <ada_ru> (I_vlxy_I) иногда хочется внедрить что-то другое, но все другое - полное дно
[15:49:48] <ada_ru> (I_vlxy_I) а бывают в Аде интерфейсы не подразумевающие vtable/tag? То есть можно сказать, что мне вот тут вот в качестве аргумента функции/процедуры подходит ЛЮБОЙ тип, для которого есть вот такие и такие операции (далее перечень функций и процедур)?
[15:52:59] <ada_ru> (nitrocerber) ты дженерики пытаешься заново придумать?)
[15:53:03] <ada_ru> (avkvlru) А разве родовые пакеты не реализуют что-то подобное?
[15:53:22] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <ты дженерики пытаешь…>
а я не знаю что там в дженериках у Ады 🙂 там можно явным образом требования указывать?
[15:53:24] <ada_ru> (nitrocerber) до воода ооп народ его как раз дженериками эмклировал..
[15:54:35] <ada_ru> (nitrocerber) ты можешь в формальных параметрах дженерика указать тип и подпрограммы от этого типа, которые нужны для настройки
[15:54:51] <ada_ru> (I_vlxy_I) а, ок. неплохо вроде. надо будет посмотреть
[15:54:53] <ada_ru> (nitrocerber) а дальше настраивай на что хочешь и юзай себе
[15:56:13] <ada_ru> (I_vlxy_I) плюс перегрузка функций, да.
[15:56:31] <ada_ru> (I_vlxy_I) когда какой-нибудь print есть и для Integer и для JsonValue
[15:57:37] <ada_ru> (I_vlxy_I) а чего мне, собственно не хватает? А! Мне не хватает возможности указать явным образом, что этот print он реально про вывод в консоль скажем.

В общем, мне чешется что-то типа type traits из раста или class types из Haskell'я
[15:58:06] <ada_ru> (I_vlxy_I) позже (не сегодня) сформулирую конкретней хотелки 🙂
[15:58:22] <ada_ru> (nitrocerber) спек любого адского контейнера глянь для примера формальной функции
[16:00:20] <ada_ru> (I_vlxy_I) окау
[16:01:19] <ada_ru> (wladlos) Народ, а - кто-нибудь может указать более свежий аналог подобного http://gen.lib.rus.ec/book/index.php?md5=BE4072CD8904FE3C75FAAAF0A84DA14F
С учётом нововведений в Аде.
[16:01:51] <ada_ru> (I_vlxy_I) :-( https://www.ada-ru.org/files/bot/2020-04-16-x3.jpg
[16:02:13] <ada_ru> (I_vlxy_I) есть ссылка на какой-нибудь амазон хотя бы?
[16:02:21] <ada_ru> (wladlos) А - так? https://libgen.lc/ads.php?md5=BE4072CD8904FE3C75FAAAF0A84DA14F
[16:02:35] <ada_ru> (I_vlxy_I) о! так работает
[16:04:06] <ada_ru> (I_vlxy_I) видимо нужно что-то хотя бы с учетом Ады 95?
[16:05:09] <ada_ru> (wladlos) Ну.... - "хотя бы"...
[16:05:32] <ada_ru> (I_vlxy_I) ну, с тех пор то еще 2005 и 2012 вышла 🙂
[16:05:41] <ada_ru> (I_vlxy_I) и 2020 зреет
[16:06:08] <ada_ru> (wladlos) Я - в курсе.
Я - про другое.
[16:12:41] <ada_ru> (I_vlxy_I) а вот такой философскопрактический вопрос - насколько Ада (не Spark) кошерна для системного программирования таких вещей, как например менеджер памяти (которым будут пользоваться не только адццкие приложения)? То есть это именно либа системная.
[16:12:52] <ada_ru> (I_vlxy_I) Что там будет с надежностью и производительностью?
[16:16:41] <ada_ru> (I_vlxy_I) или такое всё же на Си или даже С++ лучше говнякать?
[16:18:32] <ada_ru> (sergey_dukov)  отвечает (I_vlxy_I) на <а вот такой философс…>
А менеджер платформы?
[16:18:48] <ada_ru> (I_vlxy_I)  отвечает (sergey_dukov) на <А менеджер платформы…>
это кто такое?
[16:25:13] <ada_ru> (I_vlxy_I)  отвечает (sergey_dukov) на <А чем не устраивает …>
CRT - это что-то явно виндовозное опять 🙂

но вообще, у меня есть некоторые спец. требования к менеджеру памяти. менеджеров памяти вообще очень много самых разных. для каждой задачи программист выбирает свой.
[16:25:42] <ada_ru> (I_vlxy_I) плюс не только программист может его выбрать, но и админ 🙂 без переписывания приложения.
[16:26:04] <ada_ru> (I_vlxy_I) плюс тут менеджер памяти - как пример.
[16:33:12] <ada_ru> (sergey_dukov) C-run time — оно везде C-run time.
Но если не устраивает можно и на АДЕ.
А качество будет таким, каким вы его сделаете,
В АДЕ есть возможность экспортировать СИ-шные функции.
[16:35:18] <ada_ru> (sergey_dukov) Но думаю не стоит с этим заморачиваться, если вы не строите ОС на АДЕ.
[16:37:01] <ada_ru> (I_vlxy_I) ну, я просто спросил подходит ли этот язык для таких задач
[16:40:50] <ada_ru> (sergey_dukov) В АДЕ есть возможность это делать. Но вмешиваться в системные вызовы АДА не может, опять же если ОС не АДЕ.
[16:41:22] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <ну, про Максима не и…>
Мы - тоже попытались.
Много очень народу в проект из Си++ с очень высокого уровня влилось. Эдакие гусары "щаз тут всех порвём и покажем как программить надо!"... А потом начались вытянутые лица, когда узнали размеры флэшки, ОЗУ и то, что операционки - нет... и отладка - только по сообщениям в последовательный порт.
Половина профи на третий день свалила из проекта.
Из оставшихся половина ещё недели три пузыри пускала и бровки к переносице сводила.
Я, в начале работы, на белой доске, стикеры повесил с названиями Си++ библиотек, которые они провозгласили для использования в проекте....
И - сразу сказал, что бы те, кто будет отказываться от использования каких-то библиотек, срывали стикеры с их названиями...
Через две недели доска оказалось пустой.
На проекте из 17 человек осталось ТРОЕ. :)))))))))))))))))))))))))
[16:42:20] <ada_ru> (I_vlxy_I)  отвечает (sergey_dukov) на <В АДЕ есть возможнос…>
а это и не нужно
[16:46:53] <ada_ru> (wladlos)  отвечает (wladlos) на <Наверное в чудеса ве…>
Опаньки!
Максим, я прошу прощения за фривольность высказывания!
Нюх потерял...
[16:47:04] <ada_ru> (reznikmm)  отвечает (I_vlxy_I) на <@reznikmm а что это …>
Хотел с ipfs поиграться, а там на protobuf-е. Посмотрел, что генерит готовый плагин, мне не понравилось 😁 Думаю можно ли сделать лучше
[16:48:52] <ada_ru> (I_vlxy_I) наверняка можно 🙂
[16:49:27] <ada_ru> (I_vlxy_I) даже для крестов наверняка можно лучше 🙂
[16:49:42] <ada_ru> (I_vlxy_I) в open street map тоже protobuf
[16:50:24] <ada_ru> (reznikmm)  отвечает (wladlos) на <Опаньки!
Максим, я п…>
Да чё, я в чудеса верю! ,🙂
[18:15:52] <ada_ru> (geniepro)  отвечает (I_vlxy_I) на <а бывают в Аде интер…>
ух ты, классы типов захотелось?
[18:16:10] <ada_ru> (I_vlxy_I)  отвечает (geniepro) на <ух ты, классы типов …>
всегда хотелось тащемто. благо в плюсах они почти появились уже
[18:47:48] <ada_ru> (I_vlxy_I) Ada vs Rust: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/gnat-rust.html
[18:47:53] <ada_ru> (I_vlxy_I) rustRustRUST!!1
[18:50:05] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <rustRustRUST!!1>
Извините, но там компиляторы - разныя.
[18:50:37] <ada_ru> (I_vlxy_I) ты про миддл и бэк? но это нормально
[18:50:42] <ada_ru> (wladlos) И ещё не понятно как и в каком окружении это всё уомпилировалось и работало.
[18:50:51] <ada_ru> (I_vlxy_I) ибо когда c++ сравнивают с fpc например - там тоже компиляторы разные
[18:51:16] <ada_ru> (I_vlxy_I) но ок. вот компиляторы одинаковые: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/gnat-gpp.html
[18:51:20] <ada_ru> (I_vlxy_I) vs C++
[18:51:25] <ada_ru> (I_vlxy_I) цифры примерно те же
[18:51:49] <ada_ru> (I_vlxy_I) то есть это в Аде проблема (возможно даже в конкретной реализации алгоритмов для решения задач этих) а не в миддленде и бэкенде компиля
[18:52:54] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <то есть это в Аде пр…>
Я ж говорю, вообще не понятно, что с чем и в каких условиях и предустановках, сравнивается.
[18:53:39] <ada_ru> (I_vlxy_I) там можно прочитать подробнее
[18:53:41] <ada_ru> (wladlos) Я однажды видел сравнение какого-то скриптового языка и Си, и Си проиграл чуть ли не на порядок.
[18:53:48] <ada_ru> (I_vlxy_I) все исходники есть
[18:53:51] <ada_ru> (I_vlxy_I) и все параметры
[18:54:17] <ada_ru> (I_vlxy_I) можно скачать и локально попробовать воспроизвести какой либо тест
[18:55:25] <ada_ru> (wladlos) Более интересно вот так сравнивать:
https://www.ultimatepp.org/www$uppweb$vsstd$en-us.html
или - вот так:
https://www.ultimatepp.org/www$uppweb$vsd$en-us.html
[18:56:12] <ada_ru> (wladlos) https://www.ultimatepp.org/www$uppweb$comparison$en-us.html
[18:56:35] <ada_ru> (I_vlxy_I)  отвечает (I_vlxy_I) на <ня. пытаюсь преврати…>
помогли. получилось: https://t.me/ada_lang/9413
[18:57:29] <ada_ru> (I_vlxy_I)  отвечает (wladlos) на <Более интересно вот …>
еще раз - там все есть. все версии компиляторов и все опции сборки
[18:57:53] <ada_ru> (I_vlxy_I) а то, что по твоим ссылкам - это аццкая древность уже. про эти результаты можно смело забыть
[18:59:54] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <а то, что по твоим с…>
Расшифруй. На счёт "древности".
[19:02:43] <ada_ru> (wladlos) И какое она отношение имеет к показателям, если она - ОДНА и ТА ЖЕ в сравниваемых вещах?
[19:02:48] <ada_ru> (I_vlxy_I)  отвечает (wladlos) на <Расшифруй. На счёт "…>
(GCC) 4.1.3
[19:03:03] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <(GCC) 4.1.3>
https://t.me/adalang/68215
[19:03:04] <ada_ru> (I_vlxy_I) да и процессоров то таких давно нет
[19:03:22] <ada_ru> (wladlos) Ты - не понимаешь?
Да - хоть - на счётах!
[19:04:47] <ada_ru> (I_vlxy_I) такая, что с тех пор поменялось примерно всё. такие бенчмарки (микробенчмарки) очень чувствительны ко всему. поменял везде версию компилятора - получил другие результаты. не менял компилятор, поменял процессор (скажем на i7) - получил опять другие результаты (то что раньше работало медленней, теперь работает быстрее и наоборот)
[19:05:05] <ada_ru> (I_vlxy_I) поменял версия ядра линукса - опять получи перекос и выбросы там, где не ждал
[19:06:06] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <такая, что с тех пор…>
Ну, и - какая разница, если "систематическая ошибка" - одинакова для сравниваемых вещей?
[19:07:11] <ada_ru> (I_vlxy_I) нет. берем map из U++ и из std - при использовании одного комплятора будет быстрее скажем первое, при использовании другого - второго.

при использовании одного процессора - первое, при использовании другого - второе
[19:08:31] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <нет. берем map из U+…>
На основании чего?
Только - БЕЗ "скажем".
[19:09:44] <ada_ru> (I_vlxy_I) на основании других оптимизаций реализованных как в процессоре (а они нынче умные - в AMDшную рязань чуть ли не модуль ML засунули для обучения поведению твоей программы) так и в компиляторе. Также будет довольно затруднительно оторвать конкретную std от конкретного компилятора.
[19:10:45] <ada_ru> (I_vlxy_I) ну и контейнеры часто тюнятся под предполагаемые схемы использования и под предполагаемые объемы кешей процессора. это тоже роляет.
[19:11:17] <ada_ru> (I_vlxy_I) я много раз наблюдал картину, когда сменив либо компилятор либо процессор я получал противоположный результат подобного бенчмарка
[19:12:32] <ada_ru> (wladlos) Ещё раз.
Они могут тюниться - как угодно.
Зная ребят-реализаторов U++, если бы кто-то предоставил другие числа соотношений, они мгновенно бы поменяли страничку.
Исполнительный механизм для сравниваемых СТАНДАРТНЫХ вещей - один и тот же. Максимум оптимизации - приведён.
[19:14:01] <ada_ru> (I_vlxy_I) я понял твою позицию. смысла дальше спорить словами я не вижу.
[19:16:09] <ada_ru> (Oleg) <прислал документ>
[19:16:42] <ada_ru> (wladlos) Даже больше скажу, спорить смысла не было изначально. Даже не касаясь персоналий.
[19:18:10] <ada_ru> (wladlos)  отвечает (Oleg) на <>
В последние месяца два-три на линкедине довольно большая волна на предмет кобола...
[19:18:54] <ada_ru> (I_vlxy_I)  отвечает (wladlos) на <Даже больше скажу: с…>
а я и не касаюсь. тут просто эксперимент нужен.
[19:19:16] <ada_ru> (I_vlxy_I) слова смысла не имеют
[19:19:44] <ada_ru> (I_vlxy_I) ты выдвинул фальсифицируемую гипотезу. ее можно проверить 🙂
[19:20:09] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <ты выдвинул фальсифи…>
Проверяй.👍
[19:20:27] <ada_ru> (I_vlxy_I) лениво 🙂 но может соберусь
[19:24:26] <ada_ru> (wladlos) Есть цифры, приведены исходные и ограничения. Ребята меняют страничку при изменении чисел. По крайней мере это было так регулярно. Сейчас уже 13 (ТРИНАДЦАТЬ) лет данные не менялись. Почему "фальсифицируемая гипотеза"? Просто напрашиваются естественным порядком, выводы... И выводы - довольно интересные  далеко идущие... ;)
[19:25:43] <ada_ru> (I_vlxy_I) фальсифицируемая гипотеза - это ей комплимент. была бы не фальсифицируемая, то это плохо говорило бы и о гипотезе и о авторе оной
[19:25:55] <ada_ru> (wladlos) Каковые выводы, кстати, очень, коррелируют с моим чисто субъективным ощущением о "прогрессе" в отрасли.
[19:26:26] <ada_ru> (Oleg) <прислал документ>
[19:26:31] <ada_ru> (I_vlxy_I) если оторву жопу, то соберу и перепрогоню в актуальных условиях
[19:27:16] <ada_ru> (wladlos)  отвечает (I_vlxy_I) на <если оторву жопу, то…>
🎖👍🎓
[19:43:21] <ada_ru> (geniepro)  отвечает (wladlos) на <Есть цифры, приведен…>
может просто проект помер давно, вот и не обновляют тесты?
[19:48:06] <ada_ru> (nitrocerber)  отвечает (geniepro) на <может просто проект …>
Roadmap

Upcoming release

2020.1 (?April 2020)
[19:48:09] <ada_ru> (nitrocerber) да вроде живые
[19:49:24] <ada_ru> (I_vlxy_I) или просто, как обычно, забили на замеры. не самая необходимая вещь
[19:49:31] <ada_ru> (I_vlxy_I) да и народ обычно не перепроверет
[20:48:49] <ada_ru> (reznikmm) Прикольно, protobuf-ada сгенерил код, который (будучи доработан кувалдой и напильником) смог прочитать данные из protoc! 👍
[20:51:57] <ada_ru> (I_vlxy_I) в смысле сериализованный protobuf сумел зачитать?
[20:52:09] <ada_ru> (I_vlxy_I) а много там допиливать пришлось?
[20:55:43] <ada_ru> (reznikmm) да, прочитал protobuf длинной 53K где закодирован /usr/include/google/protobuf/compiler/plugin.proto
[20:58:23] <ada_ru> (reznikmm) Ну приглось менять слово Type т.к. оно зарезервировано в Аде, менять название функции Get_Type_Name т.к. поле Type_Name пересекается в предопределенным методом у базового класса. Еще пришлось перенести всю иерархию пакетов из Google.Protobuf в Google_Protobuf потому, что первая уже занята вспомогательным кодом
[21:00:19] <ada_ru> (I_vlxy_I) А, я не знаю как там в адской реализации, но в самом протобафе есть прям правила для каждого ЯП какие слова там зарезервированы, чтобы при котогенерации не было пересечений
[21:00:27] <ada_ru> (I_vlxy_I) оно тогда как-то их эскейпит
[21:03:42] <ada_ru> (I_vlxy_I) в общем, благодаря вот этому коду мне вернули веру в производительность Ады:
`function Test (n : Positive) return Unsigned_32 is
  subtype Shift is Positive range 1 .. 31;
begin
  return Shift_Left(1, Shift (n));
end Test;`
[21:07:01] <ada_ru> (reznikmm) а где эти правила? я не встречал 😕
[21:09:36] <ada_ru> (I_vlxy_I) ван сек, сейчас попробую найти
[21:17:05] <ada_ru> (I_vlxy_I) https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/compiler/java/java_helpers.cc#L78
[21:17:16] <ada_ru> (I_vlxy_I) https://github.com/protocolbuffers/protobuf/blob/88529f5017a3fd4a7cd4d666e541a3934e6491bd/src/google/protobuf/compiler/cpp/cpp_helpers.cc#L75
[21:17:24] <ada_ru> (I_vlxy_I) для жабы и для с++ соответственно
[21:17:58] <ada_ru> (I_vlxy_I) но это прям в самих компиляторах для каждого из языков
[21:18:13] <ada_ru> (I_vlxy_I) наверно можно посмотреть идею и утянуть к себе
[21:27:59] <ada_ru> (I_vlxy_I) А, они просто подчеркивание вкорячивают 🙂
[21:28:36] <ada_ru> (I_vlxy_I) name + "_"
[21:33:25] <ada_ru> (reznikmm)  отвечает (I_vlxy_I) на <А, они просто подчер…>
В Аде так не проканает 😋. Понятно, нужно делать mangling..
[21:33:37] <ada_ru> (I_vlxy_I) а почему не прокатит?
[21:33:54] <ada_ru> (I_vlxy_I) Foo_Bar__________ запрещен?
[21:34:19] <ada_ru> (I_vlxy_I) можно единичку втыкать 🙂
[21:34:38] <ada_ru> (I_vlxy_I) или еще какую бяку
[21:34:48] <ada_ru> (I_vlxy_I) Type_P 🙂
[21:34:57] <ada_ru> (I_vlxy_I) _P лепить
[21:35:07] <ada_ru> (I_vlxy_I) или _PB
[21:45:39] <ada_ru> (nitrocerber) два подчёркивания подряд низя
[21:45:49] <ada_ru> (nitrocerber) и заканчивать на подчёркивание тож низя
[21:48:19] <ada_ru> (I_vlxy_I) сурово
[21:48:33] <ada_ru> (I_vlxy_I) ну, значит суфикс просто _P сделать
[21:48:38] <ada_ru> (I_vlxy_I) или _PB
[23:24:18] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <и заканчивать на под…>
а в Аде вообще принято как-то различать именование переменых, функций и типов? или все пишутся Только_Вот_Так?
[23:25:48] <ada_ru> (nitrocerber) Можешь писать ВотТак
[23:26:05] <ada_ru> (nitrocerber) подчёркивания же не обязательны
[23:26:16] <ada_ru> (I_vlxy_I) а это законно? то есть это общеприятная практика?
[23:27:38] <ada_ru> (nitrocerber) procedure GprConfig.Main is
[23:28:07] <ada_ru> (nitrocerber) А про общепринятость тут кто в лес, кто по дрова
[23:28:37] <ada_ru> (nitrocerber) Я привык к кейвордам в ловеркейсе, а у части клиентоты они, наоборот, капсом. По мне так вырвиглазность дикая. А им норм
[23:29:21] <ada_ru> (I_vlxy_I) ну, это олдскул
[23:29:26] <ada_ru> (I_vlxy_I) еще со старых стандардов ады
[23:29:52] <ada_ru> (I_vlxy_I) паскалисты тоже в европах так писали
[23:29:59] <ada_ru> (I_vlxy_I) видел такой кот
[23:30:24] <ada_ru> (nitrocerber) Ну кароч стили - уже дело вкуса (и реализованности нужных лично тебе стилевых ключей в компиляторе)
[23:34:42] <ada_ru> (nitrocerber) А так применения разных видов написаний для разных конструктов я не видел. Смутно помню из студенческих лет, что в каких-то языках это принято.
[23:35:02] <ada_ru> (nitrocerber) Но не помню, в каких и что
[23:36:02] <ada_ru> (I_vlxy_I) да во всех! плюс-минус 🙂