[00:26:06] <ada_ru> (Lieutenant_Commander_Data) Ура!
[00:26:18] <ada_ru> (Lieutenant_Commander_Data) ebpf тот еще костыль, но все равно крутотень
[00:50:43] <ada_ru> (I_vlxy_I) скоро и у Ады!
[00:56:47] <ada_ru> (Lieutenant_Commander_Data) что?
[00:56:52] <ada_ru> (Lieutenant_Commander_Data) костыль или ebpf?
[01:16:01] <ada_ru> (I_vlxy_I) и то и другое!
[07:39:19] <ada_ru> (Eugene)  отвечает (Максим) на <Всё! GPS-а больше не…>
воу! а я тока привык к её нестандартному оформлению )))
[10:38:14] <ada_ru> (Denis) Интересовался тут на досуге, как контейнеры написаны. И натолкнулся на конструкции вида:

type Rec is record
 X : Integer := raise Program_Error;
end record;

Никто не видел это в стандарте? Найти не могу. Введено явно в 2012. С ключём -gnat2005 не компилирует.
Вообще язык такой огромный стал, что как-то слишком часто стал возникать вопрос "а что, так можно было?" ))
[10:46:29] <ada_ru> (Denis) Зачем это, я понимаю. Я в стандарте найти никак не могу.
[12:12:19] <ada_ru> (Eugene) а зачем это, кстати? в каком случае исключение бросается?
[12:21:13] <ada_ru> (Denis) A : Rec;  -- исключение
A : Rec := (X => 5);  --  legal
[12:29:51] <ada_ru> (I_vlxy_I) А на этапе компиляции никак?
[12:36:15] <ada_ru> (FROL256) что-то я не понял всё-таки зачем это и что оно делает
[12:36:22] <ada_ru> (FROL256) type Rec is record
 X : Integer := raise Program_Error;
end record;
[12:38:23] <ada_ru> (Eugene)  отвечает (Denis) на <Зачем это, я понимаю…>
это, наверное, расширение GNAT'а, по стандарту это невалидная запись, там разрешается expression, а записан statement
[12:40:50] <ada_ru> (Eugene)  отвечает (FROL256) на <что-то я не понял вс…>
ну если инстанцируется запись без указания дефолтного значения, то выдаётся исключение, хотя по хорошему должен компилятор ругаться
[12:42:53] <ada_ru> (I_vlxy_I) У Ады расширизмы?! Как так то?!

А как же совместимость и следование стандарту?
[12:46:34] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <это, наверное, расши…>
В Але любят одни и те же ключевые слова использовать для разных сущностей. Тут raise может быть и значением :-)
[12:51:13] <ada_ru> (I_vlxy_I) Не расширизм
[12:51:27] <ada_ru> (I_vlxy_I) Есть примеры в нормативных документах
[12:53:40] <ada_ru> (I_vlxy_I) Да, есть raise statement и есть raise expression
[12:57:25] <ada_ru> (I_vlxy_I) И raise expression как раз ввели в Ада-2012
[13:01:36] <ada_ru> (Eugene) Ссылку, а то я не нашёл что-то
[13:04:29] <ada_ru> (I_vlxy_I) http://www.ada-auth.org/standards/aarm12_w_tc1/html/AA-11-3.html
[13:04:48] <ada_ru> (I_vlxy_I) http://docs.adacore.com/live/wave/arm12/html/arm12/arm12-11-3.html
[13:07:32] <ada_ru> (Максим) В 2016 вышел так называемый Corrigendum к Ада 2012б там и появились эти raise_expression
[13:12:32] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <В 2016 вышел так наз…>
Это кто такое?
[13:13:21] <ada_ru> (Максим) Очередной набор правок в язык
[13:13:55] <ada_ru> (Максим) http://www.ada-auth.org/standards/
[13:14:08] <ada_ru> (Максим) Consolidated Ada 2012 Standard -
Versions of the Ada 2012 Standard with the corrections of Technical Corrigendum 1 applied.
[13:17:24] <ada_ru> (I_vlxy_I) Микроревизия языка?
[13:17:43] <ada_ru> (I_vlxy_I) Ибо это ж не просто уточнение 2012, это же новые фичи!
[13:21:20] <ada_ru> (Denis) Спасибо! Ни за что не догадался бы, что из этого текста следует допустимость такой конструкции.
Могли бы в текст стандарта хоть в examples пример добавить. Серьёзная штука ведь.
[13:22:55] <ada_ru> (I_vlxy_I) Ёкспрешшн же!
[13:23:26] <ada_ru> (I_vlxy_I) Ну, скоро будет 2020 стандарт, или как его? Может там добавят примеров
[13:27:45] <ada_ru> (Борис) Как сделать C++ с человеческим лицом.
[13:29:23] <ada_ru> (I_vlxy_I)  отвечает (Борис) на <Как сделать C++ с че…>
Результат такого эксперимента попадёт прямо в зловещую долину. Не надо так.
[13:30:26] <ada_ru> (Борис) Конечно не надо. Но делают же.
[13:31:40] <ada_ru> (I_vlxy_I) Не видел :-)

Ну, стандарт ц++ конечно причесывают в сторону чтобы новичкам было попроще и было поменьше многоэтажных рекурсивных шаблонов, но то такоэ.
[13:32:24] <ada_ru> (Борис) Я про Аду.
[13:34:57] <ada_ru> (I_vlxy_I)  отвечает (Борис) на <Я про Аду.>
Ее назвать плюсами с человеческим лицом это тоже такоэ
[13:35:32] <ada_ru> (I_vlxy_I) Они двигаются в разных направлениях
[13:36:12] <ada_ru> (I_vlxy_I) Плюсы двигаются по пути расширения возможностей метапрограммирования
[13:42:38] <ada_ru> (Борис)  отвечает (I_vlxy_I) на <Ее назвать плюсами с…>
Сарказм, Алексей, сарказм.
[13:47:26] <ada_ru> (I_vlxy_I) Тяжело с чтения стандарта переключаться на сарказм :-)
[13:49:02] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <http://www.ada-auth.…>
и что означает такой код?
Obj : Boolean := Func_Call or else (raise TBD_Error) with Atomic;
Obj : Boolean := (Func_Call or else raise TBD_Error) with Atomic;
[13:51:22] <ada_ru> (Eugene)  отвечает (Борис) на <Как сделать C++ с че…>
сделали -- получился хаскель! ой нет, получилась скала!! ой, опять нет! а, да, получился раст!!!
[13:54:39] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <и что означает такой…>
Я ж не знаю Аду :-)
[14:39:38] <ada_ru> (I_vlxy_I) «What do you think of the projects currently underway to develop OS kernels in languages like Rust (touted for having built-in safeties that C does not)?

That's not a new phenomenon at all. We've had the system people who used Modula-2 or Ada, and I have to say Rust looks a lot better than either of those two disasters.

I'm not convinced about Rust for an OS kernel (there's a lot more to system programming than the kernel, though), but at the same time there is no question that C has a lot of limitations.»

Торвальдс о Аде :-)
[14:39:50] <ada_ru> (I_vlxy_I) Но ладно Ада, модуль-2 то чем плоха?
[14:54:46] <ada_ru> (Eugene) А какая разница между модулой-2 и адой? ну чутка проще язык, и что?
[14:58:37] <ada_ru> (I_vlxy_I) Сильно проще
[14:58:44] <ada_ru> (I_vlxy_I) И нет рантайма
[14:59:33] <ada_ru> (I_vlxy_I) Компилятор модулы можно на коленке нафигачить
[15:01:37] <ada_ru> (Максим)  отвечает (Eugene) на <и что означает такой…>
Вызвать функцию Func_Call, если вернет True - записать его в переменную Obj, иначе вызвать исключение. with Atomic тут касается только переменной и ее последующего использования.
[15:03:38] <ada_ru> (Gourytch) капец. помню, был чёр-те-когда изврат: на LISPе писанная Ось. посмотрел - ан нет, её даже кто-то развивает!
https://github.com/froggey/Mezzano
5 дней назад даже коммитили
[15:05:44] <ada_ru> (Максим)  отвечает (I_vlxy_I) на <Но ладно Ада, модула…>
А чем Ада-то плоха?
[15:06:42] <ada_ru> (t91x0)  отвечает (Максим) на <А чем Ада-то плоха?>
Ну вот тут на аде sort писали-писали, да так и не выписали
[15:10:50] <ada_ru> (Максим)  отвечает (t91x0) на <Ну вот тут на аде so…>
Т.е. из-за того, что в GNAT по умолчанию стоит не такая быстрая сортировка и IO тормозит следует что на АДе плохо писать ядро? Серьезно?
[15:12:14] <ada_ru> (t91x0)  отвечает (Максим) на <Т.е. из-за того, что…>
Ок. За полгода в чате по Аде не нашлось ни одного человека, который знал бы Аду насколько, чтобы написать sort, работающий на равных с сишным.

Вероятно Линус тоже Аду не знает.
[15:12:59] <ada_ru> (Максим) Почему? я могу
[15:13:29] <ada_ru> (t91x0)  отвечает (Максим) на <Почему? я могу>
Да, можете. Но вы разве написали? Возможно я пропустил.
[15:13:44] <ada_ru> (Максим) Нет. Мне это не интересно
[15:14:28] <ada_ru> (t91x0) Таким образом, каждый остаётся при своём. Линусу неинтересна Ада, и учить её он не желает.
[15:16:34] <ada_ru> (Максим)  отвечает (I_vlxy_I) на <Сильно проще>
Выходит, чем проще язые, тем лучше он подходит для написания ядра?
[15:24:53] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Вызвать функцию Func…>
Ха! Я угадал значит что это значит.

И этим Ада ценна. Ну или я ценен как специалист, что аж в незнакомом языке семантику угадываю. :-)
[15:25:33] <ada_ru> (Eugene)  отвечает (Максим) на <Вызвать функцию Func…>
то есть по сути выражение (raise TBD_Error) не имеет значения, имеет любой тип и при вычислении прерывает это вычисление исключением?
[15:25:45] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Выходит, чем проще я…>
Ну, Линусу нужен довольно дубовый язык и компилятор. У него знатно бомбило от gcc 4.9 и от Си.
[15:26:54] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <А чем Ада-то плоха?>
Плоха не вообще, а Линусу.
[15:27:10] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <Ну, Линусу нужен дов…>
блин, напиши ему, пусть перейдёт на оберон ))))
[15:32:50] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <то есть по сути выра…>
Исключением TBD_Error типа
[15:33:07] <ada_ru> (I_vlxy_I) Они же разные, исключения
[15:45:42] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <блин, напиши ему, пу…>
Поздно.
[16:01:22] <ada_ru> (I_vlxy_I)  отвечает (t91x0) на <Таким образом, кажды…>
А зачем ему учить Аду? Он плюсы то учить не хочет :-)

Он живет в своём мире Ядра.
[16:01:57] <ada_ru> (I_vlxy_I) У него там один язык. И это даже не стандартный Си.
[16:32:56] <ada_ru> (I_vlxy_I) Хм. А есть идеи как сравнить надежность двух программ написанных по одному ТЗ?
[16:33:17] <ada_ru> (zloidemon)  отвечает (I_vlxy_I) на <Хм. А есть идеи как …>
тесты же
[16:33:33] <ada_ru> (zloidemon) Ещё valgrind и подождать пару суток
[16:36:14] <ada_ru> (I_vlxy_I)  отвечает (zloidemon) на <тесты же>
Видимо не юниттесты, а енд ту енд?
[16:36:38] <ada_ru> (zloidemon)  отвечает (I_vlxy_I) на <Видимо не юниттесты,…>
Да
[16:37:14] <ada_ru> (zloidemon) А unit тесты просто прогнал разок да забыл, что бы не развалилось всё. Но фактически ничего не гарантируют в качестве
[16:49:04] <ada_ru> (I_vlxy_I)  отвечает (zloidemon) на <А unit тесты просто …>
Тем более что это же две разные реализации. Юниттесты будут вообще разные. Невозможно сравнить.
[16:49:35] <ada_ru> (zloidemon) Да никто и не спорит. Но я бы в валгринд воткнул на сутки прям под нагрузкой чт бы утечки найти
[16:49:53] <ada_ru> (I_vlxy_I) А end2end, видимо, должны пилиться вообще третьим лицом и тоже по спеке. Изолированно от реализаторов.
[16:49:56] <ada_ru> (zloidemon) Ну и АБ тесты тоже эффективно, но зависит от критичности бизнеса
[16:50:22] <ada_ru> (zloidemon)  отвечает (I_vlxy_I) на <А end2end, видимо, д…>
Да, и на другом языке. Я много раз себя ловил на том, что пишу тесты они работают, а потом хуя и все ломалось.
[16:50:24] <ada_ru> (I_vlxy_I)  отвечает (zloidemon) на <Да никто и не спорит…>
Я обычно санитайзерами обмазываюсь :-)
[16:50:39] <ada_ru> (I_vlxy_I)  отвечает (zloidemon) на <Да, и на другом язык…>
Переобучение :-)
[20:46:38] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Новый "Make with Ada…>
Чот по моему призы обмельчали. Если мне память не изменяет, раньше же главный приз был 5k? Нет?
[20:52:21] <ada_ru> (Lieutenant_Commander_Data) инфляция
[20:53:04] <ada_ru> (I_vlxy_I) Скорее дефляция
[21:34:18] <ada_ru> (I_vlxy_I) https://www.opennet.ru/opennews/art.shtml?num=51461
[21:34:29] <ada_ru> (I_vlxy_I) "Обеспечена более полная интеграция клиента для протокола LSP (Language Server Protocol)"
[21:34:42] <ada_ru> (I_vlxy_I) значит скоро можно будет туда и поддержку Ады воткнуть!
[22:25:30] <ada_ru> (Eugene) news.rambler.ru/gadgets/42748137-sozdan-pervyy-polnostyu-rabochiy-protsessor-na-uglerodnyh-nanotrubkah/
RISC-V процессор на углеродных нанотрубках на 14к транзисторов (у первого ARM 80-х гг и то в два раза больше было)
[22:26:43] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <news.rambler.ru/gadg…>
дык меньше - лучше! значит архитектура оптимальней
[23:00:34] <ada_ru> (a) Прототип же. Не стоит многого ждать сразу
[23:18:59] <ada_ru> (Gourytch) если технологию прокачают - уже хорошо.
[23:19:12] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <дык меньше - лучше! …>
то есть ты хочешь сказать ,что оберон лучше ады, а брейнфак ещё лучше? о_О
[23:20:51] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <то есть ты хочешь ск…>
нет

нужно сравнивать вещи с примерно одинаковой функциональностью

по своему невежеству, мне кажется, что risc-v и первые армы примерно похожи
[23:21:04] <ada_ru> (I_vlxy_I) и то и то - risc. то есть с нищей системой команд
[23:21:07] <ada_ru> (I_vlxy_I) бай дизайн
[23:21:24] <ada_ru> (Eugene) первые армы были полностью 32 битные, а этот частично, потому и транзисторов меньше
[23:21:40] <ada_ru> (I_vlxy_I) а этот скольки битный? 64? 32? 16?
[23:21:57] <ada_ru> (I_vlxy_I) на там надо еще смотреть что у них с кэшами, что с конвеером и прочее-прочее
[23:22:03] <ada_ru> (I_vlxy_I) ну и замерить производительность бы
[23:22:21] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <а этот скольки битны…>
в статье написано, что у него 16-битная адресация
[23:22:40] <ada_ru> (Eugene) кешев в первом арме не было, тут наверняка тоже нет
[23:22:45] <ada_ru> (I_vlxy_I) оу. малыш!
[23:23:09] <ada_ru> (Eugene) и какой такой конвейер в 14-30к транзисторов? о_О
[23:57:15] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <и какой такой конвей…>
Мощный!