[00:00:17] <ada_ru> (I_vlxy_I) вроде инструкция довольно краткая
[00:01:35] <ada_ru> (I_vlxy_I) https://www.unix.com/man-page/osx/3/dirname/
[00:01:41] <ada_ru> (I_vlxy_I) например. что тут не так?
[00:19:43] <landgraf> нене, ты не макосовскую читай https://www.opennet.ru/man.shtml?topic=dirname&category=3&russian=2
[00:19:47] <landgraf> Both dirname() and basename() may modify the contents of path, so it may be desirable to pass a copy when calling one of these functions.
[00:20:01] <landgraf> These functions may return pointers to statically allocated memory which may be overwritten by subsequent calls. Alternatively, they may return a pointer to some part of path, so that the string referred to by path should not be modified or freed until the pointer returned by the function is no longer required.
[00:20:10] <ada_ru> (I_vlxy_I) ну, ты ж не сказал которую читать. сказал man 3 dirname, я и набрал в терминале
[00:21:06] <landgraf> я тоже набрал в терминале, а терминал у меня другой
[00:21:14] <ada_ru> (I_vlxy_I) дык
[00:22:05] <landgraf> дык не дык, но гнутую версию явно наркоманы писали
[00:22:55] <ada_ru> (I_vlxy_I) ну, позикс: "The dirname() function may modify the string pointed to by path, and may return a pointer to static storage that may then be overwritten by subsequent calls to dirname()."
[00:23:18] <landgraf> хочу даю, хочу не даю какой-то
[00:23:30] <ada_ru> (I_vlxy_I) а макоська/BSD выдает просто то, как у них реализовано :-)
[00:24:03] <landgraf> ну вот в линупсе оно модифицирует аргумент и выдает на него указатель
[00:24:05] <ada_ru> (I_vlxy_I) собственно там в IMPLEMENTATION NOTES как раз то же самое написано
[00:24:50] <ada_ru> (I_vlxy_I) в макоське свежей есть две функции:
char * dirname(char *path);
и
char * dirname(const char *path);
[00:25:08] <ada_ru> (I_vlxy_I) вторая - легаси мод типа. и, как видишь, ничего модифицировать не может
[00:25:32] <landgraf> я рад за твою макоську и твой цпп
[00:25:40] <ada_ru> (I_vlxy_I) это Си
[00:26:07] <landgraf> спасибо, капитан =)
[00:26:27] <landgraf> где я писал что это не Си?
[00:26:46] <ada_ru> (I_vlxy_I) вот тут: "(landgraf)я рад за твою макоську и твой цпп"
[00:27:08] <landgraf> и? где там написано что *это* не си?
[00:27:16] <ada_ru> (I_vlxy_I) "цпп"
[00:27:19] <landgraf> ты точно программист? )
[00:27:37] <ada_ru> (I_vlxy_I) цпп это не си, и даже не его надмножество
[00:27:49] <landgraf> я где-то утверждал обратное?
[00:27:58] <landgraf> блин, обьясните ему кто-нибудь...
[00:28:01] <ada_ru> (I_vlxy_I) алсо макоська тут ничего не придумала, это всё бздёвые штучки
[00:28:43] <landgraf> а к чему было упоминание про "свежую" макоську?
[00:30:44] <ada_ru> (I_vlxy_I) свежая макоська видимо стянула более свежие бздевые либы и у нее ман отличается от того, что я нагуглил и ссылку дал
[00:31:07] <ada_ru> (I_vlxy_I) кстати, бот не оттранслировал корректно твою мессагу сюда :-(
[00:42:23] <ada_ru> (nitrocerber) Вот чо вас в ночи-то пробирает? Этим утром встал - 150 месаг. Ща опять наструячите... Вы-то наструячите и уйдёте, а нам это читать утром
[00:42:59] <ada_ru> (I_vlxy_I) весенне-ночное обострение же
[00:43:18] <ada_ru> (I_vlxy_I) солнышко днем светит, коммунальщики сугробы на газонах перекапывают!
[00:43:37] <ada_ru> (I_vlxy_I) (сегодня вот видел часов в 10 вечера как они этим занимаются)
[00:47:15] <ada_ru> (nitrocerber) Они и в 3 ночи это делают -_- Но это уже опасно близко к политоте)
Лучше про ненужность паскалей)
[00:49:29] <ada_ru> (I_vlxy_I) кстати, а зачем они это делают? явно же рыхлят!
[00:49:40] <ada_ru> (I_vlxy_I) чтобы таяло лучше? чтобы вывозить потом этот снег?
[00:49:45] <landgraf> чтобы таял быстрее жеж
[00:50:00] <landgraf> в армии не был что-ли?
[00:50:19] <ada_ru> (I_vlxy_I) неа
[00:50:38] <ada_ru> (I_vlxy_I) а что, таки реально быстрее начинает таять?
[00:50:49] <landgraf> ты точно программист?
[00:51:08] <ada_ru> (I_vlxy_I) а как проверить?
[00:51:26] <landgraf> о, еще и еврей )
[00:51:49] <landgraf> впрочем я тоже :D
[00:52:47] <ada_ru> (I_vlxy_I) еврейский сервер отвечает реквестом на реквест, таки да :-)
[00:54:18] <landgraf> не отвечает а дает в долг под проценты
[00:57:13] <ada_ru> (I_vlxy_I) да, соответствующие коды ответов есть в http
[01:01:05] <ada_ru> (coopht)  отвечает (nitrocerber) на <Они и в 3 ночи это д…>
Паскаль НИНУЖОН!
[01:01:07] <ada_ru> (coopht) <прислал наклейку>
[01:01:27] <ada_ru> (I_vlxy_I) нужон нипаскаль!
[15:00:51] <ada_ru> (Максим) https://two-wrongs.com/guessing-game-ada-style
[15:14:40] <ada_ru> (nitrocerber) гнатмей не нужОн
[15:14:53] <ada_ru> (nitrocerber) пущай переписывает с гпрбилдом
[15:15:20] <ada_ru> (Максим) кстати да :)
[18:23:33] <geniepro> а часто ли у вас в адских прогах используется блок declare для управления памятью?
[18:23:56] <yeo> да
[18:24:31] <geniepro> вообще в аде бывают проблемы с утечками памяти?
[18:24:58] <yeo> часто даже использую не управления памятью, а для ограничения области видимости. код получается болле понятный
[18:25:34] <yeo> да, бывают, когда сам управляешь освобождением памяти
[18:25:45] <geniepro> ну в принципе если стремиться, что бы процедурки были мелкими, то области видимости небольшие же
[18:27:00] <yeo> в цикле можно объявлять локальные переменные, когда они действительно нужны. и будешь уверен, что никто их после цикла уже не использует, когда там мусор уже
[18:31:45] <OCTAGRAM> я часто пишу в стиле единственного присваивания
[18:33:06] <OCTAGRAM> там declare нужен, чтоб ровно в одном месте зафиксировать, откуда берётся значение
[18:34:20] <OCTAGRAM> чтоб значение по курсору контейнера закрепить и удобно обращаться, это declare … renames
[18:34:38] <OCTAGRAM> очень, очень часто
[18:36:44] <geniepro> а зачем нужно переименовывать?
[18:37:01] <yeo> для 95-й Ады есть даже целая книжка "Ada Quality and Style", где пишут, как лучше пользоваться языком, правда нудная жуть :)
[18:37:44] <OCTAGRAM> в Ada 2012 есть ссылки
[18:39:01] <OCTAGRAM> например, Значение_Типа_Контейнер (Значение_Типа_Курсор), или Значение_Типа_Контейнер.Reference (Значение_Типа_Курсор), или Значение_Типа_Контейнер.Constant_Reference (Значение_Типа_Курсор)
[18:40:03] <OCTAGRAM> когда declare Штука : Тип_Штуки renames Значение_Типа_Контейнер.Reference (Значение_Типа_Курсор); пишешь, ссылка Ada 2012 закрепляет доступ
[18:40:10] <OCTAGRAM> на время области видимости
[18:40:34] <geniepro> какой-то Java-style ))
[18:40:51] <OCTAGRAM> ну или любое другое сложное выражение, чтоб оно поближе стало
[18:41:09] <OCTAGRAM> Паскалевский with и контроль времени жизни два в одном
[18:41:11] <yeo> не только контейнер Ада 2012. можно переименовать ячейку массива с жуткими индексами, например
[18:42:21] <OCTAGRAM> ещё строку по произвольному адресу в памяти и известной длине можно «разглядеть» внутри declare
[18:42:41] <yeo> L : Terminal renames Input.Terminal (Index (Left));
[18:43:15] <yeo> потом можно L.Name := L.Name.To_Lower;
[18:43:41] <landgraf> помедленнее, я записываю!
[18:44:00] <geniepro> ну я вот смотрю, это ещё в Ada-83 было, там много чего можно было переименовывать )) http://archive.adaic.com/standards/83lrm/html/lrm-08-05.html
[18:44:32] <OCTAGRAM> а в 2020 можно будет Input.Terminal (Index (Left)) := @.To_Lower;
[18:46:45] <OCTAGRAM> хотя в GNAT уже сейчас работает
[18:47:28] <landgraf> преждевременная эякуля^W оптимизация!
[18:47:50] <OCTAGRAM> Только DECLARE! Только ХАРДКОР!
[18:47:54] <ada_ru> (I_vlxy_I) у молодых и неопытных часто случается такое...
[18:49:53] <OCTAGRAM> по поводу (if) и (case) тоже спорили, но как-то привыкли
[18:50:03] <OCTAGRAM> и функции с in out
[18:51:10] <landgraf> а что спорить то? не надо - не используй
[18:51:34] <landgraf> это же не пейтон какой где все ломают к чертям без обратной совместимости
[18:52:03] <geniepro> OCTAGRAM> по поводу (if) и (case) тоже спорили
а что это за спор?
[18:53:00] <OCTAGRAM> ну типа плохо, что в языке такое появилось
[18:53:42] <OCTAGRAM> не по заветам отцов основателей
[18:55:06] <landgraf> test.adb:4:14: target_name is an Ada 2020 feature
[18:55:10] <landgraf> ух ты и правда
[18:55:39] <OCTAGRAM> а для стиля единственного присваивания эти новые выражения замечательно подошли
[18:56:03] <OCTAGRAM> раньше либо функцию городить, либо делать переменную вместо константы
[18:57:37] <landgraf> OCTAGRAM, а чего еще в гнате работает нового?
[18:58:04] <OCTAGRAM> насчёт работает не знаю
[18:58:43] <OCTAGRAM> но вроде бы для массивов сделали агрегат с выражением от индексов массивов
[19:03:30] <OCTAGRAM> исключения ещё стало можно бросать из выражений
[19:04:18] <yeo> это еще в 2012+
[19:05:36] <ada_ru> (I_vlxy_I) а в плюсах всегда можно было!11
[19:06:49] <landgraf> *facepalm*
[19:07:48] <yeo> да, "1/0" ;)
[19:07:51] <ada_ru> (I_vlxy_I) *facetime*
[19:08:29] <OCTAGRAM> https://juick.com/OCTAGRAM/2860634
[19:10:32] <OCTAGRAM> точно, предикаты же
[19:12:17] <landgraf> я до предикатов так и не добрался :(
[19:12:25] <landgraf> пишу pre post до сих пор
[19:12:29] <landgraf> и то когда не лень
[19:13:17] <ada_ru> (I_vlxy_I) Это чтоо.. а вот в c++20 в стандартной либе появился КАЛЕНДАРЬ! Завидуете, да?
[19:13:40] <OCTAGRAM> я аж сел
[19:13:52] <yeo> Ada.Calendars?
[19:14:11] <ada_ru> (I_vlxy_I) yeo: типа того, да 😊
[19:14:29] <OCTAGRAM> и даже с високосными секундами? или как всегда undefined behavior?
[19:14:37] <ada_ru> (I_vlxy_I) https://habrahabr.ru/company/yandex/blog/351492/
[19:14:53] <geniepro> OCTAGRAM> Ну и по-мелочи, сделали аналог +=, *=, …, но не так дебильно, как во Free Pascal, тупо калькой с не менее дебильного C, а индустриальненько.
но ведь +:= и -:= появились ещё в алголе-68!!!! сишечки тогда ещё не было!!!
[19:15:21] <ada_ru> (I_vlxy_I) кажется с ними, да.
[21:44:49] <ada_ru> (IvanAlf)