[11:50:03] <ada_ru> (I_vlxy_I) Усё, тикаем с городу! https://habr.com/en/news/t/449250/
[12:10:28] <ada_ru> (nitrocerber) В мае любой дурак сможет, пущай в феврале поездят)))
[12:10:41] <ada_ru> (nitrocerber) Вот там и правда тикать надо будет.. На лыжах
[12:22:11] <ada_ru> (Борис) отвечает (I_vlxy_I) на <Усё, тикаем с городу…>
Фигня. не там тестируют. Надо, например, в Самару. https://www.ada-ru.org/files/bot/2019-04-24-x1.jpg
[12:22:41] <ada_ru> (I_vlxy_I) не надо крутить сразу все ручки.
[12:32:37] <ada_ru> (Борис) Думается, по теме областей применимости Ады будет тоже:
[12:32:39] <ada_ru> (Борис) Восемь смертных грехов профессиональных программистов
Дагаев Дмитрий Викторович, главный эксперт, АО «РАСУ», Росатом, Москва
https://youtu.be/5govjItgS3o
[13:05:36] <ada_ru> (I_vlxy_I) Хорошее кликбейтное название видоса :-)
[13:41:41] <ada_ru> (Борис) Это название непосредственно доклада.
[13:47:24] <ada_ru> (nitrocerber) А можно все грехи буллетпойнтами?
[13:48:03] <ada_ru> (nitrocerber) Мож стопкадр удачный есть слайдов
[14:01:00] <ada_ru> (Борис) В основе вот это:
[14:01:03] <ada_ru> (I_vlxy_I) отвечает (Борис) на <Это название непосре…>
Отличный кликбейтный доклад!
[14:01:06] <ada_ru> (Борис) картинка https://www.ada-ru.org/files/bot/2019-04-24-x2.jpg
[14:10:16] <ada_ru> (I_vlxy_I) Дас. Такой себе фундамент, ведь (1) явно противоречит (5).
[14:11:05] <ada_ru> (nitrocerber) Ну почему, одного таноса этой проблеме
[14:11:25] <ada_ru> (nitrocerber) перфектли балансд, итд итп
[14:27:48] <ada_ru> (I_vlxy_I) да вроде человечество вполне себе самобалансирующаяся система. и с численностью у нас всё ок.
[14:27:53] <ada_ru> (I_vlxy_I) больше - лучше.
[14:28:00] <ada_ru> (Борис) отвечает (I_vlxy_I) на <Дас. Такой себе фунд…>
Но решается 8-м.
[14:29:03] <ada_ru> (I_vlxy_I) отвечает (Борис) на <Но решается 8-м.>
Да, для этого даже специальные ЯП есть. Проблем солверы такие.
[15:05:15] <ada_ru> (nitrocerber) А как заставить препроцессор работать для спеков пакетов? Чот у меня нифига не получается. В телах всё хорошо, а как пихаю что-то из препроцессинга в спек, валится:
pack1.ads:4:04: preprocessor directive ignored, preprocessor not active
[15:05:29] <ada_ru> (nitrocerber) никто такой хуергой не занимался никогда?)
[15:06:19] <ada_ru> (I_vlxy_I) Препроцессор в Аде?!
[15:15:43] <ada_ru> (nitrocerber) ну есть извращенцы
[15:15:50] <ada_ru> (nitrocerber) кажется я нашёл, что ему не нравится
[15:15:54] <ada_ru> (nitrocerber) но не понимаю, почему
[15:23:10] <ada_ru> (I_vlxy_I) Просто юзай сошный препрофессор в Аде и всё!
[15:23:29] <ada_ru> (I_vlxy_I) Сишный
[15:23:31] <ada_ru> (nitrocerber) у нас собственная гордость и гнатпреп
[15:23:53] <ada_ru> (nitrocerber) я-то могу юзать всё, что угодно, хоть раст)
[15:24:04] <ada_ru> (nitrocerber) (на самом деле не могу, стошнит скорее всего ,но в теории)
[15:24:05] <ada_ru> (I_vlxy_I) Оу!
[15:24:19] <ada_ru> (nitrocerber) а вот обязанности требуют от меня другого
[15:24:44] <ada_ru> (I_vlxy_I) Внедряй js! Только им можно вытеснить питон!
[15:34:24] <ada_ru> (nitrocerber) Кароч если кто попадёт на такую фигню, при наличии -gnatep, -gnateD применяется не ко всему, как когда он сам по себе, а только к тому, что в списке под -gnatep есть. Такоэ.
Препроцессоры - это жуть.
[15:35:29] <ada_ru> (Eugene) лонгбой, а ты где работаешь, тоже в адакоре?
[15:44:23] <ada_ru> (nitrocerber) угу
[15:48:43] <ada_ru> (I_vlxy_I) ada core dumped
[15:59:57] <ada_ru> (Eugene) тут вообще есть хоть один адовец, не связанный с адакором?
[16:00:52] <ada_ru> (nitrocerber) было человека два
[16:01:35] <ada_ru> (nitrocerber) V и товарищ из Нидерладнов чтоли... забыл, кто именно. А может и вовсе путаю
[16:03:07] <ada_ru> (I_vlxy_I) отвечает (I_vlxy_I) на <А не провести ли на …>
А вот есть идеи?
[16:09:53] <ada_ru> (Борис) Тут есть основатель чата тов. Веселовский, связанный именно этим фактом с Адой, но не связанный с АдаКором. 😊
[16:10:53] <ada_ru> (Борис) отвечает (I_vlxy_I) на <А не провести ли на …>
Вот и идея: напиши компилятор Ады.
[16:19:21] <ada_ru> (nitrocerber) за выходные. хули там
[16:19:37] <ada_ru> (nitrocerber) и щоб акатсы проходил!
[17:28:14] <ada_ru> (I_vlxy_I) <прислал наклейку> 🐝
[17:29:45] <ada_ru> (nitrocerber) тетрис на гтк сделай
[17:30:41] <ada_ru> (nitrocerber) на раст есть обвязка, на аду есть обвязка
[17:30:42] <ada_ru> (nitrocerber) хотя бы пострадаешь
[17:32:17] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <хотя бы пострадаешь>
Плюсист должен страдать?
[17:32:47] <ada_ru> (nitrocerber) картинка https://www.ada-ru.org/files/bot/2019-04-24-x3.jpg
[17:33:12] <ada_ru> (Борис) отвечает (nitrocerber) на <хотя бы пострадаешь>
Они же мазохисты от природы.
[17:50:13] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <тетрис на гтк сделай>
А можно я на ncurses?
[18:02:39] <ada_ru> (Борис) Лучше на иксах. Без биндинга, на протоколе.
[18:02:57] <ada_ru> (Максим) отвечает (nitrocerber) на <Кароч если кто попад…>
Я один раз пробовал, хотел версию продукта подставлять. Криво получилось и я вырезал. Если в спецификации макрос, тогда всё что использует эту спеку тоже должно с ключом макроса собираться, а это жутко неудобно для библиотек например
[18:28:49] <ada_ru> (I_vlxy_I) отвечает (Борис) на <Лучше на иксах. Без …>
Это я делал.
[18:33:04] <ada_ru> (Борис) отвечает (I_vlxy_I) на <Это я делал.>
Но на Аде то ещё нет.
[18:49:49] <ada_ru> (I_vlxy_I) отвечает (Борис) на <Но на Аде то ещё нет…>
А оно уже и не нужно - иксы умерли :-(
[19:33:44] <ada_ru> (Борис) С чего это вдруг?
[19:36:14] <ada_ru> (Eugene) Плюникс мёртв!
[19:39:15] <ada_ru> (Борис) отвечает (Eugene) на <Плюникс мёртв!>
Это нельзя сказать даже про десктопы (там просто доля маленькая). А если посмотреть на все устройства с ОС, то, боюсь тебя огорчить, ядро Linux будет на подавляющем большинстве.
[19:41:15] <ada_ru> (Борис) А если обобщить до Unix (хотя, как известно, GNUs Not Unix и GNU\Linux — это юниксподобная ОС, а не Unix), то существованием винды вообще можно принебречь.
[19:42:18] <ada_ru> (Борис) отвечает (I_vlxy_I) на <А оно уже и не нужно…>
Хотя, если ты про Weyland... ну тогда для него. 😊
[19:46:20] <ada_ru> (Eugene) в моём окружении юниксы/линуксы почти не существуют! ну серверах только керио под линупсом, ну всякие там роутеры наверное, ну немного гудроидов, даже ипхонов чуть ли не больше...
[19:52:40] <ada_ru> (I_vlxy_I) отвечает (Борис) на <Хотя, если ты про We…>
У него нет протокола уже.
[19:53:30] <ada_ru> (I_vlxy_I) Только либы.
[19:55:59] <ada_ru> (Борис) https://wayland.freedesktop.org/docs/html/
[19:56:29] <ada_ru> (Борис) https://wayland.freedesktop.org/docs/html/ch04.html
[19:56:37] <ada_ru> (Gourytch) отвечает (t91x0) на <Я предлагаю другой э…>
можно совместить: уехать в италию и оттопыриваться, перемежая написанием чего-нибудь. )
[19:58:26] <ada_ru> (Gourytch) а я так и не победил увязку ADA + SDL2 под Win10 потому что не могу победить одну большую препятствию: лень😕
[20:03:51] <ada_ru> (I_vlxy_I) отвечает (Борис) на <https://wayland.free…>
судя по всему, это только unix domain sockets. то есть по сети не алё всё равно.
[20:23:15] <ada_ru> (I_vlxy_I) Что выбираете, тайд, или кипячение? https://www.ada-ru.org/files/bot/2019-04-24-x4.jpg
[20:23:32] <ada_ru> (I_vlxy_I) Это был слайд про то, что фронтенд раста пока не может в оптимизацию так, как плюсовый фронт.
[20:28:24] <ada_ru> (Eugene) в плюсы добавили новый вариант цикла for?????
[20:28:46] <ada_ru> (Борис) А что там нового то?
[20:29:36] <ada_ru> (Eugene) отвечает (Борис) на <А что там нового то?>
картинка https://www.ada-ru.org/files/bot/2019-04-24-x5.jpg
[20:29:39] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <в плюсы добавили нов…>
Да, в с++20
[20:30:02] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <Да, в с++20>
расстрелять!!! весь комитет!!!
[20:30:12] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <расстрелять!!! весь …>
Мне нра
[20:30:23] <ada_ru> (Eugene) и тебя заодно )))
[20:30:35] <ada_ru> (Борис) отвечает (I_vlxy_I) на <Мне нра>
Тебя тоже к делу приобщат.
[20:30:46] <ada_ru> (I_vlxy_I) Ууупс.
[20:31:24] <ada_ru> (I_vlxy_I) я за это не голосовал!
[20:31:38] <ada_ru> (Eugene) с++ мутирует быстрее, чем я об этом узнаю )))
[20:32:30] <ada_ru> (Eugene) а зато в сишарп добавили switch-expression и "pattern-matching" типов в свитче
[20:33:02] <ada_ru> (Eugene) добавили бы ещё полноценные алгтд — ваще конфетка была бы, можно было бы удалить из студии F#
[20:33:51] <ada_ru> (I_vlxy_I) в шарп не добавлять надо, а удалять из него
[20:39:53] <ada_ru> (I_vlxy_I) Вопрос: как в godbolt'e написать функцию возвращающую массив?
[20:47:27] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <Вопрос: как в godbol…>
некоректный же вопрос! функцию можно написать на каком-то языке, а не в каком-то редакторе
[20:47:55] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <некоректный же вопро…>
корректный. это не редактор. там есть нюансы.
[20:48:06] <ada_ru> (I_vlxy_I) А я не знаю настолько хорошо язык, чтобы их обойти.
[20:48:56] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <в шарп не добавлять …>
сишарп довольно простой язык, особо дуалять из него нечего — это не с++ же
[20:54:20] <ada_ru> (nitrocerber) отвечает (I_vlxy_I) на <Вопрос: как в godbol…>
на аде?
[20:54:31] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <на аде?>
Уже 😊
[20:54:43] <ada_ru> (I_vlxy_I) Максим рулит!
[20:55:51] <ada_ru> (nitrocerber) какие-то импорты... ужас ккой-то, череззабороногузадерищинск
[20:56:03] <ada_ru> (nitrocerber) научите уже этого гугльбота хавать больше одного файла
[20:56:08] <ada_ru> (nitrocerber) смотреть на это страшно
[20:57:23] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <научите уже этого гу…>
хочешь немного пописать на js? 😉
[20:57:57] <ada_ru> (I_vlxy_I) я вообще не понял что такое with Import;
Но работает же!
[20:57:58] <ada_ru> (nitrocerber) неа
[20:58:04] <ada_ru> (nitrocerber) оставлю это профессионалам
[20:58:29] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <оставлю это професси…>
профессионал = пожиратель говна?
[21:01:02] <ada_ru> (nitrocerber) это прагма импорт, переделанная в аспект
[21:02:39] <ada_ru> (nitrocerber) хотя нет, херня получается
[21:04:15] <ada_ru> (nitrocerber) Specifying the Import aspect to have the value True is used to import an entity defined in a foreign language into an Ada program, thus allowing a foreign-language subprogram to be called from Ada, or a foreign-language variable to be accessed from Ada.
[21:04:17] <ada_ru> (Максим) http://www.ada-auth.org/standards/aarm12_w_tc1/html/AA-B-1.html
[21:04:21] <ada_ru> (nitrocerber) и каким это местом сюда
[21:04:48] <ada_ru> (nitrocerber) какой эназа лангуаге?
[21:04:59] <ada_ru> (Максим) на Аде, по умолчанию :)
[21:06:20] <ada_ru> (Максим) ну это как в Си extern void External(T()*); или как там
[21:06:27] <ada_ru> (I_vlxy_I) Я только что себя ощутил также, как лет пять назад ощущал на плюсовых конференциях 😊
[21:06:42] <ada_ru> (I_vlxy_I) типа - это на каком языке вообще писано? 😊
[21:06:59] <ada_ru> (Максим) типа есть где-то подпрограмма, юзай ее, линкер ее найдет, остольное компилятору знать не нужно.
[21:07:58] <ada_ru> (I_vlxy_I) А как вот это access function return T преврать в указатель на функцию которая какой-то параметр таки принимает?
[21:12:38] <ada_ru> (nitrocerber) А блин я в глаза долблюсь, думал оно само себя зовёт
[21:15:22] <ada_ru> (I_vlxy_I) отвечает (I_vlxy_I) на <А как вот это access…>
разобрался
[21:28:49] <ada_ru> (I_vlxy_I) гм. а как там свежайший стандарт ады включить?
[21:30:52] <ada_ru> (Максим) -gnat2020 не помогает?
[21:31:16] <ada_ru> (I_vlxy_I) отвечает (Максим) на <-gnat2020 не помогае…>
Спасибо, помогло!
[21:35:40] <ada_ru> (I_vlxy_I) Во, вот такое получилось: https://godbolt.org/z/sJrIxb
[21:36:06] <ada_ru> (I_vlxy_I) А вот плюсцы с тем же бэкендом: https://godbolt.org/z/9agJQb
[21:37:22] <ada_ru> (I_vlxy_I) Кода вроде генерится не больше. Но он ваще другой.
[21:37:40] <ada_ru> (I_vlxy_I) Даже меньше. На одну инструкцию.
[21:45:35] <ada_ru> (I_vlxy_I) Ну что же, я снова обрёл веру в Аду 😊 Для релиза gnatp, а все проверки Ады в рантайме - очень приятные плюшки для дебаг-версии, которые можно оставить в тех местах, где производительность не важна.
[21:50:50] <ada_ru> (Eugene) эти проверки можно отключать в критичных по скорости местах, оставляя их в остальном коде
[21:51:26] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <эти проверки можно о…>
можно и так. но иногда нет одного критичного места которое нужно было бы оптимизировать.
[21:51:38] <ada_ru> (I_vlxy_I) часто оно размазано по системе.
[21:51:49] <ada_ru> (I_vlxy_I) но можно выявить точно не критичные к скорости места.
[21:52:39] <ada_ru> (Eugene) ну так профайлером выясняешь те 10% кода, что выполняются 90% времени, и оптимизируешь там...
[21:53:20] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <ну так профайлером в…>
90 процентов времени выполняется 90 процентов кода 😊
[21:53:59] <ada_ru> (I_vlxy_I) разделение 80 на 20 в реальной жизни частенько не работает, увы. особенно там, где хотелось бы чтобы работало и можно было бы 20 процентов кода заоптимизировать ради 80 процентного буста.
[21:59:51] <ada_ru> (I_vlxy_I) А есть какие-нибудь работы/исследования на тему насколько дороги исключения в Аде?
[22:00:03] <ada_ru> (I_vlxy_I) ну, конкретно gnat/gcc на мейнстримовом железе
[22:00:19] <ada_ru> (I_vlxy_I) наверняка же там реализация исключений от плюсов отличается.
[22:01:06] <ada_ru> (I_vlxy_I) Ну и вообще, почитать бы какие-нибудь статейки о том, как кошерно в Аде генерить и обрабатывать ошибки. Всё ли можно на исключения повесить, или ретюрн коты тоже нужны важны и полезны?
[22:04:38] <ada_ru> (Eugene) @I_vlxy_I зацени сортировочку на хаскелле и во что она компиляется ))
https://godbolt.org/z/4ca26b
[22:06:16] <ada_ru> (I_vlxy_I) это квиксорт недобитый?
[22:06:19] <ada_ru> (I_vlxy_I) на списках?
[22:24:39] <ada_ru> (Eugene) ага, фишка алгоритма в том, что он явно показывает, что делает сортировка...
надо придумать, как на зависимых типах записать этот алгоритм, а потом попытаться доказать, что какой-нить мерджсорт соответствует этой спецификации.
но так лень...
[22:26:08] <ada_ru> (Eugene) к сожалению, скорость выполнения этой функции на много порядков ниже, чем у мерджсорта, хз почему
[22:27:53] <ada_ru> (I_vlxy_I) А асимптотика?
[22:27:57] <ada_ru> (I_vlxy_I) Эмпирическая
[22:34:03] <ada_ru> (I_vlxy_I) Возможно алгоритм обманывает, как обычно это бывает у хаскелля
[22:34:59] <ada_ru> (I_vlxy_I) Из за этих его выкрутасов я его и забросил.
[22:58:52] <ada_ru> (Eugene) я там вспомнил, что когда мерил сёдня на работе, забыл опцию оптимизации в компиляторе включить, завтра перемеряю
[23:00:09] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <Возможно алгоритм об…>
ленивость и правда иногда делает подножку на ровном месте, хотя иногда и помогает...
всё-таки более рационально делать ленивость по требованию, а энергичность по умолчанию...