[00:14:48] <ada_ru> (Максим) отвечает (Vinpuh) на <А он с маленькой 😂😂😂>
Я пропихнул исправления в GPS, конечно он торт от этого не стал, но немного лучше https://github.com/AdaCore/gps/commit/c83c8a98a391756e0950e063da659a25510ea51d
[00:17:06] <ada_ru> (Oleg) Отлично
[00:17:09] <ada_ru> (Vinpuh) отвечает (Максим) на <Я пропихнул исправле…>
👍 Все равно для тех кто в начале пути будет по проще.
[00:18:01] <ada_ru> (I_vlxy_I) а зачем там запускать make?
[00:18:09] <ada_ru> (I_vlxy_I) не сишный же кот собирать!
[00:18:22] <ada_ru> (Максим) там какой-то генератор
[00:27:40] <ada_ru> (nitrocerber) вот дедушка винсент допишет гпрэкзек и будем экзечить вместо мейка)))
[00:30:16] <ada_ru> (I_vlxy_I) мейкер-шейкер, гэпээркер!
[09:33:37] <ada_ru> (Eugene) https://cdn-images-1.medium.com/max/800/0*AgCP904Bc9S0BFv0.jpg
неполный список "критических" технологий, запрещённых к экспорту из США или совместному производству
из комментов:
"Я бы еще добавил: если вы не живете в США и при том занимаетесь чем-то из приведенного в статье списка - не появляйтесь в США и на контролируемых ей территориях (включая прихвостней-"союзников"), т.к. результаты могут оказаться непредвиденными и чудовищными."
[12:33:11] <ada_ru> (I_vlxy_I) так они непредвиденные или же чудовищные? тут как бы одно из двух.
[14:02:21] <ada_ru> (I_vlxy_I) цитирует (Gerdinand)
картинка https://www.ada-ru.org/files/bot/2019-01-18-x15.jpg
[15:09:04] <ada_ru> (I_vlxy_I) А вот иногда народ ищущий, хочет что-то странное.
[15:09:18] <ada_ru> (I_vlxy_I) цитирует (hello_artur)
Привет всем, хочу начать изучать новый для меня ЯП. Выбираю между D, Rust, Kotlin, возможно Elixir, и сюда же можно добавить Crystall.
Хочу начать изучение сразу с практической задачи - поднять вебсокет сервер, способный выдерживать большие нагрузки.
Интересует, как vibe.d будет справляться с огромным количеством соединений?
Например, я читал что Elixir справляется с такой задачей хорошо (но при этом я так понял, он сжирает много памяти).
Может кто-то делал сравнительные тесты, что лучше для такой цели в продакшене - D, Rust, Elixir, node.js, итд.
[15:25:25] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <так они непредвиденн…>
Почему одно из двух?😵
[15:27:41] <ada_ru> (I_vlxy_I) если мы знаем, что последствия будут чудовищные, то они становятся предсказуемыми - ведь мы предсказали, что они будут чудовищными 😊
[15:28:39] <ada_ru> (Eugene) А вот такой вопрос: если объявить пакет как pure, в нём можно определять процедуры? Просто мне как-то не приходят в голову адекватные чистые процедуры...
[15:29:21] <ada_ru> (Максим) можно. Процедуры могут принимать in out параметры и их модифицировать
[15:29:43] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <если мы знаем, что п…>
Непредвиденные последствия могут легко оказаться чудовищными
[15:30:32] <ada_ru> (Eugene) отвечает (Максим) на <можно. Процедуры мог…>
А функции разве этого не могут?
[15:32:01] <ada_ru> (Gourytch) отвечает (Eugene) на <А вот такой вопрос: …>
Exit и Abort =)
ничего не меняют, просто терминируют всё напрочь )
[15:32:50] <ada_ru> (Максим) Ну и функции теперь могу.
[15:41:00] <ada_ru> (Eugene) Единственное, это когда нужно изменить параметры и при этом ничего не возвращать...
[15:53:49] <ada_ru> (Eugene) Однако можно ли считать чистой процедуру, изменяющую свои параметры?
[15:54:29] <ada_ru> (Oleg) Разве "чистая" применимо к процедуре?
[15:54:31] <ada_ru> (Максим) ну согласно Аде - можно
[15:57:03] <ada_ru> (Максим) В Аде все Pure что объявлено Pure :) http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-10-2-1.html
[15:59:52] <ada_ru> (the_arctic_cat) Выучить что ли Аду, но там работы нет.
[16:07:09] <ada_ru> (I_vlxy_I) Я бы пролез, да руки мешают?
[17:09:36] <ada_ru> (Eugene) короче, хаскеллеры выдали свой вердикт — если процедура/функция меняет свои параметры, то считать её чистой уже нельзя
[17:10:55] <ada_ru> (I_vlxy_I) если процедура/функция изменяет свои локальные переменные - то уже один фиг её считать чистой уже нельзя!
[17:11:20] <ada_ru> (Максим) те принять аргумент и вернуть результат, это можно, а если и то и другое в одном аргументе, то нет?
[17:12:11] <ada_ru> (I_vlxy_I) ну, идея, что для каждой задачи своя дырка - неплоха.
[17:12:31] <ada_ru> (I_vlxy_I) а уж компилятор может потом оптимизировать как хочет, если сможет.
[17:15:03] <ada_ru> (the_arctic_cat) отвечает (I_vlxy_I) на <Я бы пролез, да руки…>
Да не, это для каких-то сверхразумов за 40
[17:15:17] <ada_ru> (I_vlxy_I) за 40 чего?
[17:15:20] <ada_ru> (the_arctic_cat) Все места заняты, все спутники запущены.
[17:15:26] <ada_ru> (the_arctic_cat) Лет.
[17:15:34] <ada_ru> (I_vlxy_I) Лет опыта? 😊
[17:15:40] <ada_ru> (the_arctic_cat) И так тоже!
[17:19:47] <ada_ru> (I_vlxy_I) но вообще, да. Ада штука редкоземельная в плане трудоустройства. Либо самому создавать рабочее место для себя, либо пытаться целенаправленно продаться в те немногие места где она используется. Либо просто по фану юзать.
[17:20:11] <ada_ru> (the_arctic_cat) Это не умаляет достоинств языка, впрочем.
[17:22:07] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <если процедура/функц…>
можно, ведь это никак не влияет на окружающий её мир
[17:23:07] <ada_ru> (Eugene) отвечает (Максим) на <те принять аргумент …>
да, ведь в этом случае такая функция меняет своё окружение, а чистая функция на это не имеет права
[17:23:52] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <Лет опыта? 😊>
ну, Аде как раз примерно 40 лет уже
[17:24:09] <ada_ru> (Eugene) дама бальзаковского возраста, однако
[17:24:24] <ada_ru> (I_vlxy_I) бальзамического
[17:25:09] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <но вообще, да. Ада ш…>
а вот почему тот же Дагаев не стал пропихивать Аду в своём проекте для АЭС, зачем-то обероноподобный компонентный паскаль туда присунул?..
[17:26:17] <ada_ru> (Eugene) короче, недоделана чистота пакетов...
[17:26:56] <ada_ru> (I_vlxy_I) ну, ему нужен был небось Гуй. И лень было изучать Аду. а КоПэ он же простой.
[17:27:03] <ada_ru> (I_vlxy_I) А, ну и мусорщик ему нужен было.
[17:27:06] <ada_ru> (Eugene) самое печальное, что в месте вызова не очевидно, что фонкция меняйет свой аргумент, вот в сишечке или сишарпике — видно
[17:27:51] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <А, ну и мусорщик ему…>
какой мусорщик? в реалтайме мусорщик отключается же! выделил массивы и всё на этом, менеджер памяти больше нинужин
[17:28:06] <ada_ru> (I_vlxy_I) а у него реалтайм? на винде?!
[17:28:18] <ada_ru> (I_vlxy_I) c гуями и свопом?
[17:28:32] <ada_ru> (Eugene) ну он же вроде делал свой доклад именно про реалтаймное применение блекбокса
[17:28:34] <ada_ru> (I_vlxy_I) у него там точно ли ББ?
[17:28:38] <ada_ru> (the_arctic_cat) Где эта АЭС? Я подальше держаться буду
[17:28:42] <ada_ru> (Eugene) ну своп можно выключить так-то
[17:29:05] <ada_ru> (I_vlxy_I) отвечает (the_arctic_cat) на <Где эта АЭС? Я подал…>
релакс. у него там всего лишь система логгирования на этом. до управления АЭС никто такую шнягу не допустит.
[17:29:44] <ada_ru> (Eugene) вот Борис мог бы подсказать, где это
[17:33:58] <ada_ru> (nitrocerber) отвечает (the_arctic_cat) на <Лет.>
я начал изучать аду ещё в пустоте небытия ^_^
[17:34:25] <ada_ru> (nitrocerber) правда, пока так и не доучил... но денег платят и слава ктулху)
[17:34:45] <ada_ru> (the_arctic_cat) Это хорошо
[17:35:04] <ada_ru> (the_arctic_cat) А ffi (для взаимодействия с C) есть какой?
[17:35:16] <ada_ru> (the_arctic_cat) Ладно, я лучше сам почитаю 🙂
[17:36:02] <ada_ru> (I_vlxy_I) есть. прямо в стандарде
[17:36:06] <ada_ru> (I_vlxy_I) и с фортраном тоже
[17:36:33] <ada_ru> (the_arctic_cat) Интересно... Значит, под мой юзкейз годится
[17:36:45] <ada_ru> (I_vlxy_I) а gnat могет автогенерить пакетики и для с++ хедеров. (которые потом паяльником допилить надо конечно, но тем не менее).
[17:37:24] <ada_ru> (the_arctic_cat) отвечает (I_vlxy_I) на <а gnat могет автоген…>
А с функциональными макросами он как дружит?
[17:37:38] <ada_ru> (I_vlxy_I) а пёс знает...
[17:38:27] <ada_ru> (the_arctic_cat) Просто у того же раста есть аналогичная приблуда и она не очень с функциональными макросами дружит
https://github.com/rust-lang/rust-bindgen
[17:39:26] <ada_ru> (the_arctic_cat) Си-программисты очень любят на макросах накрутить всякое. Типа... инициализации модуля ядра (в BSD точно так, в Linux наверное тоже)
[17:39:33] <ada_ru> (I_vlxy_I) функцианальный макрос это ж аля #define MIN(a,b) a>b ? b : a; ?
[17:39:36] <ada_ru> (the_arctic_cat) ага
[17:39:53] <ada_ru> (I_vlxy_I) глаголом жечь... да не, просто жечь!
[17:39:56] <ada_ru> (I_vlxy_I) напалмом
[17:40:21] <ada_ru> (I_vlxy_I) но функци-анальные макросы это не самое страшное, что может быть у макросов.
[17:40:44] <ada_ru> (I_vlxy_I) иногда макросы бывают для аля нового синтаксиса. вот это - вообще никак не всосать в другой язык.
[17:43:11] <ada_ru> (the_arctic_cat) отвечает (I_vlxy_I) на <иногда макросы бываю…>
В FreeBSD на чём-то таком кто-то ООП для ядра делал. Там правда сначала исходник через перловый скрипт прогоняется. Так адок.
[17:48:44] <ada_ru> (I_vlxy_I) $ cat h_h.ads
pragma Ada_2005;
pragma Style_Checks (Off);
with Interfaces.C; use Interfaces.C;
package h_h is
-- arg-macro: function MIN (((a) < (b)) ? (a) : (b)
-- return ((a) < (b)) ? (a) : (b);
function foo (arg1 : int) return int; -- h.h:3
pragma Import (CPP, foo, "_Z3fooi");
end h_h;
Это получилось вот из такого хедера:
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
int foo(int);
[17:55:56] <ada_ru> (I_vlxy_I) в общем, в комментах оно оставляет тебе нечто от макросов, но самое не пытается оттранслировать их в код.
[17:55:58] <ada_ru> (I_vlxy_I) https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gnat_ugn/Running-the-Binding-Generator.html#Running-the-Binding-Generator
[17:56:11] <ada_ru> (I_vlxy_I) https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gnat_ugn/Generating-Bindings-for-C_002b_002b-Headers.html#Generating-Bindings-for-C_002b_002b-Headers
[17:57:09] <ada_ru> (I_vlxy_I) ну и там задача обратная может решаться - сишный хедер из адского пакета
[17:57:20] <ada_ru> (the_arctic_cat) Ага, ну это все не подстановка в компайл-тайме... А у ады есть препроцессор?
[17:58:04] <ada_ru> (I_vlxy_I) подстановка (оптимизация) будет если вот так вот функцию напишешь. в спеке.
[17:58:15] <ada_ru> (I_vlxy_I) то есть в принципе компилятор способен такое заинлайнить как надо.
[17:58:24] <ada_ru> (nitrocerber) отвечает (the_arctic_cat) на <Ага, ну это все не п…>
есть
[17:58:27] <ada_ru> (I_vlxy_I) препроцессор внеязыковый есть вроде в gnat'e
[17:58:29] <ada_ru> (I_vlxy_I) но не нужен
[17:58:35] <ada_ru> (I_vlxy_I) еще есть ДЖЕНЕРИИКИ.
[17:58:41] <ada_ru> (I_vlxy_I) "GNAT includes a binding generator for C and C++ headers which is intended to do 95% of the tedious work of generating Ada specs from C or C++ header files.
Note that this capability is not intended to generate 100% correct Ada specs, and will is some cases require manual adjustments, although it can often be used out of the box in practice. "
[17:58:44] <ada_ru> (the_arctic_cat) Я просто хочу понять как это делать идиоматично
[17:59:02] <ada_ru> (I_vlxy_I) что именно? чтобы работало быстро? точно не через препроцессор
[17:59:35] <ada_ru> (I_vlxy_I) я подозреваю, что gnat осилит заинлайнить даже функцию тело которой не в спеке а в боди пакета.
[18:00:04] <ada_ru> (nitrocerber) Inline_Always! и -O0
[18:00:16] <ada_ru> (nitrocerber) и один ктулху разберётся, чо там бэкенд наструячит
[18:01:52] <ada_ru> (I_vlxy_I) причем такой инлайн алвейс может сгенерить более медленный кот чем без инлайна 😊
[18:02:08] <ada_ru> (I_vlxy_I) поэтому плюсатый компилятор старается игнорировать инлайны расставленные юзером.
[18:02:30] <ada_ru> (I_vlxy_I) и пытается таки сгенерить быстрый код, несмотря на старания программиста
[18:02:34] <ada_ru> (nitrocerber) ну inline_always уже тащемта и не реккомендуется использовать
[18:02:43] <ada_ru> (nitrocerber) unless ты ну ооочень хорошо понимаешь, что ты делаешь
[18:03:38] <ada_ru> (the_arctic_cat) Надо читать, короче
[18:04:01] <ada_ru> (I_vlxy_I) отвечает (the_arctic_cat) на <Надо читать, короче>
ну, ты в С++ умеешь?
[18:04:16] <ada_ru> (the_arctic_cat) Конечно
[18:04:22] <ada_ru> (nitrocerber) отвечает (the_arctic_cat) на <В FreeBSD на чём-то …>
про перл тут где-то кстати бегало, что у аппле в либц перл зовётся)
[18:04:38] <ada_ru> (I_vlxy_I) Если да, то вот в Аде, как я понимаю, function однострочная определенная в ads это примерно как и в плюсах функция которая в хедере определена.
[18:04:43] <ada_ru> (I_vlxy_I) то есть — инлайн почти всегда.
[18:06:18] <ada_ru> (the_arctic_cat) А компилятор манглит символы (и это можно настроить как-то?)? Я просто прикидываю насколько Си можно адой заменить
[18:06:20] <ada_ru> (I_vlxy_I) " Expression functions" - во
[18:06:25] <ada_ru> (I_vlxy_I) https://www.adacore.com/uploads/technical-papers/Ada2012_Rationale_Chp2_expressions.pdf
[18:06:28] <ada_ru> (I_vlxy_I) пункт 5
[18:07:04] <ada_ru> (I_vlxy_I) отвечает (the_arctic_cat) на <А компилятор манглит…>
да. но не проблема дергать из си эти функции, ибо хедер для Адского модуля можно просто сгенерить.
[18:07:52] <ada_ru> (I_vlxy_I) хотя.. может и не манглит, кстати
[18:07:53] <ada_ru> (I_vlxy_I) https://gcc.gnu.org/onlinedocs/gcc-7.4.0/gnat_ugn/Running-the-C-Header-Generator.html#Running-the-C-Header-Generator
[18:07:55] <ada_ru> (I_vlxy_I) судя по этому
[18:08:00] <ada_ru> (nitrocerber) pragma import, pragma export. импорт и экспорт имена же вроде настраиваются
[18:09:00] <ada_ru> (the_arctic_cat) Это понятно. Но смотрите, сишная библиотека определила слабый символ с дефолтной имплементацией функции. Я статически линкую к адовому бинарю эту библиотеку.
Я хочу переопределить символ в Аде...
Ладно, всё настраивается:)
[18:09:16] <ada_ru> (the_arctic_cat) Очень интересно, спасибо
[18:13:42] <ada_ru> (I_vlxy_I) какие низкоуровневые платформспецифиццкие штуки ты хочешь, однако 😊 то есть оно наверняка решается. но по факту мне пока ни разу такого не требовалось в прикладном программировании.
хотя я иногда ощущал, что грабли где-то близко. да.
[18:15:04] <ada_ru> (the_arctic_cat) Я на работе сайты верстаю, но по ночам я системный программист!
[18:15:27] <ada_ru> (I_vlxy_I) верстальщик-оборотень!
[18:15:48] <ada_ru> (the_arctic_cat) 😄
[18:16:27] <ada_ru> (nitrocerber) ох печаль... одногрупник бывший, с которым до сих пор общаемся и жалуемся друг другу на баги и подобное, ша выдал на очередную мою сентенцию: "а я думал у вас в аде нету динамической памяти". пипец -_-
[18:16:36] <ada_ru> (nitrocerber) как же мы чудовищно далеки от народа(
[18:17:51] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <как же мы чудовищно …>
ну. у него небось Ада с паскалем ассоциируется
[18:18:01] <ada_ru> (I_vlxy_I) а всем ведь известно. что в паскале нет динамической памяти!
[18:18:04] <ada_ru> (nitrocerber) да мы на одном спецсеме 3 года сидели. у одного научника -_-
[18:18:09] <ada_ru> (I_vlxy_I) (в школе её не проходят)
[18:18:23] <ada_ru> (nitrocerber) он видел ,чо я струячил на диплом... как такое можно было без динамической памяти написать...
[18:18:29] <ada_ru> (nitrocerber) ладно, то такое
[18:18:37] <ada_ru> (I_vlxy_I) то есть я много раз слышал от людей, что Си круче паскаля тем, что в Си есть динамическая память
[18:18:42] <ada_ru> (nitrocerber) да даже в паскале нам про new рассказывали
[18:18:44] <ada_ru> (nitrocerber) в школе
[18:19:13] <ada_ru> (fjybvr) Ох надышались сколько) всё логи запотели)
[18:19:24] <ada_ru> (I_vlxy_I) ну, видимо Паскаль не достаточно травмирует юный мозг спец. синтаксисом указателей.
[18:20:01] <ada_ru> (I_vlxy_I) А вот в Си все эти foo* bar, & сразу глубокие борозды в мозге оставляют. На всю жизнь запоминается, что есть указатели, куча и прочая ересь.
[18:20:42] <ada_ru> (nitrocerber) как отпечатки кирзовых сапог на мозговой коре...
[18:20:45] <ada_ru> (nitrocerber) прям как рамия
[18:21:00] <ada_ru> (Oleg) Я в 6 классе читал книжку про паскаль лежа в реанимационном отделении в Брянске
[18:21:07] <ada_ru> (Oleg) И там были указатели ^
[18:22:32] <ada_ru> (Oleg) Книга была хорошая
[18:22:37] <ada_ru> (Oleg) До сих пор помню
[18:22:49] <ada_ru> (I_vlxy_I) ну и, как мне кажется, часто азы проходят на паскакале (типа циклы там всякие и прочая галимая процедурщина примитивная), а всякое интересное, с динамическими структурами данных. начинают уже на Си/с++
[18:23:03] <ada_ru> (I_vlxy_I) поэтому у людей остается ощущение. что в паскале нет нифига
[18:23:22] <ada_ru> (I_vlxy_I) а Ада == паскаль же! (и там и там есть begin/end), значит и в Аде нету динамиццкой памяти!
[18:23:42] <ada_ru> (I_vlxy_I) Вот возьмем самую продвинутую версию ады - SPARK. Где там динамическая память, а?
[18:23:49] <ada_ru> (I_vlxy_I) А если уж и там нет, то и во всей остальной аде нету!
[18:24:14] <ada_ru> (Oleg) Кстати в MISRA C было тоже запрещено ну или как минимум крайне нежелательно использовать динамическую память
[18:25:04] <ada_ru> (Oleg) И правильно - ибо в какой то момент хода программы, может не оказаться свободной памяти, а это например блок СРС и момент этот - авария
[18:26:48] <ada_ru> (I_vlxy_I) ну и ладно. отказ на 5% случаев проблемой не считается!
[18:26:54] <ada_ru> (fjybvr) sudo rm -rf /
[18:27:30] <ada_ru> (nitrocerber) отвечает (I_vlxy_I) на <а Ада == паскаль же!…>
а С, кресты, го, и прочея прочея прочея всё - С. патамушта { и } 😂
[18:27:46] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <а С, кресты, го, и п…>
угу
[18:28:20] <ada_ru> (I_vlxy_I) С == js, C==C# (ну это ваще очевидно), С==json
[18:28:41] <ada_ru> (Oleg) отвечает (I_vlxy_I) на <ну и ладно. отказ на…>
Действительно - 50 погибших на 1000 - какая мелочь
[18:28:52] <ada_ru> (nitrocerber) отвечает (I_vlxy_I) на <Вот возьмем самую пр…>
https://www.adacore.com/uploads/techPapers/Safe-Dynamic-Memory-Management-in-Ada-and-SPARK.pdf отакео жи
[18:28:57] <ada_ru> (nitrocerber) (я сам не читал)
[18:29:03] <ada_ru> (nitrocerber) (но осуждаю!)
[18:29:36] <ada_ru> (fjybvr) отвечает (I_vlxy_I) на <С == js, C==C# (ну э…>
Это шутка или вы бредите?
[18:29:41] <ada_ru> (nitrocerber) Я книжку Кауфмана перстал мочь читать как раз на формальной верификации правильности программ
[18:29:50] <ada_ru> (I_vlxy_I) но это ж пока что только пропосол! этого пока не завезли в спарк
[18:30:00] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Действительно - 50 п…>
бабы еще нарожают!
[18:30:05] <ada_ru> (nitrocerber) отвечает (fjybvr) на <Это шутка или вы бре…>
тут минимум 50% контента - это жир. К этому надо привыкать
[18:30:27] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <тут минимум 50% конт…>
хана поджелудочной!
[18:30:56] <ada_ru> (fjybvr) отвечает (nitrocerber) на <тут минимум 50% конт…>
Папе своему Советы давайте. Я на этих каналах лет 10
[18:31:35] <ada_ru> (nitrocerber) Фи, агрессия.
[18:31:43] <ada_ru> (fjybvr) А то и 20
[18:31:55] <ada_ru> (nitrocerber) да хоть 100. чувства юмора не накопилось)
[18:32:00] <ada_ru> (the_arctic_cat) отвечает (fjybvr) на <А то и 20>
Ты в честь языка B так назвался? 🙂
[18:32:16] <ada_ru> (the_arctic_cat) Хороший язык, там было auto за 50 лет до c++
[18:32:18] <ada_ru> (fjybvr) отвечает (the_arctic_cat) на <Ты в честь языка B т…>
Нет!)
[18:32:46] <ada_ru> (I_vlxy_I) auto же было еще в Си
[18:32:58] <ada_ru> (I_vlxy_I) да и в С++ изначально был auto
[18:33:29] <ada_ru> (the_arctic_cat) ну да, кстати за тем же, зачем и в B
[18:34:05] <ada_ru> (the_arctic_cat) Модификатор storage class-а, короч локальную переменную определить
[18:34:07] <ada_ru> (I_vlxy_I) https://habr.com/en/post/436626/
[18:35:50] <ada_ru> (nitrocerber) а балтика трёшка - самое популярное пиво в этой стране. а во всём мире - хайникен какой-нибудь. куда там бельгийским квадрюпелям)
а может не надо аду никуда в массы? хоть чувство элитизма какое-то у нас будет...
[18:35:52] <ada_ru> (I_vlxy_I) /me кажется знает на каком языке будет писать @nitrocerber через 10 лет
[18:36:09] <ada_ru> (nitrocerber) не, когда с адского места выгоянт я из айти уйду нафиг
[18:36:34] <ada_ru> (I_vlxy_I) А куда? В крестьяне?
[18:36:47] <ada_ru> (nitrocerber) к тому моменту мозг заржавеет окончательно и уговорить себя пересаживаться на всякую богомерзость не получится
[18:37:10] <ada_ru> (nitrocerber) всегда хотел быть поваром)
[18:37:32] <ada_ru> (I_vlxy_I) будешь автоматизировать кухню на питоне!
[18:37:45] <ada_ru> (I_vlxy_I) ну и вообще, опыт питоноведения у тебя уже есть. нормуль!
[18:37:55] <ada_ru> (nitrocerber) да ну вас... пойду я дальше баги ловить. в наследии того-кого-нельзя-называть
[18:38:50] <ada_ru> (the_arctic_cat) отвечает (nitrocerber) на <к тому моменту мозг …>
> заржавеет
В Rust дорога.
[18:39:00] <ada_ru> (nitrocerber) раст это вебота?
[18:39:06] <ada_ru> (the_arctic_cat) Не всегда
[18:39:34] <ada_ru> (the_arctic_cat) Сейчас это ещё хуже: криптовалюты. Но скоро это будет системным программированием в основном.
[18:40:12] <ada_ru> (nitrocerber) мня брат просил какие-то питоновые копалки перенастроить.. удалось отбиться) но про питон я хотя бы слышал...
[18:41:36] <ada_ru> (I_vlxy_I) "Python has brought computer programming to a vast new audience
And its inventor has just stepped down"
[18:41:55] <ada_ru> (I_vlxy_I) крипота да. как-то слишком хайпово это всё.
[18:43:31] <ada_ru> (I_vlxy_I) “I certainly didn’t set out to create a language that was intended for mass consumption,”
[18:46:41] <ada_ru> (nitrocerber) Ну вовремя слиться - это тоже искусство
[18:49:06] <ada_ru> (I_vlxy_I) интересно, а есть уже реализация интерпретатора питона на js?
[18:49:17] <ada_ru> (I_vlxy_I) ну и ваще. чтобы питонякой вебморду скриптовать
[18:53:00] <ada_ru> (I_vlxy_I) "Security analysis of modern mission critical android mobile applications" https://www.researchgate.net/publication/312428641_Security_analysis_of_modern_mission_critical_android_mobile_applications
[18:53:01] <ada_ru> (I_vlxy_I) 😊
[18:58:02] <ada_ru> (I_vlxy_I) http://www.opennet.ru/opennews/art.shtml?num=49980
[18:58:11] <ada_ru> (I_vlxy_I) Всё. Снимаем шляпу.
[18:58:48] <ada_ru> (nitrocerber) А гитхаб-то уже закрылся/сломался/скатился?
[18:58:56] <ada_ru> (I_vlxy_I) в процессе
[18:59:11] <ada_ru> (I_vlxy_I) вот приватные репы бесплатными стали... это плохо!
[19:21:31] <ada_ru> (coopht) отвечает (I_vlxy_I) на <вот приватные репы б…>
Это отлично! Можно наконец-то переехать с унылого битбакет
[19:22:21] <ada_ru> (I_vlxy_I) это ужасно! не будет тонн недоделанных проектов в паблике больше
[19:22:36] <ada_ru> (I_vlxy_I) обычно гитхаб я юзаю не ради готовых проектов а ради кодосниппетов.
[19:23:34] <ada_ru> (coopht) отвечает (nitrocerber) на <ох печаль... одногру…>
Да
[19:24:00] <ada_ru> (coopht) отвечает (nitrocerber) на <Я книжку Кауфмана пе…>
Что за книжка?
[19:24:15] <ada_ru> (coopht) отвечает (I_vlxy_I) на <обычно гитхаб я юзаю…>
Ну я думаю они никуда не денутся
[19:24:48] <ada_ru> (I_vlxy_I) типа нафига публиковать этот выпердышь?
[19:24:50] <ada_ru> (I_vlxy_I) чойто? народ будет делать их приватными же!
[19:25:11] <ada_ru> (nitrocerber) ЯПы, классика. Я её в школе ещё читал, и тогда она уже была древняя кажись
[19:25:35] <ada_ru> (nitrocerber) А зчем тебе выпердыши?) Мсье - капрофил?)
[19:26:03] <ada_ru> (I_vlxy_I) дык для котоснипетов жи!
[19:26:27] <ada_ru> (coopht) отвечает (I_vlxy_I) на <дык для котоснипетов…>
StackOverflow наше все )
[19:26:31] <ada_ru> (nitrocerber) а в переводе со смузийного на токарно-слесарный?
[19:26:46] <ada_ru> (I_vlxy_I) на SO народ спрашивает, а на гитхабе - народ пишет!
[19:27:06] <ada_ru> (I_vlxy_I) я предпочитаю котоснипеты находить не общаясь с людьми
[19:27:25] <ada_ru> (I_vlxy_I) ну, кусочки кода же. то есть например - а вот как народ кормит вот эту функцию вот из этой либы/
[19:27:28] <ada_ru> (Oleg) отвечает (coopht) на <StackOverflow наше в…>
картинка https://www.ada-ru.org/files/bot/2019-01-18-x16.jpg
[19:27:31] <ada_ru> (nitrocerber) сниппеты, уиппеты... мерчандайзеры, бл, погоняющие инфлюэнсерами
[19:27:55] <ada_ru> (coopht) отвечает (Oleg) на <>
Это единственный способ программировать в нашем жестоком мире)
[19:28:09] <ada_ru> (I_vlxy_I) или - у меня тут какая-то НЁХ, её вообще кто-то хоть когда-то юзал?
[19:28:22] <ada_ru> (Oleg) Не не - есть сферы где можно обойтись без Stack Overflow
[19:28:33] <ada_ru> (Oleg) Ибо там все равно ответа нет
[19:28:43] <ada_ru> (nitrocerber) типа ады? ^_^
[19:28:50] <ada_ru> (coopht) отвечает (nitrocerber) на <типа ады? ^_^>
нет
[19:28:59] <ada_ru> (Oleg) Ну ада + какой нибудь хардварь
[19:29:03] <ada_ru> (Oleg) Например
[19:29:05] <ada_ru> (coopht) по аде на все вопросы давно ответили
[19:29:23] <ada_ru> (nitrocerber) как пропатчить равенскар под стм32что-тотам?
[19:29:37] <ada_ru> (Oleg) stm32 уже попса
[19:29:54] <ada_ru> (Oleg) Вот какой нибудь древний NEC
[19:30:06] <ada_ru> (Oleg) Или какой нибудь Hitachi
[19:30:51] <ada_ru> (coopht) отвечает (Oleg) на <Ибо там все равно от…>
Это понятно. Я в основном пользуюсь SO тем, что касает скриптов и администрирования )
[19:32:29] <ada_ru> (coopht) А кто-нибудь тут располагает инфой по тестированию сетевого стека?
[19:34:06] <ada_ru> (coopht) Может кто знает тулкит для тестирования сетевого стека Линукса на самом линуксе и тестирование линуса как бы из вне, по типу тестирования blackbox
[19:34:27] <ada_ru> (coopht) Я пытылся заюзать packetdrill от гугла - но это какая-то дичь
[19:37:26] <ada_ru> (I_vlxy_I) http://nuttx.org/doku.php?id=wiki:networking:testing
[19:37:28] <ada_ru> (I_vlxy_I) ня?
[19:44:50] <ada_ru> (Oleg) отвечает (coopht) на <А кто-нибудь тут рас…>
Что именно тестировать ? производительность?
[19:52:43] <ada_ru> (I_vlxy_I) хм. а вот тут Александреска говорит, что таки да. Чем больше программа тем она хуже. https://www.youtube.com/watch?v=tcyb1lpEHm0
[19:53:29] <ada_ru> (I_vlxy_I) И самое плохое что может случиться с программой (любой - хоть компилятором, хоть чем), это разрастание кода. Если после разработки кода стало больше, а не меньше, значит программа стала хуже!
[19:54:24] <ada_ru> (nitrocerber) ну так она ж на плюсах, естественно!
[19:54:30] <ada_ru> (nitrocerber) чем больше плюсатого кода - тем хуже)
[19:54:44] <ada_ru> (I_vlxy_I) а вот и нет. говорит, что исследования показывают, что это не зависит от ЯП 😊
[19:54:55] <ada_ru> (nitrocerber) та исследователи просто про аду не знают)
[19:54:58] <ada_ru> (Oleg) Так ясное дело
[19:55:13] <ada_ru> (Oleg) 100500 строе=к на JS это АД
[19:55:23] <ada_ru> (nitrocerber) исследовали с, с++? с#... какие там ещё можно символы к с приделать?
[19:55:36] <ada_ru> (I_vlxy_I) после разработки проект всегда должен становиться меньше, а не больше! вне зависимости от того что это за проект - прога какая, или новая ревизия языка программирования!
[19:55:59] <ada_ru> (nitrocerber) я чувствую дао... и цзен.
[19:56:07] <ada_ru> (nitrocerber) идеальная программа - она по нирване
[19:56:09] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <исследовали с, с++? …>
objc, с--
[19:56:11] <ada_ru> (nitrocerber) отсутствует)
[19:56:13] <ada_ru> (I_vlxy_I) как минимум 😊
[19:59:47] <ada_ru> (I_vlxy_I) Статистика Говорит, что на 1000 строк кота приходится от 15 до 50 багов. вне зависимости от ЯП.
[20:01:15] <ada_ru> (Oleg) Статистика показывает что в странах где растет потребление гамбургеров - растет продолжительность жизни.
[20:01:20] <ada_ru> (Oleg) Статистика она такая
[20:01:53] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <а всем ведь известно…>
ну как бы new в паскале тоже был же
[20:02:16] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <ну как бы new в паск…>
не существует.
[20:02:36] <ada_ru> (I_vlxy_I) точнее так: есть, но не бывает.
[20:02:41] <ada_ru> (Eugene) <прислал наклейку> 😳
[20:10:52] <ada_ru> (Eugene) отвечает (nitrocerber) на <идеальная программа …>
идеальное решение по ТРИЗ — устройства нет, но функция его выполняется
[20:11:25] <ada_ru> (nitrocerber) "тебе уже за@$сь", ога ога)
[20:12:34] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <Статистика Говорит, …>
по статистике средняя температура в больнице 36.6
[20:12:48] <ada_ru> (I_vlxy_I) ну, примерно столько багов и есть на 1000 строк кода
[20:26:00] <ada_ru> (coopht) отвечает (Oleg) на <Что именно тестирова…>
И производельность и реализаци.
[20:27:33] <ada_ru> (Oleg) Я тестировал коммерческим ПО/Железом Ixia - но бесплатные. Производительность можно iperf но нужно заведомо мощнее железо на тех ПК с которых тестируешь чтоб в них не уперлось.
[20:27:51] <ada_ru> (Oleg) Ну реализацию чтото есть тоже бесплатное - вспомню напишу
[20:59:28] <ada_ru> (I_vlxy_I) Вот струячат релизы!
[21:11:13] <ada_ru> (coopht) Rust не нужен
[21:17:51] <ada_ru> (I_vlxy_I) да ладно, смотри сколько там новшеств каждый раз!
[21:19:27] <ada_ru> (nitrocerber) Именно поэтому и не нужен.
[21:19:42] <ada_ru> (nitrocerber) Разрабочику нужна стабильность
[21:19:44] <ada_ru> (coopht) отвечает (I_vlxy_I) на <http://nuttx.org/dok…>
Спасибо! Scapy выглядит как то, что надо
[21:20:07] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Именно поэтому и не …>
https://bash.im/quote/397386
? 😉
[21:20:28] <ada_ru> (coopht) отвечает (I_vlxy_I) на <да ладно, смотри ско…>
некогда смотреть. Надо кодить
[21:20:57] <ada_ru> (coopht) На самом деле хорошо - чем больше языков всяких тем лучше. Конкуренция всегда хорошо
[21:21:06] <ada_ru> (I_vlxy_I) отвечает (coopht) на <некогда смотреть. На…>
побыстрому на С++20 накодить новый ада-компиль? 😉
[21:21:26] <ada_ru> (coopht) отвечает (I_vlxy_I) на <побыстрому на С++20 …>
Не, линупс на Си
[21:22:00] <ada_ru> (I_vlxy_I) отвечает (coopht) на <Не, линупс на Си>
хм. кажется такое уже кто-то написал...
[21:22:16] <ada_ru> (coopht) Ну так теперь его приходится допиливать
[21:22:38] <ada_ru> (coopht) Вот взяли новый компилятор, а работать стало медленне
[21:22:39] <ada_ru> (coopht) 😞
[21:22:47] <ada_ru> (I_vlxy_I) хорошо
[21:24:04] <ada_ru> (I_vlxy_I) перепишите его на Аде! будет хорошо
[21:30:16] <ada_ru> (coopht) некогда, надо код на си писать )
[21:30:33] <ada_ru> (coopht) я как-то делал модуль ядра на аде.
[21:30:40] <ada_ru> (coopht) но это гемор
[21:54:57] <ada_ru> (I_vlxy_I) O, какая штука! https://m.lenta.ru/news/2019/01/18/npa/
[21:55:10] <ada_ru> (I_vlxy_I) Главное чтобы софт не глюканул :-)
[22:05:17] <ada_ru> (Oleg) ТУ-95ЛАЛ в 196x годах летал уже на атомном двигателе
[22:05:28] <ada_ru> (Oleg) И в США тоже был
[22:05:33] <ada_ru> (I_vlxy_I) Лал!
[22:05:51] <ada_ru> (Oleg) Но увы - геморой такой никому не нужен
[22:05:59] <ada_ru> (Oleg) https://testpilot.ru/russia/tupolev/95/lal/tu95lal.htm
[22:06:28] <ada_ru> (I_vlxy_I) Технологии и потребности не стоят на месте
[22:06:31] <ada_ru> (the_arctic_cat) отвечает (coopht) на <я как-то делал модул…>
Для линукса? Модули же там регистрируются при помощи сишных макросов? Пришлось их на аде переписывать?
[22:06:40] <ada_ru> (the_arctic_cat) Опять я за старое :)
[22:06:57] <ada_ru> (I_vlxy_I) Так то и многоразовая первая ступень была. А нашла применение только сейчас .
[22:07:14] <ada_ru> (I_vlxy_I) А электрокары вообще чуть ли не первыми авто были.
[22:08:12] <ada_ru> (Oleg) Я не спорю - но это вообще не интересно
[22:09:11] <ada_ru> (Oleg) Вон лучше поглядите: https://youtu.be/NUrpnvDPJSM
[22:09:18] <ada_ru> (Oleg) Тьфу
[22:09:23] <ada_ru> (Oleg) Не Мюзикл конечно
[22:09:25] <ada_ru> (Oleg) 😊
[22:09:54] <ada_ru> (Oleg) https://youtu.be/6q-ouZa0AYc
[22:10:00] <ada_ru> (Oleg) Во
[22:11:09] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <А электрокары вообще…>
паромобили же первее были
[22:11:25] <ada_ru> (Oleg) https://youtu.be/d02DjslJgIQ
[22:11:31] <ada_ru> (Oleg) Во тут подробнее
[22:14:11] <ada_ru> (I_vlxy_I) «Создание самолета с подобной силовой установкой открывало перед ВВС возможность получить в свои руки пилотируемые боевые системы, продолжительность и дальность полета которых ограничивалась бы только выносливостью экипажа.»
А сейчас и того ограничения не будет.
[22:18:05] <ada_ru> (I_vlxy_I) На python автопилот напишут, смузи заправят и норм!
[22:18:30] <ada_ru> (I_vlxy_I) Или на js
[22:19:57] <ada_ru> (nitrocerber) Эт на чём они там у них?
[22:20:05] <ada_ru> (nitrocerber) На плутонии?
[22:20:13] <ada_ru> (Oleg) Да но есть нюансы - на фукусиме тоже было все хорошо - они так думали
[22:20:51] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Да но есть нюансы - …>
Самолёту землетрясения не страшны! Он выше этого!
[22:21:16] <ada_ru> (Oleg) Да, я заметил, самолетам вобще ничего не страшно - если бы земли бы еще небыло
[22:21:24] <ada_ru> (Oleg) Они бы не падали тогда
[22:21:47] <ada_ru> (I_vlxy_I) Ну, этот самолёт может сделать так, чтобы земли не стало
[22:21:50] <ada_ru> (I_vlxy_I) И нормуль!
[22:22:06] <ada_ru> (Oleg) Ну пусть над вами летает - я не против 😊
[22:22:20] <ada_ru> (coopht) отвечает (the_arctic_cat) на <Для линукса? Модули …>
Да, для Линукса. Насколько я помню там не нужны были макросы
[22:22:39] <ada_ru> (coopht) достаточно было определить init и deinit точки входа
[23:04:11] <ada_ru> (Максим) отвечает (Eugene) на <да, ведь в этом случ…>
Если рассматривать изменения параметров подпрограммы, как изменения ее локальных переменных, а модификацию "окружения" в момент возврата (в контексте вызывающей стороны), то ничего такая функция не меняет.
[23:07:37] <ada_ru> (Максим) Представь, что функция возвращает кортеж из значений out параметров, а вызывающая сторона их раскладывает по переменным. Примерно так это и работает для скаляров.
[23:09:52] <ada_ru> (I_vlxy_I) а если представить что процедура (без параметров) возвращает всё то (все глобальные переменные), что она меняет в себя в теле, а вызывающая сторона раскладывает это дело по переменным уже, то ничего таковая процедура не меняет! Она чиста!
[23:35:28] <ada_ru> (Eugene) слишком много представлений
[23:36:40] <ada_ru> (I_vlxy_I) кортежи нужны в Аде!
[23:36:56] <ada_ru> (I_vlxy_I) ну или хотя бы прибитое гвоздями в языке возвращение множества значений
[23:37:00] <ada_ru> (Eugene) ада нинужна, так зачем ей кортежи?
[23:37:16] <ada_ru> (Eugene) если уж кортежи, так давай полноценные алгтд
[23:38:44] <ada_ru> (I_vlxy_I) ну, кстати, до алгтд вроде Аде не так далеко
[23:39:06] <ada_ru> (I_vlxy_I) там же и аля паттерн матчинг есть и эти, как их, дискриминируемые типы
[23:40:33] <ada_ru> (Eugene) я сёдня на работе переводил набор типов с хаскеля на с# — это какой-то тихий ужас... смесь абстрактных классов, наследования и енумов...
[23:40:50] <ada_ru> (Eugene) и это я ещё не успел посмотреть, а работает ли вся эта куча
[23:41:14] <ada_ru> (I_vlxy_I) отсюда вывод - не нужно писать на хаскеле. а то потом вот такой хренью заниматься приходится
[23:41:22] <ada_ru> (I_vlxy_I) писал бы сразу на шарпее, результат был бы стройнее
[23:42:00] <ada_ru> (nitrocerber) чем кортеж отличается от записи с полями?
[23:42:13] <ada_ru> (nitrocerber) опять вы хотите насувать неявного дерьма в нашу уютненькую аду?
[23:42:21] <ada_ru> (Eugene) ну, та прога, которая на хаскелле, я её ещё в 2011 г написал, я тогда почти не делал софт на шарпе, основной проект был на с++билдере
[23:42:43] <ada_ru> (Eugene) отвечает (nitrocerber) на <чем кортеж отличаетс…>
кортеж — это анонимная запись с анонимными полями
[23:43:25] <ada_ru> (nitrocerber) анонимная с анонимными. out the door to the C family with that heresy
[23:43:46] <ada_ru> (nitrocerber) в аде анонимные типы одинаковые по сути-то друг в друга не переводятся)
[23:43:48] <ada_ru> (Eugene) в семействе си такого нету же
[23:43:53] <ada_ru> (nitrocerber) ну или в питоны
[23:43:54] <ada_ru> (nitrocerber) скрипты
[23:44:07] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <в семействе си таког…>
есть 🙂
[23:44:10] <ada_ru> (nitrocerber) где там всё это мождное и молодёжное
[23:44:19] <ada_ru> (Eugene) вапще эти кортежи — старая вещь, в советском языке РАПИРА были
[23:44:32] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <есть 🙂>
в каком?
[23:46:05] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <в каком?>
#include <tuple>
void s() {
auto [x,y] = std::tuple {1,2};
}
[23:48:18] <ada_ru> (Eugene) это же не языковое средство, а библиотечное
[23:48:35] <ada_ru> (I_vlxy_I) справа - да. слева - нет
[23:48:56] <ada_ru> (I_vlxy_I) ну и чтобы это стало возможным, языку пришлось пойти навстречу библиотеке так то
[23:49:26] <ada_ru> (I_vlxy_I) а так - зачем в язык тащить то, что может быть сделано либой?
[23:49:41] <ada_ru> (I_vlxy_I) это ж вам не хаскель - в плюсах недостающее можно реализовать библиотекой.
[23:50:17] <ada_ru> (I_vlxy_I) можно еще вот так:
auto [x,y] = (int[]){1,2};
[23:51:30] <ada_ru> (I_vlxy_I) декомпозиция - штука универсальная в плюсах. не только для туплов
[23:53:29] <ada_ru> (I_vlxy_I) но Аде по этому пути наверно не надо идти. Тем более что стартовая позиция в плане Алгебраических Типов Данных у Ады была более сильная чем у плюсцов.
[23:53:41] <ada_ru> (I_vlxy_I) хорошо бы именно вот эту часть Ады логически развить. IMHO
[23:57:06] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <можно еще вот так:
a…>
чоза птичий язык...
[23:57:42] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <но Аде по этому пути…>
почему более сильная?
[23:58:07] <ada_ru> (I_vlxy_I) потому, что Ада изначально с дискриминацией дружила